• Tejun Heo's avatar
    sata_via: fix support for 5287 · b9d5b89b
    Tejun Heo authored
    5287 used to be treated as vt6420 but it didn't work.  It's new family
    of controllers called vt8251 which hosts four SATA ports as M/S of the
    two ATA ports.  This configuration is rather peculiar in that although
    the M/S devices are on the same port, each have its own SCR (or
    equivalent link status/control) registers which screws up the
    port-link-device hierarchy assumed by libata.  Another controller
    which falls into this category is ata_piix w/ SIDPR access.
    
    libata now has facility to deal with this class of controllers named
    slave_link.  A low level driver for such controllers can just call
    ata_slave_link_init() on the respective ports and libata will handle
    all the difficult parts like following up with single SRST after
    hardresetting both ports.
    
    This patch creates new controller class vt8251, implements slave_link
    aware init sequence and config space based SCR access for it and moves
    5287 to the new class.
    
    This patch is based on Joseph Chan's larger patch which was created
    before slave_link was implemented in libata.
    
      http://thread.gmane.org/gmane.linux.kernel.commits.mm/40640Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Joseph Chan <JosephChan@via.com.tw>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    b9d5b89b
sata_via.c 16.5 KB