Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.24-rc2 88 lines 2.2 kB view raw
1/* Driver for Microtech DPCM-USB CompactFlash/SmartMedia reader 2 * 3 * $Id: dpcm.c,v 1.4 2001/06/11 02:54:25 mdharm Exp $ 4 * 5 * DPCM driver v0.1: 6 * 7 * First release 8 * 9 * Current development and maintenance by: 10 * (c) 2000 Brian Webb (webbb@earthlink.net) 11 * 12 * This device contains both a CompactFlash card reader, which 13 * uses the Control/Bulk w/o Interrupt protocol and 14 * a SmartMedia card reader that uses the same protocol 15 * as the SDDR09. 16 * 17 * This program is free software; you can redistribute it and/or modify it 18 * under the terms of the GNU General Public License as published by the 19 * Free Software Foundation; either version 2, or (at your option) any 20 * later version. 21 * 22 * This program is distributed in the hope that it will be useful, but 23 * WITHOUT ANY WARRANTY; without even the implied warranty of 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 25 * General Public License for more details. 26 * 27 * You should have received a copy of the GNU General Public License along 28 * with this program; if not, write to the Free Software Foundation, Inc., 29 * 675 Mass Ave, Cambridge, MA 02139, USA. 30 */ 31 32#include <scsi/scsi.h> 33#include <scsi/scsi_cmnd.h> 34#include <scsi/scsi_device.h> 35 36#include "usb.h" 37#include "transport.h" 38#include "protocol.h" 39#include "debug.h" 40#include "dpcm.h" 41#include "sddr09.h" 42 43/* 44 * Transport for the Microtech DPCM-USB 45 * 46 */ 47int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us) 48{ 49 int ret; 50 51 if (srb == NULL) 52 return USB_STOR_TRANSPORT_ERROR; 53 54 US_DEBUGP("dpcm_transport: LUN=%d\n", srb->device->lun); 55 56 switch (srb->device->lun) { 57 case 0: 58 59 /* 60 * LUN 0 corresponds to the CompactFlash card reader. 61 */ 62 ret = usb_stor_CB_transport(srb, us); 63 break; 64 65#ifdef CONFIG_USB_STORAGE_SDDR09 66 case 1: 67 68 /* 69 * LUN 1 corresponds to the SmartMedia card reader. 70 */ 71 72 /* 73 * Set the LUN to 0 (just in case). 74 */ 75 srb->device->lun = 0; us->srb->device->lun = 0; 76 ret = sddr09_transport(srb, us); 77 srb->device->lun = 1; us->srb->device->lun = 1; 78 break; 79 80#endif 81 82 default: 83 US_DEBUGP("dpcm_transport: Invalid LUN %d\n", srb->device->lun); 84 ret = USB_STOR_TRANSPORT_ERROR; 85 break; 86 } 87 return ret; 88}