Lines Matching defs:i2400mu

118 size_t i2400mu_rx_size_grow(struct i2400mu *i2400mu)
120 struct device *dev = &i2400mu->usb_iface->dev;
124 rx_size = 2 * i2400mu->rx_size;
130 rx_size, i2400mu->rx_size);
134 rx_size, i2400mu->rx_size);
140 void i2400mu_rx_size_maybe_shrink(struct i2400mu *i2400mu)
143 struct device *dev = &i2400mu->usb_iface->dev;
145 if (unlikely(i2400mu->rx_size_cnt >= 100
146 && i2400mu->rx_size_auto_shrink)) {
148 i2400mu->rx_size_acc / i2400mu->rx_size_cnt;
149 size_t new_rx_size = i2400mu->rx_size / 2;
156 new_rx_size, i2400mu->rx_size);
161 new_rx_size, i2400mu->rx_size);
162 i2400mu->rx_size = new_rx_size;
163 i2400mu->rx_size_cnt = 0;
164 i2400mu->rx_size_acc = i2400mu->rx_size;
172 * @i2400mu: USB device descriptor
192 struct sk_buff *i2400mu_rx(struct i2400mu *i2400mu, struct sk_buff *rx_skb)
195 struct device *dev = &i2400mu->usb_iface->dev;
200 d_fnstart(4, dev, "(i2400mu %p)\n", i2400mu);
201 do_autopm = atomic_read(&i2400mu->do_autopm);
203 usb_autopm_get_interface(i2400mu->usb_iface) : 0;
208 epd = usb_get_epd(i2400mu->usb_iface, i2400mu->endpoint_cfg.bulk_in);
209 usb_pipe = usb_rcvbulkpipe(i2400mu->usb_dev, epd->bEndpointAddress);
217 i2400mu->usb_dev, usb_pipe, rx_skb->data + rx_skb->len,
219 usb_mark_last_busy(i2400mu->usb_dev);
237 if (edc_inc(&i2400mu->urb_edc,
243 usb_clear_halt(i2400mu->usb_dev, usb_pipe);
254 rx_size = i2400mu_rx_size_grow(i2400mu);
256 i2400mu->rx_size = rx_size;
272 i2400mu->rx_size_cnt = 0;
273 i2400mu->rx_size_acc = i2400mu->rx_size;
289 if (edc_inc(&i2400mu->urb_edc,
297 usb_autopm_put_interface(i2400mu->usb_iface);
298 d_fnend(4, dev, "(i2400mu %p) = %p\n", i2400mu, rx_skb);
305 usb_queue_reset_device(i2400mu->usb_iface);
331 struct i2400mu *i2400mu = _i2400mu;
332 struct i2400m *i2400m = &i2400mu->i2400m;
333 struct device *dev = &i2400mu->usb_iface->dev;
340 d_fnstart(4, dev, "(i2400mu %p)\n", i2400mu);
342 BUG_ON(i2400mu->rx_kthread != NULL);
343 i2400mu->rx_kthread = current;
349 i2400mu->rx_wq,
351 || (pending = atomic_read(&i2400mu->rx_pending_count)))
357 rx_size = i2400mu->rx_size;
368 rx_skb = i2400mu_rx(i2400mu, rx_skb);
372 atomic_dec(&i2400mu->rx_pending_count);
380 i2400mu->rx_size_cnt++;
381 i2400mu->rx_size_acc += rx_skb->len;
384 && edc_inc(&i2400mu->urb_edc,
390 i2400mu_rx_size_maybe_shrink(i2400mu);
395 i2400mu->rx_kthread = NULL;
397 d_fnend(4, dev, "(i2400mu %p) = %d\n", i2400mu, result);
403 usb_queue_reset_device(i2400mu->usb_iface);
415 void i2400mu_rx_kick(struct i2400mu *i2400mu)
417 struct i2400m *i2400m = &i2400mu->i2400m;
418 struct device *dev = &i2400mu->usb_iface->dev;
420 d_fnstart(3, dev, "(i2400mu %p)\n", i2400m);
421 atomic_inc(&i2400mu->rx_pending_count);
422 wake_up_all(&i2400mu->rx_wq);
427 int i2400mu_rx_setup(struct i2400mu *i2400mu)
430 struct i2400m *i2400m = &i2400mu->i2400m;
431 struct device *dev = &i2400mu->usb_iface->dev;
435 kthread = kthread_run(i2400mu_rxd, i2400mu, "%s-rx",
437 /* the kthread function sets i2400mu->rx_thread */
446 void i2400mu_rx_release(struct i2400mu *i2400mu)
449 struct i2400m *i2400m = &i2400mu->i2400m;
454 kthread = i2400mu->rx_kthread;
455 i2400mu->rx_kthread = NULL;