• Tejun Heo's avatar
    [PATCH] libata: fix non-uniform ports handling · fea63e38
    Tejun Heo authored
    Non-uniform ports handling got broken while updating libata to handle
    those in the same host.  Only separate irq for the non-uniform
    secondary port was implemented while all other fields (host flags,
    transfer mode...) of the secondary port simply shared those of the
    first.
    
    For ata_piix combined mode, which ATM is the only user of non-uniform
    ports, this causes the secondary port assume the wrong type.  This can
    cause PATA port to use SATA ops, which results in bogus check on PCS
    and detection failure.
    
    This patch adds ata_probe_ent->pinfo2 which points to optional
    port_info for the secondary port.  For the time being, this seems to
    be the simplest solution.  This workaround will be removed together
    with ata_probe_ent itself after init model is updated to allow more
    flexibility.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Nelson A. de Oliveira <naoliv@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    fea63e38
libata-sff.c 29.5 KB