All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Carrasco <javier.carrasco@wolfvision.net>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH v3 2/7] usb: misc: onboard_dev: add support for non-hub devices
Date: Tue, 13 Feb 2024 11:00:43 +0100	[thread overview]
Message-ID: <2a23817d-b797-4659-a4e6-5c8a75864c90@wolfvision.net> (raw)
In-Reply-To: <ZcJ9OnYOtUVMu2Yk@google.com>

On 06.02.24 19:40, Matthias Kaehlcke wrote:
> On Tue, Feb 06, 2024 at 02:59:30PM +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.
>>
>> Signed-off-by: Javier Carrasco <javier.carrasco@wolfvision.net>
>> ---
>>  drivers/usb/misc/onboard_usb_dev.c |  3 +++
>>  drivers/usb/misc/onboard_usb_dev.h | 10 ++++++++++
>>  2 files changed, 13 insertions(+)
>>
>> diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
>> index e2e1e1e30c1e..3ac21ec38ac0 100644
>> --- a/drivers/usb/misc/onboard_usb_dev.c
>> +++ b/drivers/usb/misc/onboard_usb_dev.c
>> @@ -123,6 +123,9 @@ static int __maybe_unused onboard_dev_suspend(struct device *dev)
>>  	if (onboard_dev->always_powered_in_suspend)
>>  		return 0;
>>  
>> +	if (!onboard_dev->pdata->is_hub)
>> +		return onboard_dev_power_off(onboard_dev);
> 
> Why turn the device always off when it isn't a hub? It could be a device
> with wakeup support.
> 
> I really regret making 'off in suspend' the default :(
> 


The power management seems to be a critical point to consider.

Maybe we keep the current implementation and add support to non-hub
devices by simply adding a check to set power_off to false:

static int __maybe_unused onboard_dev_suspend(struct device *dev)

{

        struct onboard_dev *onboard_dev = dev_get_drvdata(dev);

        struct usbdev_node *node;

        bool power_off = true;



        if (onboard_dev->always_powered_in_suspend)

                return 0;



        mutex_lock(&onboard_dev->lock);



        list_for_each_entry(node, &onboard_dev->udev_list, list) {

                if (!device_may_wakeup(node->udev->bus->controller))

                        continue;



~                if (usb_wakeup_enabled_descendants(node->udev) ||

+                    !onboard_dev->pdata->is_hub) {

                        power_off = false;

                        break;

                }

        }



        mutex_unlock(&onboard_dev->lock);



        if (!power_off)

                return 0;



        return onboard_dev_power_off(onboard_dev);

}


Best regards,
Javier Carrasco


  reply	other threads:[~2024-02-13 10:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-06 13:59 [PATCH v3 0/7] usb: misc: onboard_hub: add support for XMOS XVF3500 Javier Carrasco
2024-02-06 13:59 ` [PATCH v3 1/7] usb: misc: onboard_hub: rename to onboard_dev Javier Carrasco
2024-02-06 17:55   ` Matthias Kaehlcke
2024-02-13 10:36     ` Javier Carrasco
2024-02-21 18:22       ` Matthias Kaehlcke
2024-02-06 13:59 ` [PATCH v3 2/7] usb: misc: onboard_dev: add support for non-hub devices Javier Carrasco
2024-02-06 18:40   ` Matthias Kaehlcke
2024-02-13 10:00     ` Javier Carrasco [this message]
2024-02-21 18:33       ` Matthias Kaehlcke
2024-02-06 13:59 ` [PATCH v3 3/7] drm: ci: arm64.config: update ONBOARD_USB_HUB to ONBOARD_USB_DEV Javier Carrasco
2024-02-06 13:59 ` [PATCH v3 4/7] arm64: defconfig: " Javier Carrasco
2024-02-06 13:59 ` [PATCH v3 5/7] ARM: multi_v7_defconfig: update ONBOARD_USB_HUB name Javier Carrasco
2024-02-06 13:59 ` [PATCH v3 6/7] ASoC: dt-bindings: xmos,xvf3500: add XMOS XVF3500 voice processor Javier Carrasco
2024-02-06 14:32   ` Mark Brown
2024-02-06 15:05     ` Javier Carrasco
2024-02-06 15:22       ` Matthias Kaehlcke
2024-02-06 15:35         ` Javier Carrasco
2024-02-06 16:22           ` Mark Brown
2024-02-06 15:35       ` Mark Brown
2024-02-06 15:38         ` Javier Carrasco
2024-02-06 15:49         ` Matthias Kaehlcke
2024-02-06 16:35           ` Mark Brown
2024-02-06 13:59 ` [PATCH v3 7/7] usb: misc: onboard_hub: add support for XMOS XVF3500 Javier Carrasco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2a23817d-b797-4659-a4e6-5c8a75864c90@wolfvision.net \
    --to=javier.carrasco@wolfvision.net \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mka@chromium.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.