Symbol: sl811
drivers/usb/host/sl811-hcd.c
1000
if (time_before_eq(sl811->jiffies_a, jiffies)) {
drivers/usb/host/sl811-hcd.c
1004
sl811_read(sl811,
drivers/usb/host/sl811-hcd.c
1006
sl811_read(sl811,
drivers/usb/host/sl811-hcd.c
1008
sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG),
drivers/usb/host/sl811-hcd.c
1010
sl811->active_b = NULL;
drivers/usb/host/sl811-hcd.c
1019
finish_request(sl811, ep, urb, 0);
drivers/usb/host/sl811-hcd.c
1021
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
1023
(sl811->active_a == ep) ? "A" : "B");
drivers/usb/host/sl811-hcd.c
1027
spin_unlock_irqrestore(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
103
sl811->board->port_power(hcd->self.controller, is_on);
drivers/usb/host/sl811-hcd.c
1052
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1058
return sl811->frame;
drivers/usb/host/sl811-hcd.c
1068
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
107
if (sl811->board && sl811->board->reset)
drivers/usb/host/sl811-hcd.c
1076
if (!timer_pending(&sl811->timer)) {
drivers/usb/host/sl811-hcd.c
1078
sl811->stat_lost++;
drivers/usb/host/sl811-hcd.c
108
sl811->board->reset(hcd->self.controller);
drivers/usb/host/sl811-hcd.c
1083
if (!(sl811->port1 & (0xffff << 16)))
drivers/usb/host/sl811-hcd.c
1093
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
110
sl811_write(sl811, SL11H_CTLREG1, SL11H_CTL1MASK_SE0);
drivers/usb/host/sl811-hcd.c
1106
if (sl811->board && sl811->board->port_power) {
drivers/usb/host/sl811-hcd.c
1107
desc->bPwrOn2PwrGood = sl811->board->potpg;
drivers/usb/host/sl811-hcd.c
1127
struct sl811 *sl811 = timer_container_of(sl811, t, timer);
drivers/usb/host/sl811-hcd.c
1130
u8 signaling = sl811->ctrl1 & SL11H_CTL1MASK_FORCE;
drivers/usb/host/sl811-hcd.c
1135
spin_lock_irqsave(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
1138
sl811->ctrl1 &= ~SL11H_CTL1MASK_FORCE;
drivers/usb/host/sl811-hcd.c
1139
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
114
sl811_write(sl811, SL11H_IRQ_ENABLE, 0);
drivers/usb/host/sl811-hcd.c
1142
irqstat = sl811_read(sl811, SL11H_IRQ_STATUS);
drivers/usb/host/sl811-hcd.c
1146
dev_dbg(sl811_to_hcd(sl811)->self.controller, "end reset\n");
drivers/usb/host/sl811-hcd.c
1147
sl811->port1 = (USB_PORT_STAT_C_RESET << 16)
drivers/usb/host/sl811-hcd.c
1149
sl811->ctrl1 = 0;
drivers/usb/host/sl811-hcd.c
115
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1155
dev_dbg(sl811_to_hcd(sl811)->self.controller, "end resume\n");
drivers/usb/host/sl811-hcd.c
1156
sl811->port1 &= ~USB_PORT_STAT_SUSPEND;
drivers/usb/host/sl811-hcd.c
1159
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
116
sl811_write(sl811, SL811HS_CTLREG2, SL811HS_CTL2_INIT);
drivers/usb/host/sl811-hcd.c
1163
sl811_write(sl811, SL11H_IRQ_STATUS, irqstat);
drivers/usb/host/sl811-hcd.c
1167
if (sl811->port1 & USB_PORT_STAT_CONNECTION)
drivers/usb/host/sl811-hcd.c
1168
sl811->port1 |= (USB_PORT_STAT_C_CONNECTION << 16)
drivers/usb/host/sl811-hcd.c
117
sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
1170
sl811->port1 &= ~mask;
drivers/usb/host/sl811-hcd.c
1171
sl811->irq_enable = SL11H_INTMASK_INSRMV;
drivers/usb/host/sl811-hcd.c
1173
sl811->port1 |= mask;
drivers/usb/host/sl811-hcd.c
1175
sl811->port1 &= ~USB_PORT_STAT_LOW_SPEED;
drivers/usb/host/sl811-hcd.c
1176
sl811->irq_enable = SL11H_INTMASK_INSRMV | SL11H_INTMASK_RD;
drivers/usb/host/sl811-hcd.c
1179
if (sl811->port1 & USB_PORT_STAT_CONNECTION) {
drivers/usb/host/sl811-hcd.c
1182
sl811->irq_enable |= SL11H_INTMASK_DONE_A;
drivers/usb/host/sl811-hcd.c
1184
sl811->irq_enable |= SL11H_INTMASK_DONE_B;
drivers/usb/host/sl811-hcd.c
1186
if (sl811->port1 & USB_PORT_STAT_LOW_SPEED) {
drivers/usb/host/sl811-hcd.c
1187
sl811->ctrl1 |= SL11H_CTL1MASK_LSPD;
drivers/usb/host/sl811-hcd.c
1192
sl811->ctrl1 |= SL11H_CTL1MASK_SOF_ENA;
drivers/usb/host/sl811-hcd.c
1193
sl811_write(sl811, SL11H_SOFLOWREG, 0xe0);
drivers/usb/host/sl811-hcd.c
1194
sl811_write(sl811, SL811HS_CTLREG2, ctrl2);
drivers/usb/host/sl811-hcd.c
1197
sl811_write(sl811, SL811_EP_A(SL11H_BUFLNTHREG), 0);
drivers/usb/host/sl811-hcd.c
1198
writeb(SL_SOF, sl811->data_reg);
drivers/usb/host/sl811-hcd.c
1199
writeb(0, sl811->data_reg);
drivers/usb/host/sl811-hcd.c
1200
sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG),
drivers/usb/host/sl811-hcd.c
1205
sl811->ctrl1 = 0;
drivers/usb/host/sl811-hcd.c
1207
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1210
sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
1211
spin_unlock_irqrestore(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
1223
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1227
spin_lock_irqsave(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
1246
sl811->port1 &= USB_PORT_STAT_POWER;
drivers/usb/host/sl811-hcd.c
1247
sl811->ctrl1 = 0;
drivers/usb/host/sl811-hcd.c
1248
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1249
sl811->irq_enable = SL11H_INTMASK_INSRMV;
drivers/usb/host/sl811-hcd.c
1250
sl811_write(sl811, SL11H_IRQ_ENABLE,
drivers/usb/host/sl811-hcd.c
1251
sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
1254
if (!(sl811->port1 & USB_PORT_STAT_SUSPEND))
drivers/usb/host/sl811-hcd.c
1259
sl811->irq_enable = 0;
drivers/usb/host/sl811-hcd.c
1260
sl811_write(sl811, SL11H_IRQ_ENABLE,
drivers/usb/host/sl811-hcd.c
1261
sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
1262
sl811->ctrl1 |= SL11H_CTL1MASK_K;
drivers/usb/host/sl811-hcd.c
1263
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1265
mod_timer(&sl811->timer, jiffies
drivers/usb/host/sl811-hcd.c
1269
port_power(sl811, 0);
drivers/usb/host/sl811-hcd.c
1280
sl811->port1 &= ~(1 << wValue);
drivers/usb/host/sl811-hcd.c
1283
sl811h_hub_descriptor(sl811, (struct usb_hub_descriptor *) buf);
drivers/usb/host/sl811-hcd.c
1291
put_unaligned_le32(sl811->port1, buf);
drivers/usb/host/sl811-hcd.c
1296
sl811->port1);
drivers/usb/host/sl811-hcd.c
1303
if (sl811->port1 & USB_PORT_STAT_RESET)
drivers/usb/host/sl811-hcd.c
1305
if (!(sl811->port1 & USB_PORT_STAT_ENABLE))
drivers/usb/host/sl811-hcd.c
1309
sl811->ctrl1 &= ~SL11H_CTL1MASK_SOF_ENA;
drivers/usb/host/sl811-hcd.c
1310
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1313
port_power(sl811, 1);
drivers/usb/host/sl811-hcd.c
1316
if (sl811->port1 & USB_PORT_STAT_SUSPEND)
drivers/usb/host/sl811-hcd.c
1318
if (!(sl811->port1 & USB_PORT_STAT_POWER))
drivers/usb/host/sl811-hcd.c
1322
sl811->irq_enable = 0;
drivers/usb/host/sl811-hcd.c
1323
sl811_write(sl811, SL11H_IRQ_ENABLE,
drivers/usb/host/sl811-hcd.c
1324
sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
1325
sl811->ctrl1 = SL11H_CTL1MASK_SE0;
drivers/usb/host/sl811-hcd.c
1326
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
1327
sl811->port1 |= USB_PORT_STAT_RESET;
drivers/usb/host/sl811-hcd.c
1328
mod_timer(&sl811->timer, jiffies
drivers/usb/host/sl811-hcd.c
1334
sl811->port1 |= 1 << wValue;
drivers/usb/host/sl811-hcd.c
1343
spin_unlock_irqrestore(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
136
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
1388
struct sl811 *sl811 = s->private;
drivers/usb/host/sl811-hcd.c
1393
sl811_to_hcd(sl811)->product_desc,
drivers/usb/host/sl811-hcd.c
1395
sl811->port1);
drivers/usb/host/sl811-hcd.c
1397
seq_printf(s, "insert/remove: %ld\n", sl811->stat_insrmv);
drivers/usb/host/sl811-hcd.c
1400
sl811->stat_a, sl811->stat_b,
drivers/usb/host/sl811-hcd.c
1401
sl811->stat_wake, sl811->stat_sof,
drivers/usb/host/sl811-hcd.c
1402
sl811->stat_overrun, sl811->stat_lost);
drivers/usb/host/sl811-hcd.c
1404
spin_lock_irq(&sl811->lock);
drivers/usb/host/sl811-hcd.c
1406
if (sl811->ctrl1 & SL11H_CTL1MASK_SUSPEND)
drivers/usb/host/sl811-hcd.c
1409
u8 t = sl811_read(sl811, SL11H_CTLREG1);
drivers/usb/host/sl811-hcd.c
1423
sl811_read(sl811, SL11H_IRQ_ENABLE));
drivers/usb/host/sl811-hcd.c
1425
sl811_read(sl811, SL11H_IRQ_STATUS));
drivers/usb/host/sl811-hcd.c
1427
sl811_read(sl811, SL11H_SOFTMRREG) << 6);
drivers/usb/host/sl811-hcd.c
1430
seq_printf(s, "A: qh%p ctl %02x sts %02x\n", sl811->active_a,
drivers/usb/host/sl811-hcd.c
1431
sl811_read(sl811, SL811_EP_A(SL11H_HOSTCTLREG)),
drivers/usb/host/sl811-hcd.c
1432
sl811_read(sl811, SL811_EP_A(SL11H_PKTSTATREG)));
drivers/usb/host/sl811-hcd.c
1433
seq_printf(s, "B: qh%p ctl %02x sts %02x\n", sl811->active_b,
drivers/usb/host/sl811-hcd.c
1434
sl811_read(sl811, SL811_EP_B(SL11H_HOSTCTLREG)),
drivers/usb/host/sl811-hcd.c
1435
sl811_read(sl811, SL811_EP_B(SL11H_PKTSTATREG)));
drivers/usb/host/sl811-hcd.c
1437
list_for_each_entry (ep, &sl811->async, schedule) {
drivers/usb/host/sl811-hcd.c
1442
(ep == sl811->active_a) ? "(A) " : "",
drivers/usb/host/sl811-hcd.c
1443
(ep == sl811->active_b) ? "(B) " : "",
drivers/usb/host/sl811-hcd.c
1460
if (!list_empty(&sl811->async))
drivers/usb/host/sl811-hcd.c
1466
ep = sl811->periodic[i];
drivers/usb/host/sl811-hcd.c
1469
seq_printf(s, "%2d [%3d]:\n", i, sl811->load[i]);
drivers/usb/host/sl811-hcd.c
1476
(ep == sl811->active_a) ? "(A) " : "",
drivers/usb/host/sl811-hcd.c
1477
(ep == sl811->active_b) ? "(B) " : "",
drivers/usb/host/sl811-hcd.c
149
data_reg = sl811->data_reg;
drivers/usb/host/sl811-hcd.c
1491
spin_unlock_irq(&sl811->lock);
drivers/usb/host/sl811-hcd.c
1499
static void create_debug_file(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
150
sl811_write_buf(sl811, addr, urb->setup_packet, len);
drivers/usb/host/sl811-hcd.c
1501
debugfs_create_file("sl811h", S_IRUGO, usb_debug_root, sl811,
drivers/usb/host/sl811-hcd.c
1505
static void remove_debug_file(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
1515
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1520
spin_lock_irqsave(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
1521
port_power(sl811, 0);
drivers/usb/host/sl811-hcd.c
1522
spin_unlock_irqrestore(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
1528
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
153
sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
drivers/usb/host/sl811-hcd.c
1533
if (sl811->board) {
drivers/usb/host/sl811-hcd.c
1536
sl811->board->can_wakeup);
drivers/usb/host/sl811-hcd.c
1537
hcd->power_budget = sl811->board->power * 2;
drivers/usb/host/sl811-hcd.c
1541
port_power(sl811, 1);
drivers/usb/host/sl811-hcd.c
1550
.hcd_priv_size = sizeof(struct sl811),
drivers/usb/host/sl811-hcd.c
1589
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
159
sl811_write(sl811, bank + SL11H_HOSTCTLREG,
drivers/usb/host/sl811-hcd.c
1592
remove_debug_file(sl811);
drivers/usb/host/sl811-hcd.c
1599
iounmap(sl811->data_reg);
drivers/usb/host/sl811-hcd.c
1603
iounmap(sl811->addr_reg);
drivers/usb/host/sl811-hcd.c
1612
struct sl811 *sl811;
drivers/usb/host/sl811-hcd.c
167
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
1672
sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1674
spin_lock_init(&sl811->lock);
drivers/usb/host/sl811-hcd.c
1675
INIT_LIST_HEAD(&sl811->async);
drivers/usb/host/sl811-hcd.c
1676
sl811->board = dev_get_platdata(&dev->dev);
drivers/usb/host/sl811-hcd.c
1677
timer_setup(&sl811->timer, sl811h_timer, 0);
drivers/usb/host/sl811-hcd.c
1678
sl811->addr_reg = addr_reg;
drivers/usb/host/sl811-hcd.c
1679
sl811->data_reg = data_reg;
drivers/usb/host/sl811-hcd.c
1681
spin_lock_irq(&sl811->lock);
drivers/usb/host/sl811-hcd.c
1682
port_power(sl811, 0);
drivers/usb/host/sl811-hcd.c
1683
spin_unlock_irq(&sl811->lock);
drivers/usb/host/sl811-hcd.c
1686
tmp = sl811_read(sl811, SL11H_HWREVREG);
drivers/usb/host/sl811-hcd.c
1717
create_debug_file(sl811);
drivers/usb/host/sl811-hcd.c
1743
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1754
port_power(sl811, 0);
drivers/usb/host/sl811-hcd.c
1764
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
1769
if (!sl811->port1 || !device_can_wakeup(&hcd->self.root_hub->dev)) {
drivers/usb/host/sl811-hcd.c
1770
sl811->port1 = 0;
drivers/usb/host/sl811-hcd.c
1771
port_power(sl811, 1);
drivers/usb/host/sl811-hcd.c
178
data_reg = sl811->data_reg;
drivers/usb/host/sl811-hcd.c
181
sl811_write(sl811, bank + SL11H_BUFADDRREG, 0);
drivers/usb/host/sl811-hcd.c
190
sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
drivers/usb/host/sl811-hcd.c
201
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
218
data_reg = sl811->data_reg;
drivers/usb/host/sl811-hcd.c
221
sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
drivers/usb/host/sl811-hcd.c
226
sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
drivers/usb/host/sl811-hcd.c
237
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
259
data_reg = sl811->data_reg;
drivers/usb/host/sl811-hcd.c
261
sl811_write_buf(sl811, addr, buf, len);
drivers/usb/host/sl811-hcd.c
264
sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
drivers/usb/host/sl811-hcd.c
269
sl811_write(sl811, bank + SL11H_HOSTCTLREG,
drivers/usb/host/sl811-hcd.c
280
static inline void sofirq_on(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
282
if (sl811->irq_enable & SL11H_INTMASK_SOFINTR)
drivers/usb/host/sl811-hcd.c
284
dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq on\n");
drivers/usb/host/sl811-hcd.c
285
sl811->irq_enable |= SL11H_INTMASK_SOFINTR;
drivers/usb/host/sl811-hcd.c
288
static inline void sofirq_off(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
290
if (!(sl811->irq_enable & SL11H_INTMASK_SOFINTR))
drivers/usb/host/sl811-hcd.c
292
dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq off\n");
drivers/usb/host/sl811-hcd.c
293
sl811->irq_enable &= ~SL11H_INTMASK_SOFINTR;
drivers/usb/host/sl811-hcd.c
303
static struct sl811h_ep *start(struct sl811 *sl811, u8 bank)
drivers/usb/host/sl811-hcd.c
311
if (sl811->next_periodic) {
drivers/usb/host/sl811-hcd.c
312
ep = sl811->next_periodic;
drivers/usb/host/sl811-hcd.c
313
sl811->next_periodic = ep->next;
drivers/usb/host/sl811-hcd.c
315
if (sl811->next_async)
drivers/usb/host/sl811-hcd.c
316
ep = sl811->next_async;
drivers/usb/host/sl811-hcd.c
317
else if (!list_empty(&sl811->async))
drivers/usb/host/sl811-hcd.c
318
ep = container_of(sl811->async.next,
drivers/usb/host/sl811-hcd.c
328
if ((bank && sl811->active_b == ep) || sl811->active_a == ep)
drivers/usb/host/sl811-hcd.c
332
if (ep->schedule.next == &sl811->async)
drivers/usb/host/sl811-hcd.c
333
sl811->next_async = NULL;
drivers/usb/host/sl811-hcd.c
335
sl811->next_async = container_of(ep->schedule.next,
drivers/usb/host/sl811-hcd.c
340
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
351
fclock = sl811_read(sl811, SL11H_SOFTMRREG) << 6;
drivers/usb/host/sl811-hcd.c
363
sl811->stat_overrun++;
drivers/usb/host/sl811-hcd.c
364
sofirq_on(sl811);
drivers/usb/host/sl811-hcd.c
371
sl811->stat_overrun++;
drivers/usb/host/sl811-hcd.c
382
in_packet(sl811, ep, urb, bank, control);
drivers/usb/host/sl811-hcd.c
385
out_packet(sl811, ep, urb, bank, control);
drivers/usb/host/sl811-hcd.c
388
setup_packet(sl811, ep, urb, bank, control);
drivers/usb/host/sl811-hcd.c
391
status_packet(sl811, ep, urb, bank, control);
drivers/usb/host/sl811-hcd.c
394
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
403
static inline void start_transfer(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
405
if (sl811->port1 & USB_PORT_STAT_SUSPEND)
drivers/usb/host/sl811-hcd.c
407
if (sl811->active_a == NULL) {
drivers/usb/host/sl811-hcd.c
408
sl811->active_a = start(sl811, SL811_EP_A(SL811_HOST_BUF));
drivers/usb/host/sl811-hcd.c
409
if (sl811->active_a != NULL)
drivers/usb/host/sl811-hcd.c
410
sl811->jiffies_a = jiffies + MIN_JIFFIES;
drivers/usb/host/sl811-hcd.c
413
if (sl811->active_b == NULL) {
drivers/usb/host/sl811-hcd.c
414
sl811->active_b = start(sl811, SL811_EP_B(SL811_HOST_BUF));
drivers/usb/host/sl811-hcd.c
415
if (sl811->active_b != NULL)
drivers/usb/host/sl811-hcd.c
416
sl811->jiffies_b = jiffies + MIN_JIFFIES;
drivers/usb/host/sl811-hcd.c
422
struct sl811 *sl811,
drivers/usb/host/sl811-hcd.c
426
) __releases(sl811->lock) __acquires(sl811->lock)
drivers/usb/host/sl811-hcd.c
433
usb_hcd_unlink_urb_from_ep(sl811_to_hcd(sl811), urb);
drivers/usb/host/sl811-hcd.c
434
spin_unlock(&sl811->lock);
drivers/usb/host/sl811-hcd.c
435
usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb, status);
drivers/usb/host/sl811-hcd.c
436
spin_lock(&sl811->lock);
drivers/usb/host/sl811-hcd.c
445
if (ep == sl811->next_async)
drivers/usb/host/sl811-hcd.c
446
sl811->next_async = NULL;
drivers/usb/host/sl811-hcd.c
451
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
455
struct sl811h_ep **prev = &sl811->periodic[i];
drivers/usb/host/sl811-hcd.c
461
sl811->load[i] -= ep->load;
drivers/usb/host/sl811-hcd.c
464
sl811->periodic_count--;
drivers/usb/host/sl811-hcd.c
465
sl811_to_hcd(sl811)->self.bandwidth_allocated
drivers/usb/host/sl811-hcd.c
467
if (ep == sl811->next_periodic)
drivers/usb/host/sl811-hcd.c
468
sl811->next_periodic = ep->next;
drivers/usb/host/sl811-hcd.c
471
if (sl811->periodic_count == 0)
drivers/usb/host/sl811-hcd.c
472
sofirq_off(sl811);
drivers/usb/host/sl811-hcd.c
476
done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank)
drivers/usb/host/sl811-hcd.c
485
status = sl811_read(sl811, bank + SL11H_PKTSTATREG);
drivers/usb/host/sl811-hcd.c
528
len = ep->maxpacket - sl811_read(sl811,
drivers/usb/host/sl811-hcd.c
535
sl811_read_buf(sl811, SL811HS_PACKET_BUF(bank == 0),
drivers/usb/host/sl811-hcd.c
586
finish_request(sl811, ep, urb, urbstat);
drivers/usb/host/sl811-hcd.c
590
static inline u8 checkdone(struct sl811 *sl811)
drivers/usb/host/sl811-hcd.c
595
if (sl811->active_a && time_before_eq(sl811->jiffies_a, jiffies)) {
drivers/usb/host/sl811-hcd.c
596
ctl = sl811_read(sl811, SL811_EP_A(SL11H_HOSTCTLREG));
drivers/usb/host/sl811-hcd.c
598
sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG), 0);
drivers/usb/host/sl811-hcd.c
599
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
603
sl811_read(sl811, SL811_EP_A(SL11H_PKTSTATREG)));
drivers/usb/host/sl811-hcd.c
607
if (sl811->active_b && time_before_eq(sl811->jiffies_b, jiffies)) {
drivers/usb/host/sl811-hcd.c
608
ctl = sl811_read(sl811, SL811_EP_B(SL11H_HOSTCTLREG));
drivers/usb/host/sl811-hcd.c
610
sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG), 0);
drivers/usb/host/sl811-hcd.c
611
dev_dbg(sl811_to_hcd(sl811)->self.controller,
drivers/usb/host/sl811-hcd.c
615
sl811_read(sl811, SL811_EP_B(SL11H_PKTSTATREG)));
drivers/usb/host/sl811-hcd.c
625
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
630
spin_lock(&sl811->lock);
drivers/usb/host/sl811-hcd.c
633
irqstat = sl811_read(sl811, SL11H_IRQ_STATUS) & ~SL11H_INTMASK_DP;
drivers/usb/host/sl811-hcd.c
635
sl811_write(sl811, SL11H_IRQ_STATUS, irqstat);
drivers/usb/host/sl811-hcd.c
636
irqstat &= sl811->irq_enable;
drivers/usb/host/sl811-hcd.c
642
irqstat = checkdone(sl811);
drivers/usb/host/sl811-hcd.c
644
sl811->stat_lost++;
drivers/usb/host/sl811-hcd.c
652
done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF));
drivers/usb/host/sl811-hcd.c
653
sl811->active_a = NULL;
drivers/usb/host/sl811-hcd.c
654
sl811->stat_a++;
drivers/usb/host/sl811-hcd.c
658
done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF));
drivers/usb/host/sl811-hcd.c
659
sl811->active_b = NULL;
drivers/usb/host/sl811-hcd.c
660
sl811->stat_b++;
drivers/usb/host/sl811-hcd.c
666
index = sl811->frame++ % (PERIODIC_SIZE - 1);
drivers/usb/host/sl811-hcd.c
667
sl811->stat_sof++;
drivers/usb/host/sl811-hcd.c
673
if (sl811->next_periodic) {
drivers/usb/host/sl811-hcd.c
675
sl811->stat_overrun++;
drivers/usb/host/sl811-hcd.c
677
if (sl811->periodic[index])
drivers/usb/host/sl811-hcd.c
678
sl811->next_periodic = sl811->periodic[index];
drivers/usb/host/sl811-hcd.c
683
sl811->stat_insrmv++;
drivers/usb/host/sl811-hcd.c
686
sl811->stat_wake = 0;
drivers/usb/host/sl811-hcd.c
687
sl811->stat_sof = 0;
drivers/usb/host/sl811-hcd.c
688
sl811->stat_a = 0;
drivers/usb/host/sl811-hcd.c
689
sl811->stat_b = 0;
drivers/usb/host/sl811-hcd.c
690
sl811->stat_lost = 0;
drivers/usb/host/sl811-hcd.c
692
sl811->ctrl1 = 0;
drivers/usb/host/sl811-hcd.c
693
sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
drivers/usb/host/sl811-hcd.c
695
sl811->irq_enable = SL11H_INTMASK_INSRMV;
drivers/usb/host/sl811-hcd.c
696
sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
699
if (sl811->active_a) {
drivers/usb/host/sl811-hcd.c
700
sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG), 0);
drivers/usb/host/sl811-hcd.c
701
finish_request(sl811, sl811->active_a,
drivers/usb/host/sl811-hcd.c
702
container_of(sl811->active_a
drivers/usb/host/sl811-hcd.c
706
sl811->active_a = NULL;
drivers/usb/host/sl811-hcd.c
709
if (sl811->active_b) {
drivers/usb/host/sl811-hcd.c
710
sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG), 0);
drivers/usb/host/sl811-hcd.c
711
finish_request(sl811, sl811->active_b,
drivers/usb/host/sl811-hcd.c
712
container_of(sl811->active_b
drivers/usb/host/sl811-hcd.c
716
sl811->active_b = NULL;
drivers/usb/host/sl811-hcd.c
724
sl811->port1 &= ~USB_PORT_STAT_CONNECTION;
drivers/usb/host/sl811-hcd.c
726
sl811->port1 |= USB_PORT_STAT_CONNECTION;
drivers/usb/host/sl811-hcd.c
728
sl811->port1 |= USB_PORT_STAT_C_CONNECTION << 16;
drivers/usb/host/sl811-hcd.c
731
if (sl811->port1 & USB_PORT_STAT_SUSPEND) {
drivers/usb/host/sl811-hcd.c
733
sl811->port1 |= USB_PORT_STAT_C_SUSPEND << 16;
drivers/usb/host/sl811-hcd.c
734
sl811->stat_wake++;
drivers/usb/host/sl811-hcd.c
740
if (sl811->port1 & USB_PORT_STAT_ENABLE)
drivers/usb/host/sl811-hcd.c
741
start_transfer(sl811);
drivers/usb/host/sl811-hcd.c
747
if (sl811->periodic_count == 0 && list_empty(&sl811->async))
drivers/usb/host/sl811-hcd.c
748
sofirq_off(sl811);
drivers/usb/host/sl811-hcd.c
749
sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
751
spin_unlock(&sl811->lock);
drivers/usb/host/sl811-hcd.c
767
static int balance(struct sl811 *sl811, u16 period, u16 load)
drivers/usb/host/sl811-hcd.c
775
if (branch < 0 || sl811->load[branch] > sl811->load[i]) {
drivers/usb/host/sl811-hcd.c
779
if ((sl811->load[j] + load)
drivers/usb/host/sl811-hcd.c
79
static void port_power(struct sl811 *sl811, int is_on)
drivers/usb/host/sl811-hcd.c
798
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
81
struct usb_hcd *hcd = sl811_to_hcd(sl811);
drivers/usb/host/sl811-hcd.c
822
spin_lock_irqsave(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
825
if (!(sl811->port1 & USB_PORT_STAT_ENABLE)
drivers/usb/host/sl811-hcd.c
85
if (sl811->port1 & USB_PORT_STAT_POWER)
drivers/usb/host/sl811-hcd.c
871
if (!(sl811->ctrl1 & SL11H_CTL1MASK_LSPD))
drivers/usb/host/sl811-hcd.c
88
sl811->port1 = USB_PORT_STAT_POWER;
drivers/usb/host/sl811-hcd.c
89
sl811->irq_enable = SL11H_INTMASK_INSRMV;
drivers/usb/host/sl811-hcd.c
899
list_add_tail(&ep->schedule, &sl811->async);
drivers/usb/host/sl811-hcd.c
91
sl811->port1 = 0;
drivers/usb/host/sl811-hcd.c
910
urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1))
drivers/usb/host/sl811-hcd.c
915
retval = balance(sl811, ep->period, ep->load);
drivers/usb/host/sl811-hcd.c
92
sl811->irq_enable = 0;
drivers/usb/host/sl811-hcd.c
920
urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1))
drivers/usb/host/sl811-hcd.c
930
struct sl811h_ep **prev = &sl811->periodic[i];
drivers/usb/host/sl811-hcd.c
943
sl811->load[i] += ep->load;
drivers/usb/host/sl811-hcd.c
945
sl811->periodic_count++;
drivers/usb/host/sl811-hcd.c
947
sofirq_on(sl811);
drivers/usb/host/sl811-hcd.c
95
sl811->ctrl1 = 0;
drivers/usb/host/sl811-hcd.c
951
start_transfer(sl811);
drivers/usb/host/sl811-hcd.c
952
sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
drivers/usb/host/sl811-hcd.c
957
spin_unlock_irqrestore(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
96
sl811_write(sl811, SL11H_IRQ_ENABLE, 0);
drivers/usb/host/sl811-hcd.c
963
struct sl811 *sl811 = hcd_to_sl811(hcd);
drivers/usb/host/sl811-hcd.c
969
spin_lock_irqsave(&sl811->lock, flags);
drivers/usb/host/sl811-hcd.c
97
sl811_write(sl811, SL11H_IRQ_STATUS, ~0);
drivers/usb/host/sl811-hcd.c
984
} else if (sl811->active_a == ep) {
drivers/usb/host/sl811-hcd.c
985
if (time_before_eq(sl811->jiffies_a, jiffies)) {
drivers/usb/host/sl811-hcd.c
989
sl811_read(sl811,
drivers/usb/host/sl811-hcd.c
99
if (sl811->board && sl811->board->port_power) {
drivers/usb/host/sl811-hcd.c
991
sl811_read(sl811,
drivers/usb/host/sl811-hcd.c
993
sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG),
drivers/usb/host/sl811-hcd.c
995
sl811->active_a = NULL;
drivers/usb/host/sl811-hcd.c
999
} else if (sl811->active_b == ep) {
drivers/usb/host/sl811.h
158
static inline struct sl811 *hcd_to_sl811(struct usb_hcd *hcd)
drivers/usb/host/sl811.h
160
return (struct sl811 *) (hcd->hcd_priv);
drivers/usb/host/sl811.h
163
static inline struct usb_hcd *sl811_to_hcd(struct sl811 *sl811)
drivers/usb/host/sl811.h
165
return container_of((void *) sl811, struct usb_hcd, hcd_priv);
drivers/usb/host/sl811.h
197
static inline u8 sl811_read(struct sl811 *sl811, int reg)
drivers/usb/host/sl811.h
199
writeb(reg, sl811->addr_reg);
drivers/usb/host/sl811.h
200
return readb(sl811->data_reg);
drivers/usb/host/sl811.h
203
static inline void sl811_write(struct sl811 *sl811, int reg, u8 val)
drivers/usb/host/sl811.h
205
writeb(reg, sl811->addr_reg);
drivers/usb/host/sl811.h
206
writeb(val, sl811->data_reg);
drivers/usb/host/sl811.h
210
sl811_write_buf(struct sl811 *sl811, int addr, const void *buf, size_t count)
drivers/usb/host/sl811.h
217
writeb(addr, sl811->addr_reg);
drivers/usb/host/sl811.h
220
data_reg = sl811->data_reg;
drivers/usb/host/sl811.h
227
sl811_read_buf(struct sl811 *sl811, int addr, void *buf, size_t count)
drivers/usb/host/sl811.h
234
writeb(addr, sl811->addr_reg);
drivers/usb/host/sl811.h
237
data_reg = sl811->data_reg;