• T
    [PATCH] ata_piix: fix MAP VALUE interpretation for for ICH6/7 · ff0fc146
    Tejun Heo 提交于
    Unlike their older siblings, ICH6 and 7 use different scheme for MAP
    VALUE.  This patch makes ata_piix interpret MV properly on ICH6/7.
    
    Pre-ICH6/7
    
     The value of these bits indicate the address range the SATA port
     responds to, and whether or not the SATA and IDE functions are
     combined.
    
     000 = Non-combined. P0 is primary master. P1 is secondary master.
     001 = Non-combined. P0 is secondary master. P1 is primary master.
     100 = Combined. P0 is primary master. P1 is primary slave. P-ATA is
           2:0 Map Value secondary.
     101 = Combined. P0 is primary slave. P1 is primary master. P-ATA is
           secondary.
     110 = Combined. P-ATA is primary. P0 is secondary master. P1 is
           secondary slave.
     111 = Combined. P-ATA is primary. P0 is secondary slave. P1 is
           secondary master.
    
    ICH6/7
    
     Map Value - R/W. Map Value (MV): The value in the bits below indicate
    the address range the SATA ports responds to, and whether or not the
    PATA and SATA functions are combined. When in combined mode, the AHCI
    memory space is not available and AHCI may not be used.
    
     00 = Non-combined. P0 is primary master, P2 is the primary slave. P1
          is secondary master, P3 is the 1:0 secondary slave (desktop
          only). P0 is primary master, P2 is the primary slave (mobile
          only).
     01 = Combined. IDE is primary. P1 is secondary master, P3 is the
          secondary slave. (desktop only)
     10 = Combined. P0 is primary master. P2 is primary slave. IDE is secondary
     11 = Reserved
    Signed-off-by: NTejun Heo <htejun@gmail.com>
    
    --
    
    Jeff, without this patch, ata_piix misdetects my ICH7's combined mode,
    ending up not applying bridge limits to PX-710SA and configuring IDE
    drive on 40-c cable to UDMA/66.
    
    Thanks.
    Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
    ff0fc146
ata_piix.c 21.8 KB