Manju, On Fri, Oct 1, 2010 at 8:32 PM, G, Manjunath Kondaiah <manjugk@xxxxxx> wrote: > > > >> -----Original Message----- >> From: linux-omap-owner@xxxxxxxxxxxxxxx >> [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of >> Kadiyala, Kishore >> Sent: Saturday, September 18, 2010 10:04 PM >> To: linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> Cc: khilman@xxxxxxxxxxxxxxxxxxx; Cousson, Benoit >> Subject: [PATCH v2 3/4] omap4 hsmmc: Register offset handling >> >> The offset handling implementation of omap4 mmc registers >> which was already present can't be reused once hwmod >> modifications are done for mmc driver. >> Since hwmod data file for OMAP4 is an auto generated the base >> address for MMC will remain same as OMAP3 and thus the offset >> deviation of registers should be updated in the hsmmc driver. >> The omap-mmc platform data is updated with a register offset >> which will be updated and used in the driver accordingly. >> >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@xxxxxx> >> --- >> arch/arm/mach-omap2/devices.c | 8 +++----- >> arch/arm/mach-omap2/hsmmc.c | 4 ++++ >> arch/arm/plat-omap/include/plat/mmc.h | 3 +++ >> drivers/mmc/host/omap_hsmmc.c | 2 +- >> 4 files changed, 11 insertions(+), 6 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/devices.c >> b/arch/arm/mach-omap2/devices.c index 2dbb265..bb7ec13 100644 >> --- a/arch/arm/mach-omap2/devices.c >> +++ b/arch/arm/mach-omap2/devices.c >> @@ -745,13 +745,13 @@ void __init omap2_init_mmc(struct >> omap_mmc_platform_data **mmc_data, >> case 3: >> if (!cpu_is_omap44xx()) >> return; >> - base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET; >> + base = OMAP4_MMC4_BASE; >> irq = OMAP44XX_IRQ_MMC4; >> break; >> case 4: >> if (!cpu_is_omap44xx()) >> return; >> - base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET; >> + base = OMAP4_MMC5_BASE; >> irq = OMAP44XX_IRQ_MMC5; >> break; >> default: >> @@ -762,10 +762,8 @@ void __init omap2_init_mmc(struct >> omap_mmc_platform_data **mmc_data, >> size = OMAP2420_MMC_SIZE; >> name = "mmci-omap"; >> } else if (cpu_is_omap44xx()) { >> - if (i < 3) { >> - base += OMAP4_MMC_REG_OFFSET; >> + if (i < 3) >> irq += OMAP44XX_IRQ_GIC_START; >> - } >> size = OMAP4_HSMMC_SIZE; >> name = "mmci-omap-hs"; >> } else { >> diff --git a/arch/arm/mach-omap2/hsmmc.c >> b/arch/arm/mach-omap2/hsmmc.c index c8f647b..49d76a7 100644 >> --- a/arch/arm/mach-omap2/hsmmc.c >> +++ b/arch/arm/mach-omap2/hsmmc.c >> @@ -261,6 +261,10 @@ void __init omap2_hsmmc_init(struct >> omap2_hsmmc_info *controllers) >> mmc->slots[0].wires = c->wires; >> mmc->slots[0].internal_clock = !c->ext_clock; >> mmc->dma_mask = 0xffffffff; >> + if (cpu_is_omap44xx()) >> + mmc->reg_offset = OMAP4_MMC_REG_OFFSET; >> + else >> + mmc->reg_offset = 0; > > 1. Since you mentioned that, this is useful for hwmod, the > register offsets should use enum and static tables. You can > refer to i2c-omap.c for more details and dma hwmod review > comments for more details. > https://patchwork.kernel.org/patch/126251/ I've avoided using static tables for register offset handling as suggested by Benoit for HSMMC driver.Instead had the offset updated in hsmmc.c and used in driver. Could you check the latest version V4 http://www.spinics.net/lists/linux-omap/msg37226.html > > 2. Replace macros with inline functions for low level read/write > functions. Didn't touch this in the latest V4 Regards, Kishore > > -Manjunath > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- 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