Re: aic-5.1.19 AHA-3985W

Doug Ledford (dledford@redhat.com)
Mon, 20 Sep 1999 11:17:22 -0400


Michael Leodolter wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
>
> Hi Doug!
>
> We have a Adaptec 3985W (PCI_DEVICE_ID_ADAPTEC_7873) board with 9 4.5Gb
> disks, 3 on each channel -
> and were still running linux-2.0.33/aic7xxx-4.1.1 -
>
> Now did upgrade to 2.2.12 with aic7xxx-5.1.19:
> After lots of problems I looked into the old driver from 2.0.33 and saw:
>
> The external SCB RAM on the 3985W does not work and was disabled by
> #ifdef AIC7XXX_USE_EXT_SCBRAM.
>
> With the following patch to linux-2.2.12/aic7xxx.c-5.1.19 everything works
> fine.
>
> Maybe this is needed only for
> temp_p->device_id == PCI_DEVICE_ID_ADAPTEC_7873.
>
> - --- cut here ---
> - --- aic7xxx.c.orig Mon Sep 13 10:13:58 1999
> +++ aic7xxx.c Mon Sep 13 14:26:47 1999
> @@ -9966,12 +9966,14 @@
> devconfig |= EXTSCBPEN;
> }
> }
> +#ifdef AIC7XXX_USE_EXT_SCBRAM
> else if (devconfig & RAMPSM)
> {
> devconfig &= ~SCBRAMSEL;
> devconfig |= EXTSCBPEN;
> temp_p->flags |= AHC_EXTERNAL_SRAM;
> }
> +#endif
> #if LINUX_VERSION_CODE > KERNEL_VERSION(2,1,92)
> pci_write_config_dword(pdev, DEVCONFIG, devconfig);
> #else

Hmmm....a 3985W that uses the 7883 device ID should never get there. The
switch statement that enloses that code says:

switch(temp_p->chip & AHC_CHIPID_MASK)
{
default:
break;
case AHC_AIC7895:
case AHC_AIC7896:
case AHC_AIC7899:
.....
}

So, as you can see, the change you made shouldn't make a difference. Now, if
you have one of the later model 3985 cards that uses the 7895 chipset, then
this all makes perfect sense. In any case, I've modified the current driver
with the following:

/*
* On some machines, enabling the external SCB RAM isn't reliable yet. I
* haven't had time to make test patches for things like changing the
* timing mode on that external RAM either. Some of those changes may
* fix the problem. Until then though, we default to external SCB RAM
* off and give a command line option to enable it.
*/
static int aic7xxx_scbram = 0;

and I modified the code inside the switch statement to honor this global
variable that the setup code can modify. That should solve your problem and
will be in the next official release.

-- 
  Doug Ledford   <dledford@redhat.com>
   Opinions expressed are my own, but
      they should be everybody's.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/