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. Arnd -- 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