diff mbox

pata_artop: Use ioread8.

Message ID 1460618763-1712-1-git-send-email-ysato@users.sourceforge.jp
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Yoshinori Sato April 14, 2016, 7:26 a.m. UTC
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(-)

Comments

Tejun Heo April 14, 2016, 3:45 p.m. UTC | #1
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.
Yoshinori Sato April 18, 2016, 6:33 a.m. UTC | #2
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 mbox

Patch

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;
 	}