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