diff options
| author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-07 08:45:11 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@armlinux.org.uk> | 2017-10-03 08:24:11 -0400 |
| commit | 7170a3124ccbc929d0716a77b76b994bb082a3cd (patch) | |
| tree | ae36124bba19b5786103d38a088ccb6fc3b22004 | |
| parent | 2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e (diff) | |
pcmcia: sa1111: use sa1111_get_irq() to obtain IRQ resources
Use the newly provided sa1111_get_irq() to fetch the IRQ resources for
the SA1111 PCMCIA driver.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
| -rw-r--r-- | drivers/pcmcia/sa1111_generic.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c index 3d95dffcff7a..da3ddf7769f0 100644 --- a/drivers/pcmcia/sa1111_generic.c +++ b/drivers/pcmcia/sa1111_generic.c | |||
| @@ -63,6 +63,7 @@ | |||
| 63 | #define IDX_IRQ_S1_READY_NINT (3) | 63 | #define IDX_IRQ_S1_READY_NINT (3) |
| 64 | #define IDX_IRQ_S1_CD_VALID (4) | 64 | #define IDX_IRQ_S1_CD_VALID (4) |
| 65 | #define IDX_IRQ_S1_BVD1_STSCHG (5) | 65 | #define IDX_IRQ_S1_BVD1_STSCHG (5) |
| 66 | #define NUM_IRQS (6) | ||
| 66 | 67 | ||
| 67 | void sa1111_pcmcia_socket_state(struct soc_pcmcia_socket *skt, struct pcmcia_state *state) | 68 | void sa1111_pcmcia_socket_state(struct soc_pcmcia_socket *skt, struct pcmcia_state *state) |
| 68 | { | 69 | { |
| @@ -137,12 +138,18 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops, | |||
| 137 | { | 138 | { |
| 138 | struct sa1111_pcmcia_socket *s; | 139 | struct sa1111_pcmcia_socket *s; |
| 139 | struct clk *clk; | 140 | struct clk *clk; |
| 140 | int i, ret = 0; | 141 | int i, ret = 0, irqs[NUM_IRQS]; |
| 141 | 142 | ||
| 142 | clk = devm_clk_get(&dev->dev, NULL); | 143 | clk = devm_clk_get(&dev->dev, NULL); |
| 143 | if (IS_ERR(clk)) | 144 | if (IS_ERR(clk)) |
| 144 | return PTR_ERR(clk); | 145 | return PTR_ERR(clk); |
| 145 | 146 | ||
| 147 | for (i = 0; i < NUM_IRQS; i++) { | ||
| 148 | irqs[i] = sa1111_get_irq(dev, i); | ||
| 149 | if (irqs[i] <= 0) | ||
| 150 | return irqs[i] ? : -ENXIO; | ||
| 151 | } | ||
| 152 | |||
| 146 | ops->socket_state = sa1111_pcmcia_socket_state; | 153 | ops->socket_state = sa1111_pcmcia_socket_state; |
| 147 | 154 | ||
| 148 | for (i = 0; i < ops->nr; i++) { | 155 | for (i = 0; i < ops->nr; i++) { |
| @@ -156,16 +163,16 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops, | |||
| 156 | soc_pcmcia_init_one(&s->soc, ops, &dev->dev); | 163 | soc_pcmcia_init_one(&s->soc, ops, &dev->dev); |
| 157 | s->dev = dev; | 164 | s->dev = dev; |
| 158 | if (s->soc.nr) { | 165 | if (s->soc.nr) { |
| 159 | s->soc.socket.pci_irq = dev->irq[IDX_IRQ_S1_READY_NINT]; | 166 | s->soc.socket.pci_irq = irqs[IDX_IRQ_S1_READY_NINT]; |
| 160 | s->soc.stat[SOC_STAT_CD].irq = dev->irq[IDX_IRQ_S1_CD_VALID]; | 167 | s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S1_CD_VALID]; |
| 161 | s->soc.stat[SOC_STAT_CD].name = "SA1111 CF card detect"; | 168 | s->soc.stat[SOC_STAT_CD].name = "SA1111 CF card detect"; |
| 162 | s->soc.stat[SOC_STAT_BVD1].irq = dev->irq[IDX_IRQ_S1_BVD1_STSCHG]; | 169 | s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S1_BVD1_STSCHG]; |
| 163 | s->soc.stat[SOC_STAT_BVD1].name = "SA1111 CF BVD1"; | 170 | s->soc.stat[SOC_STAT_BVD1].name = "SA1111 CF BVD1"; |
| 164 | } else { | 171 | } else { |
| 165 | s->soc.socket.pci_irq = dev->irq[IDX_IRQ_S0_READY_NINT]; | 172 | s->soc.socket.pci_irq = irqs[IDX_IRQ_S0_READY_NINT]; |
| 166 | s->soc.stat[SOC_STAT_CD].irq = dev->irq[IDX_IRQ_S0_CD_VALID]; | 173 | s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S0_CD_VALID]; |
| 167 | s->soc.stat[SOC_STAT_CD].name = "SA1111 PCMCIA card detect"; | 174 | s->soc.stat[SOC_STAT_CD].name = "SA1111 PCMCIA card detect"; |
| 168 | s->soc.stat[SOC_STAT_BVD1].irq = dev->irq[IDX_IRQ_S0_BVD1_STSCHG]; | 175 | s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S0_BVD1_STSCHG]; |
| 169 | s->soc.stat[SOC_STAT_BVD1].name = "SA1111 PCMCIA BVD1"; | 176 | s->soc.stat[SOC_STAT_BVD1].name = "SA1111 PCMCIA BVD1"; |
| 170 | } | 177 | } |
| 171 | 178 | ||
