#define DRIVER_AUTHOR "Johan Verrept, Duncan Sands <duncan.sands@free.fr>"
#define DRIVER_VERSION "1.8"
-#define DRIVER_DESC "Generic USB ATM/DSL I/O, version " DRIVER_VERSION
+#define DRIVER_DESC "Alcatel SpeedTouch USB driver version " DRIVER_VERSION
static unsigned int num_rcv_urbs = UDSL_DEFAULT_RCV_URBS;
static unsigned int num_snd_urbs = UDSL_DEFAULT_SND_URBS;
** encode **
*************/
-static inline void udsl_fill_cell_header(unsigned char *target, struct atm_vcc *vcc)
-{
- target[0] = vcc->vpi >> 4;
- target[1] = (vcc->vpi << 4) | (vcc->vci >> 12);
- target[2] = vcc->vci >> 4;
- target[3] = vcc->vci << 4;
- target[4] = 0xec;
-}
-
static const unsigned char zeros[ATM_CELL_PAYLOAD];
static void udsl_groom_skb(struct atm_vcc *vcc, struct sk_buff *skb)
u32 crc;
ctrl->atm_data.vcc = vcc;
+ ctrl->cell_header[0] = vcc->vpi >> 4;
+ ctrl->cell_header[1] = (vcc->vpi << 4) | (vcc->vci >> 12);
+ ctrl->cell_header[2] = vcc->vci >> 4;
+ ctrl->cell_header[3] = vcc->vci << 4;
+ ctrl->cell_header[4] = 0xec;
ctrl->num_cells = UDSL_NUM_CELLS(skb->len);
ctrl->num_entire = skb->len / ATM_CELL_PAYLOAD;
ne = min(howmany, ctrl->num_entire);
for (i = 0; i < ne; i++) {
- udsl_fill_cell_header(target, ctrl->atm_data.vcc);
+ memcpy(target, ctrl->cell_header, ATM_CELL_HEADER);
target += ATM_CELL_HEADER;
memcpy(target, skb->data, ATM_CELL_PAYLOAD);
target += ATM_CELL_PAYLOAD;
if (!(ctrl->num_cells -= ne) || !(howmany -= ne))
goto out;
- udsl_fill_cell_header(target, ctrl->atm_data.vcc);
+ if (instance->snd_padding) {
+ memset(target, 0, instance->snd_padding);
+ target += instance->snd_padding;
+ }
+ memcpy(target, ctrl->cell_header, ATM_CELL_HEADER);
target += ATM_CELL_HEADER;
memcpy(target, skb->data, skb->len);
target += skb->len;
goto out;
}
- if (instance->snd_padding) {
- memset(target, 0, instance->snd_padding);
- target += instance->snd_padding;
- }
- udsl_fill_cell_header(target, ctrl->atm_data.vcc);
+ memcpy(target, ctrl->cell_header, ATM_CELL_HEADER);
target += ATM_CELL_HEADER;
memset(target, 0, ATM_CELL_PAYLOAD - ATM_AAL5_TRAILER);
target += ATM_CELL_PAYLOAD - ATM_AAL5_TRAILER;