mbox series

[v13,0/5] usb: xhci: Add support for Renesas USB controllers

Message ID 20200506060025.1535960-1-vkoul@kernel.org (mailing list archive)
Headers show
Series usb: xhci: Add support for Renesas USB controllers | expand

Message

Vinod Koul May 6, 2020, 6 a.m. UTC
This series add support for Renesas USB controllers uPD720201 and uPD720202.
These require firmware to be loaded and in case devices have ROM those can
also be programmed if empty. If ROM is programmed, it runs from ROM as well.

This includes patches from Christian which supported these controllers w/o
ROM and later my patches for ROM support and debugfs hook for rom erase and
export of xhci-pci functions.

Changes in v13:
 - Make rensesas as independent module invoke by xhci-pci which can be
   selected by users of such hardware

Changes in v12:
  - Restore back module name for xhci-pci, so now renesas is a separate
    module, export init/exit routines from renesas modules
  - Update changelog on patch2

Changes in v11:
  - update xhci->quirks and use that in remove function
  - remove error return renesas_verify_fw_version()
  - remove renesas_download_rom() and modify renesas_fw_download_image() for
  reuse
Changes in v10:
  remove renesas_xhci_pci_probe and call renesas_xhci_check_request_fw and
  also cleanup exit code along with it.

Changes in v9:
 Make fw load a sync call and have single instance of probe execute,
   elimating probe/remove races
 Add quirk for renesas and use that for loading

Changes in v8:
 Fix compile error reported by Kbuild-bot by making usb_hcd_pci_probe() take
 const struct hc_driver * as argument

Changes in v7:
 Make a single module which removes issues with module loading
 Keep the renesas code in renesas file
 Add hc_driver as argument for usb_hcd_pci_probe and modify hdc drivers to
   pass this and not use driver_data
 Use driver data for fw name
 Remove code to check if we need to load firmware or not
 remove multiple fw version support, we can do that with symlink in
   userspace

Changes in v6:
 Move the renesas code into a separate driver which invokes xhci-pci functions.

Changes in v5:
 Added a debugfs rom erase patch, helps in debugging
 Squashed patch 1 & 2 as requested by Mathias

Changes in v4:
 Rollback the delay values as we got device failures

Changes in v3:
  Dropped patch 2 as discussed with Christian
  Removed aligned 8 bytes check
  Change order for firmware search from highest version to lowest
  Added entry for new firmware for device 0x14 as well
  Add tested by Christian

Changes in v2:
  used macros for timeout count and delay
  removed renesas_fw_alive_check
  cleaned renesas_fw_callback
  removed recurion for renesas_fw_download
  added MODULE_FIRMWARE
  added comment for multip


Christian Lamparter (1):
  usb: renesas-xhci: Add the renesas xhci driver

Vinod Koul (4):
  usb: hci: add hc_driver as argument for usb_hcd_pci_probe
  usb: xhci: Add support for Renesas controller with memory
  usb: renesas-xhci: Add ROM loader for uPD720201
  usb: xhci: provide a debugfs hook for erasing rom

 drivers/usb/core/hcd-pci.c          |   7 +-
 drivers/usb/host/Kconfig            |   9 +
 drivers/usb/host/Makefile           |   1 +
 drivers/usb/host/ehci-pci.c         |   6 +-
 drivers/usb/host/ohci-pci.c         |   9 +-
 drivers/usb/host/uhci-pci.c         |   8 +-
 drivers/usb/host/xhci-pci-renesas.c | 678 ++++++++++++++++++++++++++++
 drivers/usb/host/xhci-pci.c         |  47 +-
 drivers/usb/host/xhci-pci.h         |  28 ++
 drivers/usb/host/xhci.h             |   1 +
 include/linux/usb/hcd.h             |   3 +-
 11 files changed, 775 insertions(+), 22 deletions(-)
 create mode 100644 drivers/usb/host/xhci-pci-renesas.c
 create mode 100644 drivers/usb/host/xhci-pci.h

Comments

Mathias Nyman May 13, 2020, 12:19 p.m. UTC | #1
On 6.5.2020 9.00, Vinod Koul wrote:
> This series add support for Renesas USB controllers uPD720201 and uPD720202.
> These require firmware to be loaded and in case devices have ROM those can
> also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> 
> This includes patches from Christian which supported these controllers w/o
> ROM and later my patches for ROM support and debugfs hook for rom erase and
> export of xhci-pci functions.
> 

First four patches look ok to me, but 5/5 that adds rom erase debugfs support
still needs some work.

If you prefer I can take the first four, maybe we can get them to 5.8, and then
later add that debugs rom erase support.

Let me know what you prefer

-Mathias
Greg Kroah-Hartman May 13, 2020, 12:40 p.m. UTC | #2
On Wed, May 13, 2020 at 03:19:29PM +0300, Mathias Nyman wrote:
> On 6.5.2020 9.00, Vinod Koul wrote:
> > This series add support for Renesas USB controllers uPD720201 and uPD720202.
> > These require firmware to be loaded and in case devices have ROM those can
> > also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> > 
> > This includes patches from Christian which supported these controllers w/o
> > ROM and later my patches for ROM support and debugfs hook for rom erase and
> > export of xhci-pci functions.
> > 
> 
> First four patches look ok to me, but 5/5 that adds rom erase debugfs support
> still needs some work.
> 
> If you prefer I can take the first four, maybe we can get them to 5.8, and then
> later add that debugs rom erase support.
> 
> Let me know what you prefer

