mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
xhci-plat: Use USB glue driver device as sysdev
Currently xhci-plat's parent device is used as sysdev whereas USB driver related page mapping is crated using xhci-plat's parent device's parent device (i.e. USB glue driver device). This results into SMMU page fault when XHCI controller is trying to access queued URB. Fix this issue by checking sysdev is having property "linux,sysdev_is_parent" set, and if it is set, use sysdev->parent as sysdev. Change-Id: Iabf5b661b756c109663ad8b11a5a1dd9330c1171 Signed-off-by: Mayank Rana <mrana@codeaurora.org> Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This commit is contained in:
parent
d6a14bcbdc
commit
4c5b785727
1 changed files with 8 additions and 0 deletions
|
|
@ -193,6 +193,14 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
|||
if (!sysdev)
|
||||
sysdev = &pdev->dev;
|
||||
|
||||
/*
|
||||
* If sysdev dev is having parent i.e. "linux,sysdev_is_parent" is true,
|
||||
* then use sysdev->parent device.
|
||||
*/
|
||||
if (sysdev->parent && sysdev->parent->of_node &&
|
||||
device_property_read_bool(sysdev, "linux,sysdev_is_parent"))
|
||||
sysdev = sysdev->parent;
|
||||
|
||||
/* Try to set 64-bit DMA first */
|
||||
if (WARN_ON(!sysdev->dma_mask))
|
||||
/* Platform did not initialize dma_mask */
|
||||
|
|
|
|||
Loading…
Reference in a new issue