From: Thierry Reding <thierry.reding@gmail.com>
To: Vivek Gautam <gautam.vivek@samsung.com>
Cc: Linux USB Mailing List <linux-usb@vger.kernel.org>,
"linux-samsung-soc@vger.kernel.org"
<linux-samsung-soc@vger.kernel.org>,
linux-tegra <linux-tegra@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Greg KH <gregkh@linuxfoundation.org>,
Alan Stern <stern@rowland.harvard.edu>,
Stephen Warren <swarren@wwwdotorg.org>,
Kukjin Kim <kgene.kim@samsung.com>,
Alexander Shiyan <shc_work@mail.ru>
Subject: Re: [PATCH v2 6/6] usb: host: ohci-exynos: Use devm_ioremap_resource instead of devm_ioremap
Date: Sat, 7 Jun 2014 00:52:48 +0200 [thread overview]
Message-ID: <20140606225246.GB22188@mithrandir> (raw)
In-Reply-To: <CAFp+6iEe8fvxboG79=2s=oe4BkQJYAoVUPtYkPdjJHCe+bC=8Q@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2769 bytes --]
On Fri, Jun 06, 2014 at 06:32:42PM +0530, Vivek Gautam wrote:
> On Wed, Jun 4, 2014 at 6:43 PM, Thierry Reding <thierry.reding@gmail.com> wrote:
> > On Wed, Jun 04, 2014 at 03:41:20PM +0530, Vivek Gautam wrote:
> >> On Sat, May 10, 2014 at 5:30 PM, Vivek Gautam <gautam.vivek@samsung.com> wrote:
[...]
> >> > diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
> >> > index 9cf80cb..dec691d 100644
> >> > --- a/drivers/usb/host/ohci-exynos.c
> >> > +++ b/drivers/usb/host/ohci-exynos.c
> >> > @@ -120,10 +120,9 @@ skip_phy:
> >> >
> >> > hcd->rsrc_start = res->start;
> >> > hcd->rsrc_len = resource_size(res);
> >> > - hcd->regs = devm_ioremap(&pdev->dev, res->start, hcd->rsrc_len);
> >> > - if (!hcd->regs) {
> >> > - dev_err(&pdev->dev, "Failed to remap I/O memory\n");
> >> > - err = -ENOMEM;
> >> > + hcd->regs = devm_ioremap_resource(&pdev->dev, res);
> >>
> >> Here, we replaced devm_ioremap() call with devm_ioremap_resource(),
> >> which internally requests the memory region
> >
> > I guess this could lead to problems if drivers haven't been written to
> > cleanly split the register ranges that they access, since now two
> > overlapping regions may be requested and cause the drivers to fail.
>
> Sorry i did not understand completely. Wouldn't the request_mem_region()
> fail for an already busy resource ?
> So devm_ioremap_resource() will in fact prevent the drivers from requesting
> the same memory region twice until the first request frees the region.
> Isn't it ?
Yes exactly. What I was trying to say is that since drivers weren't
requesting the resources before they may be using overlapping regions.
Now that this patch changes these drivers to also request the resources
they will fail if the regions overlap with those of other drivers.
> >> and then does a "devm_ioremap()" or "devm_ioremap_nocache()" based on
> >> the check for IORESOURCE_CACHEABLE flag.
> >>
> >> But this flag is not set for the resource of this device.
> >> So should we be explicitly setting the flag in driver ?
> >
> > I don't think it makes much sense to map these registers cached anyway.
> > Drivers will likely expect writes to this region to take effect without
> > needing any kind of flushing.
>
> These "hcd->regs" are going to be used by the controller, so wouldn't
> there be a performance difference when the requested address space is
> cacheable/non-cacheable ?
The issue here is that if the region is mapped cacheable then register
writes may not immediately take effect and that's almost certainly not
what the driver will expect. I don't think it ever makes sense to map
registers cacheable.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-06-06 22:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-10 12:00 [PATCH v2 0/6] usb: host: Cleanup for ioremap'ing hcd memory Vivek Gautam
2014-05-10 12:00 ` [PATCH v2 1/6] usb: host: ehci-exynos: Use devm_ioremap_resource instead of devm_ioremap Vivek Gautam
2014-05-10 12:00 ` [PATCH v2 2/6] usb: host: ehci-msm: " Vivek Gautam
2014-05-10 12:00 ` [PATCH v2 3/6] usb: host: ehci-mv: " Vivek Gautam
2014-05-10 12:00 ` [PATCH v2 4/6] usb: host: ehci-spear: " Vivek Gautam
2014-05-10 12:00 ` [PATCH v2 5/6] usb: host: ehci-tegra: " Vivek Gautam
2014-05-12 16:58 ` Stephen Warren
2014-05-10 12:00 ` [PATCH v2 6/6] usb: host: ohci-exynos: " Vivek Gautam
2014-06-04 10:11 ` Vivek Gautam
2014-06-04 13:13 ` Thierry Reding
2014-06-06 13:02 ` Vivek Gautam
2014-06-06 22:52 ` Thierry Reding [this message]
2014-06-24 5:49 ` Vivek Gautam
2014-05-10 14:25 ` [PATCH v2 0/6] usb: host: Cleanup for ioremap'ing hcd memory Alexander Shiyan
2014-05-11 14:45 ` Vivek Gautam
2014-05-12 14:08 ` Alan Stern
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=20140606225246.GB22188@mithrandir \
--to=thierry.reding@gmail.com \
--cc=gautam.vivek@samsung.com \
--cc=gregkh@linuxfoundation.org \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=shc_work@mail.ru \
--cc=stern@rowland.harvard.edu \
--cc=swarren@wwwdotorg.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox