Hi Shubhrajyoti, Thanks for the review... > > /** > > + * xudc_write64 - write 64bit value to device registers > > + * @ep: pointer to the usb device endpoint structure. > > + * @offset: register offset > > + * @val: data to be written > > + **/ > > +static void xudc_write64(struct xusb_ep *ep, u32 offset, u64 val) { > > + struct xusb_udc *udc = ep->udc; > > + > > + udc->write_fn(udc->addr, offset, lower_32_bits(val)); > > + udc->write_fn(udc->addr, offset+0x04, upper_32_bits(val)); > > can we move this to a single 64 bit write? Initially I sent the patches with writeq() ,lo_hi_writeq() later we decided to replace with write_fun(). The reason for this is lo_hi_writeq() always assumes a little-endian register, so it's broken if anyone builds this device with big-endian registers. So replaced the 64bit calls with write_fun() as suggested by Arnd Bergmann. Hope it clears your query. Please refer to the below thread http://lkml.iu.edu/hypermail/linux/kernel/1604.2/02046.html Regards, Navakishore. ��.n��������+%������w��{.n����z�{��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f