Re: [PATCH v6] OMAP4 HSMMC: Adding Card detect support for MMC1 on OMAP4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Madhu,

On Thu, Aug 5, 2010 at 4:26 AM, Madhusudhan <madhu.cr@xxxxxx> wrote:
> <snip>
>
>> >> >  arch/arm/mach-omap2/board-4430sdp.c |    7 +++-
>> >> >  drivers/mfd/twl6030-irq.c           |   76
>> >> +++++++++++++++++++++++++++++++++++
>> >> >  drivers/mmc/host/omap_hsmmc.c       |    4 +-
>> >> >  include/linux/i2c/twl.h             |   16 +++++++
>> >> >  4 files changed, 100 insertions(+), 3 deletions(-)
>> >> >
>> >> > diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-
>> >> omap2/board-4430sdp.c
>> >> > index f287461..388b96d 100644
>> >> > --- a/arch/arm/mach-omap2/board-4430sdp.c
>> >> > +++ b/arch/arm/mach-omap2/board-4430sdp.c
>> >> > @@ -227,9 +227,14 @@ static int omap4_twl6030_hsmmc_late_init(struct
>> >> device *dev)
>> >> >        struct omap_mmc_platform_data *pdata = dev->platform_data;
>> >> >
>> >> >        /* Setting MMC1 Card detect Irq */
>> >> > -       if (pdev->id == 0)
>> >> > +       if (pdev->id == 0) {
>> >> > +               ret = twl6030_mmc_card_detect_config();
>> >> > +               if (ret)
>> >> > +                       pr_err("Failed configuring MMC1 card
>> detect\n");
>> >> >                pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE +
>> >> >                                                MMCDETECT_INTR_OFFSET;
>> >> > +               pdata->slots[0].card_detect =
>> twl6030_mmc_card_detect;
>
> You are assigning an exported fn here.
>
> What if somebody disables CONFIG_TWL4030_CORE in the omap_4430sdp_defconfig
> file? Does the driver behave nicely with only loosing the hotplug
> capability?

On mainline 2.6.35 omap3_defconfig works for OMAP4 but without hotplug
functionality
Disabling CONFIG_TWL4030_CORE in defconfig  means disabling
regulator's  and eventually
on bootup mmc host drivers probe fails as omap_hsmmc_reg_get( )
fails. Seems like
MMC and TWL are tightly coupled because of LDO dependency.

With this V6 patch and omap3_defconfig , disabling CONFIG_TWL4030_CORE
[also need to disable USB & comment board-devkit8000.c in
mach-omap2/Makefile as they have dependency on
twl_i2c_write_u8/twl_i2c_read_u8 defined in twl-core.c] doesn't
compile due to undefined reference to those exported functions
twl6030_mmc_card_detect_config & twl6030_mmc_card_detect .

Having below one[in twl.h] in addition to V6 :

 /* Card detect Configuration for MMC1 Controller on OMAP4 */
+#if defined(CONFIG_TWL4030_CORE)
 int twl6030_mmc_card_detect_config(void);
+#else
+static inline int twl6030_mmc_card_detect_config(void)
+{
+	pr_err("twl6030_mmc_card_detect_config not supported\n");
+	return 0;
+}
+#endif

 /* MMC1 Controller on OMAP4 uses Phoenix irq for Card detect */
+#if defined(CONFIG_TWL4030_CORE)
 int twl6030_mmc_card_detect(struct device *dev, int slot);
-
+#else
+static inline int twl6030_mmc_card_detect(struct device *dev, int slot)
+{
+	pr_err("Call back twl6030_mmc_card_detect not supported\n");
+	return -EIO;
+}
+#endif

With the above change compilation as well as booting goes well but mmc probe
fails.

Shall I go with above changes and post V7 ?

<snip>

Thanks ,
Kishore
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux