On Sun, Oct 14, 2007 at 01:12:39AM +0100, Al Viro wrote:
> Proposed addition to icside part, provided that ARM folks ACK it - gets
> icside to build and AFAICS it's correct:
Booted and tested as working.
Whatever-tag-that-is: Russell King <[email protected]>
> diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
> index be30923..842fe08 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)
> {
> }
>
> -static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
> +static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
> {
> + struct ata_port *ap = link->ap;
> struct pata_icside_state *state = ap->host->private_data;
>
> if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
> - return ata_std_postreset(ap, classes);
> + return ata_std_postreset(link, classes);
>
> state->port[ap->port_no].disabled = 1;
>
> @@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops = {
>
> static void __devinit
> pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
> - const struct portinfo *info)
> + struct pata_icside_info *info,
> + const struct portinfo *port)
> {
> struct ata_ioports *ioaddr = &ap->ioaddr;
> - void __iomem *cmd = base + info->dataoffset;
> + void __iomem *cmd = base + port->dataoffset;
>
> ioaddr->cmd_addr = cmd;
> - ioaddr->data_addr = cmd + (ATA_REG_DATA << info->stepping);
> - ioaddr->error_addr = cmd + (ATA_REG_ERR << info->stepping);
> - ioaddr->feature_addr = cmd + (ATA_REG_FEATURE << info->stepping);
> - ioaddr->nsect_addr = cmd + (ATA_REG_NSECT << info->stepping);
> - ioaddr->lbal_addr = cmd + (ATA_REG_LBAL << info->stepping);
> - ioaddr->lbam_addr = cmd + (ATA_REG_LBAM << info->stepping);
> - ioaddr->lbah_addr = cmd + (ATA_REG_LBAH << info->stepping);
> - ioaddr->device_addr = cmd + (ATA_REG_DEVICE << info->stepping);
> - ioaddr->status_addr = cmd + (ATA_REG_STATUS << info->stepping);
> - ioaddr->command_addr = cmd + (ATA_REG_CMD << info->stepping);
> -
> - ioaddr->ctl_addr = base + info->ctrloffset;
> + ioaddr->data_addr = cmd + (ATA_REG_DATA << port->stepping);
> + ioaddr->error_addr = cmd + (ATA_REG_ERR << port->stepping);
> + ioaddr->feature_addr = cmd + (ATA_REG_FEATURE << port->stepping);
> + ioaddr->nsect_addr = cmd + (ATA_REG_NSECT << port->stepping);
> + ioaddr->lbal_addr = cmd + (ATA_REG_LBAL << port->stepping);
> + ioaddr->lbam_addr = cmd + (ATA_REG_LBAM << port->stepping);
> + ioaddr->lbah_addr = cmd + (ATA_REG_LBAH << port->stepping);
> + ioaddr->device_addr = cmd + (ATA_REG_DEVICE << port->stepping);
> + ioaddr->status_addr = cmd + (ATA_REG_STATUS << port->stepping);
> + ioaddr->command_addr = cmd + (ATA_REG_CMD << port->stepping);
> +
> + ioaddr->ctl_addr = base + port->ctrloffset;
> ioaddr->altstatus_addr = ioaddr->ctl_addr;
>
> ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx",
> - info->raw_base + info->dataoffset,
> - info->raw_base + info->ctrloffset);
> + info->raw_base + port->dataoffset,
> + info->raw_base + port->ctrloffset);
>
> if (info->raw_ioc_base)
> 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)
> info->nr_ports = 1;
> info->port[0] = &pata_icside_portinfo_v5;
>
> - info->raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
> + info->raw_base = ecard_resource_start(info->ec, ECARD_RES_MEMC);
>
> return 0;
> }
> @@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct pata_icside_info *info)
> ap->flags |= ATA_FLAG_SLAVE_POSS;
> ap->ops = &pata_icside_port_ops;
>
> - pata_icside_setup_ioaddr(ap, info->base, info->port[i]);
> + pata_icside_setup_ioaddr(ap, info->base, info, info->port[i]);
> }
>
> return ata_host_activate(host, ec->irq, ata_interrupt, 0,
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]