aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/pata_icside.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index be30923566c5..842fe08a3c13 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
332{ 332{
333} 333}
334 334
335static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes) 335static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
336{ 336{
337 struct ata_port *ap = link->ap;
337 struct pata_icside_state *state = ap->host->private_data; 338 struct pata_icside_state *state = ap->host->private_data;
338 339
339 if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE) 340 if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
340 return ata_std_postreset(ap, classes); 341 return ata_std_postreset(link, classes);
341 342
342 state->port[ap->port_no].disabled = 1; 343 state->port[ap->port_no].disabled = 1;
343 344
@@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops = {
395 396
396static void __devinit 397static void __devinit
397pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base, 398pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
398 const struct portinfo *info) 399 struct pata_icside_info *info,
400 const struct portinfo *port)
399{ 401{
400 struct ata_ioports *ioaddr = &ap->ioaddr; 402 struct ata_ioports *ioaddr = &ap->ioaddr;
401 void __iomem *cmd = base + info->dataoffset; 403 void __iomem *cmd = base + port->dataoffset;
402 404
403 ioaddr->cmd_addr = cmd; 405 ioaddr->cmd_addr = cmd;
404 ioaddr->data_addr = cmd + (ATA_REG_DATA << info->stepping); 406 ioaddr->data_addr = cmd + (ATA_REG_DATA << port->stepping);
405 ioaddr->error_addr = cmd + (ATA_REG_ERR << info->stepping); 407 ioaddr->error_addr = cmd + (ATA_REG_ERR << port->stepping);
406 ioaddr->feature_addr = cmd + (ATA_REG_FEATURE << info->stepping); 408 ioaddr->feature_addr = cmd + (ATA_REG_FEATURE << port->stepping);
407 ioaddr->nsect_addr = cmd + (ATA_REG_NSECT << info->stepping); 409 ioaddr->nsect_addr = cmd + (ATA_REG_NSECT << port->stepping);
408 ioaddr->lbal_addr = cmd + (ATA_REG_LBAL << info->stepping); 410 ioaddr->lbal_addr = cmd + (ATA_REG_LBAL << port->stepping);
409 ioaddr->lbam_addr = cmd + (ATA_REG_LBAM << info->stepping); 411 ioaddr->lbam_addr = cmd + (ATA_REG_LBAM << port->stepping);
410 ioaddr->lbah_addr = cmd + (ATA_REG_LBAH << info->stepping); 412 ioaddr->lbah_addr = cmd + (ATA_REG_LBAH << port->stepping);
411 ioaddr->device_addr = cmd + (ATA_REG_DEVICE << info->stepping); 413 ioaddr->device_addr = cmd + (ATA_REG_DEVICE << port->stepping);
412 ioaddr->status_addr = cmd + (ATA_REG_STATUS << info->stepping); 414 ioaddr->status_addr = cmd + (ATA_REG_STATUS << port->stepping);
413 ioaddr->command_addr = cmd + (ATA_REG_CMD << info->stepping); 415 ioaddr->command_addr = cmd + (ATA_REG_CMD << port->stepping);
414 416
415 ioaddr->ctl_addr = base + info->ctrloffset; 417 ioaddr->ctl_addr = base + port->ctrloffset;
416 ioaddr->altstatus_addr = ioaddr->ctl_addr; 418 ioaddr->altstatus_addr = ioaddr->ctl_addr;
417 419
418 ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", 420 ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx",
419 info->raw_base + info->dataoffset, 421 info->raw_base + port->dataoffset,
420 info->raw_base + info->ctrloffset); 422 info->raw_base + port->ctrloffset);
421 423
422 if (info->raw_ioc_base) 424 if (info->raw_ioc_base)
423 ata_port_desc(ap, "iocbase 0x%lx", info->raw_ioc_base); 425 ata_port_desc(ap, "iocbase 0x%lx", info->raw_ioc_base);
@@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct pata_icside_info *info)
441 info->nr_ports = 1; 443 info->nr_ports = 1;
442 info->port[0] = &pata_icside_portinfo_v5; 444 info->port[0] = &pata_icside_portinfo_v5;
443 445
444 info->raw_base = ecard_resource_start(ec, ECARD_RES_MEMC); 446 info->raw_base = ecard_resource_start(info->ec, ECARD_RES_MEMC);
445 447
446 return 0; 448 return 0;
447} 449}
@@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct pata_icside_info *info)
522 ap->flags |= ATA_FLAG_SLAVE_POSS; 524 ap->flags |= ATA_FLAG_SLAVE_POSS;
523 ap->ops = &pata_icside_port_ops; 525 ap->ops = &pata_icside_port_ops;
524 526
525 pata_icside_setup_ioaddr(ap, info->base, info->port[i]); 527 pata_icside_setup_ioaddr(ap, info->base, info, info->port[i]);
526 } 528 }
527 529
528 return ata_host_activate(host, ec->irq, ata_interrupt, 0, 530 return ata_host_activate(host, ec->irq, ata_interrupt, 0,