The patch titled pata_pcmcia: minor cleanups and support for dual channel cards has been added to the -mm tree. Its filename is pata_pcmcia-minor-cleanups-and-support-for-dual-channel-cards.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: pata_pcmcia: minor cleanups and support for dual channel cards From: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alan Cox <alan@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/ata/pata_pcmcia.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff -puN drivers/ata/pata_pcmcia.c~pata_pcmcia-minor-cleanups-and-support-for-dual-channel-cards drivers/ata/pata_pcmcia.c --- a/drivers/ata/pata_pcmcia.c~pata_pcmcia-minor-cleanups-and-support-for-dual-channel-cards +++ a/drivers/ata/pata_pcmcia.c @@ -42,7 +42,7 @@ #define DRV_NAME "pata_pcmcia" -#define DRV_VERSION "0.3.2" +#define DRV_VERSION "0.3.3" /* * Private data structure to glue stuff together @@ -198,7 +198,6 @@ do { last_fn = (fn); if ((last_ret = (re /** * pcmcia_init_one - attach a PCMCIA interface * @pdev: pcmcia device - * @ops: operations for this device * * Register a PCMCIA IDE interface. Such interfaces are PIO 0 and * shared IRQ. @@ -217,9 +216,10 @@ static int pcmcia_init_one(struct pcmcia cistpl_cftable_entry_t dflt; } *stk = NULL; cistpl_cftable_entry_t *cfg; - int pass, last_ret = 0, last_fn = 0, is_kme = 0, ret = -ENOMEM; + int pass, last_ret = 0, last_fn = 0, is_kme = 0, ret = -ENOMEM, p; unsigned long io_base, ctl_base; void __iomem *io_addr, *ctl_addr; + int n_ports = 1; struct ata_port_operations *ops = &pcmcia_port_ops; @@ -348,7 +348,7 @@ next_entry: /* FIXME: Could be more ports at base + 0x10 but we only deal with one right now */ if (pdev->io.NumPorts1 >= 0x20) - printk(KERN_WARNING DRV_NAME ": second channel not yet supported.\n"); + n_ports = 2; if (pdev->manf_id == 0x0097 && pdev->card_id == 0x1620) ops = &pcmcia_8bit_port_ops; @@ -357,20 +357,23 @@ next_entry: * sane. */ ret = -ENOMEM; - host = ata_host_alloc(&pdev->dev, 1); + host = ata_host_alloc(&pdev->dev, n_ports); if (!host) goto failed; - ap = host->ports[0]; - ap->ops = ops; - ap->pio_mask = 1; /* ISA so PIO 0 cycles */ - ap->flags |= ATA_FLAG_SLAVE_POSS; - ap->ioaddr.cmd_addr = io_addr; - ap->ioaddr.altstatus_addr = ctl_addr; - ap->ioaddr.ctl_addr = ctl_addr; - ata_std_ports(&ap->ioaddr); + for (p = 0; p < n_ports; p++) { + ap = host->ports[p]; - ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", io_base, ctl_base); + ap->ops = ops; + ap->pio_mask = 1; /* ISA so PIO 0 cycles */ + ap->flags |= ATA_FLAG_SLAVE_POSS; + ap->ioaddr.cmd_addr = io_addr + 0x10 * p; + ap->ioaddr.altstatus_addr = ctl_addr + 0x10 * p; + ap->ioaddr.ctl_addr = ctl_addr + 0x10 * p; + ata_std_ports(&ap->ioaddr); + + ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", io_base, ctl_base); + } /* activate */ ret = ata_host_activate(host, pdev->irq.AssignedIRQ, ata_interrupt, _ Patches currently in -mm which might be from alan@xxxxxxxxxxxxxxxxxxx are termios-document-callback-more-clearly.patch revert-keyspan-init-termios-properly.patch git-arm.patch git-libata-all.patch pata_hpt37x-fix-outstanding-bug-reports-on-the-hpt374-and-37x-cable-detect-checkpatch-fixes.patch libata-separate-out-ata_acpi_gtm_xfermask-from-pacpi_discover_modes.patch libata-fix-ata_acpi_gtm_xfermask.patch libata-implement-ata_timing_cycle2mode-and-use-it-in-libata-acpi-and-pata_acpi.patch libata-reimplement-ata_acpi_cbl_80wire-using-ata_acpi_gtm_xfermask.patch libata-add-ata_cbl_pata_ign.patch pata_amd-update-mode-selection-for-nv-patas.patch ahci-invalid-use-of-writel-readl-with-iomap.patch libata-core-list-more-documentation-sources-for-reference.patch libata-iordy-handling.patch libata-sff-tf_load.patch pata_ali-add-mitac-8317-and-derivatives.patch pata_ali-lots-of-problems-still-showing-up-with-small-atapi-dma.patch pata_hpt37x-fix-cable-detect-bug-spotted-by-sergei.patch pata_isapnp-polled-devices.patch pata_pcmcia-minor-cleanups-and-support-for-dual-channel-cards.patch pata_ninja32-cardbus-ata-initial-support.patch pcmcia-convert-some-internal-only-ioaddr_t-to-unsigned-int.patch pcmcia-replace-kio_addr_t-with-unsigned-int-everywhere.patch serial-keep-the-dtr-setting-for-serial-console.patch quirk_vialatency-omit-reading-pci-revision-id.patch quirk_vialatency-omit-reading-pci-revision-id-checkpatch-fixes.patch git-scsi-rc-fixes.patch initio-fix-conflict-when-loading-driver.patch pata_amd-pata_via-de-couple-programming-of-pio-mwdma-and-udma-timings.patch geode-lists-are-subscriber-only.patch tty-kill-tty_flipbuf_size.patch drivers-edac-turnon-edac-device-error-logging.patch drivers-edac-use-round_jiffies_relative.patch drivers-edac-add-cell-xdr-memory-types.patch drivers-edac-add-cell-mc-driver.patch drivers-edac-i3000-code-tidying.patch drivers-edac-i3000-replace-macros-with-functions.patch drivers-edac-add-freescale-mpc85xx-driver.patch drivers-edac-add-marvell-mv64x60-driver.patch drivers-edac-add-marvell-mv64x60-driver-fix.patch dz-clean-up-and-improve-the-setup-of-termios-settings.patch char-rocket-switch-long-delay-to-sleep.patch char-rocket-printk-cleanup.patch char-char-serial-remove-serial_type_normal-redefines.patch char-mxser_new-ioaddresses-are-ulong.patch char-stallion-fix-compiler-warnings.patch char-riscom8-change-rc_init_drivers-prototype.patch tty-add-the-new-termios2-ioctls-to-the-compatible.patch tty-let-architectures-override-the-user-kernel-macros.patch tty-s390-support-for-termios2.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html