Re: [PATCH] adaptec 1210sa

Jeff Garzik
2003-12-30T23:52:00Z

Mickael Marchand wrote:
> --- /usr/src/linux-2.6.0/drivers/scsi/sata_sil.c 2003-12-21 13:30:58.000000000 +0100
> +++ linux-2.6.0/drivers/scsi/sata_sil.c 2003-12-22 02:46:32.000000000 +0100
> @@ -276,6 +276,16 @@
> goto err_out_regions;
> }
>
> + //let's have fun
> + u8 v;
> + pci_read_config_byte(pdev, 0x8a, &v);
> + int mask = 0x3f; //clear 6 and 7 bits
> + if (v & ~mask) {
> + printk("Reenabling interrupts because Adaptec's BIOS disables them\n" );
> + v &= mask;
> + pci_write_config_byte(pdev, 0x8a, v);
> + }
> +
> memset(probe_ent, 0, sizeof(*probe_ent));
> INIT_LIST_HEAD(&probe_ent->node);
> probe_ent->pdev = pdev;

Actually, ignore that last question. The SII docs indicate these bits
are present in the standard SII 3112 chip, so the driver should just
make sure to do this unconditionally.

Bart, the above applies to siimage.c as well. The following are equal:
* PCI config reg 0x8a (byte), bits 6/7
* PCI config reg 0x88 (dword), bits 22/23
* MMIO offset 0x48 (dword), bits 22/23

The lower bit masks IDE0 interrupts, and the higher bit masks IDE1
interrupts.

Jeff