pata_hpt366: fix cable detection,

pata_hpt366 is strange in that its two channels occupy two PCI
functions and both are primary channels and bit1 of PCI configuration
register 0x5A indicates cable for both channels.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by Tejun Heo and committed by Jeff Garzik bab5b32a d10d491f

+6 -2
+6 -2
drivers/ata/pata_hpt366.c
··· 211 211 212 212 static int hpt36x_cable_detect(struct ata_port *ap) 213 213 { 214 - u8 ata66; 215 214 struct pci_dev *pdev = to_pci_dev(ap->host->dev); 215 + u8 ata66; 216 216 217 + /* 218 + * Each channel of pata_hpt366 occupies separate PCI function 219 + * as the primary channel and bit1 indicates the cable type. 220 + */ 217 221 pci_read_config_byte(pdev, 0x5A, &ata66); 218 - if (ata66 & (1 << ap->port_no)) 222 + if (ata66 & 2) 219 223 return ATA_CBL_PATA40; 220 224 return ATA_CBL_PATA80; 221 225 }