mfd: Fix compile for twl-core.c by removing cpu_is_omap usage
Subsystems (5)
Tony Lindgren
maintainerPATCH 1/1 mfd: Fix compile for twl-core.c by removing cpu_is_omap usage
Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke compile for non-omap as include plat/cpu.h was added:
drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory
This header was indirectly included earlier when SPARSE_IRQ was not set, but does not exist on most platforms.
Fix the problem by removing the cpu_is_omap usage that should not exist in drivers at all. We can do this by adding proper clock aliases for the twl-core.c drivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.
Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
---
Samuel, I'd like to queue this via arm-soc as that's where I have the breaking patch is if this patch is OK with you.
arch/arm/mach-omap2/clock2430_data.c +1 -0
@@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {CLK (NULL ,"func_32k_ck" , &func_32k_ck,CK_243X ),CLK (NULL ,"secure_32k_ck" , &secure_32k_ck,CK_243X ),CLK (NULL ,"osc_ck" , &osc_ck,CK_243X ), +CLK ("twl" ,"fck" , &osc_ck,CK_243X ),CLK (NULL ,"sys_ck" , &sys_ck,CK_243X ),CLK (NULL ,"alt_ck" , &alt_ck,CK_243X ), CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_243X),
arch/arm/mach-omap2/clock3xxx_data.c +1 -0
@@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {CLK (NULL ,"virt_26000000_ck" , &virt_26000000_ck,CK_3XXX ),CLK (NULL ,"virt_38_4m_ck" , &virt_38_4m_ck,CK_3XXX ),CLK (NULL ,"osc_sys_ck" , &osc_sys_ck,CK_3XXX ), +CLK ("twl" ,"fck" , &osc_sys_ck,CK_3XXX ),CLK (NULL ,"sys_ck" , &sys_ck,CK_3XXX ),CLK (NULL ,"sys_altclk" , &sys_altclk,CK_3XXX ), CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_3XXX),
drivers/mfd/twl-core.c +30 -26
114 lines not on this page · raw message
Quoted 17 lines · Tony Lindgren
Commit
7d7e1eba(ARM: OMAP2+: Prepare forirqs.hremoval) broke compile for non-omap as includeplat/cpu.hwas added:
drivers/mfd/twl-core.c:49:22: fatal error:plat/cpu.h: No such file or directoryThis header was indirectly included earlier when
SPARSE_IRQwas not set, but does not exist on most platforms.Fix the problem by removing the
cpu_is_omapusage that should not exist in drivers at all. We can do this by adding proper clock aliases for thetwl-core.cdrivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
Quoted 7 lines
Reported-by Fengguang Wu <[email protected]>Reported-by Stephen Rothwell <[email protected]>Cc Paul Walmsley <[email protected]>Cc Samuel Ortiz <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Olof Johansson <[email protected]>Signed-off-by Tony Lindgren <[email protected]>
Paul Walmsley
maintainerQuoted 25 lines · Tony Lindgren
Commit
7d7e1eba(ARM: OMAP2+: Prepare forirqs.hremoval) broke compile for non-omap as includeplat/cpu.hwas added:
drivers/mfd/twl-core.c:49:22: fatal error:plat/cpu.h: No such file or directoryThis header was indirectly included earlier when
SPARSE_IRQwas not set, but does not exist on most platforms.Fix the problem by removing the
cpu_is_omapusage that should not exist in drivers at all. We can do this by adding proper clock aliases for thetwl-core.cdrivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
Reported-by Fengguang Wu <[email protected]>Reported-by Stephen Rothwell <[email protected]>Cc Paul Walmsley <[email protected]>Cc Samuel Ortiz <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Olof Johansson <[email protected]>Signed-off-by Tony Lindgren <[email protected]>
Quoted 4 lines
---
Samuel, I'd like to queue this via arm-soc as that's where I have the breaking patch is if this patch is OK with you.
It would be ideal if I could queue this one, due to the clock dependency. Still hoping that we can get the CCF conversion patches in for 3.7.
- Paul
Tony Lindgren
maintainerQuoted 27 lines · Paul Walmsley
Quoted 25 lines · Tony Lindgren
Commit
7d7e1eba(ARM: OMAP2+: Prepare forirqs.hremoval) broke compile for non-omap as includeplat/cpu.hwas added:
drivers/mfd/twl-core.c:49:22: fatal error:plat/cpu.h: No such file or directoryThis header was indirectly included earlier when
SPARSE_IRQwas not set, but does not exist on most platforms.Fix the problem by removing the
cpu_is_omapusage that should not exist in drivers at all. We can do this by adding proper clock aliases for thetwl-core.cdrivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
Reported-by Fengguang Wu <[email protected]>Reported-by Stephen Rothwell <[email protected]>Cc Paul Walmsley <[email protected]>Cc Samuel Ortiz <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Olof Johansson <[email protected]>Signed-off-by Tony Lindgren <[email protected]>
Quoted 7 lines
Quoted 4 lines
---
Samuel, I'd like to queue this via arm-soc as that's where I have the breaking patch is if this patch is OK with you.
It would be ideal if I could queue this one, due to the clock dependency. Still hoping that we can get the CCF conversion patches in for 3.7.
We need to queue this ASAP and before other patches to fix the build breakage in linux next. Then you can merge in that commit too, does that work for you?
Tony
Paul Walmsley
maintainerQuoted 3 lines · Tony Lindgren
We need to queue this ASAP and before other patches to fix the build breakage in linux next. Then you can merge in that commit too, does that work for you?
That's fine, we'll just need a stable commit then that the CCF patches can be based on.
- Paul
Tony Lindgren
maintainerQuoted 8 lines · Paul Walmsley
Quoted 3 lines · Tony Lindgren
We need to queue this ASAP and before other patches to fix the build breakage in linux next. Then you can merge in that commit too, does that work for you?
That's fine, we'll just need a stable commit then that the CCF patches can be based on.
OK cool, will let you know that once we hear from Samuel. Care to ack the clock related changes?
There's pm24xx.c at least using osc_ck naming, so I added a new alias to keep it generic for the driver instead of using omap specific names.
Regards,
Tony
Hi Tony,
Quoted 25 lines · Tony Lindgren
Commit
7d7e1eba(ARM: OMAP2+: Prepare forirqs.hremoval) broke compile for non-omap as includeplat/cpu.hwas added:
drivers/mfd/twl-core.c:49:22: fatal error:plat/cpu.h: No such file or directoryThis header was indirectly included earlier when
SPARSE_IRQwas not set, but does not exist on most platforms.Fix the problem by removing the
cpu_is_omapusage that should not exist in drivers at all. We can do this by adding proper clock aliases for thetwl-core.cdrivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
Reported-by Fengguang Wu <[email protected]>Reported-by Stephen Rothwell <[email protected]>Cc Paul Walmsley <[email protected]>Cc Samuel Ortiz <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Olof Johansson <[email protected]>Signed-off-by Tony Lindgren <[email protected]>
Quoted 4 lines
---
Samuel, I'd like to queue this via arm-soc as that's where I have the breaking patch is if this patch is OK with you.
That's fine with me:
Cheers,
Samuel.
Signature · 2 lines
Intel Open Source Technology Centre http://oss.intel.com/
Tony Lindgren
maintainerQuoted 10 lines · Tony Lindgren
Quoted 8 lines · Paul Walmsley
Quoted 3 lines · Tony Lindgren
We need to queue this ASAP and before other patches to fix the build breakage in linux next. Then you can merge in that commit too, does that work for you?
That's fine, we'll just need a stable commit then that the CCF patches can be based on.
Quoted 6 lines
OK cool, will let you know that once we hear from Samuel. Care to ack the clock related changes?
There's
pm24xx.cat least usingosc_cknaming, so I added a new alias to keep it generic for the driver instead of using omap specific names.
Pushed out now with the ack from Samuel and sent the pull request.
Regards,
Tony
Quoted 17 lines · Tony Lindgren
Commit
7d7e1eba(ARM: OMAP2+: Prepare forirqs.hremoval) broke compile for non-omap as includeplat/cpu.hwas added:
drivers/mfd/twl-core.c:49:22: fatal error:plat/cpu.h: No such file or directoryThis header was indirectly included earlier when
SPARSE_IRQwas not set, but does not exist on most platforms.Fix the problem by removing the
cpu_is_omapusage that should not exist in drivers at all. We can do this by adding proper clock aliases for thetwl-core.cdrivers, and drop separate handling for cases when clock framework is not available as the behaviour will stay the same.Note that we need to add a platform device to avoid using the i2c provided names that may be different on various omaps.
Quoted 7 lines
Reported-by Fengguang Wu <[email protected]>Reported-by Stephen Rothwell <[email protected]>Cc Paul Walmsley <[email protected]>Cc Samuel Ortiz <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Olof Johansson <[email protected]>Signed-off-by Tony Lindgren <[email protected]>
FWIW:
Quoted 148 lines
---
Samuel, I'd like to queue this via arm-soc as that's where I have the breaking patch is if this patch is OK with you.
arch/arm/mach-omap2/clock2430_data.c +1
-0@@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {CLK (NULL ,"func_32k_ck" , &func_32k_ck,CK_243X ),CLK (NULL ,"secure_32k_ck" , &secure_32k_ck,CK_243X ),CLK (NULL ,"osc_ck" , &osc_ck,CK_243X ), +CLK ("twl" ,"fck" , &osc_ck,CK_243X ),CLK (NULL ,"sys_ck" , &sys_ck,CK_243X ),CLK (NULL ,"alt_ck" , &alt_ck,CK_243X ), CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_243X),arch/arm/mach-omap2/clock3xxx_data.c +1
-0@@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {CLK (NULL ,"virt_26000000_ck" , &virt_26000000_ck,CK_3XXX ),CLK (NULL ,"virt_38_4m_ck" , &virt_38_4m_ck,CK_3XXX ),CLK (NULL ,"osc_sys_ck" , &osc_sys_ck,CK_3XXX ), +CLK ("twl" ,"fck" , &osc_sys_ck,CK_3XXX ),CLK (NULL ,"sys_ck" , &sys_ck,CK_3XXX ),CLK (NULL ,"sys_altclk" , &sys_altclk,CK_3XXX ), CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_3XXX),drivers/mfd/twl-core.c +30
-26@@ -46,8 +46,6 @@#include <linux/i2c.h> #include <linux/i2c/twl.h> -#include <plat/cpu.h> -#include "twl-core.h" /* @@ -1134,12 +1132,7 @@ static void clocks_init(struct device *dev,u32 rate;u8 ctrl =HFCLK_FREQ_26_MHZ ; -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) -if (cpu_is_omap2430 ()) - osc =clk_get (dev,"osc_ck" ); -else - osc =clk_get (dev,"osc_sys_ck" ); - + osc =clk_get (dev,"fck" );if (IS_ERR (osc)) {printk (KERN_WARNING "Skipping twl internal clock init and " "using bootloader value (unknown osc rate)\n" );@@ -1149,18 +1142,6 @@ static void clocks_init(struct device *dev, rate =clk_get_rate (osc);clk_put (osc); -#else -/* REVISIT for non-OMAP systems, pass the clock rate from -* board init code, using platform_data. -*/ - osc =ERR_PTR (-EIO ); - -printk (KERN_WARNING "Skipping twl internal clock init and " -"using bootloader value (unknown osc rate)\n" ); - -return ; -#endif -switch (rate) {case 19200000 : ctrl = HFCLK_FREQ_19p2_MHZ;@@ -1222,10 +1203,23 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) {struct twl4030_platform_data *pdata = client->dev.platform_data;struct device_node *node = client->dev.of_node; +struct platform_device *pdev;int irq_base =0 ;int status;unsigned i, num_slaves; + pdev =platform_device_alloc (DRIVER_NAME ,-1 ); +if (!pdev) { +dev_err (&client->dev,"can't alloc pdev\n" ); +return -ENOMEM ; + } + + status =platform_device_add (pdev); +if (status) { +platform_device_put (pdev); +return status; + } +if (node && !pdata) {/* * XXX: Temporary pdata until the information is correctly @@ -1234,23 +1228,30 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) pdata =devm_kzalloc (&client->dev,sizeof (struct twl4030_platform_data ),GFP_KERNEL ); -if (!pdata) -return -ENOMEM ; +if (!pdata) { + status = -ENOMEM ; + goto free; + } }if (!pdata) {dev_dbg (&client->dev,"no platform data?\n" ); -return -EINVAL ; + status = -EINVAL ; + goto free; } +platform_set_drvdata (pdev, pdata); +if (i2c_check_functionality (client->adapter,I2C_FUNC_I2C ) ==0 ) {dev_dbg (&client->dev,"can't talk I2C?\n" ); -return -EIO ; + status = -EIO ; + goto free; }if (inuse) {dev_dbg (&client->dev,"driver is already in use\n" ); -return -EBUSY ; + status = -EBUSY ; + goto free; }if ((id->driver_data) &TWL6030_CLASS ) {@@ -1285,7 +1286,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) inuse = true;/* setup clock framework */ -clocks_init (&client->dev, pdata->clock); +clocks_init (&pdev->dev, pdata->clock);/* read TWL IDCODE Register */ if (twl_id ==TWL4030_CLASS_ID ) {@@ -1335,6 +1336,9 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) fail:if (status <0 )twl_remove (client); +free: +if (status <0 ) +platform_device_unregister (pdev);return status; }
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120918/6a13f455/attachment.sig>