> -----Original Message-----
> From: Lukasz Majewski [mailto:l.majew...@samsung.com]
> Sent: Thursday, June 23, 2016 8:23 PM
> To: Rajat Srivastava <rajat.srivast...@nxp.com>
> Cc: u-boot@lists.denx.de; s...@chromium.org; ma...@denx.de;
> albert.u.b...@aribaud.net; prabha...@freescale.com; york sun
> <york....@nxp.com>; Mingkai Hu <mingkai...@nxp.com>; Rajesh Bhagat
> <rajesh.bha...@nxp.com>; michal.si...@xilinx.com; felipe.ba...@linux.intel.com
> Subject: Re: [PATCH v2 2/4] usb: dwc3: Add helper functions to enable 
> snooping and
> burst settings
> 
> Hi Rajat,
> 
> > Adds helper functions to enable snooping and outstanding burst beat
> > settings.
> >
> > Signed-off-by: Rajat Srivastava <rajat.srivast...@nxp.com>
> > Signed-off-by: Rajesh Bhagat <rajesh.bha...@nxp.com>
> > ---
> > Changes in v2:
> >  - Removes SoC specific flags and added helper functions
> >
> >  drivers/usb/dwc3/core.c | 45
> > +++++++++++++++++++++++++++++++++++++++++++++
> drivers/usb/dwc3/core.h
> > |  7 +++++++ 2 files changed, 52 insertions(+)
> >
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index
> > 85cc96a..0b3c596 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -599,6 +599,51 @@ static void dwc3_core_exit_mode(struct dwc3 *dwc)
> >
> >  #define DWC3_ALIGN_MASK            (16 - 1)
> >
> > +void dwc3_core_incr_burst_enable(int index, int btype_incr_val,
> > +                            int breq_limit)
> > +{
> > +   struct dwc3 *dwc;
> > +   u32 reg;
> > +
> > +   list_for_each_entry(dwc, &dwc3_list, list) {
> > +           if (dwc->index != index)
> > +                   continue;
> > +
> > +           /*
> > +            * Change burst beat and outstanding pipelined
> > +            * transfers requests
> > +            */
> > +           reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0);
> > +           reg = (reg & ~DWC3_INCR_BTYPE_MASK) | btype_incr_val;
> > +           dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg);
> > +
> > +           reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG1);
> > +           reg = (reg & ~DWC3_BREQ_LIMIT_MASK) | (breq_limit <<
> > 8);
> > +           dwc3_writel(dwc->regs, DWC3_GSBUSCFG1, reg);
> > +           break;
> > +   }
> > +}
> > +
> > +void dwc3_core_set_snooping(int index, bool snoop) {
> > +   struct dwc3 *dwc;
> > +   u32 reg;
> > +
> > +   list_for_each_entry(dwc, &dwc3_list, list) {
> > +           if (dwc->index != index)
> > +                   continue;
> > +
> > +           /* Enable/Disable snooping */
> > +           reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0);
> > +           if (snoop)
> > +                   reg = reg | DWC3_SNOOP_ENABLE;

Hello Lukasz, 

> 
> You can replace the above line with reg |= DWC3_SNOOP_ENABLE
> 

Will take care in v3.

> > +           else
> > +                   reg = reg & ~DWC3_SNOOP_ENABLE;
> 
> The same here - req &= ~DWC3_SNOOP_ENABLE
> 

Will take care in v3.

> > +           dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg);
> > +           break;
> > +   }
> > +}
> > +
> >  /**
> >   * dwc3_uboot_init - dwc3 core uboot initialization code
> >   * @dwc3_dev: struct dwc3_device containing initialization data diff
> > --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index
> > 72d2fcd..455e7fa 100644
> > --- a/drivers/usb/dwc3/core.h
> > +++ b/drivers/usb/dwc3/core.h
> > @@ -593,6 +593,13 @@ struct dwc3_hwparams {
> >  /* HWPARAMS7 */
> >  #define DWC3_RAM1_DEPTH(n) ((n) & 0xffff)
> >
> > +/* GSBUSCFG0 */
> > +#define DWC3_SNOOP_ENABLE  (0x22220000)
> > +#define DWC3_INCR_BTYPE_MASK       (0xff)
> > +
> > +/* GSBUSCFG1 */
> > +#define DWC3_BREQ_LIMIT_MASK       (0xf00)
> > +
> >  struct dwc3_request {
> >     struct usb_request      request;
> >     struct list_head        list;
> 
> 

Best Regards,
Rajesh Bhagat 

> 
> --
> Best regards,
> 
> Lukasz Majewski
> 
> Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to