Sergei Shtylyov wrote: > Hello, I wrote: > >>> hpt366 is strange in that its cable detection register uses the higher >>> bit for master, so the testing should be 2 >> port_no instead of 1 << > >> For primary -- the cable bits are per-channel, not per-device. > >>> port_no. Fix it. > >>> Info provided by Alan Cox. > >>> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx> > >> Acked-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> > > I have to NAK this. HPT366 design is just too brain damaged for both > IDE and libata drivers to get it right so far. > >>> Index: work/drivers/ata/pata_hpt366.c >>> =================================================================== >>> --- work.orig/drivers/ata/pata_hpt366.c >>> +++ work/drivers/ata/pata_hpt366.c >>> @@ -215,7 +215,7 @@ static int hpt36x_cable_detect(struct at >>> struct pci_dev *pdev = to_pci_dev(ap->host->dev); >>> >>> pci_read_config_byte(pdev, 0x5A, &ata66); >>> - if (ata66 & (1 << ap->port_no)) >>> + if (ata66 & (2 >> ap->port_no)) >>> > >> HPT36x are single channel per function, so the shift can be removed. > > It should be replaced by more sophisticated logic for function 1 in > fact... Ah... crap. I don't know anything about this controller. Care to post the correct patch? I'll be happy to test. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html