From: David Daney <ddaney.cavm@gmail.com>
To: Himangi Saraogi <himangi774@gmail.com>
Cc: Luka Perkov <luka@openwrt.org>,
Russell King <rmk+kernel@arm.linux.org.uk>,
David Daney <david.daney@cavium.com>,
"David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Julia Lawall <julia.lawall@lip6.fr>
Subject: Re: [PATCH] netdev: octeon_mgmt: Use devm_ioremap_resource
Date: Thu, 31 Jul 2014 10:19:59 -0700 [thread overview]
Message-ID: <53DA7ABF.8000406@gmail.com> (raw)
In-Reply-To: <20140731070653.GA3759@himangi-Dell>
On 07/31/2014 12:06 AM, Himangi Saraogi wrote:
> This patch introduces the use of devm_ioremap_resource instead of
> devm_request_mem_region and devm_ioremap. The error handling on the
> platform_get_resource is done way with. The size and start fields in the
> octeon_mgmt are no longer needed. So they are removed and there
> initialization skipped. Also, error handling is added on the values
> returned by devm_ioremap_resource.
>
> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
> Acked-by: Julia Lawall <julia.lawall@lip6.fr>
> ---
> Not compile tested.
There are compilers available for systems with this device:
ftp://ftp.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.9.0/x86_64-gcc-4.9.0-nolibc_mips64-linux.tar.xz
Could you try to at least see if it compiles?
David Daney
> drivers/net/ethernet/octeon/octeon_mgmt.c | 64 +++++++------------------------
> 1 file changed, 13 insertions(+), 51 deletions(-)
>
> diff --git a/drivers/net/ethernet/octeon/octeon_mgmt.c b/drivers/net/ethernet/octeon/octeon_mgmt.c
> index 979c698..5d61a26 100644
> --- a/drivers/net/ethernet/octeon/octeon_mgmt.c
> +++ b/drivers/net/ethernet/octeon/octeon_mgmt.c
> @@ -148,12 +148,6 @@ struct octeon_mgmt {
> struct tasklet_struct tx_clean_tasklet;
> struct phy_device *phydev;
> struct device_node *phy_np;
> - resource_size_t mix_phys;
> - resource_size_t mix_size;
> - resource_size_t agl_phys;
> - resource_size_t agl_size;
> - resource_size_t agl_prt_ctl_phys;
> - resource_size_t agl_prt_ctl_size;
> };
>
> static void octeon_mgmt_set_rx_irq(struct octeon_mgmt *p, int enable)
> @@ -1418,6 +1412,7 @@ static int octeon_mgmt_probe(struct platform_device *pdev)
> struct resource *res_agl_prt_ctl;
> int len;
> int result;
> + void *ret;
>
> netdev = alloc_etherdev(sizeof(struct octeon_mgmt));
> if (netdev == NULL)
> @@ -1452,62 +1447,29 @@ static int octeon_mgmt_probe(struct platform_device *pdev)
> p->irq = result;
>
> res_mix = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - if (res_mix == NULL) {
> - dev_err(&pdev->dev, "no 'reg' resource\n");
> - result = -ENXIO;
> + ret = devm_ioremap_resource(&pdev->dev, res_mix);
> + if (IS_ERR(ret)) {
> + result = PTR_ERR(ret);
> goto err;
> }
> + p->mix = (u64)ret;
>
> res_agl = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> - if (res_agl == NULL) {
> - dev_err(&pdev->dev, "no 'reg' resource\n");
> - result = -ENXIO;
> + ret = devm_ioremap_resource(&pdev->dev, res_agl);
> + if (IS_ERR(ret)) {
> + result = PTR_ERR(ret);
> goto err;
> }
> + p->agl = (u64)ret;
>
> res_agl_prt_ctl = platform_get_resource(pdev, IORESOURCE_MEM, 3);
> - if (res_agl_prt_ctl == NULL) {
> - dev_err(&pdev->dev, "no 'reg' resource\n");
> - result = -ENXIO;
> - goto err;
> - }
> -
> - p->mix_phys = res_mix->start;
> - p->mix_size = resource_size(res_mix);
> - p->agl_phys = res_agl->start;
> - p->agl_size = resource_size(res_agl);
> - p->agl_prt_ctl_phys = res_agl_prt_ctl->start;
> - p->agl_prt_ctl_size = resource_size(res_agl_prt_ctl);
> -
> -
> - if (!devm_request_mem_region(&pdev->dev, p->mix_phys, p->mix_size,
> - res_mix->name)) {
> - dev_err(&pdev->dev, "request_mem_region (%s) failed\n",
> - res_mix->name);
> - result = -ENXIO;
> - goto err;
> - }
> -
> - if (!devm_request_mem_region(&pdev->dev, p->agl_phys, p->agl_size,
> - res_agl->name)) {
> - result = -ENXIO;
> - dev_err(&pdev->dev, "request_mem_region (%s) failed\n",
> - res_agl->name);
> - goto err;
> - }
> -
> - if (!devm_request_mem_region(&pdev->dev, p->agl_prt_ctl_phys,
> - p->agl_prt_ctl_size, res_agl_prt_ctl->name)) {
> - result = -ENXIO;
> - dev_err(&pdev->dev, "request_mem_region (%s) failed\n",
> - res_agl_prt_ctl->name);
> + ret = devm_ioremap_resource(&pdev->dev, res_agl_prt_ctl);
> + if (IS_ERR(ret)) {
> + result = PTR_ERR(ret);
> goto err;
> }
> + p->agl_prt_ctl = (u64)ret;
>
> - p->mix = (u64)devm_ioremap(&pdev->dev, p->mix_phys, p->mix_size);
> - p->agl = (u64)devm_ioremap(&pdev->dev, p->agl_phys, p->agl_size);
> - p->agl_prt_ctl = (u64)devm_ioremap(&pdev->dev, p->agl_prt_ctl_phys,
> - p->agl_prt_ctl_size);
> spin_lock_init(&p->lock);
>
> skb_queue_head_init(&p->tx_list);
>
next prev parent reply other threads:[~2014-07-31 17:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-31 7:06 [PATCH] netdev: octeon_mgmt: Use devm_ioremap_resource Himangi Saraogi
2014-07-31 17:19 ` David Daney [this message]
2014-08-04 19:38 ` David Miller
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=53DA7ABF.8000406@gmail.com \
--to=ddaney.cavm@gmail.com \
--cc=davem@davemloft.net \
--cc=david.daney@cavium.com \
--cc=himangi774@gmail.com \
--cc=julia.lawall@lip6.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=luka@openwrt.org \
--cc=netdev@vger.kernel.org \
--cc=rmk+kernel@arm.linux.org.uk \
/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.