diff -uNr linux.orig/Documentation/Configure.help linux/Documentation/Configure.help
--- linux.orig/Documentation/Configure.help	Sun Jun 13 19:20:59 1999
+++ linux/Documentation/Configure.help	Mon Feb 28 13:06:01 2000
@@ -2223,6 +2223,19 @@
   and removed from the running kernel whenever you want), say M here
   and read Documentation/modules.txt.
 
+Tekram DC395/U/UW and DC315/U SCSI support
+CONFIG_SCSI_DC395x_TRMS1040
+  This driver supports the PCI SCSI host adapters baseds on Tekram's
+  ASIC TRM-S1040 chip, i.e. Tekram DC315 and DC395 variants.
+  This driver does work, but please note that it is still alpha status,
+  so better have a bootable disk and a backup in case of emergency.
+  Please read the file drivers/scsi/README.dc395x.
+  
+  If you want to compile this driver as a module ( = code which can be
+  inserted in and removed from the running kernel whenever you want),
+  say M here and read Documentation/modules.txt. The module will be
+  called dc395x_trm.o.
+
 Tekram DC390(T) and Am53/79C974 (PCscsi) SCSI support
 CONFIG_SCSI_DC390T
   This driver supports  PCI SCSI host adapters  based on the Am53C974A
diff -uNr linux.orig/MAINTAINERS linux/MAINTAINERS
--- linux.orig/MAINTAINERS	Sun Jun 13 19:20:59 1999
+++ linux/MAINTAINERS	Mon Feb 28 13:05:21 2000
@@ -170,10 +170,12 @@
 W:	http://www.cyclades.com/
 S:	Supported
 
-DC390/AM53C974 SCSI driver
+DC390/AM53C974 and DC395/TRM-S1040 SCSI drivers
 P:	Kurt Garloff
+M:	garloff@suse.de
 M:	kurt@garloff.de
-W:	http://www.garloff.de/kurt/linux/dc390/
+W:	http://www.garloff.de/kurt/linux/
+L:	linux-scsi@vger.rutgers.edu
 S:	Maintained
 
 DAC960 RAID DRIVER
diff -uNr linux.orig/drivers/scsi/Config.in linux/drivers/scsi/Config.in
--- linux.orig/drivers/scsi/Config.in	Sun Jun 13 19:21:02 1999
+++ linux/drivers/scsi/Config.in	Mon Feb 28 13:03:21 2000
@@ -93,6 +93,9 @@
 fi
 dep_tristate 'Seagate ST-02 and Future Domain TMC-8xx SCSI support' CONFIG_SCSI_SEAGATE $CONFIG_SCSI
 if [ "$CONFIG_PCI" = "y" ]; then
+  if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+    dep_tristate 'Tekram DC395/U/UW and DC315/U SCSI support' CONFIG_SCSI_DC395x_TRMS1040 $CONFIG_SCSI
+  fi
   dep_tristate 'Tekram DC390(T) and Am53/79C974 SCSI support' CONFIG_SCSI_DC390T $CONFIG_SCSI
   if [ "$CONFIG_SCSI_DC390T" != "n" ]; then
     bool '  _omit_ support for non-DC390 adapters' CONFIG_SCSI_DC390T_NOGENSUPP
diff -uNr linux.orig/drivers/scsi/Makefile linux/drivers/scsi/Makefile
--- linux.orig/drivers/scsi/Makefile	Sun Jun 13 19:21:02 1999
+++ linux/drivers/scsi/Makefile	Mon Feb 28 13:03:21 2000
@@ -195,6 +195,14 @@
   endif
 endif
 
+ifeq ($(CONFIG_SCSI_DC395x_TRMS1040),y)
+L_OBJS += dc395x_trm.o
+else
+  ifeq ($(CONFIG_SCSI_DC395x_TRMS1040),m)
+  M_OBJS += dc395x_trm.o
+  endif
+endif
+
 ifeq ($(CONFIG_SCSI_DC390T),y)
 L_OBJS += tmscsim.o
 else
@@ -453,6 +461,9 @@
 
 seagate.o: seagate.c
 	$(CC) $(CFLAGS) -DARBITRATE -DSLOW_HANDSHAKE -DFAST32 -c seagate.c 
+
+dc395x_trm.o : dc395x_trm.c dc395x_trm.h
+	$(CC) $(CFLAGS) -c dc395x_trm.c
 
 tmscsim.o : tmscsim.c
 	$(CC) $(CFLAGS) -c tmscsim.c
diff -uNr linux.orig/drivers/scsi/hosts.c linux/drivers/scsi/hosts.c
--- linux.orig/drivers/scsi/hosts.c	Sun Jun 13 19:21:02 1999
+++ linux/drivers/scsi/hosts.c	Mon Feb 28 13:03:21 2000
@@ -157,6 +157,10 @@
 #include "sym53c416.h" 
 #endif
 
+#ifdef CONFIG_SCSI_DC395x_TRMS1040
+#include "dc395x_trm.h"
+#endif
+
 #ifdef CONFIG_SCSI_DC390T
 #include "dc390.h"
 #endif
@@ -347,6 +351,9 @@
 #endif
 #ifdef CONFIG_SCSI_EATA
     EATA,
+#endif
+#ifdef CONFIG_SCSI_DC395x_TRMS1040
+    DC395x_TRMS1040,
 #endif
 #ifdef CONFIG_SCSI_AM53C974
     AM53C974,
diff -uNr linux.orig/include/linux/proc_fs.h linux/include/linux/proc_fs.h
--- linux.orig/include/linux/proc_fs.h	Mon Feb 28 11:46:26 2000
+++ linux/include/linux/proc_fs.h	Mon Feb 28 13:03:22 2000
@@ -133,6 +133,7 @@
 	PROC_SCSI_SEAGATE,
 	PROC_SCSI_T128,
 	PROC_SCSI_DC390T,
+	PROC_SCSI_DC395X_TRMS1040,
 	PROC_SCSI_NCR53C7xx,
 	PROC_SCSI_NCR53C8XX,
 	PROC_SCSI_ULTRASTOR,
diff -uNr linux.orig/init/main.c linux/init/main.c
--- linux.orig/init/main.c	Sun Jun 13 19:21:04 1999
+++ linux/init/main.c	Mon Feb 28 13:04:45 2000
@@ -109,6 +109,7 @@
 extern void sym53c416_setup(char *str, int *ints);
 extern void wd7000_setup(char *str, int *ints);
 extern void dc390_setup(char* str, int *ints);
+extern void DC395x_trm_setup(char* str, int *ints);
 extern void ppa_setup(char *str, int *ints);
 extern void scsi_luns_setup(char *str, int *ints);
 extern void sound_setup(char *str, int *ints);
@@ -399,6 +400,9 @@
 #endif
 #if defined(CONFIG_SCSI_DC390T) && ! defined(CONFIG_SCSI_DC390T_NOGENSUPP)
 	{ "tmscsim=", dc390_setup },
+#endif
+#if defined(CONFIG_SCSI_DC395x_TRMS1040)
+        { "dc395x_trm=", DC395x_trm_setup },
 #endif
 #ifdef CONFIG_BLK_DEV_XD
 	{ "xd=", xd_setup },
