On Thu, 24 Jul 2003, Duclos Andre wrote:

> Test this patch for SATA 376 with caution please.

I tried a similar patch first on my Asus A7V8X w/PDC376 and it didn't
work, you didn't test it? This 20376 identifies itself as a RAID
controller instead of a MISC storage device, and the driver checks on
this so I needed to change a bit more.

With attached patch the driver works. I haven't done real stress tests,
but so far I haven't had any problems. Inserting the pdc-ultra module
makes the system unresponsive for a few seconds, but it doesn't seem to do
any harm. Only tested with a PATA disk.

sd_mod must be inserted to use the disk(s)


    Christiaan


[original quoted message]
> -----Message d'origine-----
> De : Svetoslav Slavtchev [mailto:[EMAIL PROTECTED]
> Envoy� : mercredi 23 juillet 2003 09:42
> � : [EMAIL PROTECTED]
> Objet : Re: [Cooker] Re: [CHRPM] kernel-2.4.21.5mdk-1-1mdk

<snip>

> me again :)
> (may be for 6mdk)
>
> has anyone seen this thread on lkml:
> "Promise SATA driver GPL'd"
> <snip>
> So <drum-roll, trumpets> here it is: the Promise SATA driver for
> the PDC20318, PDC20375, PDC20378, and PDC20618.  This driver is
> released as-is.  It is useful for the
>       Promise SATA150 TX4
>       Promise SATA150 TX2plus
>       Promise SATA 378
>       Promise Ultra 618
>
> cards.  As a temporary download location, the GPL'd driver can be
> obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz
> <snip>
> http://marc.theaimsgroup.com/?l=linux-kernel&m=105889969926179&w=2
> --
>
diff -ru pdc-ultra/pdc618_mod.c pdc-ultra-20376/pdc618_mod.c
--- pdc-ultra/pdc618_mod.c      2003-06-08 18:10:00.000000000 +0200
+++ pdc-ultra-20376/pdc618_mod.c        2003-07-24 17:20:22.000000000 +0200
@@ -469,8 +469,10 @@
                        }
 #endif
 
-                       /* class code is 0x0180 or PDC378*/
-                       if(pdc618_pci_dev->class>>8 == PCI_CLASS_STORAGE_OTHER || 
PDC618_DEVID[class] == DID378) {
+                       /* class code is 0x0180 or 0x0104 or it's a PDC378*/
+                       if(             pdc618_pci_dev->class>>8 == 
PCI_CLASS_STORAGE_OTHER || 
+                                       pdc618_pci_dev->class>>8 == 
PCI_CLASS_STORAGE_RAID ||
+                                       PDC618_DEVID[class] == DID378) {
                                pdc618_adapter_t  *pada;
 
                                /* pdc378 class:0x0104 */
diff -ru pdc-ultra/pdc618_mod.h pdc-ultra-20376/pdc618_mod.h
--- pdc-ultra/pdc618_mod.h      2003-06-08 18:10:00.000000000 +0200
+++ pdc-ultra-20376/pdc618_mod.h        2003-07-24 17:27:52.000000000 +0200
@@ -25,6 +25,7 @@
 
 #define DID318      0x3318
 #define DID375      0x3375
+#define DID376      0x3376
 #define DID378      0x3373
 #define DID618      0x6626
 
@@ -48,7 +49,7 @@
 #define STIO_READ_FLASHMEM     0x00004006
 #define STIO_WRITE_FLASHMEM    0x00004007
 
-unsigned short PDC618_DEVID[5] = { DID618, DID318, DID375, DID378, 0};
+unsigned short PDC618_DEVID[6] = { DID618, DID318, DID375, DID376, DID378, 0};
 
 typedef struct _pdc618_adapter pdc618_adapter_t;
 typedef struct _pdc618_channel pdc618_channel_t;
@@ -122,7 +123,8 @@
        ULTRA618,                       /* ULTRA 618 */
        SATA375,                        /* SATA150 TX2plus */
        SATA318,                        /* SATA150 TX4 */
-       SATA378                         /* SATA 378 */
+       SATA378,                        /* SATA 378 */
+       SATA376                         /* SATA 376 */
 } hardwaretype;
 
 typedef struct _tag_adaptercount {

Reply via email to