On 31 March 2012 03:36, Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > On Sat, 24 Mar 2012 15:19:49 +0530, Thomas Abraham <thomas.abraham@xxxxxxxxxx> wrote: >> Add irq domain support for max8997 interrupts. The reverse mapping method >> used is linear mapping since the sub-drivers of max8997 such as regulator >> and charger drivers can use the max8997 irq_domain to get the linux irq >> number for max8997 interrupts. All uses of irq_base in platform data and >> max8997 driver private data are removed. >> >> Cc: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx> >> Signed-off-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx> >> Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx> >> --- >> arch/arm/mach-exynos/mach-nuri.c | 4 -- >> arch/arm/mach-exynos/mach-origen.c | 1 - >> drivers/mfd/max8997-irq.c | 61 ++++++++++++++++++++-------------- >> drivers/mfd/max8997.c | 1 - >> include/linux/mfd/max8997-private.h | 4 ++- >> include/linux/mfd/max8997.h | 1 - >> 6 files changed, 39 insertions(+), 33 deletions(-) >> >> diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c >> index 7ac81ce..b21d85d 100644 >> --- a/arch/arm/mach-exynos/mach-nuri.c >> +++ b/arch/arm/mach-exynos/mach-nuri.c >> @@ -1077,12 +1077,8 @@ static struct platform_device nuri_max8903_device = { >> static void __init nuri_power_init(void) >> { >> int gpio; >> - int irq_base = IRQ_GPIO_END + 1; >> int ta_en = 0; >> >> - nuri_max8997_pdata.irq_base = irq_base; >> - irq_base += MAX8997_IRQ_NR; >> - >> gpio = EXYNOS4_GPX0(7); >> gpio_request(gpio, "AP_PMIC_IRQ"); >> s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); >> diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c >> index 827cb99..d3b2e9d 100644 >> --- a/arch/arm/mach-exynos/mach-origen.c >> +++ b/arch/arm/mach-exynos/mach-origen.c >> @@ -424,7 +424,6 @@ static struct max8997_platform_data __initdata origen_max8997_pdata = { >> .buck1_gpiodvs = false, >> .buck2_gpiodvs = false, >> .buck5_gpiodvs = false, >> - .irq_base = IRQ_GPIO_END + 1, >> >> .ignore_gpiodvs_side_effect = true, >> .buck125_default_idx = 0x0, >> diff --git a/drivers/mfd/max8997-irq.c b/drivers/mfd/max8997-irq.c >> index 09274cf..00390a1 100644 >> --- a/drivers/mfd/max8997-irq.c >> +++ b/drivers/mfd/max8997-irq.c >> @@ -142,7 +142,8 @@ static void max8997_irq_sync_unlock(struct irq_data *data) >> static const inline struct max8997_irq_data * >> irq_to_max8997_irq(struct max8997_dev *max8997, int irq) >> { >> - return &max8997_irqs[irq - max8997->irq_base]; >> + struct irq_data *data = irq_get_irq_data(irq); >> + return &max8997_irqs[data->hwirq]; >> } > > Haha, this is kind of bogus now. There are only two users of this > function, and *both* of them already have the irq_data pointer. > Instead of this, delete this function entirely and make each caller > derefernce max8997_irqs directly: > > const struct max8997_irq_data *irq_data = &max8997_irqs[data->hwirq]; > > Otherwise, looks good. After fixing you can add my: > > Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx> Hi Grant, Thanks for the suggestion. I have modified the code accordingly and included your ack. Regards, Thomas. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html