ChangeSet 1.1043.1.9, 2003/02/16 09:40:01-08:00, [EMAIL PROTECTED]

[PATCH] USB speedtouch: speedtouch dead code elimination

Eliminate a pile of code that isn't used anymore now the new send code
is in place, and make some cosmetic changes.


diff -Nru a/drivers/usb/misc/atmsar.c b/drivers/usb/misc/atmsar.c
--- a/drivers/usb/misc/atmsar.c Tue Feb 18 16:41:30 2003
+++ b/drivers/usb/misc/atmsar.c Tue Feb 18 16:41:30 2003
@@ -213,70 +213,6 @@
 }
 #endif
 
-/* initialization routines. not used at the moment
- * I will avoid these as long as possible !!
- */
-
-int open_atmsar (void)
-{
-       return 0;
-}
-
-int remove_atmsar (void)
-{
-       return 0;
-}
-
-/* ATOMIC version of alloc_tx */
-struct sk_buff *atmsar_alloc_skb_wrapper (struct atm_vcc *vcc, unsigned int size)
-{
-       struct sk_buff *skb;
-
-       if (atomic_read (&vcc->tx_inuse) && !atm_may_send (vcc, size)) {
-               PDEBUG ("Sorry: tx_inuse = %d, size = %d, sndbuf = %d\n",
-                       atomic_read (&vcc->tx_inuse), size, vcc->sk->sndbuf);
-               return NULL;
-       }
-       skb = alloc_skb (size, GFP_ATOMIC);
-       if (!skb)
-               return NULL;
-       atomic_add (skb->truesize + ATM_PDU_OVHD, &vcc->tx_inuse);
-       return skb;
-}
-
-struct sk_buff *atmsar_alloc_tx (struct atmsar_vcc_data *vcc, unsigned int size)
-{
-       struct sk_buff *tmp = NULL;
-       int bufsize = 0;
-
-       switch (vcc->type) {
-       case ATMSAR_TYPE_AAL0:
-               /* reserving adequate headroom */
-               bufsize =
-                   size + (((size / 48) + 1) * ((vcc->flags & ATMSAR_USE_53BYTE_CELL) 
? 5 : 4));
-               break;
-       case ATMSAR_TYPE_AAL1:
-               /* reserving adequate headroom */
-               bufsize =
-                   size + (((size / 47) + 1) * ((vcc->flags & ATMSAR_USE_53BYTE_CELL) 
? 5 : 4));
-               break;
-       case ATMSAR_TYPE_AAL2:
-       case ATMSAR_TYPE_AAL34:
-               /* not supported */
-               break;
-       case ATMSAR_TYPE_AAL5:
-               /* reserving adequate tailroom */
-               bufsize = size + (((size + 8 + 47) / 48) * 48);
-               break;
-       }
-
-       PDEBUG ("Requested size %d, Allocating size %d\n", size, bufsize);
-       tmp = vcc->alloc_tx (vcc->vcc, bufsize);
-       skb_put (tmp, bufsize);
-
-       return tmp;
-}
-
 struct atmsar_vcc_data *atmsar_open (struct atmsar_vcc_data **list, struct atm_vcc 
*vcc, uint type,
                                     ushort vpi, ushort vci, unchar pti, unchar gfc, 
uint flags)
 {
@@ -292,18 +228,6 @@
 
        memset (new, 0, sizeof (struct atmsar_vcc_data));
        new->vcc = vcc;
-/*
- * This gives problems with the ATM layer alloc_tx().
- * It is not usable from interrupt context and for
- * some reason this is used in interrupt context
- * with br2684.c
- *
-  if (vcc->alloc_tx)
-    new->alloc_tx  = vcc->alloc_tx;
-  else
-*/
-       new->alloc_tx = atmsar_alloc_skb_wrapper;
-
        new->stats = vcc->stats;
        new->type = type;
        new->next = NULL;
@@ -372,216 +296,6 @@
        kfree (vcc);
 }
 