Oops, I just added all of these to my testing tree :)

What's wrong with the debugfs patch?  I can drop it, but it seemed
simple enough to me.

thanks,

greg k-h
Mathias Nyman May 13, 2020, 12:51 p.m. UTC | #3
On 13.5.2020 15.40, Greg Kroah-Hartman wrote:
> On Wed, May 13, 2020 at 03:19:29PM +0300, Mathias Nyman wrote:
>> On 6.5.2020 9.00, Vinod Koul wrote:
>>> This series add support for Renesas USB controllers uPD720201 and uPD720202.
>>> These require firmware to be loaded and in case devices have ROM those can
>>> also be programmed if empty. If ROM is programmed, it runs from ROM as well.
>>>
>>> This includes patches from Christian which supported these controllers w/o
>>> ROM and later my patches for ROM support and debugfs hook for rom erase and
>>> export of xhci-pci functions.
>>>
>>
>> First four patches look ok to me, but 5/5 that adds rom erase debugfs support
>> still needs some work.
>>
>> If you prefer I can take the first four, maybe we can get them to 5.8, and then
>> later add that debugs rom erase support.
>>
>> Let me know what you prefer
> 
> Oops, I just added all of these to my testing tree :)
> 
> What's wrong with the debugfs patch?  I can drop it, but it seemed
> simple enough to me.

Added "usb_renesas" directory under debugfs root when we have easily accessible
debugfs/usb/xhci directory to use as parent. 

Also not checking if adding directory failed (if debufs not supported)
 
-Mathias
Greg Kroah-Hartman May 13, 2020, 12:52 p.m. UTC | #4
On Wed, May 13, 2020 at 03:51:28PM +0300, Mathias Nyman wrote:
> On 13.5.2020 15.40, Greg Kroah-Hartman wrote:
> > On Wed, May 13, 2020 at 03:19:29PM +0300, Mathias Nyman wrote:
> >> On 6.5.2020 9.00, Vinod Koul wrote:
> >>> This series add support for Renesas USB controllers uPD720201 and uPD720202.
> >>> These require firmware to be loaded and in case devices have ROM those can
> >>> also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> >>>
> >>> This includes patches from Christian which supported these controllers w/o
> >>> ROM and later my patches for ROM support and debugfs hook for rom erase and
> >>> export of xhci-pci functions.
> >>>
> >>
> >> First four patches look ok to me, but 5/5 that adds rom erase debugfs support
> >> still needs some work.
> >>
> >> If you prefer I can take the first four, maybe we can get them to 5.8, and then
> >> later add that debugs rom erase support.
> >>
> >> Let me know what you prefer
> > 
> > Oops, I just added all of these to my testing tree :)
> > 
> > What's wrong with the debugfs patch?  I can drop it, but it seemed
> > simple enough to me.
> 
> Added "usb_renesas" directory under debugfs root when we have easily accessible
> debugfs/usb/xhci directory to use as parent. 

I've responded to the patch now, sorry I missed that.

> Also not checking if adding directory failed (if debufs not supported)

That's fine and encouraged to do :)

thanks,

greg k-h
Vinod Koul May 13, 2020, 12:57 p.m. UTC | #5
On 13-05-20, 14:52, Greg Kroah-Hartman wrote:
> On Wed, May 13, 2020 at 03:51:28PM +0300, Mathias Nyman wrote:
> > On 13.5.2020 15.40, Greg Kroah-Hartman wrote:
> > > On Wed, May 13, 2020 at 03:19:29PM +0300, Mathias Nyman wrote:
> > >> On 6.5.2020 9.00, Vinod Koul wrote:
> > >>> This series add support for Renesas USB controllers uPD720201 and uPD720202.
> > >>> These require firmware to be loaded and in case devices have ROM those can
> > >>> also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> > >>>
> > >>> This includes patches from Christian which supported these controllers w/o
> > >>> ROM and later my patches for ROM support and debugfs hook for rom erase and
> > >>> export of xhci-pci functions.
> > >>>
> > >>
> > >> First four patches look ok to me, but 5/5 that adds rom erase debugfs support
> > >> still needs some work.
> > >>
> > >> If you prefer I can take the first four, maybe we can get them to 5.8, and then
> > >> later add that debugs rom erase support.
> > >>
> > >> Let me know what you prefer
> > > 
> > > Oops, I just added all of these to my testing tree :)
> > > 
> > > What's wrong with the debugfs patch?  I can drop it, but it seemed
> > > simple enough to me.
> > 
> > Added "usb_renesas" directory under debugfs root when we have easily accessible
> > debugfs/usb/xhci directory to use as parent. 
> 
> I've responded to the patch now, sorry I missed that.

I can send an update on top of this to use xhci root, or respin this
patch, either ways is fine by me.

> > Also not checking if adding directory failed (if debufs not supported)
> 
> That's fine and encouraged to do :)

Yes, I have known you 'encouraging' folks for that, hence coded it :)

Thanks