* [PATCH v5 0/3] usb: ohci-at91: various improvements
@ 2013-12-09 8:51 Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource Boris BREZILLON
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Boris BREZILLON @ 2013-12-09 8:51 UTC (permalink / raw)
To: linux-arm-kernel
Hello,
This patch series moves the different driver resources (clks and iomem)
retrieval to the device managed versions (devm_ functions).
Best Regards,
Boris
Changes since v4:
- remove unneeded debug trace in case devm_ioremap_resource fails
(an error message is already printed within this function)
Changes since v3:
- replace devm_request_and_ioremap call by devm_ioremap_resource
Changes since v2:
- split urgent fix and resource retrieval improvements
Boris BREZILLON (3):
usb: ohci-at91: replace request_mem_region + ioremap by
devm_ioremap_resource
usb: ohci-at91: use dev variable instead of &pdev->dev
usb: ohci-at91: use device managed clk retrieval
drivers/usb/host/ohci-at91.c | 67 ++++++++++++------------------------------
1 file changed, 18 insertions(+), 49 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource
2013-12-09 8:51 [PATCH v5 0/3] usb: ohci-at91: various improvements Boris BREZILLON
@ 2013-12-09 8:51 ` Boris BREZILLON
2014-01-06 18:08 ` Olof Johansson
2013-12-09 8:51 ` [PATCH v5 2/3] usb: ohci-at91: use dev variable instead of &pdev->dev Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 3/3] usb: ohci-at91: use device managed clk retrieval Boris BREZILLON
2 siblings, 1 reply; 6+ messages in thread
From: Boris BREZILLON @ 2013-12-09 8:51 UTC (permalink / raw)
To: linux-arm-kernel
Replace the request_mem_region + ioremap calls by the
devm_ioremap_resource call which does the same things but with device
managed resources.
Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
---
drivers/usb/host/ohci-at91.c | 27 ++++++---------------------
1 file changed, 6 insertions(+), 21 deletions(-)
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index 8c356af..9dc50f8 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -158,24 +158,17 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
hcd->rsrc_start = res->start;
hcd->rsrc_len = resource_size(res);
- if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
- pr_debug("request_mem_region failed\n");
- retval = -EBUSY;
- goto err1;
- }
-
- hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
- if (!hcd->regs) {
- pr_debug("ioremap failed\n");
- retval = -EIO;
- goto err2;
+ hcd->regs = devm_ioremap_resource(dev, res);
+ if (IS_ERR(hcd->regs)) {
+ retval = PTR_ERR(hcd->regs);
+ goto err;
}
iclk = clk_get(&pdev->dev, "ohci_clk");
if (IS_ERR(iclk)) {
dev_err(&pdev->dev, "failed to get ohci_clk\n");
retval = PTR_ERR(iclk);
- goto err3;
+ goto err;
}
fclk = clk_get(&pdev->dev, "uhpck");
if (IS_ERR(fclk)) {
@@ -219,13 +212,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
err4:
clk_put(iclk);
- err3:
- iounmap(hcd->regs);
-
- err2:
- release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
-
- err1:
+ err:
usb_put_hcd(hcd);
return retval;
}
@@ -248,8 +235,6 @@ static void usb_hcd_at91_remove(struct usb_hcd *hcd,
{
usb_remove_hcd(hcd);
at91_stop_hc(pdev);
- iounmap(hcd->regs);
- release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
usb_put_hcd(hcd);
if (IS_ENABLED(CONFIG_COMMON_CLK))
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 2/3] usb: ohci-at91: use dev variable instead of &pdev->dev
2013-12-09 8:51 [PATCH v5 0/3] usb: ohci-at91: various improvements Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource Boris BREZILLON
@ 2013-12-09 8:51 ` Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 3/3] usb: ohci-at91: use device managed clk retrieval Boris BREZILLON
2 siblings, 0 replies; 6+ messages in thread
From: Boris BREZILLON @ 2013-12-09 8:51 UTC (permalink / raw)
To: linux-arm-kernel
Make use of the dev variable instead of referencing the dev field of the
pdev struct.
Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
---
drivers/usb/host/ohci-at91.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index 9dc50f8..8c0c4a4 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -152,7 +152,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
return irq;
}
- hcd = usb_create_hcd(driver, &pdev->dev, "at91");
+ hcd = usb_create_hcd(driver, dev, "at91");
if (!hcd)
return -ENOMEM;
hcd->rsrc_start = res->start;
@@ -164,28 +164,28 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
goto err;
}
- iclk = clk_get(&pdev->dev, "ohci_clk");
+ iclk = clk_get(dev, "ohci_clk");
if (IS_ERR(iclk)) {
- dev_err(&pdev->dev, "failed to get ohci_clk\n");
+ dev_err(dev, "failed to get ohci_clk\n");
retval = PTR_ERR(iclk);
goto err;
}
- fclk = clk_get(&pdev->dev, "uhpck");
+ fclk = clk_get(dev, "uhpck");
if (IS_ERR(fclk)) {
- dev_err(&pdev->dev, "failed to get uhpck\n");
+ dev_err(dev, "failed to get uhpck\n");
retval = PTR_ERR(fclk);
goto err4;
}
- hclk = clk_get(&pdev->dev, "hclk");
+ hclk = clk_get(dev, "hclk");
if (IS_ERR(hclk)) {
- dev_err(&pdev->dev, "failed to get hclk\n");
+ dev_err(dev, "failed to get hclk\n");
retval = PTR_ERR(hclk);
goto err5;
}
if (IS_ENABLED(CONFIG_COMMON_CLK)) {
- uclk = clk_get(&pdev->dev, "usb_clk");
+ uclk = clk_get(dev, "usb_clk");
if (IS_ERR(uclk)) {
- dev_err(&pdev->dev, "failed to get uclk\n");
+ dev_err(dev, "failed to get uclk\n");
retval = PTR_ERR(uclk);
goto err6;
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 3/3] usb: ohci-at91: use device managed clk retrieval
2013-12-09 8:51 [PATCH v5 0/3] usb: ohci-at91: various improvements Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 2/3] usb: ohci-at91: use dev variable instead of &pdev->dev Boris BREZILLON
@ 2013-12-09 8:51 ` Boris BREZILLON
2 siblings, 0 replies; 6+ messages in thread
From: Boris BREZILLON @ 2013-12-09 8:51 UTC (permalink / raw)
To: linux-arm-kernel
Replace clk_get calls by devm_clk_get calls.
Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
---
drivers/usb/host/ohci-at91.c | 30 +++++++-----------------------
1 file changed, 7 insertions(+), 23 deletions(-)
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index 8c0c4a4..9aa485e 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -164,30 +164,30 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
goto err;
}
- iclk = clk_get(dev, "ohci_clk");
+ iclk = devm_clk_get(dev, "ohci_clk");
if (IS_ERR(iclk)) {
dev_err(dev, "failed to get ohci_clk\n");
retval = PTR_ERR(iclk);
goto err;
}
- fclk = clk_get(dev, "uhpck");
+ fclk = devm_clk_get(dev, "uhpck");
if (IS_ERR(fclk)) {
dev_err(dev, "failed to get uhpck\n");
retval = PTR_ERR(fclk);
- goto err4;
+ goto err;
}
- hclk = clk_get(dev, "hclk");
+ hclk = devm_clk_get(dev, "hclk");
if (IS_ERR(hclk)) {
dev_err(dev, "failed to get hclk\n");
retval = PTR_ERR(hclk);
- goto err5;
+ goto err;
}
if (IS_ENABLED(CONFIG_COMMON_CLK)) {
- uclk = clk_get(dev, "usb_clk");
+ uclk = devm_clk_get(dev, "usb_clk");
if (IS_ERR(uclk)) {
dev_err(dev, "failed to get uclk\n");
retval = PTR_ERR(uclk);
- goto err6;
+ goto err;
}
}
@@ -203,15 +203,6 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
/* Error handling */
at91_stop_hc(pdev);
- if (IS_ENABLED(CONFIG_COMMON_CLK))
- clk_put(uclk);
- err6:
- clk_put(hclk);
- err5:
- clk_put(fclk);
- err4:
- clk_put(iclk);
-
err:
usb_put_hcd(hcd);
return retval;
@@ -236,13 +227,6 @@ static void usb_hcd_at91_remove(struct usb_hcd *hcd,
usb_remove_hcd(hcd);
at91_stop_hc(pdev);
usb_put_hcd(hcd);
-
- if (IS_ENABLED(CONFIG_COMMON_CLK))
- clk_put(uclk);
- clk_put(hclk);
- clk_put(fclk);
- clk_put(iclk);
- fclk = iclk = hclk = NULL;
}
/*-------------------------------------------------------------------------*/
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource
2013-12-09 8:51 ` [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource Boris BREZILLON
@ 2014-01-06 18:08 ` Olof Johansson
2014-01-06 18:51 ` boris brezillon
0 siblings, 1 reply; 6+ messages in thread
From: Olof Johansson @ 2014-01-06 18:08 UTC (permalink / raw)
To: linux-arm-kernel
Boris,
On Mon, Dec 9, 2013 at 12:51 AM, Boris BREZILLON
<b.brezillon@overkiz.com> wrote:
> Replace the request_mem_region + ioremap calls by the
> devm_ioremap_resource call which does the same things but with device
> managed resources.
>
> Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Did you build these patches? There's several breakages due to them in
last night's next. I'm a little puzzled how they passed testing before
you submitted?
This one fails with:
drivers/usb/host/ohci-at91.c: In function 'usb_hcd_at91_probe':
drivers/usb/host/ohci-at91.c:157:36: error: 'dev' undeclared (first
use in this function)
hcd->regs = devm_ioremap_resource(dev, res);
^
drivers/usb/host/ohci-at91.c:157:36: note: each undeclared identifier
is reported only once for each function it appears in
drivers/usb/host/ohci-at91.c:157:41: error: 'res' undeclared (first
use in this function)
hcd->regs = devm_ioremap_resource(dev, res);
There are more too, the original one I was bisecting for was the below
one, but the above hit first:
drivers/usb/host/ohci-at91.c: In function 'usb_hcd_at91_probe':
drivers/usb/host/ohci-at91.c:190:4: error: label 'err' used but not defined
drivers/usb/host/ohci-at91.c: At top level:
drivers/usb/host/ohci-at91.c:206:2: warning: data definition has no
type or storage class [enabled by default]
drivers/usb/host/ohci-at91.c:206:2: error: type defaults to 'int' in
declaration of 'at91_stop_hc' [-Werror=implicit-int]
drivers/usb/host/ohci-at91.c:206:2: warning: parameter names (without
types) in function declaration [enabled by default]
drivers/usb/host/ohci-at91.c:206:2: error: conflicting types for 'at91_stop_hc'
drivers/usb/host/ohci-at91.c:97:13: note: previous definition of
'at91_stop_hc' was here
drivers/usb/host/ohci-at91.c:208:5: error: expected '=', ',', ';',
'asm' or '__attribute__' before ':' token
drivers/usb/host/ohci-at91.c:210:2: error: expected identifier or '('
before 'return'
drivers/usb/host/ohci-at91.c:211:1: error: expected identifier or '('
before '}' token
drivers/usb/host/ohci-at91.c:97:13: warning: 'at91_stop_hc' defined
but not used [-Wunused-function]
static void at91_stop_hc(struct platform_device *pdev)
Somewhat spectacular. Greg, can you please drop these until he's
sorted out his submission? :(
-Olof
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource
2014-01-06 18:08 ` Olof Johansson
@ 2014-01-06 18:51 ` boris brezillon
0 siblings, 0 replies; 6+ messages in thread
From: boris brezillon @ 2014-01-06 18:51 UTC (permalink / raw)
To: linux-arm-kernel
Hello Olof,
On 06/01/2014 19:08, Olof Johansson wrote:
> Boris,
>
> On Mon, Dec 9, 2013 at 12:51 AM, Boris BREZILLON
> <b.brezillon@overkiz.com> wrote:
>> Replace the request_mem_region + ioremap calls by the
>> devm_ioremap_resource call which does the same things but with device
>> managed resources.
>>
>> Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
>> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
>> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> Did you build these patches?
Yes, I did.
> There's several breakages due to them in
> last night's next. I'm a little puzzled how they passed testing before
> you submitted?
> This one fails with:
>
> drivers/usb/host/ohci-at91.c: In function 'usb_hcd_at91_probe':
> drivers/usb/host/ohci-at91.c:157:36: error: 'dev' undeclared (first
> use in this function)
> hcd->regs = devm_ioremap_resource(dev, res);
> ^
> drivers/usb/host/ohci-at91.c:157:36: note: each undeclared identifier
> is reported only once for each function it appears in
> drivers/usb/host/ohci-at91.c:157:41: error: 'res' undeclared (first
> use in this function)
> hcd->regs = devm_ioremap_resource(dev, res);
Actually this patch series depends on another patch :
"usb: ohci-at91: fix irq and iomem resource retrieval"
commit fb5f1834c3221e459324c6885eaad75429f722a5.
This patch was taken out to ease integration in 3.13-rc5.
Sorry, I should have stated it in my cover letter.
Which next are you using ?
I took a look at linux-next and the dev variable is declared.
> There are more too, the original one I was bisecting for was the below
> one, but the above hit first:
>
> drivers/usb/host/ohci-at91.c: In function 'usb_hcd_at91_probe':
> drivers/usb/host/ohci-at91.c:190:4: error: label 'err' used but not defined
> drivers/usb/host/ohci-at91.c: At top level:
> drivers/usb/host/ohci-at91.c:206:2: warning: data definition has no
> type or storage class [enabled by default]
> drivers/usb/host/ohci-at91.c:206:2: error: type defaults to 'int' in
> declaration of 'at91_stop_hc' [-Werror=implicit-int]
> drivers/usb/host/ohci-at91.c:206:2: warning: parameter names (without
> types) in function declaration [enabled by default]
> drivers/usb/host/ohci-at91.c:206:2: error: conflicting types for 'at91_stop_hc'
> drivers/usb/host/ohci-at91.c:97:13: note: previous definition of
> 'at91_stop_hc' was here
> drivers/usb/host/ohci-at91.c:208:5: error: expected '=', ',', ';',
> 'asm' or '__attribute__' before ':' token
> drivers/usb/host/ohci-at91.c:210:2: error: expected identifier or '('
> before 'return'
> drivers/usb/host/ohci-at91.c:211:1: error: expected identifier or '('
> before '}' token
> drivers/usb/host/ohci-at91.c:97:13: warning: 'at91_stop_hc' defined
> but not used [-Wunused-function]
> static void at91_stop_hc(struct platform_device *pdev)
These errors come from merge commit
99f14bd4d1b2a1b1b6cd508e08efdbc5e3919198.
There is a missing brace on the last retval test.
Best Regards,
Boris
> Somewhat spectacular. Greg, can you please drop these until he's
> sorted out his submission? :(
>
>
> -Olof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-01-06 18:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-09 8:51 [PATCH v5 0/3] usb: ohci-at91: various improvements Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 1/3] usb: ohci-at91: replace request_mem_region + ioremap by devm_ioremap_resource Boris BREZILLON
2014-01-06 18:08 ` Olof Johansson
2014-01-06 18:51 ` boris brezillon
2013-12-09 8:51 ` [PATCH v5 2/3] usb: ohci-at91: use dev variable instead of &pdev->dev Boris BREZILLON
2013-12-09 8:51 ` [PATCH v5 3/3] usb: ohci-at91: use device managed clk retrieval Boris BREZILLON
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).