Re: SuperH 7760 OHCI

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

 



On Thu, 26 May 2016, Martin Townsend wrote:

> On Thu, May 26, 2016 at 4:24 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Thu, 26 May 2016, Martin Townsend wrote:
> >
> >> Hi,
> >>
> >> I'm currently trying to get the USB Host working on the SH7760.  I
> >> tried the platform driver to start with and get the following error on
> >> boot:
> >> [    3.600000] usb 1-1: new full-speed USB device number 2 using ohci-platform
> >> [    3.872000] ohci-platform ohci-platform: frame counter not updating; disabled
> >> [    3.872000] ohci-platform ohci-platform: HC died; cleaning up
> >>
> >> So I dug a bit further and see that the SH7760 driver in the 2.6
> >> kernel makes use of the 8KB shared memory for HCCA and ED/TD buffers.
> >> After looking through the code for the 4.1 Kernel I am currently
> >> trying to port to I think I need to write my own platform driver that
> >> calls dma_declare_coherent_memory so that the OHCI driver uses this
> >> 8KB shared memory.  Then set HCD_LOCAL_MEM in the hc_driver flags to
> >> ensure that it uses dma_alloc_coherent.  In other words copy what the
> >> ohci-sm501.c file is doing.  I just wanted to confirm that this is
> >> what I should be doing or is there a better generic way of telling the
> >> OHCI driver to use this 8KB shared memory.
> >
> > There isn't a generic way of doing it, but you could such a thing to
> > the ohci-platform driver.  That would be preferable to adding a new,
> > separate platform driver.
> >
> > Alan Stern
> >
> Hi Alan,
> 
> Thanks for the reply.  So would that entail looking for a second
> IORESOURCE_MEM resource and taking this as the device's shared memory
> and if present call dma_declare_coherent_memory?

Something like that.  Actually you would probably need to add something
to the usb_ohci_pdata structure to represent the memory resource.

> Also how would I or in the HCD_LOCAL_MEM to flags to the hc_driver
> struct that's in ohci-hcd.c?

Well, if you use ohci-platform.c then the hc_driver struct is in that 
file, not in ohci-hcd.c -- it's called ohci_platform_hc_driver.  You 
can modify that structure's flags in ohci_platform_probe.

The problem is that this one structure gets used by the ohci-platform
driver for all its OHCI controllers, so it would be impossible to have
one controller that uses local memory and another that doesn't, all in
the same system.

If that's not an issue for you then feel free to submit changes for 
ohci-platform.c.  If it is an issue then there's no choice but to 
create a new platform driver.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux