From: Felipe Balbi <felipe.balbi-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Grygorii Strashko
<grygorii.strashko-l0cyMroinI0@public.gmane.org>,
"Thang Q. Nguyen" <tqnguyen-qTEPVZfXA3Y@public.gmane.org>
Cc: Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
"Karicheri,
Muralidharan" <m-karicheri2-l0cyMroinI0@public.gmane.org>,
Peter Ujfalusi <peter.ujfalusi-l0cyMroinI0@public.gmane.org>,
Phong Vo <pvo-qTEPVZfXA3Y@public.gmane.org>,
Loc Ho <lho-qTEPVZfXA3Y@public.gmane.org>,
patches <patches-qTEPVZfXA3Y@public.gmane.org>,
Santosh Shilimkar
<ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
"Ben Dooks (embedded platforms)"
<ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Subject: Re: [PATCH v3 2/2] usb:dwc3: pass arch data to xhci-hcd child
Date: Fri, 01 Apr 2016 10:58:31 +0300 [thread overview]
Message-ID: <871t6pahg8.fsf@intel.com> (raw)
In-Reply-To: <56FD3D2F.8070501-l0cyMroinI0@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2829 bytes --]
Hi,
Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> writes:
> On 03/31/2016 11:04 AM, Felipe Balbi wrote:
>> "Thang Q. Nguyen" <tqnguyen-qTEPVZfXA3Y@public.gmane.org> writes:
>>> [ text/plain ]
>>> Thanks Grygorii for information.
>>> I checked but do not see dma_init_dev_from_parent is used in
>>> linux-next repository. Can you give me more information for what
>>> branch I can checkout to use it for USB DWC3?
>>
>> dma_init_dev_from_parent() is still a proposal ;-)
>>
>
> Felipe,
>
> After some experiments I came up with below fix (not common, but fixes USB
> case on keystone 2). if you agree with proposed fix I'll send proper
> patches to fix usb_add_gadget_udc_release() and dwc3_host_init() in the same
> way.
>
> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
> index c679f63..3fe1c65 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"
>
> @@ -35,8 +36,6 @@ int dwc3_host_init(struct dwc3 *dwc)
> dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask);
>
> xhci->dev.parent = dwc->dev;
> - xhci->dev.dma_mask = dwc->dev->dma_mask;
> - xhci->dev.dma_parms = dwc->dev->dma_parms;
>
> dwc->xhci = xhci;
>
> @@ -62,6 +61,12 @@ int dwc3_host_init(struct dwc3 *dwc)
> phy_create_lookup(dwc->usb3_generic_phy, "usb3-phy",
> dev_name(&xhci->dev));
>
> + if (!dwc->dev->of_node) {
> + xhci->dev.dma_mask = dwc->dev->dma_mask;
> + xhci->dev.dma_parms = dwc->dev->dma_parms;
> + } else
> + of_dma_configure(&xhci->dev, dwc->dev->of_node);
if of_dma_configure() does what you want, why don't you just stick it in
dwc3-keystone.c and let the driver continue to copy things for now ?
Something like below, perhaps ?
diff --git a/drivers/usb/dwc3/dwc3-keystone.c b/drivers/usb/dwc3/dwc3-keystone.c
index 2be268d2423d..a4bd7f16090f 100644
--- a/drivers/usb/dwc3/dwc3-keystone.c
+++ b/drivers/usb/dwc3/dwc3-keystone.c
@@ -39,8 +39,6 @@
#define USBSS_IRQ_COREIRQ_EN BIT(0)
#define USBSS_IRQ_COREIRQ_CLR BIT(0)
-static u64 kdwc3_dma_mask;
-
struct dwc3_keystone {
struct device *dev;
struct clk *clk;
@@ -108,9 +106,7 @@ static int kdwc3_probe(struct platform_device *pdev)
if (IS_ERR(kdwc->usbss))
return PTR_ERR(kdwc->usbss);
- kdwc3_dma_mask = dma_get_mask(dev);
- dev->dma_mask = &kdwc3_dma_mask;
-
+ of_dma_configure(&kdwc->dev, node);
kdwc->clk = devm_clk_get(kdwc->dev, "usb");
error = clk_prepare_enable(kdwc->clk);
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <felipe.balbi@linux.intel.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>,
"Thang Q. Nguyen" <tqnguyen@apm.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-omap@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm@lists.infradead.org,
Arnd Bergmann <arnd@arndb.de>, "Karicheri\,
Muralidharan" <m-karicheri2@ti.com>,
Peter Ujfalusi <peter.ujfalusi@ti.com>, Phong Vo <pvo@apm.com>,
Loc Ho <lho@apm.com>, patches <patches@apm.com>,
Santosh Shilimkar <ssantosh@kernel.org>,
"Ben Dooks \(embedded platforms\)" <ben-linux@fluff.org>
Subject: Re: [PATCH v3 2/2] usb:dwc3: pass arch data to xhci-hcd child
Date: Fri, 01 Apr 2016 10:58:31 +0300 [thread overview]
Message-ID: <871t6pahg8.fsf@intel.com> (raw)
In-Reply-To: <56FD3D2F.8070501@ti.com>
[-- Attachment #1: Type: text/plain, Size: 2786 bytes --]
Hi,
Grygorii Strashko <grygorii.strashko@ti.com> writes:
> On 03/31/2016 11:04 AM, Felipe Balbi wrote:
>> "Thang Q. Nguyen" <tqnguyen@apm.com> writes:
>>> [ text/plain ]
>>> Thanks Grygorii for information.
>>> I checked but do not see dma_init_dev_from_parent is used in
>>> linux-next repository. Can you give me more information for what
>>> branch I can checkout to use it for USB DWC3?
>>
>> dma_init_dev_from_parent() is still a proposal ;-)
>>
>
> Felipe,
>
> After some experiments I came up with below fix (not common, but fixes USB
> case on keystone 2). if you agree with proposed fix I'll send proper
> patches to fix usb_add_gadget_udc_release() and dwc3_host_init() in the same
> way.
>
> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
> index c679f63..3fe1c65 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"
>
> @@ -35,8 +36,6 @@ int dwc3_host_init(struct dwc3 *dwc)
> dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask);
>
> xhci->dev.parent = dwc->dev;
> - xhci->dev.dma_mask = dwc->dev->dma_mask;
> - xhci->dev.dma_parms = dwc->dev->dma_parms;
>
> dwc->xhci = xhci;
>
> @@ -62,6 +61,12 @@ int dwc3_host_init(struct dwc3 *dwc)
> phy_create_lookup(dwc->usb3_generic_phy, "usb3-phy",
> dev_name(&xhci->dev));
>
> + if (!dwc->dev->of_node) {
> + xhci->dev.dma_mask = dwc->dev->dma_mask;
> + xhci->dev.dma_parms = dwc->dev->dma_parms;
> + } else
> + of_dma_configure(&xhci->dev, dwc->dev->of_node);
if of_dma_configure() does what you want, why don't you just stick it in
dwc3-keystone.c and let the driver continue to copy things for now ?
Something like below, perhaps ?
diff --git a/drivers/usb/dwc3/dwc3-keystone.c b/drivers/usb/dwc3/dwc3-keystone.c
index 2be268d2423d..a4bd7f16090f 100644
--- a/drivers/usb/dwc3/dwc3-keystone.c
+++ b/drivers/usb/dwc3/dwc3-keystone.c
@@ -39,8 +39,6 @@
#define USBSS_IRQ_COREIRQ_EN BIT(0)
#define USBSS_IRQ_COREIRQ_CLR BIT(0)
-static u64 kdwc3_dma_mask;
-
struct dwc3_keystone {
struct device *dev;
struct clk *clk;
@@ -108,9 +106,7 @@ static int kdwc3_probe(struct platform_device *pdev)
if (IS_ERR(kdwc->usbss))
return PTR_ERR(kdwc->usbss);
- kdwc3_dma_mask = dma_get_mask(dev);
- dev->dma_mask = &kdwc3_dma_mask;
-
+ of_dma_configure(&kdwc->dev, node);
kdwc->clk = devm_clk_get(kdwc->dev, "usb");
error = clk_prepare_enable(kdwc->clk);
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
next prev parent reply other threads:[~2016-04-01 7:58 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-10 7:18 [PATCH v3 0/2] usb:dwc3: Enable USB DWC3 support for 64-bit system Thang Q. Nguyen
2016-03-10 7:18 ` Thang Q. Nguyen
2016-03-10 7:18 ` [PATCH v3 1/2] usb:dwc3: Enable " Thang Q. Nguyen
[not found] ` <1457594332-7490-2-git-send-email-tqnguyen-qTEPVZfXA3Y@public.gmane.org>
2016-03-30 13:09 ` Felipe Balbi
2016-03-30 13:09 ` Felipe Balbi
2016-03-31 7:34 ` Thang Q. Nguyen
2016-03-31 8:04 ` Felipe Balbi
2016-03-10 7:18 ` [PATCH v3 2/2] usb:dwc3: pass arch data to xhci-hcd child Thang Q. Nguyen
2016-03-30 13:10 ` Felipe Balbi
2016-03-30 13:10 ` Felipe Balbi
2016-03-30 13:52 ` Grygorii Strashko
2016-03-30 13:52 ` Grygorii Strashko
2016-03-30 13:55 ` Felipe Balbi
2016-03-30 13:55 ` Felipe Balbi
[not found] ` <87egashxz8.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-31 7:39 ` Thang Q. Nguyen
2016-03-31 7:39 ` Thang Q. Nguyen
2016-03-31 8:04 ` Felipe Balbi
2016-03-31 8:04 ` Felipe Balbi
2016-03-31 15:07 ` Grygorii Strashko
2016-03-31 15:07 ` Grygorii Strashko
[not found] ` <56FD3D2F.8070501-l0cyMroinI0@public.gmane.org>
2016-04-01 7:58 ` Felipe Balbi [this message]
2016-04-01 7:58 ` Felipe Balbi
2016-04-01 9:46 ` Grygorii Strashko
2016-04-01 9:46 ` Grygorii Strashko
[not found] ` <56FE4378.3030205-l0cyMroinI0@public.gmane.org>
2016-04-01 10:20 ` Felipe Balbi
2016-04-01 10:20 ` Felipe Balbi
[not found] ` <87shz58wbw.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-01 11:00 ` Grygorii Strashko
2016-04-01 11:00 ` Grygorii Strashko
[not found] ` <56FE54DB.5000201-l0cyMroinI0@public.gmane.org>
2016-04-01 11:57 ` Felipe Balbi
2016-04-01 11:57 ` Felipe Balbi
[not found] ` <878u0x8ru4.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-01 18:15 ` santosh shilimkar
2016-04-01 18:15 ` santosh shilimkar
[not found] ` <56FEBAC1.2040509-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-04-04 6:28 ` Felipe Balbi
2016-04-04 6:28 ` Felipe Balbi
2016-04-04 16:11 ` santosh shilimkar
2016-04-05 5:18 ` Felipe Balbi
2016-04-05 5:18 ` Felipe Balbi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871t6pahg8.fsf@intel.com \
--to=felipe.balbi-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
--cc=lho-qTEPVZfXA3Y@public.gmane.org \
--cc=linux-arm-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=m-karicheri2-l0cyMroinI0@public.gmane.org \
--cc=patches-qTEPVZfXA3Y@public.gmane.org \
--cc=peter.ujfalusi-l0cyMroinI0@public.gmane.org \
--cc=pvo-qTEPVZfXA3Y@public.gmane.org \
--cc=ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tqnguyen-qTEPVZfXA3Y@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.