]> git.baikalelectronics.ru Git - kernel.git/commit
sata_via: fix support for 5287
authorTejun Heo <tj@kernel.org>
Tue, 21 Oct 2008 15:46:36 +0000 (00:46 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 31 Oct 2008 05:43:28 +0000 (01:43 -0400)
commit1821328efcb3d1b18b7362ce3577075c4d42fc97
tree2a349dcea617d3fdb698e7514d19a85e8ae4fa8a
parent7ec931edeb14cddb101efae80bf465f6feb80ed1
sata_via: fix support for 5287

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/40640

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Joseph Chan <JosephChan@via.com.tw>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/sata_via.c