sa1111_generic.c (171cf94ccb4b476d1d7d694a31d0820558375132) | sa1111_generic.c (e0d21178ceb06f5bfa81a5697f68384f74af054a) |
---|---|
1/* 2 * linux/drivers/pcmcia/sa1111_generic.c 3 * 4 * We implement the generic parts of a SA1111 PCMCIA driver. This 5 * basically means we handle everything except controlling the 6 * power. Power is machine specific... 7 */ 8#include <linux/module.h> --- 127 unchanged lines hidden (view full) --- 136 ops->socket_suspend = sa1111_pcmcia_socket_suspend; 137 138 for (i = 0; i < ops->nr; i++) { 139 s = kzalloc(sizeof(*s), GFP_KERNEL); 140 if (!s) 141 return -ENOMEM; 142 143 s->soc.nr = ops->first + i; | 1/* 2 * linux/drivers/pcmcia/sa1111_generic.c 3 * 4 * We implement the generic parts of a SA1111 PCMCIA driver. This 5 * basically means we handle everything except controlling the 6 * power. Power is machine specific... 7 */ 8#include <linux/module.h> --- 127 unchanged lines hidden (view full) --- 136 ops->socket_suspend = sa1111_pcmcia_socket_suspend; 137 138 for (i = 0; i < ops->nr; i++) { 139 s = kzalloc(sizeof(*s), GFP_KERNEL); 140 if (!s) 141 return -ENOMEM; 142 143 s->soc.nr = ops->first + i; |
144 s->soc.ops = ops; 145 s->soc.socket.owner = ops->owner; 146 s->soc.socket.dev.parent = &dev->dev; | 144 soc_pcmcia_init_one(&s->soc, ops, &dev->dev); |
147 s->soc.socket.pci_irq = s->soc.nr ? 148 dev->irq[IDX_IRQ_S0_READY_NINT] : 149 dev->irq[IDX_IRQ_S1_READY_NINT]; 150 s->dev = dev; 151 152 ret = add(&s->soc); 153 if (ret == 0) { 154 s->next = dev_get_drvdata(&dev->dev); --- 45 unchanged lines hidden (view full) --- 200} 201 202static int __devexit pcmcia_remove(struct sa1111_dev *dev) 203{ 204 struct sa1111_pcmcia_socket *next, *s = dev_get_drvdata(&dev->dev); 205 206 dev_set_drvdata(&dev->dev, NULL); 207 | 145 s->soc.socket.pci_irq = s->soc.nr ? 146 dev->irq[IDX_IRQ_S0_READY_NINT] : 147 dev->irq[IDX_IRQ_S1_READY_NINT]; 148 s->dev = dev; 149 150 ret = add(&s->soc); 151 if (ret == 0) { 152 s->next = dev_get_drvdata(&dev->dev); --- 45 unchanged lines hidden (view full) --- 198} 199 200static int __devexit pcmcia_remove(struct sa1111_dev *dev) 201{ 202 struct sa1111_pcmcia_socket *next, *s = dev_get_drvdata(&dev->dev); 203 204 dev_set_drvdata(&dev->dev, NULL); 205 |
208 for (; s; s = next) { 209 next = s->next; | 206 for (; next = s->next, s; s = next) { |
210 soc_pcmcia_remove_one(&s->soc); 211 kfree(s); 212 } 213 214 release_mem_region(dev->res.start, 512); 215 return 0; 216} 217 --- 24 unchanged lines hidden --- | 207 soc_pcmcia_remove_one(&s->soc); 208 kfree(s); 209 } 210 211 release_mem_region(dev->res.start, 512); 212 return 0; 213} 214 --- 24 unchanged lines hidden --- |