On 21.02.24 20:24, Matthias Kaehlcke wrote: > On Tue, Feb 20, 2024 at 03:05:46PM +0100, Javier Carrasco wrote: >> Most of the functionality this driver provides can be used by non-hub >> devices as well. >> >> To account for the hub-specific code, add a flag to the device data >> structure and check its value for hub-specific code. > > Please mention that the driver doesn't power off non-hub devices > during system suspend. > >> Signed-off-by: Javier Carrasco <javier.carrasco@xxxxxxxxxxxxxx> >> --- >> drivers/usb/misc/onboard_usb_dev.c | 3 ++- >> drivers/usb/misc/onboard_usb_dev.h | 10 ++++++++++ >> 2 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c >> index 2103af2cb2a6..f43130a6786f 100644 >> --- a/drivers/usb/misc/onboard_usb_dev.c >> +++ b/drivers/usb/misc/onboard_usb_dev.c >> @@ -129,7 +129,8 @@ static int __maybe_unused onboard_dev_suspend(struct device *dev) >> if (!device_may_wakeup(node->udev->bus->controller)) >> continue; >> >> - if (usb_wakeup_enabled_descendants(node->udev)) { >> + if (usb_wakeup_enabled_descendants(node->udev) || >> + !onboard_dev->pdata->is_hub) { > > > This check isn't dependent on characteristics of the USB devices processed > in this loop, therefore it can be performed at function entry. Please combine > it with the check of 'always_powered_in_suspend'. It's also an option to > omit the check completely, 'always_powered_in_suspend' will never be set for > non-hub devices (assuming the sysfs attribute isn't added). > The attribute will not be available for non-hub devices in v5. However, if the check is completely removed, will power_off not stay true at the end of the function, always leading to a device power off? As you said, 'always_powered_in_suspend' will not be set for non-hub devices. >> power_off = false; >> break; >> } > > Without code context: please omit the creation of the 'always_powered_in_suspend' > attribute for non-hub devices. As per above we don't plan to hone it, so it > shouldn't exist. Best regards, Javier Carrasco