Commit f25c42b8 authored by Gevorg Sahakyan's avatar Gevorg Sahakyan Committed by Felipe Balbi

usb: dwc2: Modify dwc2_readl/writel functions prototype

Added hsotg argument to dwc2_readl/writel function prototype,
and also instead of address pass offset of register.
hsotg will contain flag field for endianness.

Also customized dwc2_set_bit and dwc2_clear_bit function for
dwc2_readl/writel functions.
Signed-off-by: default avatarGevorg Sahakyan <sahakyan@synopsys.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent c31d983b
This diff is collapsed.
...@@ -1172,9 +1172,9 @@ struct dwc2_hsotg { ...@@ -1172,9 +1172,9 @@ struct dwc2_hsotg {
* writes. This set of operations was added specifically for MIPS and * writes. This set of operations was added specifically for MIPS and
* should only be used there. * should only be used there.
*/ */
static inline u32 dwc2_readl(const void __iomem *addr) static inline u32 dwc2_readl(struct dwc2_hsotg *hsotg, u32 offset)
{ {
u32 value = __raw_readl(addr); u32 value = __raw_readl(hsotg->regs + offset);
/* In order to preserve endianness __raw_* operation is used. Therefore /* In order to preserve endianness __raw_* operation is used. Therefore
* a barrier is needed to ensure IO access is not re-ordered across * a barrier is needed to ensure IO access is not re-ordered across
...@@ -1184,9 +1184,9 @@ static inline u32 dwc2_readl(const void __iomem *addr) ...@@ -1184,9 +1184,9 @@ static inline u32 dwc2_readl(const void __iomem *addr)
return value; return value;
} }
static inline void dwc2_writel(u32 value, void __iomem *addr) static inline void dwc2_writel(struct dwc2_hsotg *hsotg, u32 value, u32 offset)
{ {
__raw_writel(value, addr); __raw_writel(value, hsotg->regs + offset);
/* /*
* In order to preserve endianness __raw_* operation is used. Therefore * In order to preserve endianness __raw_* operation is used. Therefore
...@@ -1195,22 +1195,23 @@ static inline void dwc2_writel(u32 value, void __iomem *addr) ...@@ -1195,22 +1195,23 @@ static inline void dwc2_writel(u32 value, void __iomem *addr)
*/ */
mb(); mb();
#ifdef DWC2_LOG_WRITES #ifdef DWC2_LOG_WRITES
pr_info("INFO:: wrote %08x to %p\n", value, addr); pr_info("INFO:: wrote %08x to %p\n", value, hsotg->regs + offset);
#endif #endif
} }
#else #else
/* Normal architectures just use readl/write */ /* Normal architectures just use readl/write */
static inline u32 dwc2_readl(const void __iomem *addr) static inline u32 dwc2_readl(struct dwc2_hsotg *hsotg, u32 offset)
{ {
return readl(addr); return readl(hsotg->regs + offset);
} }
static inline void dwc2_writel(u32 value, void __iomem *addr) static inline void dwc2_writel(struct dwc2_hsotg *hsotg, u32 value, u32 offset)
{ {
writel(value, addr); writel(value, hsotg->regs + offset);
#ifdef DWC2_LOG_WRITES #ifdef DWC2_LOG_WRITES
pr_info("info:: wrote %08x to %p\n", value, addr); pr_info("info:: wrote %08x to %p\n", value, hsotg->regs + offset);
#endif #endif
} }
#endif #endif
...@@ -1320,12 +1321,12 @@ bool dwc2_hw_is_device(struct dwc2_hsotg *hsotg); ...@@ -1320,12 +1321,12 @@ bool dwc2_hw_is_device(struct dwc2_hsotg *hsotg);
*/ */
static inline int dwc2_is_host_mode(struct dwc2_hsotg *hsotg) static inline int dwc2_is_host_mode(struct dwc2_hsotg *hsotg)
{ {
return (dwc2_readl(hsotg->regs + GINTSTS) & GINTSTS_CURMODE_HOST) != 0; return (dwc2_readl(hsotg, GINTSTS) & GINTSTS_CURMODE_HOST) != 0;
} }
static inline int dwc2_is_device_mode(struct dwc2_hsotg *hsotg) static inline int dwc2_is_device_mode(struct dwc2_hsotg *hsotg)
{ {
return (dwc2_readl(hsotg->regs + GINTSTS) & GINTSTS_CURMODE_HOST) == 0; return (dwc2_readl(hsotg, GINTSTS) & GINTSTS_CURMODE_HOST) == 0;
} }
/* /*
......
This diff is collapsed.
...@@ -69,7 +69,7 @@ static int testmode_show(struct seq_file *s, void *unused) ...@@ -69,7 +69,7 @@ static int testmode_show(struct seq_file *s, void *unused)
int dctl; int dctl;
spin_lock_irqsave(&hsotg->lock, flags); spin_lock_irqsave(&hsotg->lock, flags);
dctl = dwc2_readl(hsotg->regs + DCTL); dctl = dwc2_readl(hsotg, DCTL);
dctl &= DCTL_TSTCTL_MASK; dctl &= DCTL_TSTCTL_MASK;
dctl >>= DCTL_TSTCTL_SHIFT; dctl >>= DCTL_TSTCTL_SHIFT;
spin_unlock_irqrestore(&hsotg->lock, flags); spin_unlock_irqrestore(&hsotg->lock, flags);
...@@ -126,42 +126,41 @@ static const struct file_operations testmode_fops = { ...@@ -126,42 +126,41 @@ static const struct file_operations testmode_fops = {
static int state_show(struct seq_file *seq, void *v) static int state_show(struct seq_file *seq, void *v)
{ {
struct dwc2_hsotg *hsotg = seq->private; struct dwc2_hsotg *hsotg = seq->private;
void __iomem *regs = hsotg->regs;
int idx; int idx;
seq_printf(seq, "DCFG=0x%08x, DCTL=0x%08x, DSTS=0x%08x\n", seq_printf(seq, "DCFG=0x%08x, DCTL=0x%08x, DSTS=0x%08x\n",
dwc2_readl(regs + DCFG), dwc2_readl(hsotg, DCFG),
dwc2_readl(regs + DCTL), dwc2_readl(hsotg, DCTL),
dwc2_readl(regs + DSTS)); dwc2_readl(hsotg, DSTS));
seq_printf(seq, "DIEPMSK=0x%08x, DOEPMASK=0x%08x\n", seq_printf(seq, "DIEPMSK=0x%08x, DOEPMASK=0x%08x\n",
dwc2_readl(regs + DIEPMSK), dwc2_readl(regs + DOEPMSK)); dwc2_readl(hsotg, DIEPMSK), dwc2_readl(hsotg, DOEPMSK));
seq_printf(seq, "GINTMSK=0x%08x, GINTSTS=0x%08x\n", seq_printf(seq, "GINTMSK=0x%08x, GINTSTS=0x%08x\n",
dwc2_readl(regs + GINTMSK), dwc2_readl(hsotg, GINTMSK),
dwc2_readl(regs + GINTSTS)); dwc2_readl(hsotg, GINTSTS));
seq_printf(seq, "DAINTMSK=0x%08x, DAINT=0x%08x\n", seq_printf(seq, "DAINTMSK=0x%08x, DAINT=0x%08x\n",
dwc2_readl(regs + DAINTMSK), dwc2_readl(hsotg, DAINTMSK),
dwc2_readl(regs + DAINT)); dwc2_readl(hsotg, DAINT));
seq_printf(seq, "GNPTXSTS=0x%08x, GRXSTSR=%08x\n", seq_printf(seq, "GNPTXSTS=0x%08x, GRXSTSR=%08x\n",
dwc2_readl(regs + GNPTXSTS), dwc2_readl(hsotg, GNPTXSTS),
dwc2_readl(regs + GRXSTSR)); dwc2_readl(hsotg, GRXSTSR));
seq_puts(seq, "\nEndpoint status:\n"); seq_puts(seq, "\nEndpoint status:\n");
for (idx = 0; idx < hsotg->num_of_eps; idx++) { for (idx = 0; idx < hsotg->num_of_eps; idx++) {
u32 in, out; u32 in, out;
in = dwc2_readl(regs + DIEPCTL(idx)); in = dwc2_readl(hsotg, DIEPCTL(idx));
out = dwc2_readl(regs + DOEPCTL(idx)); out = dwc2_readl(hsotg, DOEPCTL(idx));
seq_printf(seq, "ep%d: DIEPCTL=0x%08x, DOEPCTL=0x%08x", seq_printf(seq, "ep%d: DIEPCTL=0x%08x, DOEPCTL=0x%08x",
idx, in, out); idx, in, out);
in = dwc2_readl(regs + DIEPTSIZ(idx)); in = dwc2_readl(hsotg, DIEPTSIZ(idx));
out = dwc2_readl(regs + DOEPTSIZ(idx)); out = dwc2_readl(hsotg, DOEPTSIZ(idx));
seq_printf(seq, ", DIEPTSIZ=0x%08x, DOEPTSIZ=0x%08x", seq_printf(seq, ", DIEPTSIZ=0x%08x, DOEPTSIZ=0x%08x",
in, out); in, out);
...@@ -184,14 +183,13 @@ DEFINE_SHOW_ATTRIBUTE(state); ...@@ -184,14 +183,13 @@ DEFINE_SHOW_ATTRIBUTE(state);
static int fifo_show(struct seq_file *seq, void *v) static int fifo_show(struct seq_file *seq, void *v)
{ {
struct dwc2_hsotg *hsotg = seq->private; struct dwc2_hsotg *hsotg = seq->private;
void __iomem *regs = hsotg->regs;
u32 val; u32 val;
int idx; int idx;
seq_puts(seq, "Non-periodic FIFOs:\n"); seq_puts(seq, "Non-periodic FIFOs:\n");
seq_printf(seq, "RXFIFO: Size %d\n", dwc2_readl(regs + GRXFSIZ)); seq_printf(seq, "RXFIFO: Size %d\n", dwc2_readl(hsotg, GRXFSIZ));
val = dwc2_readl(regs + GNPTXFSIZ); val = dwc2_readl(hsotg, GNPTXFSIZ);
seq_printf(seq, "NPTXFIFO: Size %d, Start 0x%08x\n", seq_printf(seq, "NPTXFIFO: Size %d, Start 0x%08x\n",
val >> FIFOSIZE_DEPTH_SHIFT, val >> FIFOSIZE_DEPTH_SHIFT,
val & FIFOSIZE_STARTADDR_MASK); val & FIFOSIZE_STARTADDR_MASK);
...@@ -199,7 +197,7 @@ static int fifo_show(struct seq_file *seq, void *v) ...@@ -199,7 +197,7 @@ static int fifo_show(struct seq_file *seq, void *v)
seq_puts(seq, "\nPeriodic TXFIFOs:\n"); seq_puts(seq, "\nPeriodic TXFIFOs:\n");
for (idx = 1; idx < hsotg->num_of_eps; idx++) { for (idx = 1; idx < hsotg->num_of_eps; idx++) {
val = dwc2_readl(regs + DPTXFSIZN(idx)); val = dwc2_readl(hsotg, DPTXFSIZN(idx));
seq_printf(seq, "\tDPTXFIFO%2d: Size %d, Start 0x%08x\n", idx, seq_printf(seq, "\tDPTXFIFO%2d: Size %d, Start 0x%08x\n", idx,
val >> FIFOSIZE_DEPTH_SHIFT, val >> FIFOSIZE_DEPTH_SHIFT,
...@@ -228,7 +226,6 @@ static int ep_show(struct seq_file *seq, void *v) ...@@ -228,7 +226,6 @@ static int ep_show(struct seq_file *seq, void *v)
struct dwc2_hsotg_ep *ep = seq->private; struct dwc2_hsotg_ep *ep = seq->private;
struct dwc2_hsotg *hsotg = ep->parent; struct dwc2_hsotg *hsotg = ep->parent;
struct dwc2_hsotg_req *req; struct dwc2_hsotg_req *req;
void __iomem *regs = hsotg->regs;
int index = ep->index; int index = ep->index;
int show_limit = 15; int show_limit = 15;
unsigned long flags; unsigned long flags;
...@@ -239,20 +236,20 @@ static int ep_show(struct seq_file *seq, void *v) ...@@ -239,20 +236,20 @@ static int ep_show(struct seq_file *seq, void *v)
/* first show the register state */ /* first show the register state */
seq_printf(seq, "\tDIEPCTL=0x%08x, DOEPCTL=0x%08x\n", seq_printf(seq, "\tDIEPCTL=0x%08x, DOEPCTL=0x%08x\n",
dwc2_readl(regs + DIEPCTL(index)), dwc2_readl(hsotg, DIEPCTL(index)),
dwc2_readl(regs + DOEPCTL(index))); dwc2_readl(hsotg, DOEPCTL(index)));
seq_printf(seq, "\tDIEPDMA=0x%08x, DOEPDMA=0x%08x\n", seq_printf(seq, "\tDIEPDMA=0x%08x, DOEPDMA=0x%08x\n",
dwc2_readl(regs + DIEPDMA(index)), dwc2_readl(hsotg, DIEPDMA(index)),
dwc2_readl(regs + DOEPDMA(index))); dwc2_readl(hsotg, DOEPDMA(index)));
seq_printf(seq, "\tDIEPINT=0x%08x, DOEPINT=0x%08x\n", seq_printf(seq, "\tDIEPINT=0x%08x, DOEPINT=0x%08x\n",
dwc2_readl(regs + DIEPINT(index)), dwc2_readl(hsotg, DIEPINT(index)),
dwc2_readl(regs + DOEPINT(index))); dwc2_readl(hsotg, DOEPINT(index)));
seq_printf(seq, "\tDIEPTSIZ=0x%08x, DOEPTSIZ=0x%08x\n", seq_printf(seq, "\tDIEPTSIZ=0x%08x, DOEPTSIZ=0x%08x\n",
dwc2_readl(regs + DIEPTSIZ(index)), dwc2_readl(hsotg, DIEPTSIZ(index)),
dwc2_readl(regs + DOEPTSIZ(index))); dwc2_readl(hsotg, DOEPTSIZ(index)));
seq_puts(seq, "\n"); seq_puts(seq, "\n");
seq_printf(seq, "mps %d\n", ep->ep.maxpacket); seq_printf(seq, "mps %d\n", ep->ep.maxpacket);
......
This diff is collapsed.
This diff is collapsed.
...@@ -469,10 +469,10 @@ static inline struct usb_hcd *dwc2_hsotg_to_hcd(struct dwc2_hsotg *hsotg) ...@@ -469,10 +469,10 @@ static inline struct usb_hcd *dwc2_hsotg_to_hcd(struct dwc2_hsotg *hsotg)
*/ */
static inline void disable_hc_int(struct dwc2_hsotg *hsotg, int chnum, u32 intr) static inline void disable_hc_int(struct dwc2_hsotg *hsotg, int chnum, u32 intr)
{ {
u32 mask = dwc2_readl(hsotg->regs + HCINTMSK(chnum)); u32 mask = dwc2_readl(hsotg, HCINTMSK(chnum));
mask &= ~intr; mask &= ~intr;
dwc2_writel(mask, hsotg->regs + HCINTMSK(chnum)); dwc2_writel(hsotg, mask, HCINTMSK(chnum));
} }
void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan); void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan);
...@@ -487,7 +487,7 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg, ...@@ -487,7 +487,7 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
*/ */
static inline u32 dwc2_read_hprt0(struct dwc2_hsotg *hsotg) static inline u32 dwc2_read_hprt0(struct dwc2_hsotg *hsotg)
{ {
u32 hprt0 = dwc2_readl(hsotg->regs + HPRT0); u32 hprt0 = dwc2_readl(hsotg, HPRT0);
hprt0 &= ~(HPRT0_ENA | HPRT0_CONNDET | HPRT0_ENACHG | HPRT0_OVRCURRCHG); hprt0 &= ~(HPRT0_ENA | HPRT0_CONNDET | HPRT0_ENACHG | HPRT0_OVRCURRCHG);
return hprt0; return hprt0;
...@@ -690,8 +690,8 @@ static inline u16 dwc2_micro_frame_num(u16 frame) ...@@ -690,8 +690,8 @@ static inline u16 dwc2_micro_frame_num(u16 frame)
*/ */
static inline u32 dwc2_read_core_intr(struct dwc2_hsotg *hsotg) static inline u32 dwc2_read_core_intr(struct dwc2_hsotg *hsotg)
{ {
return dwc2_readl(hsotg->regs + GINTSTS) & return dwc2_readl(hsotg, GINTSTS) &
dwc2_readl(hsotg->regs + GINTMSK); dwc2_readl(hsotg, GINTMSK);
} }
static inline u32 dwc2_hcd_urb_get_status(struct dwc2_hcd_urb *dwc2_urb) static inline u32 dwc2_hcd_urb_get_status(struct dwc2_hcd_urb *dwc2_urb)
......
...@@ -185,19 +185,19 @@ static void dwc2_per_sched_enable(struct dwc2_hsotg *hsotg, u32 fr_list_en) ...@@ -185,19 +185,19 @@ static void dwc2_per_sched_enable(struct dwc2_hsotg *hsotg, u32 fr_list_en)
spin_lock_irqsave(&hsotg->lock, flags); spin_lock_irqsave(&hsotg->lock, flags);
hcfg = dwc2_readl(hsotg->regs + HCFG); hcfg = dwc2_readl(hsotg, HCFG);
if (hcfg & HCFG_PERSCHEDENA) { if (hcfg & HCFG_PERSCHEDENA) {
/* already enabled */ /* already enabled */
spin_unlock_irqrestore(&hsotg->lock, flags); spin_unlock_irqrestore(&hsotg->lock, flags);
return; return;
} }
dwc2_writel(hsotg->frame_list_dma, hsotg->regs + HFLBADDR); dwc2_writel(hsotg, hsotg->frame_list_dma, HFLBADDR);
hcfg &= ~HCFG_FRLISTEN_MASK; hcfg &= ~HCFG_FRLISTEN_MASK;
hcfg |= fr_list_en | HCFG_PERSCHEDENA; hcfg |= fr_list_en | HCFG_PERSCHEDENA;
dev_vdbg(hsotg->dev, "Enabling Periodic schedule\n"); dev_vdbg(hsotg->dev, "Enabling Periodic schedule\n");
dwc2_writel(hcfg, hsotg->regs + HCFG); dwc2_writel(hsotg, hcfg, HCFG);
spin_unlock_irqrestore(&hsotg->lock, flags); spin_unlock_irqrestore(&hsotg->lock, flags);
} }
...@@ -209,7 +209,7 @@ static void dwc2_per_sched_disable(struct dwc2_hsotg *hsotg) ...@@ -209,7 +209,7 @@ static void dwc2_per_sched_disable(struct dwc2_hsotg *hsotg)
spin_lock_irqsave(&hsotg->lock, flags); spin_lock_irqsave(&hsotg->lock, flags);
hcfg = dwc2_readl(hsotg->regs + HCFG); hcfg = dwc2_readl(hsotg, HCFG);
if (!(hcfg & HCFG_PERSCHEDENA)) { if (!(hcfg & HCFG_PERSCHEDENA)) {
/* already disabled */ /* already disabled */
spin_unlock_irqrestore(&hsotg->lock, flags); spin_unlock_irqrestore(&hsotg->lock, flags);
...@@ -218,7 +218,7 @@ static void dwc2_per_sched_disable(struct dwc2_hsotg *hsotg) ...@@ -218,7 +218,7 @@ static void dwc2_per_sched_disable(struct dwc2_hsotg *hsotg)
hcfg &= ~HCFG_PERSCHEDENA; hcfg &= ~HCFG_PERSCHEDENA;
dev_vdbg(hsotg->dev, "Disabling Periodic schedule\n"); dev_vdbg(hsotg->dev, "Disabling Periodic schedule\n");
dwc2_writel(hcfg, hsotg->regs + HCFG); dwc2_writel(hsotg, hcfg, HCFG);
spin_unlock_irqrestore(&hsotg->lock, flags); spin_unlock_irqrestore(&hsotg->lock, flags);
} }
......
This diff is collapsed.
...@@ -1510,7 +1510,7 @@ static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh, ...@@ -1510,7 +1510,7 @@ static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
bool ep_is_in = !!dwc2_hcd_is_pipe_in(&urb->pipe_info); bool ep_is_in = !!dwc2_hcd_is_pipe_in(&urb->pipe_info);
bool ep_is_isoc = (ep_type == USB_ENDPOINT_XFER_ISOC); bool ep_is_isoc = (ep_type == USB_ENDPOINT_XFER_ISOC);
bool ep_is_int = (ep_type == USB_ENDPOINT_XFER_INT); bool ep_is_int = (ep_type == USB_ENDPOINT_XFER_INT);
u32 hprt = dwc2_readl(hsotg->regs + HPRT0); u32 hprt = dwc2_readl(hsotg, HPRT0);
u32 prtspd = (hprt & HPRT0_SPD_MASK) >> HPRT0_SPD_SHIFT; u32 prtspd = (hprt & HPRT0_SPD_MASK) >> HPRT0_SPD_SHIFT;
bool do_split = (prtspd == HPRT0_SPD_HIGH_SPEED && bool do_split = (prtspd == HPRT0_SPD_HIGH_SPEED &&
dev_speed != USB_SPEED_HIGH); dev_speed != USB_SPEED_HIGH);
...@@ -1747,9 +1747,9 @@ int dwc2_hcd_qh_add(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh) ...@@ -1747,9 +1747,9 @@ int dwc2_hcd_qh_add(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
if (status) if (status)
return status; return status;
if (!hsotg->periodic_qh_count) { if (!hsotg->periodic_qh_count) {
intr_mask = dwc2_readl(hsotg->regs + GINTMSK); intr_mask = dwc2_readl(hsotg, GINTMSK);
intr_mask |= GINTSTS_SOF; intr_mask |= GINTSTS_SOF;
dwc2_writel(intr_mask, hsotg->regs + GINTMSK); dwc2_writel(hsotg, intr_mask, GINTMSK);
} }
hsotg->periodic_qh_count++; hsotg->periodic_qh_count++;
...@@ -1788,9 +1788,9 @@ void dwc2_hcd_qh_unlink(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh) ...@@ -1788,9 +1788,9 @@ void dwc2_hcd_qh_unlink(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg->periodic_qh_count--; hsotg->periodic_qh_count--;
if (!hsotg->periodic_qh_count && if (!hsotg->periodic_qh_count &&
!hsotg->params.dma_desc_enable) { !hsotg->params.dma_desc_enable) {
intr_mask = dwc2_readl(hsotg->regs + GINTMSK); intr_mask = dwc2_readl(hsotg, GINTMSK);
intr_mask &= ~GINTSTS_SOF; intr_mask &= ~GINTSTS_SOF;
dwc2_writel(intr_mask, hsotg->regs + GINTMSK); dwc2_writel(hsotg, intr_mask, GINTMSK);
} }
} }
......
...@@ -654,8 +654,8 @@ static void dwc2_get_host_hwparams(struct dwc2_hsotg *hsotg) ...@@ -654,8 +654,8 @@ static void dwc2_get_host_hwparams(struct dwc2_hsotg *hsotg)
dwc2_force_mode(hsotg, true); dwc2_force_mode(hsotg, true);
gnptxfsiz = dwc2_readl(hsotg->regs + GNPTXFSIZ); gnptxfsiz = dwc2_readl(hsotg, GNPTXFSIZ);
hptxfsiz = dwc2_readl(hsotg->regs + HPTXFSIZ); hptxfsiz = dwc2_readl(hsotg, HPTXFSIZ);
hw->host_nperio_tx_fifo_size = (gnptxfsiz & FIFOSIZE_DEPTH_MASK) >> hw->host_nperio_tx_fifo_size = (gnptxfsiz & FIFOSIZE_DEPTH_MASK) >>
FIFOSIZE_DEPTH_SHIFT; FIFOSIZE_DEPTH_SHIFT;
...@@ -679,13 +679,13 @@ static void dwc2_get_dev_hwparams(struct dwc2_hsotg *hsotg) ...@@ -679,13 +679,13 @@ static void dwc2_get_dev_hwparams(struct dwc2_hsotg *hsotg)
dwc2_force_mode(hsotg, false); dwc2_force_mode(hsotg, false);
gnptxfsiz = dwc2_readl(hsotg->regs + GNPTXFSIZ); gnptxfsiz = dwc2_readl(hsotg, GNPTXFSIZ);
fifo_count = dwc2_hsotg_tx_fifo_count(hsotg); fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
for (fifo = 1; fifo <= fifo_count; fifo++) { for (fifo = 1; fifo <= fifo_count; fifo++) {
hw->g_tx_fifo_size[fifo] = hw->g_tx_fifo_size[fifo] =
(dwc2_readl(hsotg->regs + DPTXFSIZN(fifo)) & (dwc2_readl(hsotg, DPTXFSIZN(fifo)) &
FIFOSIZE_DEPTH_MASK) >> FIFOSIZE_DEPTH_SHIFT; FIFOSIZE_DEPTH_MASK) >> FIFOSIZE_DEPTH_SHIFT;
} }
...@@ -713,7 +713,7 @@ int dwc2_get_hwparams(struct dwc2_hsotg *hsotg) ...@@ -713,7 +713,7 @@ int dwc2_get_hwparams(struct dwc2_hsotg *hsotg)
* 0x45f4xxxx, 0x5531xxxx or 0x5532xxxx * 0x45f4xxxx, 0x5531xxxx or 0x5532xxxx
*/ */
hw->snpsid = dwc2_readl(hsotg->regs + GSNPSID); hw->snpsid = dwc2_readl(hsotg, GSNPSID);
if ((hw->snpsid & GSNPSID_ID_MASK) != DWC2_OTG_ID && if ((hw->snpsid & GSNPSID_ID_MASK) != DWC2_OTG_ID &&
(hw->snpsid & GSNPSID_ID_MASK) != DWC2_FS_IOT_ID && (hw->snpsid & GSNPSID_ID_MASK) != DWC2_FS_IOT_ID &&
(hw->snpsid & GSNPSID_ID_MASK) != DWC2_HS_IOT_ID) { (hw->snpsid & GSNPSID_ID_MASK) != DWC2_HS_IOT_ID) {
...@@ -726,11 +726,11 @@ int dwc2_get_hwparams(struct dwc2_hsotg *hsotg) ...@@ -726,11 +726,11 @@ int dwc2_get_hwparams(struct dwc2_hsotg *hsotg)
hw->snpsid >> 12 & 0xf, hw->snpsid >> 8 & 0xf, hw->snpsid >> 12 & 0xf, hw->snpsid >> 8 & 0xf,
hw->snpsid >> 4 & 0xf, hw->snpsid & 0xf, hw->snpsid); hw->snpsid >> 4 & 0xf, hw->snpsid & 0xf, hw->snpsid);
hwcfg1 = dwc2_readl(hsotg->regs + GHWCFG1); hwcfg1 = dwc2_readl(hsotg, GHWCFG1);
hwcfg2 = dwc2_readl(hsotg->regs + GHWCFG2); hwcfg2 = dwc2_readl(hsotg, GHWCFG2);
hwcfg3 = dwc2_readl(hsotg->regs + GHWCFG3); hwcfg3 = dwc2_readl(hsotg, GHWCFG3);
hwcfg4 = dwc2_readl(hsotg->regs + GHWCFG4); hwcfg4 = dwc2_readl(hsotg, GHWCFG4);
grxfsiz = dwc2_readl(hsotg->regs + GRXFSIZ); grxfsiz = dwc2_readl(hsotg, GRXFSIZ);
/* hwcfg1 */ /* hwcfg1 */
hw->dev_ep_dirs = hwcfg1; hw->dev_ep_dirs = hwcfg1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment