13 Oct, 2007

1 commit


27 Jan, 2007

1 commit

  • On the Maple board, the AMD8111 IDE is in legacy mode... except that it
    appears on IRQ 20 instead of IRQ 15. For drivers/ide this was handled by
    the architecture's "pci_get_legacy_ide_irq()" function, but in libata we
    just hard-code the numbers 14 and 15.

    This patch provides asm-powerpc/libata-portmap.h which maps the IRQ as
    appropriate, having added a pci_dev argument to the
    ATA_{PRIM,SECOND}ARY_IRQ macros.

    There's probably a better way to do this -- especially if we observe
    that the _only_ case in which this seemingly-generic
    "pci_get_legacy_ide_irq()" function returns anything other than 14 and
    15 for primary and secondary respectively is the case of the AMD8111 on
    the Maple board -- couldn't we handle that with a special case in the
    pata_amd driver, or perhaps with a PCI quirk for Maple to switch it into
    native mode during early boot and assign resources properly?

    Signed-off-by: David Woodhouse
    Signed-off-by: Jeff Garzik

    David Woodhouse
     

10 Aug, 2006

1 commit

  • Kill host_set->next
    Fix simplex support
    Allow per platform setting of IDE legacy bases

    Some of this can be tidied further later on, in particular all the
    legacy port gunge belongs as a PCI quirk/PCI header decode to understand
    the special legacy IDE rules in the PCI spec.

    Longer term Jeff also wants to move the request_irq/free_irq out of core
    which will make this even cleaner.

    tj: folded in three followup patches - ata_piix-fix, broken-arch-fix
    and fix-new-legacy-handling, and separated per-dev xfermask into
    separate patch preceding this one. Folded in fixes are...

    * ata_piix-fix: fix build failure due to host_set->next removal
    * broken-arch-fix: add missing include/asm-*/libata-portmap.h
    * fix-new-legacy-handling:
    * In ata_pci_init_legacy_port(), probe_num was incorrectly
    incremented during initialization of the secondary port and
    probe_ent->n_ports was incorrectly fixed to 1.

    * Both legacy ports ended up having the same hard_port_no.

    * When printing port information, both legacy ports printed
    the first irq.

    Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Tejun Heo

    Alan Cox