Message ID | 1460618763-1712-1-git-send-email-ysato@users.sourceforge.jp |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
Hello, On Thu, Apr 14, 2016 at 04:26:03PM +0900, Yoshinori Sato wrote: > Support for non x86 targets. Being a bit more detailed would be nice. > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > --- > drivers/ata/pata_artop.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c > index 96c05c9..3731dea 100644 > --- a/drivers/ata/pata_artop.c > +++ b/drivers/ata/pata_artop.c > @@ -340,6 +340,18 @@ static void atp8xx_fixup(struct pci_dev *pdev) > } > } > > +static int is_fast(struct pci_dev *pdev) Can you please make the name a bit more descriptive? Thanks.
On Fri, 15 Apr 2016 00:45:17 +0900, Tejun Heo wrote: > > Hello, > > On Thu, Apr 14, 2016 at 04:26:03PM +0900, Yoshinori Sato wrote: > > Support for non x86 targets. > > Being a bit more detailed would be nice. > > > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > > --- > > drivers/ata/pata_artop.c | 16 +++++++++++++--- > > 1 file changed, 13 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c > > index 96c05c9..3731dea 100644 > > --- a/drivers/ata/pata_artop.c > > +++ b/drivers/ata/pata_artop.c > > @@ -340,6 +340,18 @@ static void atp8xx_fixup(struct pci_dev *pdev) > > } > > } > > > > +static int is_fast(struct pci_dev *pdev) > > Can you please make the name a bit more descriptive? > > Thanks. OK. I tried SuperH and ATP-865 system. This CPU maps PCI IO space in memory window. An address translation is needed by this CPU. But inb not address translation. So can't access register. > -- > tejun
diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c index 96c05c9..3731dea 100644 --- a/drivers/ata/pata_artop.c +++ b/drivers/ata/pata_artop.c @@ -340,6 +340,18 @@ static void atp8xx_fixup(struct pci_dev *pdev) } } +static int is_fast(struct pci_dev *pdev) +{ + int ret = 0; + void __iomem *addr; + + addr = pci_iomap(pdev, 4, 1); + if (ioread8(addr) & 0x10) + ret = 1; + pci_iounmap(pdev, addr); + + return ret; +} /** * artop_init_one - Register ARTOP ATA PCI device with kernel services * @pdev: PCI device to register @@ -398,10 +410,8 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id) else if (id->driver_data == 1) /* 6260 */ ppi[0] = &info_626x; else if (id->driver_data == 2) { /* 6280 or 6280 + fast */ - unsigned long io = pci_resource_start(pdev, 4); - ppi[0] = &info_628x; - if (inb(io) & 0x10) + if (is_fast(pdev)) ppi[0] = &info_628x_fast; }
Support for non x86 targets. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- drivers/ata/pata_artop.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)