From: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org>
To: Felipe Balbi
<felipe.balbi-VuQAYsv1563Yd54FQh9/CA@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, 1 Apr 2016 14:00:43 +0300 [thread overview]
Message-ID: <56FE54DB.5000201@ti.com> (raw)
In-Reply-To: <87shz58wbw.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
On 04/01/2016 01:20 PM, Felipe Balbi wrote:
>
> Hi,
>
> Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> writes:
>>> 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 ?
>>>
>>
>> I know (and i have patch to fix that which I'm going to send) that DMA config
>> in dwc3-keystone.c is not correct and we are good till now just
>> because dwc3_keystone is not used for DMA operations directly.
>>
>> Now about xhci and friends:
>> dwc3_keystone *is created* from DT : of_platform_device_create() -> of_platform_device_create_pdata() -> of_dma_configure()
>> |- dwc3 *is created* from DT : of_platform_device_create() -> of_platform_device_create_pdata() -> of_dma_configure()
>> |- [1] *creates* xhci dev manually : DMA configuration copied manually in dwc3_host_init()
>> |- [2] *creates* usb_gadget dev manually: DMA configuration copied manually in usb_add_gadget_udc_release()
>> |- *creates* usb_udc dev manually : not used for DMA operations directly (as I've checked)
>>
>> Now cases [1] & [2] introduces failures, because DMA configuration is not complete for
>> these devices.
>
> right, then we just copy whatever's missing, right ? Until there's a
> generic way of copying these bits, I want to avoid introducing any of_*
> specific methodologies and prefer to have the manual copy.
Sry, I've found no other way (right now) to fix it, except by using of_dma_configure()
which will do all work in DT case (including calling of arch specific callbacks).
[it might be unsafe to just copy archdata, for example, as it might(will for arm)
contain pointers]
>
>> I can confirm that if I fix [1] & [2] as above USB Device/Dual modes will start
>> working on K2E.
Above is for 4.1 kernel
>
> cool, I'd be happy to take both patches ;-)
>
ok. And seems gadget case is fixed already
commit 7ace8fc8219e4cbbfd5b4790390d9a01a2541cdf
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
Date: Mon Jul 13 18:10:05 2015 +0900
usb: gadget: udc: core: Fix argument of dma_map_single for IOMMU
The dma_map_single and dma_unmap_single should set "gadget->dev.parent"
instead of "&gadget->dev" in the first argument because the parent has
a udc controller's device pointer.
Otherwise, iommu functions are not called in ARM environment.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
Above actually means that DMA configuration code can be dropped from
usb_add_gadget_udc_release() completely. Right?:
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index 4151597..e4e70e1 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -371,12 +371,6 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
INIT_WORK(&gadget->work, usb_gadget_state_work);
gadget->dev.parent = parent;
-#ifdef CONFIG_HAS_DMA
- dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask);
- gadget->dev.dma_parms = parent->dma_parms;
- gadget->dev.dma_mask = parent->dma_mask;
-#endif
WARNING: multiple messages have this Message-ID (diff)
From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Felipe Balbi <felipe.balbi@linux.intel.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, 1 Apr 2016 14:00:43 +0300 [thread overview]
Message-ID: <56FE54DB.5000201@ti.com> (raw)
In-Reply-To: <87shz58wbw.fsf@intel.com>
On 04/01/2016 01:20 PM, Felipe Balbi wrote:
>
> Hi,
>
> Grygorii Strashko <grygorii.strashko@ti.com> writes:
>>> 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 ?
>>>
>>
>> I know (and i have patch to fix that which I'm going to send) that DMA config
>> in dwc3-keystone.c is not correct and we are good till now just
>> because dwc3_keystone is not used for DMA operations directly.
>>
>> Now about xhci and friends:
>> dwc3_keystone *is created* from DT : of_platform_device_create() -> of_platform_device_create_pdata() -> of_dma_configure()
>> |- dwc3 *is created* from DT : of_platform_device_create() -> of_platform_device_create_pdata() -> of_dma_configure()
>> |- [1] *creates* xhci dev manually : DMA configuration copied manually in dwc3_host_init()
>> |- [2] *creates* usb_gadget dev manually: DMA configuration copied manually in usb_add_gadget_udc_release()
>> |- *creates* usb_udc dev manually : not used for DMA operations directly (as I've checked)
>>
>> Now cases [1] & [2] introduces failures, because DMA configuration is not complete for
>> these devices.
>
> right, then we just copy whatever's missing, right ? Until there's a
> generic way of copying these bits, I want to avoid introducing any of_*
> specific methodologies and prefer to have the manual copy.
Sry, I've found no other way (right now) to fix it, except by using of_dma_configure()
which will do all work in DT case (including calling of arch specific callbacks).
[it might be unsafe to just copy archdata, for example, as it might(will for arm)
contain pointers]
>
>> I can confirm that if I fix [1] & [2] as above USB Device/Dual modes will start
>> working on K2E.
Above is for 4.1 kernel
>
> cool, I'd be happy to take both patches ;-)
>
ok. And seems gadget case is fixed already
commit 7ace8fc8219e4cbbfd5b4790390d9a01a2541cdf
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date: Mon Jul 13 18:10:05 2015 +0900
usb: gadget: udc: core: Fix argument of dma_map_single for IOMMU
The dma_map_single and dma_unmap_single should set "gadget->dev.parent"
instead of "&gadget->dev" in the first argument because the parent has
a udc controller's device pointer.
Otherwise, iommu functions are not called in ARM environment.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Above actually means that DMA configuration code can be dropped from
usb_add_gadget_udc_release() completely. Right?:
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index 4151597..e4e70e1 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -371,12 +371,6 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
INIT_WORK(&gadget->work, usb_gadget_state_work);
gadget->dev.parent = parent;
-#ifdef CONFIG_HAS_DMA
- dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask);
- gadget->dev.dma_parms = parent->dma_parms;
- gadget->dev.dma_mask = parent->dma_mask;
-#endif
-
if (release)
gadget->dev.release = release;
else
--
regards,
-grygorii
next prev parent reply other threads:[~2016-04-01 11:00 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
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 [this message]
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=56FE54DB.5000201@ti.com \
--to=grygorii.strashko-l0cymroini0@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
--cc=felipe.balbi-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@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.