aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2010-05-21 15:27:26 -0400
committerJens Axboe <jens.axboe@oracle.com>2010-05-21 15:27:26 -0400
commitee9a3607fb03e804ddf624544105f4e34260c380 (patch)
treece41b6e0fa10982a306f6c142a92dbf3c9961284 /drivers/ide
parentb492e95be0ae672922f4734acf3f5d35c30be948 (diff)
parentd515e86e639890b33a09390d062b0831664f04a2 (diff)
Merge branch 'master' into for-2.6.35
Conflicts: fs/ext3/fsync.c Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-cs.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index defce2877eef..0b7815d2581c 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -65,8 +65,7 @@ MODULE_LICENSE("Dual MPL/GPL");
65typedef struct ide_info_t { 65typedef struct ide_info_t {
66 struct pcmcia_device *p_dev; 66 struct pcmcia_device *p_dev;
67 struct ide_host *host; 67 struct ide_host *host;
68 int ndev; 68 int ndev;
69 dev_node_t node;
70} ide_info_t; 69} ide_info_t;
71 70
72static void ide_release(struct pcmcia_device *); 71static void ide_release(struct pcmcia_device *);
@@ -102,7 +101,6 @@ static int ide_probe(struct pcmcia_device *link)
102 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 101 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
103 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; 102 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
104 link->io.IOAddrLines = 3; 103 link->io.IOAddrLines = 3;
105 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
106 link->conf.Attributes = CONF_ENABLE_IRQ; 104 link->conf.Attributes = CONF_ENABLE_IRQ;
107 link->conf.IntType = INT_MEMORY_AND_IO; 105 link->conf.IntType = INT_MEMORY_AND_IO;
108 106
@@ -285,8 +283,7 @@ static int ide_config(struct pcmcia_device *link)
285 io_base = link->io.BasePort1; 283 io_base = link->io.BasePort1;
286 ctl_base = stk->ctl_base; 284 ctl_base = stk->ctl_base;
287 285
288 ret = pcmcia_request_irq(link, &link->irq); 286 if (!link->irq)
289 if (ret)
290 goto failed; 287 goto failed;
291 ret = pcmcia_request_configuration(link, &link->conf); 288 ret = pcmcia_request_configuration(link, &link->conf);
292 if (ret) 289 if (ret)
@@ -299,24 +296,21 @@ static int ide_config(struct pcmcia_device *link)
299 if (is_kme) 296 if (is_kme)
300 outb(0x81, ctl_base+1); 297 outb(0x81, ctl_base+1);
301 298
302 host = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link); 299 host = idecs_register(io_base, ctl_base, link->irq, link);
303 if (host == NULL && link->io.NumPorts1 == 0x20) { 300 if (host == NULL && link->io.NumPorts1 == 0x20) {
304 outb(0x02, ctl_base + 0x10); 301 outb(0x02, ctl_base + 0x10);
305 host = idecs_register(io_base + 0x10, ctl_base + 0x10, 302 host = idecs_register(io_base + 0x10, ctl_base + 0x10,
306 link->irq.AssignedIRQ, link); 303 link->irq, link);
307 } 304 }
308 305
309 if (host == NULL) 306 if (host == NULL)
310 goto failed; 307 goto failed;
311 308
312 info->ndev = 1; 309 info->ndev = 1;
313 sprintf(info->node.dev_name, "hd%c", 'a' + host->ports[0]->index * 2);
314 info->node.major = host->ports[0]->major;
315 info->node.minor = 0;
316 info->host = host; 310 info->host = host;
317 link->dev_node = &info->node; 311 dev_info(&link->dev, "ide-cs: hd%c: Vpp = %d.%d\n",
318 printk(KERN_INFO "ide-cs: %s: Vpp = %d.%d\n", 312 'a' + host->ports[0]->index * 2,
319 info->node.dev_name, link->conf.Vpp / 10, link->conf.Vpp % 10); 313 link->conf.Vpp / 10, link->conf.Vpp % 10);
320 314
321 kfree(stk); 315 kfree(stk);
322 return 0; 316 return 0;
@@ -409,7 +403,7 @@ static struct pcmcia_device_id ide_ids[] = {
409 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), 403 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420),
410 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), 404 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178),
411 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), 405 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753),
412 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x3e520e17), 406 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x55d5bffb),
413 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10), 407 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10),
414 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), 408 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e),
415 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), 409 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b),
@@ -431,7 +425,7 @@ static struct pcmcia_device_id ide_ids[] = {
431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 425 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
432 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 426 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
433 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 427 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
434 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x9351e59d), 428 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x7558f133),
435 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47), 429 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47),
436 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), 430 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
437 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), 431 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),