From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751060AbcFFF4r (ORCPT ); Mon, 6 Jun 2016 01:56:47 -0400 Received: from mail-pf0-f173.google.com ([209.85.192.173]:35521 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750884AbcFFF4p (ORCPT ); Mon, 6 Jun 2016 01:56:45 -0400 From: Baolin Wang To: balbi@kernel.org, gregkh@linuxfoundation.org Cc: broonie@kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH v2] usb: dwc3: host: Set the dma_ops for xhci device Date: Mon, 6 Jun 2016 13:56:11 +0800 Message-Id: <3f7a77848164a753b8918925f69aa0fd6c985850.1465192322.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On ARM64 platform, it will set 'dummy_dma_ops' for device dma_ops if it did not call 'arch_setup_dma_ops' at device creation time, that will cause failure when setting the dma mask for device. Thus this patch set the xhci device dma_ops from the parent device if the xhci device dma_ops is 'dummy_dma_ops'. Changes since v1: - Add CONFIG_ARM64 macro. Signed-off-by: Baolin Wang --- drivers/usb/dwc3/host.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c index c679f63..edb666d 100644 --- a/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c @@ -32,6 +32,11 @@ int dwc3_host_init(struct dwc3 *dwc) return -ENOMEM; } +#ifdef CONFIG_ARM64 + if (get_dma_ops(&xhci->dev) == get_dma_ops(NULL)) + xhci->dev.archdata.dma_ops = get_dma_ops(dwc->dev); +#endif + dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask); xhci->dev.parent = dwc->dev; -- 1.7.9.5