Skip to content

Commit

Permalink
PM / Runtime: Fix loops in pm_runtime_clk_notify()
Browse files Browse the repository at this point in the history
The loops over connection ID strings in pm_runtime_clk_notify()
should actually iterate over the strings and not over the elements
of the first of them, so make them behave as appropriate.

This fixes a regression introduced by commit 600b776
(OMAP1 / PM: Use generic clock manipulation routines for runtime PM).

Reported-and-tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Rafael J. Wysocki committed Jun 7, 2011
1 parent 99592ba commit 3b3eca3
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions drivers/base/power/clock_ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ static int pm_runtime_clk_notify(struct notifier_block *nb,
{
struct pm_clk_notifier_block *clknb;
struct device *dev = data;
char *con_id;
char **con_id;
int error;

dev_dbg(dev, "%s() %ld\n", __func__, action);
Expand All @@ -309,8 +309,8 @@ static int pm_runtime_clk_notify(struct notifier_block *nb,

dev->pwr_domain = clknb->pwr_domain;
if (clknb->con_ids[0]) {
for (con_id = clknb->con_ids[0]; *con_id; con_id++)
pm_runtime_clk_add(dev, con_id);
for (con_id = clknb->con_ids; *con_id; con_id++)
pm_runtime_clk_add(dev, *con_id);
} else {
pm_runtime_clk_add(dev, NULL);
}
Expand Down Expand Up @@ -380,7 +380,7 @@ static int pm_runtime_clk_notify(struct notifier_block *nb,
{
struct pm_clk_notifier_block *clknb;
struct device *dev = data;
char *con_id;
char **con_id;

dev_dbg(dev, "%s() %ld\n", __func__, action);

Expand All @@ -389,16 +389,16 @@ static int pm_runtime_clk_notify(struct notifier_block *nb,
switch (action) {
case BUS_NOTIFY_ADD_DEVICE:
if (clknb->con_ids[0]) {
for (con_id = clknb->con_ids[0]; *con_id; con_id++)
enable_clock(dev, con_id);
for (con_id = clknb->con_ids; *con_id; con_id++)
enable_clock(dev, *con_id);
} else {
enable_clock(dev, NULL);
}
break;
case BUS_NOTIFY_DEL_DEVICE:
if (clknb->con_ids[0]) {
for (con_id = clknb->con_ids[0]; *con_id; con_id++)
disable_clock(dev, con_id);
for (con_id = clknb->con_ids; *con_id; con_id++)
disable_clock(dev, *con_id);
} else {
disable_clock(dev, NULL);
}
Expand Down

0 comments on commit 3b3eca3

Please sign in to comment.