diff -Naur pdc-ultra/pdc618_mod.c pdc-ultra-patch2/pdc618_mod.c
--- pdc-ultra/pdc618_mod.c	2003-06-08 13:10:00.000000000 -0300
+++ pdc-ultra-patch2/pdc618_mod.c	2003-07-23 22:15:08.000000000 -0300
@@ -470,9 +470,19 @@
 #endif
 
 			/* class code is 0x0180 or PDC378*/
-			if(pdc618_pci_dev->class>>8 == PCI_CLASS_STORAGE_OTHER || PDC618_DEVID[class] == DID378) {
+			if(pdc618_pci_dev->class>>8 == PCI_CLASS_STORAGE_OTHER || PDC618_DEVID[class] == DID378 || PDC618_DEVID[class] == DID376) {
 				pdc618_adapter_t  *pada;
 
+				/* pdc376 class:0x0104 */
+				/* offset 0x0C  SATA:0x08 FT:0x90 */
+				if (PDC618_DEVID[class] == DID376) {
+					unsigned char code = 0;
+					pci_read_config_byte(pdc618_pci_dev, 0x0c, &code);
+					/* SATA is 0x08 */
+					if (code != 0x08)
+						continue;
+				}
+
 				/* pdc378 class:0x0104 */
 				/* offset 0x0C  SATA:0x91 FT:0x90 */
 				if (PDC618_DEVID[class] == DID378) {
@@ -1201,6 +1211,9 @@
 				case DID375:
 					pdc618_copy_info(&info, "SATA150 TX2plus  ");
 					break;
+				case DID376:
+					pdc618_copy_info(&info, "SATA 376  ");
+					break;
 				case DID378:
 					pdc618_copy_info(&info, "SATA 378  ");
 					break;
@@ -2170,6 +2183,9 @@
 				case DID375:
 					buf->adaptertype = SATA375;
 					break;
+				case DID376:
+					buf->adaptertype = SATA376;
+					break;
 				case DID318:
 					buf->adaptertype = SATA318;
 					break;
diff -Naur pdc-ultra/pdc618_mod.h pdc-ultra-patch2/pdc618_mod.h
--- pdc-ultra/pdc618_mod.h	2003-06-08 13:10:00.000000000 -0300
+++ pdc-ultra-patch2/pdc618_mod.h	2003-07-23 21:59:10.000000000 -0300
@@ -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;
@@ -121,6 +122,7 @@
 	SATA150 = 0,			/* SATA150 series */
 	ULTRA618,			/* ULTRA 618 */
 	SATA375,			/* SATA150 TX2plus */
+	SATA376,			/* SATA150 ??? */
 	SATA318,			/* SATA150 TX4 */
 	SATA378				/* SATA 378 */
 } hardwaretype;
