1. 27 1月, 2007 1 次提交
    • D
      Fix Maple PATA IRQ assignment. · 8cdf92a9
      David Woodhouse 提交于
      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: NDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      8cdf92a9
  2. 10 8月, 2006 1 次提交
    • A
      [PATCH] libata: rework legacy handling to remove much of the cruft · 2ec7df04
      Alan Cox 提交于
      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: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      2ec7df04