- CyQ've CQ8060A CDRW drive
          - Planex eXtreme Drive RX-25HU USB-IDE cable (not model RX-25U)
 
-config USB_STORAGE_DPCM
-       bool "Microtech/ZiO! CompactFlash/SmartMedia support"
-       depends on USB_STORAGE
-       help
-         Say Y here to support the Microtech/ZiO! CompactFlash reader.
-         There is a web page at <http://www.ziocorp.com/products/>.
-
 config USB_STORAGE_USBAT
        bool "USBAT/USBAT02-based storage support"
        depends on USB_STORAGE
          - Sandisk ImageMate SDDR-05b
 
 config USB_STORAGE_SDDR09
-       bool "SanDisk SDDR-09 (and other SmartMedia) support"
+       bool "SanDisk SDDR-09 (and other SmartMedia, including DPCM) support"
        depends on USB_STORAGE
        help
          Say Y here to include additional code to support the Sandisk SDDR-09
          SmartMedia reader in the USB Mass Storage driver.
-         Also works for the Microtech Zio! SmartMedia reader.
+         Also works for the Microtech Zio! CompactFlash/SmartMedia reader.
 
 config USB_STORAGE_SDDR55
        bool "SanDisk SDDR-55 SmartMedia support"
 
 usb-storage-obj-$(CONFIG_USB_STORAGE_SDDR09)   += sddr09.o
 usb-storage-obj-$(CONFIG_USB_STORAGE_SDDR55)   += sddr55.o
 usb-storage-obj-$(CONFIG_USB_STORAGE_FREECOM)  += freecom.o
-usb-storage-obj-$(CONFIG_USB_STORAGE_DPCM)     += dpcm.o
 usb-storage-obj-$(CONFIG_USB_STORAGE_ISD200)   += isd200.o
 usb-storage-obj-$(CONFIG_USB_STORAGE_DATAFAB)  += datafab.o
 usb-storage-obj-$(CONFIG_USB_STORAGE_JUMPSHOT) += jumpshot.o
 
+++ /dev/null
-/* Driver for Microtech DPCM-USB CompactFlash/SmartMedia reader
- *
- * DPCM driver v0.1:
- *
- * First release
- *
- * Current development and maintenance by:
- *   (c) 2000 Brian Webb (webbb@earthlink.net)
- *
- * This device contains both a CompactFlash card reader, which
- * uses the Control/Bulk w/o Interrupt protocol and
- * a SmartMedia card reader that uses the same protocol
- * as the SDDR09.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <scsi/scsi.h>
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_device.h>
-
-#include "usb.h"
-#include "transport.h"
-#include "protocol.h"
-#include "debug.h"
-#include "dpcm.h"
-#include "sddr09.h"
-
-/*
- * Transport for the Microtech DPCM-USB
- *
- */
-int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us)
-{
-       int ret;
-
-       if (srb == NULL)
-               return USB_STOR_TRANSPORT_ERROR;
-
-       US_DEBUGP("dpcm_transport: LUN=%d\n", srb->device->lun);
-
-       switch (srb->device->lun) {
-               case 0:
-
-                       /*
-                        * LUN 0 corresponds to the CompactFlash card reader.
-                        */
-                       ret = usb_stor_CB_transport(srb, us);
-                       break;
-
-#ifdef CONFIG_USB_STORAGE_SDDR09
-               case 1:
-
-                       /*
-                        * LUN 1 corresponds to the SmartMedia card reader.
-                        */
-
-                       /*
-                        * Set the LUN to 0 (just in case).
-                        */
-                       srb->device->lun = 0; us->srb->device->lun = 0;
-                       ret = sddr09_transport(srb, us);
-                       srb->device->lun = 1; us->srb->device->lun = 1;
-                       break;
-
-#endif
-
-               default:
-                       US_DEBUGP("dpcm_transport: Invalid LUN %d\n", srb->device->lun);
-                       ret = USB_STOR_TRANSPORT_ERROR;
-                       break;
-       }
-       return ret;
-}
 
+++ /dev/null
-/* Driver for Microtech DPCM-USB CompactFlash/SmartMedia reader
- *
- * DPCM driver v0.1:
- *
- * First release
- *
- * Current development and maintenance by:
- *   (c) 2000 Brian Webb (webbb@earthlink.net)
- *
- * See dpcm.c for more explanation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _MICROTECH_DPCM_USB_H
-#define _MICROTECH_DPCM_USB_H
-
-extern int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us);
-
-#endif
 
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
+#include <scsi/scsi_device.h>
 
 #include "usb.h"
 #include "transport.h"
        return 0;               /* not result */
 }
 
+/*
+ * Transport for the Microtech DPCM-USB
+ */
+int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us)
+{
+       int ret;
+
+       US_DEBUGP("dpcm_transport: LUN=%d\n", srb->device->lun);
+
+       switch (srb->device->lun) {
+       case 0:
+
+               /*
+                * LUN 0 corresponds to the CompactFlash card reader.
+                */
+               ret = usb_stor_CB_transport(srb, us);
+               break;
+
+       case 1:
+
+               /*
+                * LUN 1 corresponds to the SmartMedia card reader.
+                */
+
+               /*
+                * Set the LUN to 0 (just in case).
+                */
+               srb->device->lun = 0;
+               ret = sddr09_transport(srb, us);
+               srb->device->lun = 1;
+               break;
+
+       default:
+               US_DEBUGP("dpcm_transport: Invalid LUN %d\n",
+                               srb->device->lun);
+               ret = USB_STOR_TRANSPORT_ERROR;
+               break;
+       }
+       return ret;
+}
+
+
 /*
  * Transport for the Sandisk SDDR-09
  */
 
 /* Sandisk SDDR-09 stuff */
 
 extern int sddr09_transport(struct scsi_cmnd *srb, struct us_data *us);
+extern int usb_stor_sddr09_init(struct us_data *us);
+
+/* Microtech DPCM-USB stuff */
 
+extern int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us);
 extern int usb_stor_sddr09_dpcm_init(struct us_data *us);
-extern int usb_stor_sddr09_init(struct us_data *us);
 
 #endif
 
                US_SC_DEVICE, US_PR_DEVICE, NULL,
                US_FL_SINGLE_LUN ),
 
-#ifdef CONFIG_USB_STORAGE_DPCM
+#ifdef CONFIG_USB_STORAGE_SDDR09
 UNUSUAL_DEV(  0x0436, 0x0005, 0x0100, 0x0100,
                "Microtech",
                "CameraMate (DPCM_USB)",
                US_SC_SCSI, US_PR_DPCM_USB, NULL, 0 ),
+#else
+UNUSUAL_DEV(  0x0436, 0x0005, 0x0100, 0x0100,
+               "Microtech",
+               "CameraMate",
+               US_SC_SCSI, US_PR_CB, NULL,
+               US_FL_SINGLE_LUN ),
 #endif
 
 /* Patch submitted by Daniel Drake <dsd@gentoo.org>
                "eUSB SmartMedia / CompactFlash Adapter",
                US_SC_SCSI, US_PR_DPCM_USB, usb_stor_sddr09_dpcm_init,
                0),
+#else
+UNUSUAL_DEV(  0x04e6, 0x0005, 0x0100, 0x0208,
+               "SCM Microsystems",
+               "eUSB CompactFlash Adapter",
+               US_SC_SCSI, US_PR_CB, NULL,
+               US_FL_SINGLE_LUN),
 #endif
 
 /* Reported by Markus Demleitner <msdemlei@cl.uni-heidelberg.de> */
                US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init,
                US_FL_SCM_MULT_TARG ),
 
-#ifdef CONFIG_USB_STORAGE_DPCM
+#ifdef CONFIG_USB_STORAGE_SDDR09
 UNUSUAL_DEV(  0x07af, 0x0006, 0x0100, 0x0100,
                "Microtech",
                "CameraMate (DPCM_USB)",
                US_SC_SCSI, US_PR_DPCM_USB, NULL, 0 ),
+#else
+UNUSUAL_DEV(  0x07af, 0x0006, 0x0100, 0x0100,
+               "Microtech",
+               "CameraMate",
+               US_SC_SCSI, US_PR_CB, NULL,
+               US_FL_SINGLE_LUN ),
 #endif
 
 #ifdef CONFIG_USB_STORAGE_ALAUDA
 
 #ifdef CONFIG_USB_STORAGE_SDDR55
 #include "sddr55.h"
 #endif
-#ifdef CONFIG_USB_STORAGE_DPCM
-#include "dpcm.h"
-#endif
 #ifdef CONFIG_USB_STORAGE_FREECOM
 #include "freecom.h"
 #endif