-/***********************
- **
- **    ENCODE FUNCTIONS
- **
- ***********************/
-
-/* encapsulate in an AAL5 frame, which is then split into ATM cells */
-unsigned int atmsar_encode (struct atmsar_vcc_data *ctx, char *source, char *target, 
unsigned int pdu_length)
-{
-       unsigned int num_cells = (pdu_length + ATM_AAL5_TRAILER + ATM_CELL_PAYLOAD - 
1) / ATM_CELL_PAYLOAD;
-       unsigned int num_pdu_cells = pdu_length / ATM_CELL_PAYLOAD + 1;
-       unsigned int aal5_length = num_cells * ATM_CELL_PAYLOAD;
-       unsigned int zero_padding = aal5_length - pdu_length - ATM_AAL5_TRAILER;
-       unsigned int final_length = num_cells * ATM_CELL_SIZE;
-       unsigned char aal5_trailer [ATM_AAL5_TRAILER];
-       unsigned char cell_header [ATM_CELL_HEADER];
-       u32 crc;
-       int i;
-
-       PDEBUG ("atmsar_encode entered\n");
-
-       PDEBUG ("pdu_length %d, num_cells %d, num_pdu_cells %d, aal5_length %d, 
zero_padding %d, final_length %d\n", pdu_length, num_cells, num_pdu_cells, 
aal5_length, zero_padding, final_length);
-
-       PDEBUG ("source 0x=%p, target 0x%p\n", source, target);
-
-       aal5_trailer [0] = 0; /* UU = 0 */
-       aal5_trailer [1] = 0; /* CPI = 0 */
-       aal5_trailer [2] = pdu_length >> 8;
-       aal5_trailer [3] = pdu_length;
-
-       crc = crc32 (~0, source, pdu_length);
-       for (i = 0; i < zero_padding; i++)
-               crc = CRC32 (0, crc);
-       crc = crc32 (crc, aal5_trailer, 4);
-       crc = ~crc;
-
-       aal5_trailer [4] = crc >> 24;
-       aal5_trailer [5] = crc >> 16;
-       aal5_trailer [6] = crc >> 8;
-       aal5_trailer [7] = crc;
-
-       cell_header [0] = ctx->atmHeader >> 24;
-       cell_header [1] = ctx->atmHeader >> 16;
-       cell_header [2] = ctx->atmHeader >> 8;
-       cell_header [3] = ctx->atmHeader;
-       cell_header [4] = 0xec;
-
-       for (i = 1; i < num_pdu_cells; i++) {
-               memcpy (target, cell_header, ATM_CELL_HEADER);
-               target += ATM_CELL_HEADER;
-               memcpy (target, source, ATM_CELL_PAYLOAD);
-               target += ATM_CELL_PAYLOAD;
-               source += ATM_CELL_PAYLOAD;
-               PDEBUG ("source 0x=%p, target 0x%p\n", source, target);
-       }
-       memcpy (target, cell_header, ATM_CELL_HEADER);
-       target += ATM_CELL_HEADER;
-       memcpy (target, source, pdu_length % ATM_CELL_PAYLOAD);
-       target += pdu_length % ATM_CELL_PAYLOAD;
-       if (num_pdu_cells < num_cells) {
-               memset (target, 0, zero_padding + ATM_AAL5_TRAILER - ATM_CELL_PAYLOAD);
-               target += zero_padding + ATM_AAL5_TRAILER - ATM_CELL_PAYLOAD;
-               memcpy (target, cell_header, ATM_CELL_HEADER);
-               target += ATM_CELL_HEADER;
-               zero_padding = ATM_CELL_PAYLOAD - ATM_AAL5_TRAILER;
-       }
-       memset (target, 0, zero_padding);
-       target += zero_padding;
-       memcpy (target, aal5_trailer, ATM_AAL5_TRAILER);
-
-       /* set pti bit in last cell */
-       *(target + ATM_AAL5_TRAILER + 3 - ATM_CELL_SIZE) |= 0x2;
-
-       /* update stats */
-       if (ctx->stats)
-               atomic_inc (&ctx->stats->tx);
-
-       if (ctx->stats && (ctx->type <= ATMSAR_TYPE_AAL1))
-               atomic_add (num_cells, &(ctx->stats->tx));
-
-       return final_length;
-}
-
-struct sk_buff *atmsar_encode_rawcell (struct atmsar_vcc_data *ctx, struct sk_buff 
*skb)
-{
-       int number_of_cells = (skb->len) / 48;
-       int total_length = number_of_cells * (ctx->flags & ATMSAR_USE_53BYTE_CELL ? 53 
: 52);
-       unsigned char *source;
-       unsigned char *target;
-       struct sk_buff *out = NULL;
-       int i;
-
-       PDEBUG ("atmsar_encode_rawcell (0x%p, 0x%p) called\n", ctx, skb);
-
-       if (skb_cloned (skb)
-           || (skb_headroom (skb) <
-               (number_of_cells * (ctx->flags & ATMSAR_USE_53BYTE_CELL ? 5 : 4)))) {
-               PDEBUG
-                   ("atmsar_encode_rawcell allocating new skb. ctx->alloc_tx = 0x%p, 
ctx->vcc = 0x%p\n",
-                    ctx->alloc_tx, ctx->vcc);
-               /* get new skb */
-               out = ctx->alloc_tx (ctx->vcc, total_length);
-               if (!out)
-                       return NULL;
-
-               skb_put (out, total_length);
-               source = skb->data;
-               target = out->data;
-       } else {
-               PDEBUG ("atmsar_encode_rawcell: sufficient headroom\n");
-               source = skb->data;
-               skb_push (skb, number_of_cells * ((ctx->flags & 
ATMSAR_USE_53BYTE_CELL) ? 5 : 4));
-               target = skb->data;
-               out = skb;
-       }
-
-       PDEBUG ("source 0x=%p, target 0x%p\n", source, target);
-
-       if (ctx->flags & ATMSAR_USE_53BYTE_CELL) {
-               for (i = 0; i < number_of_cells; i++) {
-                       ADD_HEADER (target, ctx->atmHeader);
-                       *target++ = (char) 0xEC;
-                       memcpy (target, source, 48);
-                       target += 48;
-                       source += 48;
-                       PDEBUG ("source 0x=%p, target 0x%p\n", source, target);
-               }
-       } else {
-               for (i = 0; i < number_of_cells; i++) {
-                       ADD_HEADER (target, ctx->atmHeader);
-                       memcpy (target, source, 48);
-                       target += 48;
-                       source += 48;
-                       PDEBUG ("source 0x=%p, target 0x%p\n", source, target);
-               };
-       }
-
-       if (ctx->flags & ATMSAR_SET_PTI) {
-               /* setting pti bit in last cell */
-               *(target - (ctx->flags & ATMSAR_USE_53BYTE_CELL ? 50 : 49)) |= 0x2;
-       }
-
-       /* update stats */
-       if (ctx->stats && (ctx->type <= ATMSAR_TYPE_AAL1))
-               atomic_add (number_of_cells, &(ctx->stats->tx));
-
-       PDEBUG ("atmsar_encode_rawcell return 0x%p (length %d)\n", out, out->len);
-       return out;
-}
-
-struct sk_buff *atmsar_encode_aal5 (struct atmsar_vcc_data *ctx, struct sk_buff *skb)
-{
-       int length, pdu_length;
-       unsigned char *trailer;
-       unsigned char *pad;
-       uint crc = 0xffffffff;
-
-       PDEBUG ("atmsar_encode_aal5 (0x%p, 0x%p) called\n", ctx, skb);
-
-       /* determine aal5 length */
-       pdu_length = skb->len;
-       length = ((pdu_length + 8 + 47) / 48) * 48;
-
-       if (skb_tailroom (skb) < (length - pdu_length)) {
-               struct sk_buff *out;
-               PDEBUG
-                   ("atmsar_encode_aal5 allocating new skb. ctx->alloc_tx = 0x%p, 
ctx->vcc = 0x%p\n",
-                    ctx->alloc_tx, ctx->vcc);
-               /* get new skb */
-               out = ctx->alloc_tx (ctx->vcc, length);
-               if (!out)
-                       return NULL;
-
-               PDEBUG ("out->data = 0x%p\n", out->data);
-               PDEBUG ("atmsar_encode_aal5 pdu length %d, allocated length %d\n", 
skb->len,
-                       length);
-               memcpy (out->data, skb->data, skb->len);
-               skb_put (out, skb->len);
-
-               skb = out;
-       }
-
-       PDEBUG ("skb->data = 0x%p\n", skb->data);
-       /* note end of pdu and add length */
-       pad = skb_put (skb, length - pdu_length);
-       trailer = skb->tail - 8;
-
-       PDEBUG ("trailer = 0x%p\n", trailer);
-
-       /* zero padding space */
-       memset (pad, 0, length - pdu_length - 8);
-
-       /* add trailer */
-       *trailer++ = (unsigned char) 0; /* UU  = 0 */
-       *trailer++ = (unsigned char) 0; /* CPI = 0 */
-       *trailer++ = (unsigned char) (pdu_length >> 8);
-       *trailer++ = (unsigned char) (pdu_length & 0xff);
-       crc = ~crc32 (crc, skb->data, length - 4);
-       *trailer++ = (unsigned char) (crc >> 24);
-       *trailer++ = (unsigned char) (crc >> 16);
-       *trailer++ = (unsigned char) (crc >> 8);
-       *trailer++ = (unsigned char) (crc & 0xff);
-
-       /* update stats */
-       if (ctx->stats)
-               atomic_inc (&ctx->stats->tx);
-
-       PDEBUG ("atmsar_encode_aal5 return 0x%p (length %d)\n", skb, skb->len);
-       return skb;
-}
 
 /***********************
  **
diff -Nru a/drivers/usb/misc/atmsar.h b/drivers/usb/misc/atmsar.h
--- a/drivers/usb/misc/atmsar.h Tue Feb 18 16:41:30 2003
+++ b/drivers/usb/misc/atmsar.h Tue Feb 18 16:41:30 2003
@@ -63,7 +63,6 @@
        int type;
 
        /* connection specific non-atmsar data */
