Re: [PATCH v2 05/16] usb: dwc3: add quirks support to be compatible for kinds of SoCs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 20, 2014 at 02:02:17PM +0800, Huang Rui wrote:
> On Fri, Oct 17, 2014 at 09:41:44AM -0500, Felipe Balbi wrote:
> > HI,
> > 
> > On Fri, Oct 17, 2014 at 04:53:30PM +0800, Huang Rui wrote:
> > > This patch adds a quirks flag at dwc3 structure, and SoCs platform vendor is
> > > able to define this flag in platform data at bus glue layer. Then do some
> > > independent behaviors at dwc3 core level.
> > > 
> > > Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
> > > ---
> > >  drivers/usb/dwc3/core.c          | 2 ++
> > >  drivers/usb/dwc3/core.h          | 3 +++
> > >  drivers/usb/dwc3/dwc3-pci.c      | 9 +++++++++
> > >  drivers/usb/dwc3/platform_data.h | 2 ++
> > >  4 files changed, 16 insertions(+)
> > > 
> 
> <snip>
> 
> > > diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
> > > index 7db34f0..1d3d65f 100644
> > > --- a/drivers/usb/dwc3/platform_data.h
> > > +++ b/drivers/usb/dwc3/platform_data.h
> > > @@ -24,4 +24,6 @@ struct dwc3_platform_data {
> > >  	enum usb_device_speed maximum_speed;
> > >  	enum usb_dr_mode dr_mode;
> > >  	bool tx_fifo_resize;
> > > +
> > > +	u32     quirks;
> > 
> > I prefer to have one-bit fields like we already have for delayed_status,
> > ep0_bounced, ep0_expect_in, and so on. That makes it easier to support
> > the same quirks through devicetree as well.
> > 
> 
> So it should define like below:
> 
> struct dwc3_platform_data {
>         ...
>         unsigned one_quirk:1;
> }
> 
> Then also defined it in dwc3 structure. And when dwc3 probed, put this
> value from glue layer to dwc3, right?

that's correct.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux