Skip to content

Commit 0183617

Browse files
juhosghtejun
authored andcommitted
pata-rb532-cf: get rid of the irq_to_gpio() call
The RB532 platform specific irq_to_gpio() implementation has been removed with commit 832f5da ("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: 832f5da ("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> #v4.3+ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Tejun Heo <tj@kernel.org>
1 parent 287e661 commit 0183617

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

drivers/ata/pata_rb532_cf.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#include <linux/libata.h>
3333
#include <scsi/scsi_host.h>
3434

35+
#include <asm/mach-rc32434/rb.h>
36+
3537
#define DRV_NAME "pata-rb532-cf"
3638
#define DRV_VERSION "0.1.0"
3739
#define DRV_DESC "PATA driver for RouterBOARD 532 Compact Flash"
@@ -107,6 +109,7 @@ static int rb532_pata_driver_probe(struct platform_device *pdev)
107109
int gpio;
108110
struct resource *res;
109111
struct ata_host *ah;
112+
struct cf_device *pdata;
110113
struct rb532_cf_info *info;
111114
int ret;
112115

@@ -122,7 +125,13 @@ static int rb532_pata_driver_probe(struct platform_device *pdev)
122125
return -ENOENT;
123126
}
124127

125-
gpio = irq_to_gpio(irq);
128+
pdata = dev_get_platdata(&pdev->dev);
129+
if (!pdata) {
130+
dev_err(&pdev->dev, "no platform data specified\n");
131+
return -EINVAL;
132+
}
133+
134+
gpio = pdata->gpio_pin;
126135
if (gpio < 0) {
127136
dev_err(&pdev->dev, "no GPIO found for irq%d\n", irq);
128137
return -ENOENT;

0 commit comments

Comments
 (0)