All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Sandeep Maheswaram <quic_c_sanm@quicinc.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Felipe Balbi <balbi@kernel.org>,
	Stephen Boyd <swboyd@chromium.org>,
	Doug Anderson <dianders@chromium.org>,
	Matthias Kaehlcke <mka@chromium.org>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Peter Chen <peter.chen@kernel.org>,
	Pawel Laszczak <pawell@cadence.com>,
	Roger Quadros <rogerq@kernel.org>,
	Aswath Govindraju <a-govindraju@ti.com>,
	linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, quic_pkondeti@quicinc.com,
	quic_ppratap@quicinc.com
Subject: Re: [PATCH v3 3/3] usb: dwc: host: add xhci_plat_priv quirk XHCI_SKIP_PHY_INIT
Date: Fri, 25 Mar 2022 00:36:22 +0200	[thread overview]
Message-ID: <4c2a28ad-b866-1b65-e73a-4eda0596cea2@linux.intel.com> (raw)
In-Reply-To: <YjxjxplpOpDC2JLs@kuha.fi.intel.com>

On 24.3.2022 14.27, Heikki Krogerus wrote:
> On Thu, Mar 24, 2022 at 12:07:11PM +0530, Sandeep Maheswaram wrote:
>> Currently the phy init is done from dwc3 and also xhci which makes the
>> runtime_usage value 2 for the phy which causes issue during runtime
>> suspend. When we run the below command the runtime_status still shows
>> active.
>> echo auto > /sys/bus/platform/devices/88e3000.phy/power/control
>>
>> dwc3 manages PHY by own DRD driver, so skip the management by
>> HCD core by setting this quirk.
>>
>> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com>
>> ---
>>  drivers/usb/dwc3/host.c | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
>> index eda8719..d4fcf06 100644
>> --- a/drivers/usb/dwc3/host.c
>> +++ b/drivers/usb/dwc3/host.c
>> @@ -13,6 +13,12 @@
>>  #include <linux/platform_device.h>
>>  
>>  #include "core.h"
>> +#include <linux/usb/xhci-plat.h>
>> +#include <linux/usb/xhci-quirks.h>
>> +
>> +static const struct xhci_plat_priv xhci_plat_dwc3_xhci = {
>> +	.quirks = XHCI_SKIP_PHY_INIT,
>> +};
>>  
>>  static void dwc3_host_fill_xhci_irq_res(struct dwc3 *dwc,
>>  					int irq, char *name)
>> @@ -122,6 +128,13 @@ int dwc3_host_init(struct dwc3 *dwc)
>>  		}
>>  	}
>>  
>> +	ret = platform_device_add_data(xhci, &xhci_plat_dwc3_xhci,
>> +			sizeof(xhci_plat_dwc3_xhci));
>> +	if (ret) {
>> +		dev_err(dwc->dev, "failed to add data to xHCI\n");
>> +		goto err;
>> +	}
>> +
>>  	ret = platform_device_add(xhci);
>>  	if (ret) {
>>  		dev_err(dwc->dev, "failed to register xHCI device\n");
> 
> I think you should just use device property:
> 

This was suggested in an earlier series, but was rejected as it also added
the property as a device tree parameter.

I think adding more device properties can be messy in the long run, especially if we
need to add them for many of the existing xhci quirks.
We also end up with a mix where some device properties are listed as device tree
parameters, and some not.

Defining xhci quirks and platform data structure in headers shared with dwc3 and cdns3
allow those drivers to easily set any existing xhci quirk, or other possible optional
callbacks.

cdns3 driver is already doing this, but it includes the full xhci.h header.
This series cleans up that a bit so cdns3 will only include xhci quirk bits and
platform data structure.

On the downside we add a couple xhci related header files to include/linux/usb/
Let me know if you see any other issues I missed with this approach.

Thanks
Mathias

  reply	other threads:[~2022-03-24 22:34 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-24  6:37 [PATCH v3 0/3] Refactor xhci quirks and plat private data Sandeep Maheswaram
2022-03-24  6:37 ` [PATCH v3 1/3] usb: xhci: refactor " Sandeep Maheswaram
2022-03-24  6:37 ` [PATCH v3 2/3] usb: xhci: Remove unwanted header inclusion Sandeep Maheswaram
2022-03-24  6:37 ` [PATCH v3 3/3] usb: dwc: host: add xhci_plat_priv quirk XHCI_SKIP_PHY_INIT Sandeep Maheswaram
2022-03-24 12:27   ` Heikki Krogerus
2022-03-24 22:36     ` Mathias Nyman [this message]
2022-03-25 11:27       ` Heikki Krogerus
2022-03-25 14:33         ` Mathias Nyman
2022-03-25 15:38           ` Heikki Krogerus
2022-03-29  9:18             ` Sandeep Maheswaram (Temp)
2022-03-29  9:28               ` Pavan Kondeti
2022-03-30 17:47               ` Mathias Nyman
2022-03-31 11:16                 ` Heikki Krogerus
2022-04-04  8:25                   ` Pavan Kondeti
2022-04-06  6:25                     ` Pavan Kondeti
2022-04-06 10:27                       ` Heikki Krogerus
2022-04-06 10:52                       ` Mathias Nyman
2022-04-06 11:01                         ` Pavan Kondeti
2022-04-06 12:18                           ` Mathias Nyman
2022-04-06 15:34                             ` Pavan Kondeti

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=4c2a28ad-b866-1b65-e73a-4eda0596cea2@linux.intel.com \
    --to=mathias.nyman@linux.intel.com \
    --cc=a-govindraju@ti.com \
    --cc=balbi@kernel.org \
    --cc=dianders@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=mka@chromium.org \
    --cc=pawell@cadence.com \
    --cc=peter.chen@kernel.org \
    --cc=quic_c_sanm@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=quic_ppratap@quicinc.com \
    --cc=rogerq@kernel.org \
    --cc=swboyd@chromium.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.