regulator: tps6507x: Fix using wrong dev argument for calling of_regulator_match
authorAxel Lin <axel.lin@ingics.com>
Sun, 27 Jan 2013 12:54:40 +0000 (20:54 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 30 Jan 2013 10:44:41 +0000 (18:44 +0800)
The dev parameter is the device requesting the data.
In this case it should be &pdev->dev rather than pdev->dev.parent.

The dev parameter is used to call devm_kzalloc in of_get_regulator_init_data(),
which means this fixes a memory leak because the memory is allocated every time
probe() is called, thus it should be freed when this driver is unloaded.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/tps6507x-regulator.c

index afdeb65b6a4de488a0eeb609f60af299ea098080..54aa2da7283bd6c0e898a5f90b67310877009a9a 100644 (file)
@@ -394,7 +394,7 @@ static struct tps6507x_board *tps6507x_parse_dt_reg_data(
        count = ARRAY_SIZE(tps6507x_matches);
        matches = tps6507x_matches;
 
-       ret = of_regulator_match(pdev->dev.parent, regulators, matches, count);
+       ret = of_regulator_match(&pdev->dev, regulators, matches, count);
        if (ret < 0) {
                dev_err(&pdev->dev, "Error parsing regulator init data: %d\n",
                        ret);