Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1245667

Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW

Path csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!bofh.it!news.nic.it!robomod
From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW
Date Tue, 13 Oct 2015 14:30:01 +0200
Message-ID <qj6Sl-6ug-9@gated-at.bofh.it> (permalink)
References <qiN3k-2LY-27@gated-at.bofh.it> <qiNd1-2Xu-35@gated-at.bofh.it> <qj4nw-2GQ-9@gated-at.bofh.it>
X-Original-To zhangfei <zhangfei.gao@linaro.org>
User-Agent KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; )
MIME-Version 1.0
Content-Transfer-Encoding 7Bit
Content-Type text/plain; charset="us-ascii"
X-Provags-ID V03:K0:IWuMUIg13sXikPQyKnjNaHw/vWEDk3Hzlw8dz0Q2pardi2Ho9Kl PcdG2UPlwWivQfvBX2snIrJpsjAMrPFS6gOrCdJ5I1N/KpIyqfCQtWh/AY1f0pPvlG2n5rk O22c11QYdd67eIvG1QHin5joim7pMN/MUXHoXxGRG2BtdfhS8neJqlv1mnNVONPwyf7rSP6 ACWPfiINAEZmFQzU0zxbg==
X-Ui-Out-Filterresults notjunk:1;V01:K0:kdlrCkDWgoE=:I/SDDqeebeNvyKdEuiqNqq wqv25IYRKNvaXscxntlDCyuetY7SXPBKXKBbXW5Tj+hY2fYVw5JU1Li6ZduJpRf/0h3biZlkt TSWN/WsJv6KCCBTsHGMVxrWrrAAf5J65hDbUdk51iCGRf4YZwQF+fnrLG1aZtkgMbL2m0Eh8F 771929VX3CbZRBFSRvKC12i0rRtfW9vQoOXf7UeD0E6oTD1KjBcNZl9f03gi/c6RfgC0tmYad b3ytMI5ritkikvGzPtpUfsZloOHjVeLKgq4hCI1uEmmXg3Xm5lK2HrcVAqO0/LSZ/wFPx2dTh rNEQOI3BpoyOD4NMvGbTIxsAGGyjHRM4p9JE1JjOOwxS2sUCXoxRtcID76pvxjzv8zZtnLFxJ Mb4UPaRYMVwAKV+JwuJwQMeNHrVQVPdDAEWTTI6RhIE3UrQMLVW9l9AfHNe26VSIeHmuNQnJ6 Rp9+Frjpr7w+Sv7SbpsBbWXR8CSphVd2wT0pVCQPZBWLG7Z7y8YgRQJpY63uunj47ultzOB/9 i+Gsneeui81u6SJhsnVODlb+IqpRZ4MKOx18lNIv7NMzmjXMyQ8QHYpL9iaRnGMeMp9kxupMI vFutZ8UHAHgpKNsiAPYnLixD2dbE6hly2TcAc0DXtbCvQmUGsvIG8eWEzXDSA4sQjxfzco7aY y9/8rTLD8JXx7f95WRj92pjecz94+aWiCpBU6ck2ktfY3NPMRNqD97N5mN+EHJjD/6duHZhR6 7tDFwbUA3ruHAM5m
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 58
Organization linux.* mail to news gateway
X-Original-Cc John Garry <john.garry@huawei.com>, James.Bottomley@hansenpartnership.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linuxarm@huawei.com, linux-scsi@vger.kernel.org, xuwei5@hisilicon.com, john.garry2@mail.dcu.ie, hare@suse.de
X-Original-Date Tue, 13 Oct 2015 14:20:59 +0200
X-Original-Message-ID <5074860.NRYCq0Qjjh@wuerfel>
X-Original-References <1444663237-238302-1-git-send-email-john.garry@huawei.com> <5285087.C8umupFr76@wuerfel> <561CD316.6040406@linaro.org>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1245667

Show key headers only | View raw


On Tuesday 13 October 2015 17:47:02 zhangfei wrote:
> On 10/12/2015 11:21 PM, Arnd Bergmann wrote:
> > On Monday 12 October 2015 23:20:19 John Garry wrote:
> >> +int hisi_sas_ioremap(struct hisi_hba *hisi_hba)
> >> +{
> >> +       struct platform_device *pdev = hisi_hba->pdev;
> >> +       struct device *dev = &pdev->dev;
> >> +       struct resource *res;
> >> +
> >> +       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >> +       hisi_hba->regs = devm_ioremap(dev,
> >> +                                     res->start,
> >> +                                     resource_size(res));
> >> +       if (!hisi_hba->regs)
> >> +               return -ENOMEM;
> >> +
> >> +       res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> >> +       hisi_hba->ctrl_regs = devm_ioremap(dev,
> >> +                                          res->start,
> >> +                                          resource_size(res));
> >> +       if (!hisi_hba->ctrl_regs)
> >> +               return -ENOMEM;
> >> +
> >> +       return 0;
> >> +}
> >>
> >>   static const struct of_device_id sas_of_match[] = {
> >>
> >
> > Better use devm_ioremap_resource() here, which registers the resource so they
> > are checked for conflicts and listed in /proc/iomem.
> >
> 
> Yes, hisi_hba->regs can use devm_ioremap_resource.
> 
> However ctrl_regs have to use devm_ioremap, since the address are 
> sharing among different nodes, unfortunately, and devm_ioremap_resource 
> will fail.

This sounds like it should be fixed in the DT binding then, to ensure
that the ranges don't overlap.

Mapping the same register region multiple times is generally considered
a bad idea because the drivers that map them often don't have global
locks that serialize the access, so it's better to have code in place
that ensures that they are distinct.

What is the purpose of the ctrl_regs region, and why is it shared
across multiple devices?

Are all users of these registers in the same driver?

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW Arnd Bergmann <arnd@arndb.de> - 2015-10-12 17:30 +0200
  Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW zhangfei <zhangfei.gao@linaro.org> - 2015-10-13 11:50 +0200
    Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW Arnd Bergmann <arnd@arndb.de> - 2015-10-13 14:30 +0200
      Re: [PATCH 07/25] scsi: hisi_sas: add ioremap for device HW zhangfei <zhangfei.gao@linaro.org> - 2015-10-13 17:10 +0200

csiph-web