Messages in this thread | | | Date | Tue, 17 May 2022 13:06:29 +0200 | Subject | Re: [PATCH v21 0/3] usb: misc: Add onboard_usb_hub driver | From | Michal Simek <> |
| |
On 5/17/22 12:43, Greg Kroah-Hartman wrote: > On Tue, May 17, 2022 at 12:36:03PM +0200, Michal Simek wrote: >> Hi Greg, >> >> On 4/26/22 14:01, Greg Kroah-Hartman wrote: >>> On Thu, Apr 21, 2022 at 11:13:08AM -0700, Matthias Kaehlcke wrote: >>>> Hi, >>>> >>>> On Thu, Apr 07, 2022 at 12:41:22PM -0700, Doug Anderson wrote: >>>>> Hi, >>>>> >>>>> On Thu, Feb 17, 2022 at 10:43 AM Matthias Kaehlcke <mka@chromium.org> wrote: >>>>>> >>>>>> This series adds: >>>>>> - the onboard_usb_hub_driver >>>>>> - glue in the generic HCD code to create and destroy the >>>>>> onboard_usb_hub platform devices if needed >>>>>> - device tree changes that add RTS5411 entries for the QCA SC7180 >>>>>> based boards trogdor and lazor >>>>>> - a couple of stubs for platform device functions to avoid >>>>>> unresolved symbols with certain kernel configs >>>>>> >>>>>> The main issue the driver addresses is that a USB hub needs to be >>>>>> powered before it can be discovered. For discrete onboard hubs (an >>>>>> example for such a hub is the Realtek RTS5411) this is often solved >>>>>> by supplying the hub with an 'always-on' regulator, which is kind >>>>>> of a hack. Some onboard hubs may require further initialization >>>>>> steps, like changing the state of a GPIO or enabling a clock, which >>>>>> requires even more hacks. This driver creates a platform device >>>>>> representing the hub which performs the necessary initialization. >>>>>> Currently it only supports switching on a single regulator, support >>>>>> for multiple regulators or other actions can be added as needed. >>>>>> Different initialization sequences can be supported based on the >>>>>> compatible string. >>>>>> >>>>>> Besides performing the initialization the driver can be configured >>>>>> to power the hub off during system suspend. This can help to extend >>>>>> battery life on battery powered devices which have no requirements >>>>>> to keep the hub powered during suspend. The driver can also be >>>>>> configured to leave the hub powered when a wakeup capable USB device >>>>>> is connected when suspending, and power it off otherwise. >>>>>> >>>>>> Changes in v21: >>>>>> - dropped patch 'driver core: Export device_is_bound()' >>>>>> - refactored _find_onboard_hub() >>>>>> - removed 'onboard_hub_dev' symlinks from USB devices >>>>>> - dropped patch 'arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub' >>>>>> (will be sent separately) >>>>>> - rebased series on v5.17-rc4 >>>>>> >>>>>> Changes in v20: >>>>>> - addressed review comments from Stephen >>>>>> - changed DT node names for hubs >>>>>> >>>>>> Changes in v19: >>>>>> - added VID:PID pairs and compatible strings for RTS5414 hub >>>>>> - updated comments with RTS5411 USB versions to reflect those >>>>>> reported/supported by the hub >>>>>> - rebased series on v5.16 >>>>>> >>>>>> Changes in v18: >>>>>> - introduced hidden Kconfig option to align module vs. builtin >>>>>> choice with CONFIG_USB (thanks Doug!) >>>>>> - added patch 'driver core: Export device_is_bound()' >>>>>> - also adjust device tree of pompom rev1 >>>>>> - dropped the following patches, which aren't needed anymore by this >>>>>> series (though they might still be useful on their own): >>>>>> - usb: Specify dependencies on USB_XHCI_PLATFORM with 'depends on' >>>>>> - arm64: defconfig: Explicitly enable USB_XHCI_PLATFORM >>>>>> - ARM: configs: Explicitly enable USB_XHCI_PLATFORM where needed >>>>>> >>>>>> Changes in v17: >>>>>> - rebased on top of v5.16-rc1 >>>>>> - moved creation of onboard_hub platform devices from xhci_platform >>>>>> to the generic HCD code >>>>>> - addressed review comments for the onboard_hub driver >>>>>> - moved Kconfig/defconfig changes to the end of the series. The >>>>>> onboard_hub driver doesn't depend on XHCI_PLATFORM anymore, >>>>>> hence these changes aren't really required for the driver, but >>>>>> they still seem to be a worthwhile improvement >>>>>> >>>>>> Changes in v16: >>>>>> - added patch 'ARM: configs: Explicitly enable USB_XHCI_PLATFORM >>>>>> where needed' to keep arm32 defconfigs effectively unchanged >>>>>> >>>>>> Changes in v15: >>>>>> - adjusted dependencies of USB_DWC3_CORE to make sure it can only >>>>>> be enabled when at least one of USB_DWC3_HOST, USB_DWC3_GADGET >>>>>> or USB_DWC3_DUAL_ROLE is selectable >>>>>> >>>>>> Changes in v14: >>>>>> - rebased on top of v5.14-rc1 >>>>>> - dropped DT binding patch which landed in v5.13 >>>>>> >>>>>> Changes in v13: >>>>>> - added patch "usb: Specify dependency on USB_XHCI_PLATFORM with >>>>>> 'depends on'" to the series to avoid Kconfig conflicts >>>>>> - added patch "arm64: defconfig: Explicitly enable USB_XHCI_PLATFORM" >>>>>> to the series to keep effective defconfig unchanged >>>>>> >>>>>> Changes in v12: >>>>>> - onboard_hub driver: use IS_ENABLED(CONFIG_USB_ONBOARD_HUB_MODULE) >>>>>> in onboard_hub.h to also check for the driver built as module >>>>>> - onboard_hub_driver: include onboard_hub.h again to make sure there >>>>>> are prototype declarations for the public functions >>>>>> >>>>>> Changes in v11: >>>>>> - support multiple onboard hubs connected to the same parent >>>>>> - don't include ‘onboard_hub.h’ from the onboard hub driver >>>>>> >>>>>> Changes in v10: >>>>>> - always use of_is_onboard_usb_hub() stub unless ONBOARD_USB_HUB=y/m >>>>>> - keep 'regulator-boot-on' property for pp3300_hub >>>>>> >>>>>> Changes in v9: >>>>>> - added dependency on ONBOARD_USB_HUB (or !ONBOARD_USB_HUB) to >>>>>> USB_PLATFORM_XHCI >>>>>> >>>>>> Changes in v7: >>>>>> - updated DT binding >>>>>> - series rebased on qcom/arm64-for-5.13 >>>>>> >>>>>> Changes in v6: >>>>>> - updated summary >>>>>> >>>>>> Changes in v5: >>>>>> - cover letter added >>>>>> >>>>>> Matthias Kaehlcke (3): >>>>>> of/platform: Add stubs for of_platform_device_create/destroy() >>>>>> usb: misc: Add onboard_usb_hub driver >>>>>> usb: core: hcd: Create platform devices for onboard hubs in probe() >>>>>> >>>>>> .../sysfs-bus-platform-onboard-usb-hub | 8 + >>>>>> MAINTAINERS | 7 + >>>>>> drivers/usb/core/hcd.c | 6 + >>>>>> drivers/usb/misc/Kconfig | 23 + >>>>>> drivers/usb/misc/Makefile | 1 + >>>>>> drivers/usb/misc/onboard_usb_hub.c | 510 ++++++++++++++++++ >>>>>> include/linux/of_platform.h | 22 +- >>>>>> include/linux/usb/hcd.h | 1 + >>>>>> include/linux/usb/onboard_hub.h | 18 + >>>>>> 9 files changed, 592 insertions(+), 4 deletions(-) >>>>>> create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-onboard-usb-hub >>>>>> create mode 100644 drivers/usb/misc/onboard_usb_hub.c >>>>>> create mode 100644 include/linux/usb/onboard_hub.h >>>>> >>>>> With v5.18-rc1 out the door, I wonder if it's a good time to look at >>>>> this series again. Are there any hidden blockers that it's waiting >>>>> for? >>>> >>>> Greg, please let me know if any further changes are needed or if this >>>> series can be landed. >>> >>> After 21 different versions, there's nothing left for me to object to, >>> so I'll go queue it up. Thanks for sticking with it. >> >> I just checked linux-next and this series is still not there. Are you going >> to merge it or are you waiting for v22? > > It was merged, and I had to revert it based on reports of problems with > it. See the thread here: > https://lore.kernel.org/r/20220502210728.0b36f3cd@canb.auug.org.au > for details.
Matthias: Are you going to send v22 version?
Thanks, Michal
| |