Message ID | 1395234209-15546-10-git-send-email-alexandre.belloni@free-electrons.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Around Wed 19 Mar 2014 14:03:22 +0100 or thereabout, Alexandre Belloni wrote: > Switch to the pwm/pwm-atmel driver instead of misc/atmel_pwm > > Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no> > --- > arch/avr32/mach-at32ap/at32ap700x.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c > index a1f4d1e91b52..db85b5ec3351 100644 > --- a/arch/avr32/mach-at32ap/at32ap700x.c > +++ b/arch/avr32/mach-at32ap/at32ap700x.c > @@ -1553,7 +1553,7 @@ static struct resource atmel_pwm0_resource[] __initdata = { > IRQ(24), > }; > static struct clk atmel_pwm0_mck = { > - .name = "pwm_clk", > + .name = "at91sam9rl-pwm", I found this a tiny bit weird, but found the matching instance in drivers/pwm/pwm-atmel.c IMHO it would initially have been better to call it atpwm_v1 or something similar, more generic. But I guess that is too late to change at this point. > .parent = &pbb_clk, > .mode = pbb_clk_mode, > .get_rate = pbb_clk_get_rate, > @@ -1568,7 +1568,7 @@ struct platform_device *__init at32_add_device_pwm(u32 mask) > if (!mask) > return NULL; > > - pdev = platform_device_alloc("atmel_pwm", 0); > + pdev = platform_device_alloc("at91sam9rl-pwm", 0); > if (!pdev) > return NULL; > > @@ -1576,9 +1576,6 @@ struct platform_device *__init at32_add_device_pwm(u32 mask) > ARRAY_SIZE(atmel_pwm0_resource))) > goto out_free_pdev; > > - if (platform_device_add_data(pdev, &mask, sizeof(mask))) > - goto out_free_pdev; > - > pin_mask = 0; > if (mask & (1 << 0)) > pin_mask |= (1 << 28);
On Wed, Mar 19, 2014 at 03:18:20PM +0100, Hans-Christian Egtvedt wrote: > Around Wed 19 Mar 2014 14:03:22 +0100 or thereabout, Alexandre Belloni wrote: > > Switch to the pwm/pwm-atmel driver instead of misc/atmel_pwm > > > > Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > > Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no> > > > --- > > arch/avr32/mach-at32ap/at32ap700x.c | 7 ++----- > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c > > index a1f4d1e91b52..db85b5ec3351 100644 > > --- a/arch/avr32/mach-at32ap/at32ap700x.c > > +++ b/arch/avr32/mach-at32ap/at32ap700x.c > > @@ -1553,7 +1553,7 @@ static struct resource atmel_pwm0_resource[] __initdata = { > > IRQ(24), > > }; > > static struct clk atmel_pwm0_mck = { > > - .name = "pwm_clk", > > + .name = "at91sam9rl-pwm", > > I found this a tiny bit weird, but found the matching instance in > drivers/pwm/pwm-atmel.c > > IMHO it would initially have been better to call it atpwm_v1 or something > similar, more generic. But I guess that is too late to change at this point. Generally when you call clk_get(dev, NULL), you'll pass in the consumer device as "dev". Now the avr32 clock implementation compares that to the device associated with the clock, which for the case of the PWM pwm0_mck is the PWM controller (at32_add_device_pwm() for reference). So it seems to be set up properly (the PWM controller is the consumer). Also since the consumer ID isn't specified to the clk_get() call, the name of the clock (what's being changed in the above hunk) shouldn't matter because it won't match anyway. Now that I look at it more closely, I wonder how clk_get(dev, NULL) can even work on avr32, since there's no check for id == NULL and therefore NULL will be blindly passed into strcmp() and then crash. Thierry
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index a1f4d1e91b52..db85b5ec3351 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c @@ -1553,7 +1553,7 @@ static struct resource atmel_pwm0_resource[] __initdata = { IRQ(24), }; static struct clk atmel_pwm0_mck = { - .name = "pwm_clk", + .name = "at91sam9rl-pwm", .parent = &pbb_clk, .mode = pbb_clk_mode, .get_rate = pbb_clk_get_rate, @@ -1568,7 +1568,7 @@ struct platform_device *__init at32_add_device_pwm(u32 mask) if (!mask) return NULL; - pdev = platform_device_alloc("atmel_pwm", 0); + pdev = platform_device_alloc("at91sam9rl-pwm", 0); if (!pdev) return NULL; @@ -1576,9 +1576,6 @@ struct platform_device *__init at32_add_device_pwm(u32 mask) ARRAY_SIZE(atmel_pwm0_resource))) goto out_free_pdev; - if (platform_device_add_data(pdev, &mask, sizeof(mask))) - goto out_free_pdev; - pin_mask = 0; if (mask & (1 << 0)) pin_mask |= (1 << 28);
Switch to the pwm/pwm-atmel driver instead of misc/atmel_pwm Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- arch/avr32/mach-at32ap/at32ap700x.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)