Re: [PATCH 0/7] usb: dwc2/s3c-hsotg: Combine drivers into a single DRD

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

 



Hi,

On Tue, Feb 18, 2014 at 03:14:25PM -0600, Dinh Nguyen wrote:
> On Fri, 2014-02-14 at 22:50 +0000, Paul Zimmerman wrote:
> > > From: Jingoo Han [mailto:jg1.han@xxxxxxxxxxx]
> > > Sent: Thursday, February 13, 2014 11:46 PM
> > > 
> > > On Friday, February 14, 2014 2:27 PM, Peter Chen wrote:
> > > > On Thu, Feb 13, 2014 at 03:10:40PM -0600, dinguyen@xxxxxxxxxx wrote:
> > > > > From: Dinh Nguyen <dinguyen@xxxxxxxxxx>
> > > > >
> > > > > Hello,
> > > > >
> > > > > This patch series combines the dwc2 host driver and the s3c-hsotg peripheral
> > > > > driver into a single dual-roler driver similar to the dwc3.
> > > >
> > > > Does s3c-hsotg use dwc usb2 ip too? If it is, the structure should
> > > > like ip driver + glue layer. If not, why needs to put them
> > > > together, I am a little puzzled here.
> > > 
> > > Yes, 's3c-hsotg' also uses DWC USB2 IP.
> > > As DWC3 USB driver (./drivers/usb/dwc3/), 'IP driver + glue layer'
> > > looks good.
> > > 
> > > Best regards,
> > > Jingoo Han
> > 
> > Well, DWC3 is a little different. It has a standards-based host API,
> > xHCI, that is (almost) completely independent from its non-standards-
> > based device API (I say 'almost' because of the optional OTG
> > functionality). This means the two drivers have to be separate, to
> > support other xHCI implementations that don't have the device mode
> > functionality. But it also complicates some things, like the
> > implementation of OTG support, which perhaps can be seen by the fact
> > that there is almost no OTG support yet in the DWC3 driver (except for
> > role switching).

I don't think having separate drivers is undermining OTG support. It's
just that nobody has put down the effort to implement it ;-)

> > Whereas the DWC2 host and device modes both use a proprietary API, so
> > there is no need to have separate drivers, because there are no other
> > implementations of the core except the Synopsys one. Also, quite a few
> > of the registers are shared between host and device modes, so keeping
> > the two drivers separate would mean duplicating some code that could
> > be shared between them.
> > 
> > That said, I would have no objection to keeping the two drivers
> > separate, as long as it doesn't create significant difficulties with
> > the implementation.
> > 
> > Dinh, what do you think? Did you consider the possibility of keeping the
> > two drivers separate, perhaps sharing some code in a library module? For
> > example, you could have dwc2-lib.ko, dwc2.ko, and s3c-hsotg.ko.
> > dwc2-lib.ko would always be loaded, and dwc2.ko or s3c-hsotg.ko (or both)
> > would be loaded depending on which mode is selected. Each driver would
> > have its own interrupt handler, both of them sharing the common IRQ.
> > They would both have their own probe methods, too.
> > 
> 
> No, I didn't think of this possibility. This initial patch was to try to
> remove some duplicating of code between dwc2/s3c-hsotg without breaking
> them too badly. But I think I failed in this aspect from the initial
> testing.
> 
> I like your suggestion of keeping the drivers separate with a library
> module for the role-switching. Do you see this driver being able to go
> full OTG in the future? And if so, will one method be more adaptable
> than the other to enable OTG?
> 
> 
> > I haven't thought too deeply about this, so maybe it's a bad idea. But
> > you are the one doing the work, so I think the final decision should be
> > yours.
> > 
> 
> So let try your approach. But does moving s3c-hostg into the dwc2 folder
> and sharing 1 define file still valid?

I would say combining those driver is the best thing you guys can do for
several reasons. It will make sure everybody uses a single generic
driver, it'll help you avoid code duplication (how many other dwc2
implementations have we seen on linux-usb alone ?), it'll focus efforts
to stabilize a single dwc2 driver etc.

In fact, I have been asking Samsung folks to cleanup s3c-hsotg for quite
a while now exactly so we could have a single dwc2 driver for host and
device.

cheers

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux