Hi Prabu, On Tue, August 20, 2013, Arnd Bergmann wrote: > On Monday 19 August 2013, Prabu Thangamuthu wrote: > > > > +#ifdef CONFIG_MMC_DW_IDMAC_64BIT_ADDRESS > > + u32 des1; /* Reserved */ > > + > > + u32 des2; /* Buffer sizes */ > > +#define IDMAC_SET_BUFFER1_SIZE(d, s) \ > > + ((d)->des2 = ((d)->des2 & 0x03ffe000) | ((s) & 0x1fff)) > > + > > + u32 des3; /* Reserved */ > > + > > + u32 des4; /* Lower 32-bits of Buffer Address Pointer 1*/ > > + u32 des5; /* Upper 32-bits of Buffer Address Pointer 1*/ > > + u32 des6; /* Lower 32-bits of Next Descriptor Address */ > > + u32 des7; /* Upper 32-bits of Next Descriptor Address */ > > +#else > > u32 des1; /* Buffer sizes */ > > #define IDMAC_SET_BUFFER1_SIZE(d, s) \ > > ((d)->des1 = ((d)->des1 & 0x03ffe000) | ((s) & 0x1fff)) > > @@ -73,6 +86,7 @@ struct idmac_desc { > > u32 des2; /* buffer 1 physical address */ > > > > u32 des3; /* buffer 2 physical address */ > > +#endif /* CONFIG_MMC_DW_IDMAC_64BIT_ADDRESS */ > > This is not a good idea: It means you cannot build the driver to support > both 32 and 64 bit at run-time. You have to remove all the #ifdef here > and replace it with runtime checks. You also need to update the binding > document to provide a way to detect which one is present in a given > system. > I guess HCON register can be used to identify 32 or 64 bit, right? You already used it. addr_config = (mci_readl(host, HCON) >> 27) & 0x01; Then, CONFIG_MMC_DW_IDMAC_64BIT_ADDRESS could be removed. Thanks, Seungwon Jeon -- 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