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