diff options
| -rw-r--r-- | arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c index 8e50daa99151..dc526ef2e9b3 100644 --- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | struct regulator_quirk { | 40 | struct regulator_quirk { |
| 41 | struct list_head list; | 41 | struct list_head list; |
| 42 | const struct of_device_id *id; | 42 | const struct of_device_id *id; |
| 43 | struct device_node *np; | ||
| 43 | struct of_phandle_args irq_args; | 44 | struct of_phandle_args irq_args; |
| 44 | struct i2c_msg i2c_msg; | 45 | struct i2c_msg i2c_msg; |
| 45 | bool shared; /* IRQ line is shared */ | 46 | bool shared; /* IRQ line is shared */ |
| @@ -101,6 +102,9 @@ static int regulator_quirk_notify(struct notifier_block *nb, | |||
| 101 | if (!pos->shared) | 102 | if (!pos->shared) |
| 102 | continue; | 103 | continue; |
| 103 | 104 | ||
| 105 | if (pos->np->parent != client->dev.parent->of_node) | ||
| 106 | continue; | ||
| 107 | |||
| 104 | dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", | 108 | dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", |
| 105 | pos->id->compatible, pos->i2c_msg.addr); | 109 | pos->id->compatible, pos->i2c_msg.addr); |
| 106 | 110 | ||
| @@ -165,6 +169,7 @@ static int __init rcar_gen2_regulator_quirk(void) | |||
| 165 | memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); | 169 | memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); |
| 166 | 170 | ||
| 167 | quirk->id = id; | 171 | quirk->id = id; |
| 172 | quirk->np = np; | ||
| 168 | quirk->i2c_msg.addr = addr; | 173 | quirk->i2c_msg.addr = addr; |
| 169 | 174 | ||
| 170 | ret = of_irq_parse_one(np, 0, argsa); | 175 | ret = of_irq_parse_one(np, 0, argsa); |
