[PATCH V2] usb: host: xhci-plat: allow sysdev to inherit from ACPI
Adam Wallis
awallis at codeaurora.org
Tue Sep 5 07:38:03 PDT 2017
On 9/5/2017 10:31 AM, Greg Kroah-Hartman wrote:
> On Tue, Sep 05, 2017 at 10:25:19AM -0400, Adam Wallis wrote:
>> On 9/5/2017 10:16 AM, Greg Kroah-Hartman wrote:
>>> On Tue, Sep 05, 2017 at 09:57:29AM -0400, Adam Wallis wrote:
>>>> Currently, xhci_plat is not set up properly when the parent device is an
>>>> ACPI node. The conditions that xhci_plat_probe should satisfy are
>>>>
>>>> 1. xhci_plat comes from firmware
>>>> 2. xhci_plat is child of a device from firmware (dwc3-plat)
>>>> 3. xhci_plat is grandchild of a pci device (dwc3-pci)
>>>>
>>>> Case 2 is covered when the child is an OF node (by checking
>>>> sysdev->parent->of_node), however, an ACPI parent will return NULL in
>>>> the of_node check and will thus not result in sysdev being set to
>>>> sysdev->parent
>>>>
>>>> [ 17.591549] xhci-hcd: probe of xhci-hcd.6.auto failed with error -5
>>>>
>>>> This change adds a check for ACPI to completely allow for condition 2.
>>>> This is done by first checking if the parent node is of type ACPI (e.g.,
>>>> dwc3-plat) and set sysdev to sysdev->parent if either of the two
>>>> following conditions are met:
>>>>
>>>> 1: If fwnode is empty (in the case that platform_device_add_properties
>>>> was not called on the allocated platform device)
>>>> 2: fwnode exists but is not of type ACPI (this would happen if
>>>> platform_device_add_properties was called on the allocated device.
>>>> Instead of type FWNODE_ACPI, you would end up with FWNODE_PDATA)
>>>>
>>>> Cc: stable at vger.kernel.org #4.12.x
>>>> Cc: stable at vger.kernel.org #4.13.x
>>>
>>> What bug is this fixing that needs to go into the stable kernel trees?
>>> Is this a regression, or a new feature for those versions?
>>>
>> Greg
>>
>> The following patch
>>
>> 4c39d4b949d36f usb: xhci: use bus->sysdev for DMA configuration
>>
>> provided an incomplete check for all firmware nodes (only checked for PCI and OF
>> case, but not the ACPI case). This bug affects the 4.12 and 4.13 kernels.
>
> What is the symptom of "incomplete check"? Something that used to work
> now does not? Or just that it doesn't work "correctly" and this patch
> resolves that issue so that new hardware can now work properly?
Greg, the change I reference above broke behavior that previously worked.
Previously, it was possible to have a an ACPI host driver (e.g., dwc3) that
created a platform xhci device as a child. The above change removed the ability
to have a parent ACPI device to the platform xhci platform device (so drivers
like dwc3 host do not work with ACPI now in 4.12/4.13)
I ask
> as you have read the stable kernel rules, right?
I have read the rules. Are you asking for me to update my sign-off area with the
fix commit information?
>
> thanks,
>
> greg k-h
>
Thank you for your help
Adam
--
Adam Wallis
Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
More information about the linux-arm-kernel
mailing list