On Fri, Oct 19, 2012 at 12:24:42PM +0200, Christoph Fritz wrote: > Drop the big-/little-endian helpers and make use of generic > writel()/readl() routines. > > Signed-off-by: Christoph Fritz <chf.fritz@xxxxxxxxxxxxxx> > --- > drivers/usb/gadget/fsl_udc_core.c | 331 +++++++++++++------------------------ > 1 files changed, 118 insertions(+), 213 deletions(-) > > diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c > index d113f39..53df9c0 100644 > --- a/drivers/usb/gadget/fsl_udc_core.c > +++ b/drivers/usb/gadget/fsl_udc_core.c > @@ -20,32 +20,14 @@ > #undef VERBOSE > > #include <linux/module.h> > -#include <linux/kernel.h> > -#include <linux/ioport.h> > -#include <linux/types.h> > -#include <linux/errno.h> > -#include <linux/err.h> > -#include <linux/slab.h> > -#include <linux/init.h> > -#include <linux/list.h> you don't mention removal of these registers anywhere. Why are you doing this ? Are those really unnecessary or are you now depending on indirect inclusion of the headers ? Also, $SUBJECT is a bit misleading since you don't touch Kconfig to actually drop the ARCH dependency. Maybe rephrase $SUBJECT a little ? > #include <linux/interrupt.h> > #include <linux/proc_fs.h> > -#include <linux/mm.h> > -#include <linux/moduleparam.h> > -#include <linux/device.h> > -#include <linux/usb/ch9.h> > #include <linux/usb/gadget.h> > #include <linux/usb/otg.h> > #include <linux/dma-mapping.h> > #include <linux/platform_device.h> > #include <linux/fsl_devices.h> > #include <linux/dmapool.h> > -#include <linux/delay.h> > - > -#include <asm/byteorder.h> > -#include <asm/io.h> > -#include <asm/unaligned.h> > -#include <asm/dma.h> > > #include "fsl_usb2_udc.h" > > @@ -74,78 +56,6 @@ fsl_ep0_desc = { > > static void fsl_ep_fifo_flush(struct usb_ep *_ep); > > -#ifdef CONFIG_PPC32 > -/* > - * On some SoCs, the USB controller registers can be big or little endian, > - * depending on the version of the chip. In order to be able to run the > - * same kernel binary on 2 different versions of an SoC, the BE/LE decision > - * must be made at run time. _fsl_readl and fsl_writel are pointers to the > - * BE or LE readl() and writel() functions, and fsl_readl() and fsl_writel() > - * call through those pointers. Platform code for SoCs that have BE USB > - * registers should set pdata->big_endian_mmio flag. > - * > - * This also applies to controller-to-cpu accessors for the USB descriptors, > - * since their endianness is also SoC dependant. Platform code for SoCs that > - * have BE USB descriptors should set pdata->big_endian_desc flag. > - */ > -static u32 _fsl_readl_be(const unsigned __iomem *p) > -{ > - return in_be32(p); > -} > - > -static u32 _fsl_readl_le(const unsigned __iomem *p) > -{ > - return in_le32(p); > -} > - > -static void _fsl_writel_be(u32 v, unsigned __iomem *p) > -{ > - out_be32(p, v); > -} > - > -static void _fsl_writel_le(u32 v, unsigned __iomem *p) > -{ > - out_le32(p, v); > -} > - > -static u32 (*_fsl_readl)(const unsigned __iomem *p); > -static void (*_fsl_writel)(u32 v, unsigned __iomem *p); > - > -#define fsl_readl(p) (*_fsl_readl)((p)) > -#define fsl_writel(v, p) (*_fsl_writel)((v), (p)) > - > -static inline void fsl_set_accessors(struct fsl_usb2_platform_data *pdata) > -{ > - if (pdata->big_endian_mmio) { > - _fsl_readl = _fsl_readl_be; > - _fsl_writel = _fsl_writel_be; > - } else { > - _fsl_readl = _fsl_readl_le; > - _fsl_writel = _fsl_writel_le; > - } > -} > - > -static inline u32 cpu_to_hc32(const u32 x) > -{ > - return udc_controller->pdata->big_endian_desc > - ? (__force u32)cpu_to_be32(x) > - : (__force u32)cpu_to_le32(x); > -} > - > -static inline u32 hc32_to_cpu(const u32 x) > -{ > - return udc_controller->pdata->big_endian_desc > - ? be32_to_cpu((__force __be32)x) > - : le32_to_cpu((__force __le32)x); > -} > -#else /* !CONFIG_PPC32 */ > -static inline void fsl_set_accessors(struct fsl_usb2_platform_data *pdata) {} > - > -#define fsl_readl(addr) readl(addr) > -#define fsl_writel(val32, addr) writel(val32, addr) > -#define cpu_to_hc32(x) cpu_to_le32(x) > -#define hc32_to_cpu(x) le32_to_cpu(x) > -#endif /* CONFIG_PPC32 */ > > /******************************************************************** > * Internal Used Function > @@ -248,7 +158,7 @@ static int dr_controller_setup(struct fsl_udc *udc) > #define FSL_UDC_RESET_TIMEOUT 1000 > > /* Config PHY interface */ > - portctrl = fsl_readl(&dr_regs->portsc1); > + portctrl = readl(&dr_regs->portsc1); > portctrl &= ~(PORTSCX_PHY_TYPE_SEL | PORTSCX_PORT_WIDTH); > switch (udc->phy_mode) { > case FSL_USB2_PHY_ULPI: > @@ -286,20 +196,20 @@ static int dr_controller_setup(struct fsl_udc *udc) > default: > return -EINVAL; > } > - fsl_writel(portctrl, &dr_regs->portsc1); > + writel(portctrl, &dr_regs->portsc1); > > /* Stop and reset the usb controller */ > - tmp = fsl_readl(&dr_regs->usbcmd); > + tmp = readl(&dr_regs->usbcmd); > tmp &= ~USB_CMD_RUN_STOP; > - fsl_writel(tmp, &dr_regs->usbcmd); > + writel(tmp, &dr_regs->usbcmd); > > - tmp = fsl_readl(&dr_regs->usbcmd); > + tmp = readl(&dr_regs->usbcmd); > tmp |= USB_CMD_CTRL_RESET; > - fsl_writel(tmp, &dr_regs->usbcmd); > + writel(tmp, &dr_regs->usbcmd); > > /* Wait for reset to complete */ > timeout = jiffies + FSL_UDC_RESET_TIMEOUT; > - while (fsl_readl(&dr_regs->usbcmd) & USB_CMD_CTRL_RESET) { > + while (readl(&dr_regs->usbcmd) & USB_CMD_CTRL_RESET) { > if (time_after(jiffies, timeout)) { > ERR("udc reset timeout!\n"); > return -ETIMEDOUT; > @@ -308,33 +218,33 @@ static int dr_controller_setup(struct fsl_udc *udc) > } > > /* Set the controller as device mode */ > - tmp = fsl_readl(&dr_regs->usbmode); > + tmp = readl(&dr_regs->usbmode); > tmp &= ~USB_MODE_CTRL_MODE_MASK; /* clear mode bits */ > tmp |= USB_MODE_CTRL_MODE_DEVICE; > /* Disable Setup Lockout */ > tmp |= USB_MODE_SETUP_LOCK_OFF; > if (udc->pdata->es) > tmp |= USB_MODE_ES; > - fsl_writel(tmp, &dr_regs->usbmode); > + writel(tmp, &dr_regs->usbmode); > > /* Clear the setup status */ > - fsl_writel(0, &dr_regs->usbsts); > + writel(0, &dr_regs->usbsts); > > tmp = udc->ep_qh_dma; > tmp &= USB_EP_LIST_ADDRESS_MASK; > - fsl_writel(tmp, &dr_regs->endpointlistaddr); > + writel(tmp, &dr_regs->endpointlistaddr); > > VDBG("vir[qh_base] is %p phy[qh_base] is 0x%8x reg is 0x%8x", > udc->ep_qh, (int)tmp, > - fsl_readl(&dr_regs->endpointlistaddr)); > + readl(&dr_regs->endpointlistaddr)); > > - max_no_of_ep = (0x0000001F & fsl_readl(&dr_regs->dccparams)); > + max_no_of_ep = (0x0000001F & readl(&dr_regs->dccparams)); > for (ep_num = 1; ep_num < max_no_of_ep; ep_num++) { > - tmp = fsl_readl(&dr_regs->endptctrl[ep_num]); > + tmp = readl(&dr_regs->endptctrl[ep_num]); > tmp &= ~(EPCTRL_TX_TYPE | EPCTRL_RX_TYPE); > tmp |= (EPCTRL_EP_TYPE_BULK << EPCTRL_TX_EP_TYPE_SHIFT) > | (EPCTRL_EP_TYPE_BULK << EPCTRL_RX_EP_TYPE_SHIFT); > - fsl_writel(tmp, &dr_regs->endptctrl[ep_num]); > + writel(tmp, &dr_regs->endptctrl[ep_num]); > } > /* Config control enable i/o output, cpu endian register */ > #ifndef CONFIG_ARCH_MXC > @@ -371,20 +281,20 @@ static void dr_controller_run(struct fsl_udc *udc) > | USB_INTR_PTC_DETECT_EN | USB_INTR_RESET_EN > | USB_INTR_DEVICE_SUSPEND | USB_INTR_SYS_ERR_EN; > > - fsl_writel(temp, &dr_regs->usbintr); > + writel(temp, &dr_regs->usbintr); > > /* Clear stopped bit */ > udc->stopped = 0; > > /* Set the controller as device mode */ > - temp = fsl_readl(&dr_regs->usbmode); > + temp = readl(&dr_regs->usbmode); > temp |= USB_MODE_CTRL_MODE_DEVICE; > - fsl_writel(temp, &dr_regs->usbmode); > + writel(temp, &dr_regs->usbmode); > > /* Set controller to Run */ > - temp = fsl_readl(&dr_regs->usbcmd); > + temp = readl(&dr_regs->usbcmd); > temp |= USB_CMD_RUN_STOP; > - fsl_writel(temp, &dr_regs->usbcmd); > + writel(temp, &dr_regs->usbcmd); > } > > static void dr_controller_stop(struct fsl_udc *udc) > @@ -398,14 +308,14 @@ static void dr_controller_stop(struct fsl_udc *udc) > * ehci driver > */ > if (udc->gadget.is_otg) { > - if (!(fsl_readl(&dr_regs->otgsc) & OTGSC_STS_USB_ID)) { > + if (!(readl(&dr_regs->otgsc) & OTGSC_STS_USB_ID)) { > pr_debug("udc: Leaving early\n"); > return; > } > } > > /* disable all INTR */ > - fsl_writel(0, &dr_regs->usbintr); > + writel(0, &dr_regs->usbintr); > > /* Set stopped bit for isr */ > udc->stopped = 1; > @@ -414,9 +324,9 @@ static void dr_controller_stop(struct fsl_udc *udc) > /* usb_sys_regs->control = 0; */ > > /* set controller to Stop */ > - tmp = fsl_readl(&dr_regs->usbcmd); > + tmp = readl(&dr_regs->usbcmd); > tmp &= ~USB_CMD_RUN_STOP; > - fsl_writel(tmp, &dr_regs->usbcmd); > + writel(tmp, &dr_regs->usbcmd); > } > > static void dr_ep_setup(unsigned char ep_num, unsigned char dir, > @@ -424,7 +334,7 @@ static void dr_ep_setup(unsigned char ep_num, unsigned char dir, > { > unsigned int tmp_epctrl = 0; > > - tmp_epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > + tmp_epctrl = readl(&dr_regs->endptctrl[ep_num]); > if (dir) { > if (ep_num) > tmp_epctrl |= EPCTRL_TX_DATA_TOGGLE_RST; > @@ -441,7 +351,7 @@ static void dr_ep_setup(unsigned char ep_num, unsigned char dir, > << EPCTRL_RX_EP_TYPE_SHIFT); > } > > - fsl_writel(tmp_epctrl, &dr_regs->endptctrl[ep_num]); > + writel(tmp_epctrl, &dr_regs->endptctrl[ep_num]); > } > > static void > @@ -449,7 +359,7 @@ dr_ep_change_stall(unsigned char ep_num, unsigned char dir, int value) > { > u32 tmp_epctrl = 0; > > - tmp_epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > + tmp_epctrl = readl(&dr_regs->endptctrl[ep_num]); > > if (value) { > /* set the stall bit */ > @@ -467,7 +377,7 @@ dr_ep_change_stall(unsigned char ep_num, unsigned char dir, int value) > tmp_epctrl |= EPCTRL_RX_DATA_TOGGLE_RST; > } > } > - fsl_writel(tmp_epctrl, &dr_regs->endptctrl[ep_num]); > + writel(tmp_epctrl, &dr_regs->endptctrl[ep_num]); > } > > /* Get stall status of a specific ep > @@ -476,7 +386,7 @@ static int dr_ep_get_stall(unsigned char ep_num, unsigned char dir) > { > u32 epctrl; > > - epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > + epctrl = readl(&dr_regs->endptctrl[ep_num]); > if (dir) > return (epctrl & EPCTRL_TX_EP_STALL) ? 1 : 0; > else > @@ -522,7 +432,7 @@ static void struct_ep_qh_setup(struct fsl_udc *udc, unsigned char ep_num, > if (zlt) > tmp |= EP_QUEUE_HEAD_ZLT_SEL; > > - p_QH->max_pkt_length = cpu_to_hc32(tmp); > + p_QH->max_pkt_length = cpu_to_le32(tmp); > p_QH->next_dtd_ptr = 1; > p_QH->size_ioc_int_sts = 0; > } > @@ -658,7 +568,7 @@ static int fsl_ep_disable(struct usb_ep *_ep) > > /* disable ep on controller */ > ep_num = ep_index(ep); > - epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > + epctrl = readl(&dr_regs->endptctrl[ep_num]); > if (ep_is_in(ep)) { > epctrl &= ~(EPCTRL_TX_ENABLE | EPCTRL_TX_TYPE); > epctrl |= EPCTRL_EP_TYPE_BULK << EPCTRL_TX_EP_TYPE_SHIFT; > @@ -666,7 +576,7 @@ static int fsl_ep_disable(struct usb_ep *_ep) > epctrl &= ~(EPCTRL_RX_ENABLE | EPCTRL_TX_TYPE); > epctrl |= EPCTRL_EP_TYPE_BULK << EPCTRL_RX_EP_TYPE_SHIFT; > } > - fsl_writel(epctrl, &dr_regs->endptctrl[ep_num]); > + writel(epctrl, &dr_regs->endptctrl[ep_num]); > > udc = (struct fsl_udc *)ep->udc; > spin_lock_irqsave(&udc->lock, flags); > @@ -718,18 +628,18 @@ static void fsl_prime_ep(struct fsl_ep *ep, struct ep_td_struct *td) > struct ep_queue_head *qh = get_qh_by_ep(ep); > > /* Write dQH next pointer and terminate bit to 0 */ > - qh->next_dtd_ptr = cpu_to_hc32(td->td_dma > + qh->next_dtd_ptr = cpu_to_le32(td->td_dma > & EP_QUEUE_HEAD_NEXT_POINTER_MASK); > > /* Clear active and halt bit */ > - qh->size_ioc_int_sts &= cpu_to_hc32(~(EP_QUEUE_HEAD_STATUS_ACTIVE > + qh->size_ioc_int_sts &= cpu_to_le32(~(EP_QUEUE_HEAD_STATUS_ACTIVE > | EP_QUEUE_HEAD_STATUS_HALT)); > > /* Ensure that updates to the QH will occur before priming. */ > wmb(); > > /* Prime endpoint by writing correct bit to ENDPTPRIME */ > - fsl_writel(ep_is_in(ep) ? (1 << (ep_index(ep) + 16)) > + writel(ep_is_in(ep) ? (1 << (ep_index(ep) + 16)) > : (1 << (ep_index(ep))), &dr_regs->endpointprime); > } > > @@ -751,26 +661,26 @@ static void fsl_queue_td(struct fsl_ep *ep, struct fsl_req *req) > struct fsl_req *lastreq; > lastreq = list_entry(ep->queue.prev, struct fsl_req, queue); > lastreq->tail->next_td_ptr = > - cpu_to_hc32(req->head->td_dma & DTD_ADDR_MASK); > + cpu_to_le32(req->head->td_dma & DTD_ADDR_MASK); > /* Ensure dTD's next dtd pointer to be updated */ > wmb(); > /* Read prime bit, if 1 goto done */ > - if (fsl_readl(&dr_regs->endpointprime) & bitmask) > + if (readl(&dr_regs->endpointprime) & bitmask) > return; > > do { > /* Set ATDTW bit in USBCMD */ > - temp = fsl_readl(&dr_regs->usbcmd); > - fsl_writel(temp | USB_CMD_ATDTW, &dr_regs->usbcmd); > + temp = readl(&dr_regs->usbcmd); > + writel(temp | USB_CMD_ATDTW, &dr_regs->usbcmd); > > /* Read correct status bit */ > - tmp_stat = fsl_readl(&dr_regs->endptstatus) & bitmask; > + tmp_stat = readl(&dr_regs->endptstatus) & bitmask; > > - } while (!(fsl_readl(&dr_regs->usbcmd) & USB_CMD_ATDTW)); > + } while (!(readl(&dr_regs->usbcmd) & USB_CMD_ATDTW)); > > /* Write ATDTW bit to 0 */ > - temp = fsl_readl(&dr_regs->usbcmd); > - fsl_writel(temp & ~USB_CMD_ATDTW, &dr_regs->usbcmd); > + temp = readl(&dr_regs->usbcmd); > + writel(temp & ~USB_CMD_ATDTW, &dr_regs->usbcmd); > > if (tmp_stat) > return; > @@ -803,17 +713,17 @@ static struct ep_td_struct *fsl_build_dtd(struct fsl_udc *udc, > > dtd->td_dma = *dma; > /* Clear reserved field */ > - swap_temp = hc32_to_cpu(dtd->size_ioc_sts); > + swap_temp = dtd->size_ioc_sts; > swap_temp &= ~DTD_RESERVED_FIELDS; > - dtd->size_ioc_sts = cpu_to_hc32(swap_temp); > + dtd->size_ioc_sts = cpu_to_le32(swap_temp); > > /* Init all of buffer page pointers */ > swap_temp = (u32) (req->req.dma + req->req.actual); > - dtd->buff_ptr0 = cpu_to_hc32(swap_temp); > - dtd->buff_ptr1 = cpu_to_hc32(swap_temp + 0x1000); > - dtd->buff_ptr2 = cpu_to_hc32(swap_temp + 0x2000); > - dtd->buff_ptr3 = cpu_to_hc32(swap_temp + 0x3000); > - dtd->buff_ptr4 = cpu_to_hc32(swap_temp + 0x4000); > + dtd->buff_ptr0 = cpu_to_le32(swap_temp); > + dtd->buff_ptr1 = cpu_to_le32(swap_temp + 0x1000); > + dtd->buff_ptr2 = cpu_to_le32(swap_temp + 0x2000); > + dtd->buff_ptr3 = cpu_to_le32(swap_temp + 0x3000); > + dtd->buff_ptr4 = cpu_to_le32(swap_temp + 0x4000); > > req->req.actual += *length; > > @@ -837,7 +747,7 @@ static struct ep_td_struct *fsl_build_dtd(struct fsl_udc *udc, > if (*is_last && !req->req.no_interrupt) > swap_temp |= DTD_IOC; > > - dtd->size_ioc_sts = cpu_to_hc32(swap_temp); > + dtd->size_ioc_sts = cpu_to_le32(swap_temp); > > mb(); > > @@ -866,7 +776,7 @@ static int fsl_req_to_dtd(struct fsl_udc *udc, struct fsl_req *req, > is_first = 0; > req->head = dtd; > } else { > - last_dtd->next_td_ptr = cpu_to_hc32(dma); > + last_dtd->next_td_ptr = cpu_to_le32(dma); > last_dtd->next_td_virt = dtd; > } > last_dtd = dtd; > @@ -874,7 +784,7 @@ static int fsl_req_to_dtd(struct fsl_udc *udc, struct fsl_req *req, > req->dtd_count++; > } while (!is_last); > > - dtd->next_td_ptr = cpu_to_hc32(DTD_NEXT_TERMINATE); > + dtd->next_td_ptr = cpu_to_le32(DTD_NEXT_TERMINATE); > > req->tail = dtd; > > @@ -966,12 +876,12 @@ static int fsl_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req) > /* Stop the ep before we deal with the queue */ > ep->stopped = 1; > ep_num = ep_index(ep); > - epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > + epctrl = readl(&dr_regs->endptctrl[ep_num]); > if (ep_is_in(ep)) > epctrl &= ~EPCTRL_TX_ENABLE; > else > epctrl &= ~EPCTRL_RX_ENABLE; > - fsl_writel(epctrl, &dr_regs->endptctrl[ep_num]); > + writel(epctrl, &dr_regs->endptctrl[ep_num]); > > /* make sure it's actually queued on this endpoint */ > list_for_each_entry(req, &ep->queue, queue) { > @@ -1009,12 +919,12 @@ static int fsl_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req) > done(ep, req, -ECONNRESET); > > /* Enable EP */ > -out: epctrl = fsl_readl(&dr_regs->endptctrl[ep_num]); > +out: epctrl = readl(&dr_regs->endptctrl[ep_num]); > if (ep_is_in(ep)) > epctrl |= EPCTRL_TX_ENABLE; > else > epctrl |= EPCTRL_RX_ENABLE; > - fsl_writel(epctrl, &dr_regs->endptctrl[ep_num]); > + writel(epctrl, &dr_regs->endptctrl[ep_num]); > ep->stopped = stopped; > > spin_unlock_irqrestore(&ep->udc->lock, flags); > @@ -1096,7 +1006,7 @@ static int fsl_ep_fifo_status(struct usb_ep *_ep) > bitmask = (ep_is_in(ep)) ? (1 << (ep_index(ep) + 16)) : > (1 << (ep_index(ep))); > > - if (fsl_readl(&dr_regs->endptstatus) & bitmask) > + if (readl(&dr_regs->endptstatus) & bitmask) > size = (qh->size_ioc_int_sts & DTD_PACKET_SIZE) > >> DTD_LENGTH_BIT_POS; > > @@ -1131,10 +1041,10 @@ static void fsl_ep_fifo_flush(struct usb_ep *_ep) > > timeout = jiffies + FSL_UDC_FLUSH_TIMEOUT; > do { > - fsl_writel(bits, &dr_regs->endptflush); > + writel(bits, &dr_regs->endptflush); > > /* Wait until flush complete */ > - while (fsl_readl(&dr_regs->endptflush)) { > + while (readl(&dr_regs->endptflush)) { > if (time_after(jiffies, timeout)) { > ERR("ep flush timeout\n"); > return; > @@ -1142,7 +1052,7 @@ static void fsl_ep_fifo_flush(struct usb_ep *_ep) > cpu_relax(); > } > /* See if we need to flush again */ > - } while (fsl_readl(&dr_regs->endptstatus) & bits); > + } while (readl(&dr_regs->endptstatus) & bits); > } > > static struct usb_ep_ops fsl_ep_ops = { > @@ -1169,7 +1079,7 @@ static struct usb_ep_ops fsl_ep_ops = { > *----------------------------------------------------------------------*/ > static int fsl_get_frame(struct usb_gadget *gadget) > { > - return (int)(fsl_readl(&dr_regs->frindex) & USB_FRINDEX_MASKS); > + return (int)(readl(&dr_regs->frindex) & USB_FRINDEX_MASKS); > } > > /*----------------------------------------------------------------------- > @@ -1184,13 +1094,13 @@ static int fsl_wakeup(struct usb_gadget *gadget) > if (!udc->remote_wakeup) > return -ENOTSUPP; > > - portsc = fsl_readl(&dr_regs->portsc1); > + portsc = readl(&dr_regs->portsc1); > /* not suspended? */ > if (!(portsc & PORTSCX_PORT_SUSPEND)) > return 0; > /* trigger force resume */ > portsc |= PORTSCX_PORT_FORCE_RESUME; > - fsl_writel(portsc, &dr_regs->portsc1); > + writel(portsc, &dr_regs->portsc1); > return 0; > } > > @@ -1211,10 +1121,10 @@ static int fsl_vbus_session(struct usb_gadget *gadget, int is_active) > VDBG("VBUS %s", is_active ? "on" : "off"); > udc->vbus_active = (is_active != 0); > if (can_pullup(udc)) > - fsl_writel((fsl_readl(&dr_regs->usbcmd) | USB_CMD_RUN_STOP), > + writel((readl(&dr_regs->usbcmd) | USB_CMD_RUN_STOP), > &dr_regs->usbcmd); > else > - fsl_writel((fsl_readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP), > + writel((readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP), > &dr_regs->usbcmd); > spin_unlock_irqrestore(&udc->lock, flags); > return 0; > @@ -1249,10 +1159,10 @@ static int fsl_pullup(struct usb_gadget *gadget, int is_on) > spin_lock_irqsave(&udc->lock, flags); > udc->softconnect = (is_on != 0); > if (can_pullup(udc)) > - fsl_writel((fsl_readl(&dr_regs->usbcmd) | USB_CMD_RUN_STOP), > + writel((readl(&dr_regs->usbcmd) | USB_CMD_RUN_STOP), > &dr_regs->usbcmd); > else > - fsl_writel((fsl_readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP), > + writel((readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP), > &dr_regs->usbcmd); > spin_unlock_irqrestore(&udc->lock, flags); > > @@ -1282,9 +1192,9 @@ static void ep0stall(struct fsl_udc *udc) > u32 tmp; > > /* must set tx and rx to stall at the same time */ > - tmp = fsl_readl(&dr_regs->endptctrl[0]); > + tmp = readl(&dr_regs->endptctrl[0]); > tmp |= EPCTRL_TX_EP_STALL | EPCTRL_RX_EP_STALL; > - fsl_writel(tmp, &dr_regs->endptctrl[0]); > + writel(tmp, &dr_regs->endptctrl[0]); > udc->ep0_state = WAIT_FOR_SETUP; > udc->ep0_dir = 0; > } > @@ -1494,8 +1404,8 @@ static void setup_received_irq(struct fsl_udc *udc, > u32 tmp; > > mdelay(10); > - tmp = fsl_readl(&dr_regs->portsc1) | (ptc << 16); > - fsl_writel(tmp, &dr_regs->portsc1); > + tmp = readl(&dr_regs->portsc1) | (ptc << 16); > + writel(tmp, &dr_regs->portsc1); > printk(KERN_INFO "udc: switch to test mode %d.\n", ptc); > } > > @@ -1546,7 +1456,7 @@ static void ep0_req_complete(struct fsl_udc *udc, struct fsl_ep *ep0, > if (udc->usb_state == USB_STATE_ADDRESS) { > /* Set the new address */ > u32 new_address = (u32) udc->device_address; > - fsl_writel(new_address << USB_DEVICE_ADDRESS_BIT_POS, > + writel(new_address << USB_DEVICE_ADDRESS_BIT_POS, > &dr_regs->deviceaddr); > } > > @@ -1585,14 +1495,14 @@ static void tripwire_handler(struct fsl_udc *udc, u8 ep_num, u8 *buffer_ptr) > qh = &udc->ep_qh[ep_num * 2 + EP_DIR_OUT]; > > /* Clear bit in ENDPTSETUPSTAT */ > - temp = fsl_readl(&dr_regs->endptsetupstat); > - fsl_writel(temp | (1 << ep_num), &dr_regs->endptsetupstat); > + temp = readl(&dr_regs->endptsetupstat); > + writel(temp | (1 << ep_num), &dr_regs->endptsetupstat); > > /* while a hazard exists when setup package arrives */ > do { > /* Set Setup Tripwire */ > - temp = fsl_readl(&dr_regs->usbcmd); > - fsl_writel(temp | USB_CMD_SUTW, &dr_regs->usbcmd); > + temp = readl(&dr_regs->usbcmd); > + writel(temp | USB_CMD_SUTW, &dr_regs->usbcmd); > > /* Copy the setup packet to local buffer */ > if (pdata->le_setup_buf) { > @@ -1605,11 +1515,11 @@ static void tripwire_handler(struct fsl_udc *udc, u8 ep_num, u8 *buffer_ptr) > } else { > memcpy(buffer_ptr, (u8 *) qh->setup_buffer, 8); > } > - } while (!(fsl_readl(&dr_regs->usbcmd) & USB_CMD_SUTW)); > + } while (!(readl(&dr_regs->usbcmd) & USB_CMD_SUTW)); > > /* Clear Setup Tripwire */ > - temp = fsl_readl(&dr_regs->usbcmd); > - fsl_writel(temp & ~USB_CMD_SUTW, &dr_regs->usbcmd); > + temp = readl(&dr_regs->usbcmd); > + writel(temp & ~USB_CMD_SUTW, &dr_regs->usbcmd); > } > > /* process-ep_req(): free the completed Tds for this req */ > @@ -1628,19 +1538,18 @@ static int process_ep_req(struct fsl_udc *udc, int pipe, > actual = curr_req->req.length; > > for (j = 0; j < curr_req->dtd_count; j++) { > - remaining_length = (hc32_to_cpu(curr_td->size_ioc_sts) > - & DTD_PACKET_SIZE) > + remaining_length = (curr_td->size_ioc_sts & DTD_PACKET_SIZE) > >> DTD_LENGTH_BIT_POS; > actual -= remaining_length; > > - errors = hc32_to_cpu(curr_td->size_ioc_sts); > + errors = curr_td->size_ioc_sts; > if (errors & DTD_ERROR_MASK) { > if (errors & DTD_STATUS_HALTED) { > ERR("dTD error %08x QH=%d\n", errors, pipe); > /* Clear the errors and Halt condition */ > - tmp = hc32_to_cpu(curr_qh->size_ioc_int_sts); > + tmp = curr_qh->size_ioc_int_sts; > tmp &= ~errors; > - curr_qh->size_ioc_int_sts = cpu_to_hc32(tmp); > + curr_qh->size_ioc_int_sts = cpu_to_le32(tmp); > status = -EPIPE; > /* FIXME: continue with next queued TD? */ > > @@ -1658,8 +1567,7 @@ static int process_ep_req(struct fsl_udc *udc, int pipe, > ERR("Unknown error has occurred (0x%x)!\n", > errors); > > - } else if (hc32_to_cpu(curr_td->size_ioc_sts) > - & DTD_STATUS_ACTIVE) { > + } else if (curr_td->size_ioc_sts & DTD_STATUS_ACTIVE) { > VDBG("Request not complete"); > status = REQ_UNCOMPLETE; > return status; > @@ -1698,8 +1606,8 @@ static void dtd_complete_irq(struct fsl_udc *udc) > struct fsl_req *curr_req, *temp_req; > > /* Clear the bits in the register */ > - bit_pos = fsl_readl(&dr_regs->endptcomplete); > - fsl_writel(bit_pos, &dr_regs->endptcomplete); > + bit_pos = readl(&dr_regs->endptcomplete); > + writel(bit_pos, &dr_regs->endptcomplete); > > if (!bit_pos) > return; > @@ -1763,10 +1671,10 @@ static void port_change_irq(struct fsl_udc *udc) > udc->bus_reset = 0; > > /* Bus resetting is finished */ > - if (!(fsl_readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET)) > + if (!(readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET)) > /* Get the speed */ > udc->gadget.speed = > - portscx_device_speed(fsl_readl(&dr_regs->portsc1)); > + portscx_device_speed(readl(&dr_regs->portsc1)); > > /* Update USB state */ > if (!udc->resume_state) > @@ -1817,8 +1725,8 @@ static void reset_irq(struct fsl_udc *udc) > unsigned long timeout; > > /* Clear the device address */ > - temp = fsl_readl(&dr_regs->deviceaddr); > - fsl_writel(temp & ~USB_DEVICE_ADDRESS_MASK, &dr_regs->deviceaddr); > + temp = readl(&dr_regs->deviceaddr); > + writel(temp & ~USB_DEVICE_ADDRESS_MASK, &dr_regs->deviceaddr); > > udc->device_address = 0; > > @@ -1832,15 +1740,15 @@ static void reset_irq(struct fsl_udc *udc) > udc->gadget.a_alt_hnp_support = 0; > > /* Clear all the setup token semaphores */ > - temp = fsl_readl(&dr_regs->endptsetupstat); > - fsl_writel(temp, &dr_regs->endptsetupstat); > + temp = readl(&dr_regs->endptsetupstat); > + writel(temp, &dr_regs->endptsetupstat); > > /* Clear all the endpoint complete status bits */ > - temp = fsl_readl(&dr_regs->endptcomplete); > - fsl_writel(temp, &dr_regs->endptcomplete); > + temp = readl(&dr_regs->endptcomplete); > + writel(temp, &dr_regs->endptcomplete); > > timeout = jiffies + 100; > - while (fsl_readl(&dr_regs->endpointprime)) { > + while (readl(&dr_regs->endpointprime)) { > /* Wait until all endptprime bits cleared */ > if (time_after(jiffies, timeout)) { > ERR("Timeout for reset\n"); > @@ -1850,9 +1758,9 @@ static void reset_irq(struct fsl_udc *udc) > } > > /* Write 1s to the flush register */ > - fsl_writel(0xffffffff, &dr_regs->endptflush); > + writel(0xffffffff, &dr_regs->endptflush); > > - if (fsl_readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET) { > + if (readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET) { > VDBG("Bus reset"); > /* Bus is reseting */ > udc->bus_reset = 1; > @@ -1891,22 +1799,22 @@ static irqreturn_t fsl_udc_irq(int irq, void *_udc) > if (udc->stopped) > return IRQ_NONE; > spin_lock_irqsave(&udc->lock, flags); > - irq_src = fsl_readl(&dr_regs->usbsts) & fsl_readl(&dr_regs->usbintr); > + irq_src = readl(&dr_regs->usbsts) & readl(&dr_regs->usbintr); > /* Clear notification bits */ > - fsl_writel(irq_src, &dr_regs->usbsts); > + writel(irq_src, &dr_regs->usbsts); > > /* VDBG("irq_src [0x%8x]", irq_src); */ > > /* Need to resume? */ > if (udc->usb_state == USB_STATE_SUSPENDED) > - if ((fsl_readl(&dr_regs->portsc1) & PORTSCX_PORT_SUSPEND) == 0) > + if ((readl(&dr_regs->portsc1) & PORTSCX_PORT_SUSPEND) == 0) > bus_resume(udc); > > /* USB Interrupt */ > if (irq_src & USB_STS_INT) { > VDBG("Packet int"); > /* Setup package, we only support ep0 as control ep */ > - if (fsl_readl(&dr_regs->endptsetupstat) & EP_SETUP_STATUS_EP0) { > + if (readl(&dr_regs->endptsetupstat) & EP_SETUP_STATUS_EP0) { > tripwire_handler(udc, 0, > (u8 *) (&udc->local_setup_buff)); > setup_received_irq(udc, &udc->local_setup_buff); > @@ -1914,7 +1822,7 @@ static irqreturn_t fsl_udc_irq(int irq, void *_udc) > } > > /* completion of dtd */ > - if (fsl_readl(&dr_regs->endptcomplete)) { > + if (readl(&dr_regs->endptcomplete)) { > dtd_complete_irq(udc); > status = IRQ_HANDLED; > } > @@ -2076,7 +1984,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > next += t; > > /* ------ DR Registers ----- */ > - tmp_reg = fsl_readl(&dr_regs->usbcmd); > + tmp_reg = readl(&dr_regs->usbcmd); > t = scnprintf(next, size, > "USBCMD reg:\n" > "SetupTW: %d\n" > @@ -2086,7 +1994,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->usbsts); > + tmp_reg = readl(&dr_regs->usbsts); > t = scnprintf(next, size, > "USB Status Reg:\n" > "Dr Suspend: %d Reset Received: %d System Error: %s " > @@ -2098,7 +2006,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->usbintr); > + tmp_reg = readl(&dr_regs->usbintr); > t = scnprintf(next, size, > "USB Intrrupt Enable Reg:\n" > "Sleep Enable: %d SOF Received Enable: %d " > @@ -2116,21 +2024,21 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->frindex); > + tmp_reg = readl(&dr_regs->frindex); > t = scnprintf(next, size, > "USB Frame Index Reg: Frame Number is 0x%x\n\n", > (tmp_reg & USB_FRINDEX_MASKS)); > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->deviceaddr); > + tmp_reg = readl(&dr_regs->deviceaddr); > t = scnprintf(next, size, > "USB Device Address Reg: Device Addr is 0x%x\n\n", > (tmp_reg & USB_DEVICE_ADDRESS_MASK)); > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->endpointlistaddr); > + tmp_reg = readl(&dr_regs->endpointlistaddr); > t = scnprintf(next, size, > "USB Endpoint List Address Reg: " > "Device Addr is 0x%x\n\n", > @@ -2138,7 +2046,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->portsc1); > + tmp_reg = readl(&dr_regs->portsc1); > t = scnprintf(next, size, > "USB Port Status&Control Reg:\n" > "Port Transceiver Type : %s Port Speed: %s\n" > @@ -2177,7 +2085,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->usbmode); > + tmp_reg = readl(&dr_regs->usbmode); > t = scnprintf(next, size, > "USB Mode Reg: Controller Mode is: %s\n\n", ( { > char *s; > @@ -2196,7 +2104,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > size -= t; > next += t; > > - tmp_reg = fsl_readl(&dr_regs->endptsetupstat); > + tmp_reg = readl(&dr_regs->endptsetupstat); > t = scnprintf(next, size, > "Endpoint Setup Status Reg: SETUP on ep 0x%x\n\n", > (tmp_reg & EP_SETUP_STATUS_MASK)); > @@ -2204,13 +2112,13 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count, > next += t; > > for (i = 0; i < udc->max_ep / 2; i++) { > - tmp_reg = fsl_readl(&dr_regs->endptctrl[i]); > + tmp_reg = readl(&dr_regs->endptctrl[i]); > t = scnprintf(next, size, "EP Ctrl Reg [0x%x]: = [0x%x]\n", > i, tmp_reg); > size -= t; > next += t; > } > - tmp_reg = fsl_readl(&dr_regs->endpointprime); > + tmp_reg = readl(&dr_regs->endpointprime); > t = scnprintf(next, size, "EP Prime Reg = [0x%x]\n\n", tmp_reg); > size -= t; > next += t; > @@ -2473,9 +2381,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev) > goto err_iounmap_noclk; > } > > - /* Set accessors only after pdata->init() ! */ > - fsl_set_accessors(pdata); > - > #ifndef CONFIG_ARCH_MXC > if (pdata->have_sysif_regs) > usb_sys_regs = (void *)dr_regs + USB_DR_SYS_OFFSET; > @@ -2487,7 +2392,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev) > goto err_iounmap_noclk; > > /* Read Device Controller Capability Parameters register */ > - dccparams = fsl_readl(&dr_regs->dccparams); > + dccparams = readl(&dr_regs->dccparams); > if (!(dccparams & DCCPARAMS_DC)) { > ERR("This SOC doesn't support device role\n"); > ret = -ENODEV; > @@ -2682,7 +2587,7 @@ static int fsl_udc_otg_suspend(struct device *dev, pm_message_t state) > struct fsl_udc *udc = container_of(dev, struct fsl_udc, gadget.dev); > u32 mode, usbcmd; > > - mode = fsl_readl(&dr_regs->usbmode) & USB_MODE_CTRL_MODE_MASK; > + mode = readl(&dr_regs->usbmode) & USB_MODE_CTRL_MODE_MASK; > > pr_debug("%s(): mode 0x%x stopped %d\n", __func__, mode, udc->stopped); > > @@ -2703,8 +2608,8 @@ static int fsl_udc_otg_suspend(struct device *dev, pm_message_t state) > } > > /* stop the controller */ > - usbcmd = fsl_readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP; > - fsl_writel(usbcmd, &dr_regs->usbcmd); > + usbcmd = readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP; > + writel(usbcmd, &dr_regs->usbcmd); > > udc->stopped = 1; > > -- > 1.7.2.5 > -- balbi
Attachment:
signature.asc
Description: Digital signature