[<prev] [next>] [day] [month] [year] [list]
Message-ID: <87k0oghxt9.fsf@kernel.org>
Date: Mon, 03 May 2021 14:16:34 +0300
From: Felipe Balbi <balbi@...nel.org>
To: Sandeep Maheswaram <sanm@...eaurora.org>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Stephen Boyd <swboyd@...omium.org>,
Doug Anderson <dianders@...omium.org>,
Matthias Kaehlcke <mka@...omium.org>
Cc: linux-arm-msm@...r.kernel.org, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org, Manu Gautam <mgautam@...eaurora.org>
Subject: Re: [PATCH v7 1/5] usb: dwc3: host: Set PHY mode during suspend
Hi,
Sandeep Maheswaram <sanm@...eaurora.org> writes:
>>> @@ -11,6 +11,14 @@
>>> #include <linux/platform_device.h>
>>>
>>> #include "core.h"
>>> +#include "../host/xhci.h"
>>> +#include "../host/xhci-plat.h"
>>> +
>>> +static int xhci_dwc3_suspend_quirk(struct usb_hcd *hcd);
>>> +
>>> +static const struct xhci_plat_priv xhci_plat_dwc3_xhci = {
>>> + .suspend_quirk = xhci_dwc3_suspend_quirk,
>>> +};
>> we're passing data using device_properties, why do you want this here?
> Similar implemenation was done in
> drivers/usb/cdns3/host.c<https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/usb/cdns3/host.c?h=next-20210503>
then it seems we have two places to correct :-)
>>> @@ -127,6 +142,50 @@ int dwc3_host_init(struct dwc3 *dwc)
>>> return ret;
>>> }
>>>
>>> +static void dwc3_set_phy_mode(struct usb_hcd *hcd)
>>> +{
>>> +
>>> + int i, num_ports;
>>> + u32 reg;
>>> + unsigned int ss_phy_mode = 0;
>>> + struct dwc3 *dwc = dev_get_drvdata(hcd->self.controller->parent);
>>> + struct xhci_hcd *xhci_hcd = hcd_to_xhci(hcd);
>>> +
>>> + dwc->hs_phy_mode = 0;
>>> +
>>> + reg = readl(&xhci_hcd->cap_regs->hcs_params1);
>>> + num_ports = HCS_MAX_PORTS(reg);
>> there's a big assumption here that xhci is still alive. Why isn't this
>> quirk implemented in xhci-plat itself?
>>
>>> +int xhci_dwc3_suspend_quirk(struct usb_hcd *hcd)
>> who calls this?
> This will be called from
> xhci_plat_suspend->xhci_priv_suspend_quirk->xhci_dwc3_suspend_quirk
So xhci.ko calls a function from dwc3.ko? That sounds odd, doesn't it?
It really looks like we're just finding ways to bypass the driver
layering, rather than working with it.
--
balbi
Download attachment "signature.asc" of type "application/pgp-signature" (512 bytes)
Powered by blists - more mailing lists