-       struct sk_buff *(*alloc_tx) (struct atm_vcc * vcc, unsigned int size);
        struct atm_vcc *vcc;
        struct k_atm_aal_stats *stats;
        unsigned short mtu;     /* max is actually  65k for AAL5... */
@@ -86,16 +85,9 @@
                                            unchar gfc, uint flags);
 extern void atmsar_close (struct atmsar_vcc_data **list, struct atmsar_vcc_data *vcc);
 
-extern struct sk_buff *atmsar_encode_rawcell (struct atmsar_vcc_data *ctx, struct 
sk_buff *skb);
-extern struct sk_buff *atmsar_encode_aal5 (struct atmsar_vcc_data *ctx, struct 
sk_buff *skb);
-
 struct sk_buff *atmsar_decode_rawcell (struct atmsar_vcc_data *list, struct sk_buff 
*skb,
                                       struct atmsar_vcc_data **ctx);
 struct sk_buff *atmsar_decode_aal5 (struct atmsar_vcc_data *ctx, struct sk_buff *skb);
-
-struct sk_buff *atmsar_alloc_tx (struct atmsar_vcc_data *vcc, unsigned int size);
-
-unsigned int atmsar_encode (struct atmsar_vcc_data *ctx, char *source, char *target, 
unsigned int pdu_length);
 
 unsigned long calc_crc (char *mem, int len, unsigned initial);
 
diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c
--- a/drivers/usb/misc/speedtouch.c     Tue Feb 18 16:41:30 2003
+++ b/drivers/usb/misc/speedtouch.c     Tue Feb 18 16:41:30 2003
@@ -132,7 +132,7 @@
        unsigned int free_cells;
 };
 
-struct udsl_usb_send_data_context {
+struct udsl_sender {
        struct list_head list;
        struct udsl_send_buffer *buffer;
        struct urb *urb;
@@ -177,7 +177,7 @@
        struct tasklet_struct receive_tasklet;
 
        /* sending */
-       struct udsl_usb_send_data_context send_ctx [UDSL_NUMBER_SND_URBS];
+       struct udsl_sender all_senders [UDSL_NUMBER_SND_URBS];
        struct udsl_send_buffer all_buffers [UDSL_NUMBER_SND_BUFS];
 
        struct sk_buff_head sndqueue;
@@ -487,7 +487,7 @@
 static void udsl_complete_send (struct urb *urb, struct pt_regs *regs)
 {
        struct udsl_instance_data *instance;
-       struct udsl_usb_send_data_context *snd;
+       struct udsl_sender *snd;
        unsigned long flags;
 
        PDEBUG ("udsl_complete_send entered\n");
@@ -509,7 +509,7 @@
 static void udsl_process_send (unsigned long data)
 {
        struct udsl_instance_data *instance = (struct udsl_instance_data *) data;
-       struct udsl_usb_send_data_context *snd;
+       struct udsl_sender *snd;
        struct udsl_send_buffer *buf;
        unsigned int cells_to_write, i;
        struct sk_buff *skb;
@@ -531,7 +531,7 @@
                } else /* all buffers empty */
                        break;
 
-               snd = list_entry (instance->spare_senders.next, struct 
udsl_usb_send_data_context, list);
+               snd = list_entry (instance->spare_senders.next, struct udsl_sender, 
+list);
                list_del (&snd->list);
                spin_unlock_irqrestore (&instance->send_lock, flags);
 
@@ -615,12 +615,12 @@
        goto made_progress;
 }
 
-static void udsl_usb_cancelsends (struct udsl_instance_data *instance, struct atm_vcc 
*vcc)
+static void udsl_cancel_send (struct udsl_instance_data *instance, struct atm_vcc 
+*vcc)
 {
        unsigned long flags;
        struct sk_buff *skb, *n;
 
-       PDEBUG ("udsl_usb_cancelsends entered\n");
+       PDEBUG ("udsl_cancel_send entered\n");
        spin_lock_irqsave (&instance->sndqueue.lock, flags);
        for (skb = instance->sndqueue.next, n = skb->next; skb != (struct sk_buff 
*)&instance->sndqueue; skb = n, n = skb->next)
                if (UDSL_SKB (skb)->atm_data.vcc == vcc) {
@@ -643,7 +643,7 @@
                        kfree_skb (skb);
        }
        tasklet_enable (&instance->send_tasklet);
-       PDEBUG ("udsl_usb_cancelsends done\n");
+       PDEBUG ("udsl_cancel_send done\n");
 }
 
 static int udsl_atm_send (struct atm_vcc *vcc, struct sk_buff *skb)
@@ -716,17 +716,6 @@
 * ATM helper functions
 *
 ****************************************************************************/
-static struct sk_buff *udsl_atm_alloc_tx (struct atm_vcc *vcc, unsigned int size)
-{
-       struct atmsar_vcc_data *atmsar_vcc =
-           ((struct udsl_atm_dev_data *) vcc->dev_data)->atmsar_vcc;
-       if (atmsar_vcc)
-               return atmsar_alloc_tx (atmsar_vcc, size);
-
-       printk (KERN_INFO
-               "SpeedTouch USB: udsl_atm_alloc_tx could not find correct alloc_tx 
function !\n");
-       return NULL;
-}
 
 static int udsl_atm_proc_read (struct atm_dev *atm_dev, loff_t *pos, char *page)
 {
@@ -805,7 +794,6 @@
        set_bit (ATM_VF_PARTIAL, &vcc->flags);
        set_bit (ATM_VF_READY, &vcc->flags);
        vcc->dev_data = dev_data;
-       vcc->alloc_tx = udsl_atm_alloc_tx;
 
        dev_data->atmsar_vcc->mtu = UDSL_MAX_AAL5_MRU;
 
@@ -830,7 +818,7 @@
 
        /* freeing resources */
        /* cancel all sends on this vcc */
-       udsl_usb_cancelsends (instance, vcc);
+       udsl_cancel_send (instance, vcc);
 
        atmsar_close (&(instance->atmsar_vcc_list), dev_data->atmsar_vcc);
        kfree (dev_data);
@@ -964,7 +952,7 @@
 
        /* send init */
        for (i = 0; i < UDSL_NUMBER_SND_URBS; i++) {
-               struct udsl_usb_send_data_context *snd = &(instance->send_ctx[i]);
+               struct udsl_sender *snd = &(instance->all_senders[i]);
 
                if (!(snd->urb = usb_alloc_urb (0, GFP_KERNEL))) {
                        PDEBUG ("No memory for send urb %d!\n", i);
@@ -1022,15 +1010,15 @@
                kfree (instance->all_buffers[i].base);
 
        for (i = 0; i < UDSL_NUMBER_SND_URBS; i++)
-               usb_free_urb (instance->send_ctx[i].urb);
+               usb_free_urb (instance->all_senders[i].urb);
 
        for (i = 0; i < UDSL_NUMBER_RCV_URBS; i++) {
                struct udsl_receiver *rcv = &(instance->all_receivers[i]);
 
+               usb_free_urb (rcv->urb);
+
                if (rcv->skb)
                        kfree_skb (rcv->skb);
-
-               usb_free_urb (rcv->urb);
        }
 
        kfree (instance);
@@ -1112,7 +1100,7 @@
        tasklet_disable (&instance->send_tasklet);
 
        for (i = 0; i < UDSL_NUMBER_SND_URBS; i++)
-               if ((result = usb_unlink_urb (instance->send_ctx[i].urb)) < 0)
+               if ((result = usb_unlink_urb (instance->all_senders[i].urb)) < 0)
                        PDEBUG ("udsl_usb_disconnect: usb_unlink_urb on send urb %d 
returned %d\n", i, result);
 
        /* wait for completion handlers to finish */
@@ -1143,7 +1131,7 @@
 
        PDEBUG ("udsl_usb_disconnect: freeing senders\n");
        for (i = 0; i < UDSL_NUMBER_SND_URBS; i++)
-               usb_free_urb (instance->send_ctx[i].urb);
+               usb_free_urb (instance->all_senders[i].urb);
 
        PDEBUG ("udsl_usb_disconnect: freeing buffers\n");
        for (i = 0; i < UDSL_NUMBER_SND_BUFS; i++)



-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to