diff mbox

pata-rb532-cf: get rid of the irq_to_gpio() call

Message ID 1455710300-30920-1-git-send-email-juhosg@openwrt.org
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Gabor Juhos Feb. 17, 2016, 11:58 a.m. UTC
The RB532 platform specific irq_to_gpio() implementation has been
removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of
custom gpio.h"). Now the platform uses the generic stub which causes
the following error:

  pata-rb532-cf pata-rb532-cf: no GPIO found for irq149
  pata-rb532-cf: probe of pata-rb532-cf failed with error -2

Drop the irq_to_gpio() call and get the GPIO number from platform
data instead. After this change, the driver works again:

  scsi host0: pata-rb532-cf
  ata1: PATA max PIO4 irq 149
  ata1.00: CFA: CF 1GB, 20080820, max MWDMA4
  ata1.00: 1989792 sectors, multi 0: LBA
  ata1.00: configured for PIO4
  scsi 0:0:0:0: Direct-Access     ATA      CF 1GB           0820 PQ: 0\
  ANSI: 5
  sd 0:0:0:0: [sda] 1989792 512-byte logical blocks: (1.01 GB/971 MiB)
  sd 0:0:0:0: [sda] Write Protect is off
  sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't\
  support DPO or FUA
   sda: sda1 sda2
  sd 0:0:0:0: [sda] Attached SCSI disk

Fixes: 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h")
Cc: Alban Bedel <albeu@free.fr>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
 drivers/ata/pata_rb532_cf.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Alban Feb. 17, 2016, 12:40 p.m. UTC | #1
On Wed, 17 Feb 2016 12:58:20 +0100
Gabor Juhos <juhosg@openwrt.org> wrote:

> The RB532 platform specific irq_to_gpio() implementation has been
> removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of
> custom gpio.h"). Now the platform uses the generic stub which causes
> the following error:
> 
>   pata-rb532-cf pata-rb532-cf: no GPIO found for irq149
>   pata-rb532-cf: probe of pata-rb532-cf failed with error -2
> 
> Drop the irq_to_gpio() call and get the GPIO number from platform
> data instead. After this change, the driver works again:

I think it would be preferable to move this driver to use the gpiod
API. The changes needed should be about the same size and it would
be a much more future proof fix.

Alban
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gabor Juhos Feb. 18, 2016, 10:05 a.m. UTC | #2
Hi Alban,

> On Wed, 17 Feb 2016 12:58:20 +0100
> Gabor Juhos <juhosg@openwrt.org> wrote:
> 
>> The RB532 platform specific irq_to_gpio() implementation has been
>> removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of
>> custom gpio.h"). Now the platform uses the generic stub which causes
>> the following error:
>>
>>   pata-rb532-cf pata-rb532-cf: no GPIO found for irq149
>>   pata-rb532-cf: probe of pata-rb532-cf failed with error -2
>>
>> Drop the irq_to_gpio() call and get the GPIO number from platform
>> data instead. After this change, the driver works again:
> 
> I think it would be preferable to move this driver to use the gpiod
> API. The changes needed should be about the same size and it would
> be a much more future proof fix.

The sole purpose of this patch is that to fix the breakage introduced in
832f5dacfa0b. Before that change, the driver was working without using the gpiod
API, and it is working again after this change.

Converting the driver to use the gpiod API needs more changes. Even if that is
preferable it should be implemented in separate patch(es) in my opinion.

-Gabor
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tejun Heo Feb. 18, 2016, 4:28 p.m. UTC | #3
On Wed, Feb 17, 2016 at 12:58:20PM +0100, Gabor Juhos wrote:
> The RB532 platform specific irq_to_gpio() implementation has been
> removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of
> custom gpio.h"). Now the platform uses the generic stub which causes
> the following error:

Applied to libata/for-4.5-fixes.  As for the gpiod API conversion,
please do that in separate patches.

Thanks.
Arnd Bergmann Feb. 18, 2016, 4:46 p.m. UTC | #4
On Wednesday 17 February 2016 12:58:20 Gabor Juhos wrote:
> The RB532 platform specific irq_to_gpio() implementation has been
> removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of
> custom gpio.h"). Now the platform uses the generic stub which causes
> the following error:
> 
>   pata-rb532-cf pata-rb532-cf: no GPIO found for irq149
>   pata-rb532-cf: probe of pata-rb532-cf failed with error -2
> 
> Drop the irq_to_gpio() call and get the GPIO number from platform
> data instead. After this change, the driver works again:
> 
>   scsi host0: pata-rb532-cf
>   ata1: PATA max PIO4 irq 149
>   ata1.00: CFA: CF 1GB, 20080820, max MWDMA4
>   ata1.00: 1989792 sectors, multi 0: LBA
>   ata1.00: configured for PIO4
>   scsi 0:0:0:0: Direct-Access     ATA      CF 1GB           0820 PQ: 0\
>   ANSI: 5
>   sd 0:0:0:0: [sda] 1989792 512-byte logical blocks: (1.01 GB/971 MiB)
>   sd 0:0:0:0: [sda] Write Protect is off
>   sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't\
>   support DPO or FUA
>    sda: sda1 sda2
>   sd 0:0:0:0: [sda] Attached SCSI disk
> 
> Fixes: 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h")
> Cc: Alban Bedel <albeu@free.fr>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

Acked-by: Arnd Bergmann <arnd@arndb.de>

The patch looks good, but I now saw that drivers/pcmcia/db1xxx_ss.c
must have been broken by the same patch as this one, and it probably
needs a similar fix.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c
index 12fe0f3..c8b6a78 100644
--- a/drivers/ata/pata_rb532_cf.c
+++ b/drivers/ata/pata_rb532_cf.c
@@ -32,6 +32,8 @@ 
 #include <linux/libata.h>
 #include <scsi/scsi_host.h>
 
+#include <asm/mach-rc32434/rb.h>
+
 #define DRV_NAME	"pata-rb532-cf"
 #define DRV_VERSION	"0.1.0"
 #define DRV_DESC	"PATA driver for RouterBOARD 532 Compact Flash"
@@ -107,6 +109,7 @@  static int rb532_pata_driver_probe(struct platform_device *pdev)
 	int gpio;
 	struct resource *res;
 	struct ata_host *ah;
+	struct cf_device *pdata;
 	struct rb532_cf_info *info;
 	int ret;
 
@@ -122,7 +125,13 @@  static int rb532_pata_driver_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
-	gpio = irq_to_gpio(irq);
+	pdata = dev_get_platdata(&pdev->dev);
+	if (!pdata) {
+		dev_err(&pdev->dev, "no platform data specified\n");
+		return -EINVAL;
+	}
+
+	gpio = pdata->gpio_pin;
 	if (gpio < 0) {
 		dev_err(&pdev->dev, "no GPIO found for irq%d\n", irq);
 		return -ENOENT;