Hi, Leo Li <pku.leo@xxxxxxxxx> writes: >> Leo Li <pku.leo@xxxxxxxxx> writes: >>>>> On certain platforms (e.g. ARM64) the dma_ops needs to be explicitly set >>>>> to be able to do DMA allocations, so use the of_dma_configure() helper >>>>> to populate the dma properties and assign an appropriate dma_ops. >>>>> >>>>> Signed-off-by: Rajesh Bhagat <rajesh.bhagat@xxxxxxx> >>>>> Reviewed-by: Yang-Leo Li <leoyang.li@xxxxxxx> >>>> >>>> Cool, nxp is also using dwc3 :-) C'mon Rajesh, send us a glue layer :) >>>> >>>>> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c >>>>> index c679f63..4d5b783 100644 >>>>> --- a/drivers/usb/dwc3/host.c >>>>> +++ b/drivers/usb/dwc3/host.c >>>>> @@ -17,6 +17,7 @@ >>>>> >>>>> #include <linux/platform_device.h> >>>>> #include <linux/usb/xhci_pdriver.h> >>>>> +#include <linux/of_device.h> >>>>> >>>>> #include "core.h" >>>>> >>>>> @@ -32,6 +33,9 @@ int dwc3_host_init(struct dwc3 *dwc) >>>>> return -ENOMEM; >>>>> } >>>>> >>>>> + if (IS_ENABLED(CONFIG_OF) && dwc->dev->of_node) >>>>> + of_dma_configure(&xhci->dev, dwc->dev->of_node); >>>> >>>> okay, so we have a long discussion about this going on. You can catch up >>>> with it starting here: >>>> >>>> http://marc.info/?i=1461612094-30939-1-git-send-email-grygorii.strashko@xxxxxx >>>> >>>> At least for now, this patch will be applied. We need to have a better >>>> solution for this, one that helps not only DT platforms. >>> >>> Balbi, >>> >>> Has the patch from Grygorii been applied? I don't see it in the >>> mainline tree yet. Without fix, the dwc3 driver will fail for all >>> ARM64 SoCs. >> >> right, it's still broken. But we don't want something that fixes only >> OF, right? dwc3 is also broken for PCI when IOMMU is enabled. It breaks >> for the same reasons. >> >> We really need a way to inherit DMA bits from parent device here. > > I agree with your proposal, but the original discussion seems to be on > halt right now. If it need more time to get to an agreement on proper > fix, probably it's better to have a temporary fix right now to make > the driver working again. if it temporarily solves all users, sure. But if temporarily solves the problem for just a subset of the users, then that subset will stop thinking about the solution while the other subset is left alone thinking about it. Sorry, but I prefer to get this sorted out for everybody, rather than for one subset of users. -- balbi
Attachment:
signature.asc
Description: PGP signature