ChangeSet 1.1247, 2003/06/18 16:54:47-07:00, [EMAIL PROTECTED]

[PATCH] USB: kobil_sct.c added support for KAAN SIM Reader

here is a patch for the kobil_sct.c usb-serial driver which
adds support for the KAAN SIM.


 drivers/usb/serial/kobil_sct.c |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)


diff -Nru a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
--- a/drivers/usb/serial/kobil_sct.c    Wed Jun 18 17:35:12 2003
+++ b/drivers/usb/serial/kobil_sct.c    Wed Jun 18 17:35:12 2003
@@ -21,7 +21,8 @@
  * Supported readers: USB TWIN, KAAN Standard Plus and SecOVID Reader Plus
  * (Adapter K), B1 Professional and KAAN Professional (Adapter B)
  * 
- * TODO: High baudrates
+ * (23/05/2003) tw
+ *      Add support for KAAN SIM
  *
  * (12/03/2002) tw
  *      Fixed bug with Pro-readers and PNP
@@ -66,6 +67,7 @@
 #define KOBIL_ADAPTER_B_PRODUCT_ID 0x2011
 #define KOBIL_ADAPTER_K_PRODUCT_ID 0x2012
 #define KOBIL_USBTWIN_PRODUCT_ID   0x0078
+#define KOBIL_KAAN_SIM_PRODUCT_ID  0x0081
 
 #define KOBIL_TIMEOUT    500
 #define KOBIL_BUF_LENGTH 300
@@ -89,6 +91,7 @@
        { USB_DEVICE(KOBIL_VENDOR_ID, KOBIL_ADAPTER_B_PRODUCT_ID) },
        { USB_DEVICE(KOBIL_VENDOR_ID, KOBIL_ADAPTER_K_PRODUCT_ID) },
        { USB_DEVICE(KOBIL_VENDOR_ID, KOBIL_USBTWIN_PRODUCT_ID) },
+       { USB_DEVICE(KOBIL_VENDOR_ID, KOBIL_KAAN_SIM_PRODUCT_ID) },
        { }                     /* Terminating entry */
 };
 
@@ -157,6 +160,9 @@
        case KOBIL_USBTWIN_PRODUCT_ID:
                printk(KERN_DEBUG "KOBIL USBTWIN detected\n");
                break;
+       case KOBIL_KAAN_SIM_PRODUCT_ID:
+               printk(KERN_DEBUG "KOBIL KAAN SIM detected\n");
+               break;
        }
 
        // search for the neccessary endpoints
@@ -322,7 +328,8 @@
                dbg("%s - port %d Send reset_all_queues URB returns: %i", 
__FUNCTION__, port->number, result);
        }
 
-       if (priv->device_type == KOBIL_USBTWIN_PRODUCT_ID || priv->device_type == 
KOBIL_ADAPTER_B_PRODUCT_ID) {
+       if (priv->device_type == KOBIL_USBTWIN_PRODUCT_ID || priv->device_type == 
KOBIL_ADAPTER_B_PRODUCT_ID ||
+           priv->device_type == KOBIL_KAAN_SIM_PRODUCT_ID) {
                // start reading (Adapter B 'cause PNP string)
                result = usb_submit_urb( port->interrupt_in_urb ); 
                dbg("%s - port %d Send read URB returns: %i", __FUNCTION__, 
port->number, result);
@@ -444,12 +451,12 @@
        priv->filled = priv->filled + count;
   
 
-       // only send complete block. TWIN and adapter K use the same protocol.
+       // only send complete block. TWIN, KAAN SIM and adapter K use the same 
protocol.
        if ( ((priv->device_type != KOBIL_ADAPTER_B_PRODUCT_ID) && (priv->filled > 2) 
&& (priv->filled >= (priv->buf[1] + 3))) || 
             ((priv->device_type == KOBIL_ADAPTER_B_PRODUCT_ID) && (priv->filled > 3) 
&& (priv->filled >= (priv->buf[2] + 4))) ) {
                
-               // stop reading (except TWIN)
-               if (priv->device_type != KOBIL_USBTWIN_PRODUCT_ID) {
+               // stop reading (except TWIN and KAAN SIM)
+               if ( (priv->device_type == KOBIL_ADAPTER_B_PRODUCT_ID) || 
(priv->device_type == KOBIL_ADAPTER_K_PRODUCT_ID) ) {
                        usb_unlink_urb( port->interrupt_in_urb );
                }
                
@@ -486,8 +493,8 @@
                priv->filled = 0;
                priv->cur_pos = 0;
                                
-               // start reading (except TWIN)  
-               if (priv->device_type != KOBIL_USBTWIN_PRODUCT_ID) {
+               // start reading (except TWIN and KAAN SIM)
+               if ( (priv->device_type == KOBIL_ADAPTER_B_PRODUCT_ID) || 
(priv->device_type == KOBIL_ADAPTER_K_PRODUCT_ID) ) {
                        // someone sets the dev to 0 if the close method has been 
called
                        port->interrupt_in_urb->dev = port->serial->dev;
                
@@ -519,7 +526,7 @@
        char *settings;
 
        priv = (struct kobil_private *) port->private;
-       if (priv->device_type == KOBIL_USBTWIN_PRODUCT_ID) {
+       if ((priv->device_type == KOBIL_USBTWIN_PRODUCT_ID) || (priv->device_type == 
KOBIL_KAAN_SIM_PRODUCT_ID)) {
                // This device doesn't support ioctl calls
                return 0;
        }



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to