diff -uNr linux.orig/Documentation/Configure.help linux/Documentation/Configure.help
--- linux.orig/Documentation/Configure.help	Mon Feb 28 12:52:13 2000
+++ linux/Documentation/Configure.help	Mon Feb 28 12:44:44 2000
@@ -4571,6 +4571,19 @@
   read Documentation/modules.txt. The module will be called
   sym53c416.o. 
 
+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 beta 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	Mon Feb 28 12:52:13 2000
+++ linux/MAINTAINERS	Mon Feb 28 12:43:24 2000
@@ -222,10 +222,12 @@
 L:	linux-hams@vger.rutgers.edu
 S:	Maintained
 
-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
 
 DECnet NETWORK LAYER
diff -uNr linux.orig/drivers/scsi/Config.in linux/drivers/scsi/Config.in
--- linux.orig/drivers/scsi/Config.in	Mon Feb 28 12:52:38 2000
+++ linux/drivers/scsi/Config.in	Mon Feb 28 12:42:43 2000
@@ -125,6 +125,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	Mon Feb 28 12:52:38 2000
+++ linux/drivers/scsi/Makefile	Mon Feb 28 12:42:43 2000
@@ -362,6 +362,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
diff -uNr linux.orig/drivers/scsi/hosts.c linux/drivers/scsi/hosts.c
--- linux.orig/drivers/scsi/hosts.c	Mon Feb 28 12:52:38 2000
+++ linux/drivers/scsi/hosts.c	Mon Feb 28 12:42:44 2000
@@ -239,6 +239,10 @@
 #include "sym53c416.h" 
 #endif
 
+#ifdef CONFIG_SCSI_DC395x_TRMS1040
+#include "dc395x_trm.h"
+#endif
+
 #ifdef CONFIG_SCSI_DC390T
 #include "dc390.h"
 #endif
@@ -547,6 +551,9 @@
 #endif
 #ifdef CONFIG_SCSI_EATA
     EATA,
+#endif
+#ifdef CONFIG_SCSI_DC395x_TRMS1040
+    DC395x_TRMS1040,
 #endif
 #ifdef CONFIG_SCSI_DC390T
     DC390_T,
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 12:52:38 2000
+++ linux/include/linux/proc_fs.h	Mon Feb 28 12:42:44 2000
@@ -181,6 +181,7 @@
 	PROC_SCSI_IBMMCA,
 	PROC_SCSI_FD_MCS,
 	PROC_SCSI_EATA2X,
+	PROC_SCSI_DC395X_TRMS1040,
 	PROC_SCSI_DC390T,
 	PROC_SCSI_AM53C974,
 	PROC_SCSI_SSC,
diff -uNr linux.orig/init/main.c linux/init/main.c
--- linux.orig/init/main.c	Mon Feb 28 12:52:41 2000
+++ linux/init/main.c	Mon Feb 28 12:42:44 2000
@@ -195,6 +195,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 scsi_luns_setup(char *str, int *ints);
 extern void scsi_logging_setup(char *str, int *ints);
 extern void sound_setup(char *str, int *ints);
@@ -748,6 +749,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 },
