ChangeSet 1.992, 2003/02/04 11:54:27+11:00, [EMAIL PROTECTED]

[PATCH] USB speedtouch: tweak speedtouch status logic

  speedtouch: change data_started to firmware_loaded, which is what it actually
  means, plus some minor related changes.


diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c
--- a/drivers/usb/misc/speedtouch.c     Tue Feb  4 15:16:11 2003
+++ b/drivers/usb/misc/speedtouch.c     Tue Feb  4 15:16:11 2003
@@ -144,7 +144,7 @@
        struct usb_device *usb_dev;
        struct sk_buff_head sndqueue;
        struct udsl_usb_send_data_context send_ctx [UDSL_NUMBER_SND_URBS];
-       int data_started;
+       int firmware_loaded;
 
        /* atm device part */
        struct atm_dev *atm_dev;
@@ -556,7 +556,7 @@
 
        dev_data->atmsar_vcc->mtu = UDSL_MAX_AAL5_MRU;
 
-       if (instance->data_started)
+       if (instance->firmware_loaded)
                udsl_fire_receivers (instance);
 
        PDEBUG ("udsl_atm_open successfull\n");
@@ -677,7 +677,7 @@
 
        PDEBUG ("udsl_usb_send_data entered, sending packet %p with length %d\n", skb, 
skb->len);
 
-       if (!instance->data_started)
+       if (!instance->firmware_loaded)
                return -EAGAIN;
 
        PACKETDEBUG (skb->data, skb->len);
@@ -731,12 +731,12 @@
        return err;
 }
 
-static int udsl_usb_data_init (struct udsl_instance_data *instance)
+static void udsl_usb_data_init (struct udsl_instance_data *instance)
 {
        int i, succes;
 
-       if (instance->data_started)
-               return 1;
+       if (instance->firmware_loaded)
+               return;
 
        /* set alternate setting 1 on interface 1 */
        usb_set_interface (instance->usb_dev, 1, 2);
@@ -759,21 +759,11 @@
 
        PDEBUG ("udsl_usb_data_init %d urb%s queued for send\n", succes, (succes != 1) 
? "s" : "");
 
-       instance->data_started = 1;
-       instance->atm_dev->signal = ATM_PHY_SIG_FOUND;
+       wmb ();
 
-       return 0;
-}
+       instance->firmware_loaded = 1;
 
-static int udsl_usb_data_exit (struct udsl_instance_data *instance)
-{
-       if (!instance->data_started)
-               return 0;
-
-       instance->data_started = 0;
-       instance->atm_dev->signal = ATM_PHY_SIG_LOST;
-
-       return 0;
+       return;
 }
 
 
@@ -791,10 +781,13 @@
        down(&udsl_usb_ioctl_lock);
        switch (code) {
        case UDSL_IOCTL_START:
-               retval = udsl_usb_data_init (instance);
+               instance->atm_dev->signal = ATM_PHY_SIG_FOUND;
+               udsl_usb_data_init (instance);
+               retval = 0;
                break;
        case UDSL_IOCTL_STOP:
-               retval = udsl_usb_data_exit (instance);
+               instance->atm_dev->signal = ATM_PHY_SIG_LOST;
+               retval = 0;
                break;
        default:
                retval = -ENOTTY;



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to