drivers/usb/host/isp116x-hcd.c
1006
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1009
int ports = isp116x->rhdesca & RH_A_NDP;
drivers/usb/host/isp116x-hcd.c
1018
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1019
isp116x_write_reg32(isp116x, HCRHSTATUS, RH_HS_OCIC);
drivers/usb/host/isp116x-hcd.c
1020
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1042
isp116x_hub_descriptor(isp116x,
drivers/usb/host/isp116x-hcd.c
1053
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1054
tmp = isp116x_read_reg32(isp116x, (--wIndex) ? HCRHPORT2 : HCRHPORT1);
drivers/usb/host/isp116x-hcd.c
1055
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
106
isp116x_raw_write_data16(isp116x, w);
drivers/usb/host/isp116x-hcd.c
109
isp116x_write_data16(isp116x, (u16) * dp);
drivers/usb/host/isp116x-hcd.c
1101
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1102
isp116x_write_reg32(isp116x, wIndex
drivers/usb/host/isp116x-hcd.c
1104
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1114
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1115
isp116x_write_reg32(isp116x, wIndex
drivers/usb/host/isp116x-hcd.c
1117
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1121
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1122
isp116x_write_reg32(isp116x, wIndex
drivers/usb/host/isp116x-hcd.c
1124
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1128
root_port_reset(isp116x, wIndex);
drivers/usb/host/isp116x-hcd.c
114
isp116x_raw_write_data16(isp116x, cpu_to_le16(*dp2++));
drivers/usb/host/isp116x-hcd.c
1172
struct isp116x *isp116x = s->private;
drivers/usb/host/isp116x-hcd.c
1175
isp116x_to_hcd(isp116x)->product_desc, hcd_name,
drivers/usb/host/isp116x-hcd.c
1178
if (HC_IS_SUSPENDED(isp116x_to_hcd(isp116x)->state)) {
drivers/usb/host/isp116x-hcd.c
118
isp116x_write_data16(isp116x, 0xff & *((u8 *) dp2));
drivers/usb/host/isp116x-hcd.c
1182
if (!HC_IS_RUNNING(isp116x_to_hcd(isp116x)->state)) {
drivers/usb/host/isp116x-hcd.c
1187
spin_lock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1188
dump_irq(s, "hc_irq_enable", isp116x_read_reg16(isp116x, HCuPINTENB));
drivers/usb/host/isp116x-hcd.c
1189
dump_irq(s, "hc_irq_status", isp116x_read_reg16(isp116x, HCuPINT));
drivers/usb/host/isp116x-hcd.c
1190
dump_int(s, "hc_int_enable", isp116x_read_reg32(isp116x, HCINTENB));
drivers/usb/host/isp116x-hcd.c
1191
dump_int(s, "hc_int_status", isp116x_read_reg32(isp116x, HCINTSTAT));
drivers/usb/host/isp116x-hcd.c
1192
isp116x_show_regs_seq(isp116x, s);
drivers/usb/host/isp116x-hcd.c
1193
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1200
static void create_debug_file(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
1202
debugfs_create_file(hcd_name, S_IRUGO, usb_debug_root, isp116x,
drivers/usb/host/isp116x-hcd.c
1206
static void remove_debug_file(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
121
isp116x_raw_write_data16(isp116x, 0);
drivers/usb/host/isp116x-hcd.c
1213
static inline void create_debug_file(struct isp116x *isp116x) { }
drivers/usb/host/isp116x-hcd.c
1214
static inline void remove_debug_file(struct isp116x *isp116x) { }
drivers/usb/host/isp116x-hcd.c
1223
static int isp116x_sw_reset(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
1229
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1230
isp116x_write_reg16(isp116x, HCSWRES, HCSWRES_MAGIC);
drivers/usb/host/isp116x-hcd.c
1231
isp116x_write_reg32(isp116x, HCCMDSTAT, HCCMDSTAT_HCR);
drivers/usb/host/isp116x-hcd.c
1235
if (!(isp116x_read_reg32(isp116x, HCCMDSTAT) & HCCMDSTAT_HCR))
drivers/usb/host/isp116x-hcd.c
1242
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1248
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1253
ret = isp116x_sw_reset(isp116x);
drivers/usb/host/isp116x-hcd.c
1260
spin_lock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1261
clkrdy = isp116x_read_reg16(isp116x, HCuPINT) & HCuPINT_CLKRDY;
drivers/usb/host/isp116x-hcd.c
1262
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
127
static void read_ptddata_from_fifo(struct isp116x *isp116x, void *buf, int len)
drivers/usb/host/isp116x-hcd.c
1278
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1282
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1283
isp116x_write_reg16(isp116x, HCuPINTENB, 0);
drivers/usb/host/isp116x-hcd.c
1287
val = isp116x_read_reg32(isp116x, HCRHDESCA);
drivers/usb/host/isp116x-hcd.c
1289
isp116x_write_reg32(isp116x, HCRHDESCA, val);
drivers/usb/host/isp116x-hcd.c
1290
isp116x_write_reg32(isp116x, HCRHSTATUS, RH_HS_LPS);
drivers/usb/host/isp116x-hcd.c
1291
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1293
isp116x_sw_reset(isp116x);
drivers/usb/host/isp116x-hcd.c
1301
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1302
struct isp116x_platform_data *board = isp116x->board;
drivers/usb/host/isp116x-hcd.c
1306
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1309
isp116x_write_reg16(isp116x, HCuPINT, 0xff);
drivers/usb/host/isp116x-hcd.c
1310
isp116x_write_reg16(isp116x, HCuPINTENB, 0);
drivers/usb/host/isp116x-hcd.c
1312
val = isp116x_read_reg16(isp116x, HCCHIPID);
drivers/usb/host/isp116x-hcd.c
1315
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1322
isp116x_write_reg16(isp116x, HCITLBUFLEN, ISP116x_ITL_BUFSIZE);
drivers/usb/host/isp116x-hcd.c
1323
isp116x_write_reg16(isp116x, HCATLBUFLEN, ISP116x_ATL_BUFSIZE);
drivers/usb/host/isp116x-hcd.c
1338
isp116x_write_reg16(isp116x, HCHWCFG, val);
drivers/usb/host/isp116x-hcd.c
1348
isp116x_write_reg32(isp116x, HCRHDESCA, val);
drivers/usb/host/isp116x-hcd.c
1349
isp116x->rhdesca = isp116x_read_reg32(isp116x, HCRHDESCA);
drivers/usb/host/isp116x-hcd.c
1352
isp116x_write_reg32(isp116x, HCRHDESCB, val);
drivers/usb/host/isp116x-hcd.c
1353
isp116x->rhdescb = isp116x_read_reg32(isp116x, HCRHDESCB);
drivers/usb/host/isp116x-hcd.c
1361
isp116x_write_reg32(isp116x, HCRHSTATUS, val);
drivers/usb/host/isp116x-hcd.c
1362
isp116x->rhstatus = isp116x_read_reg32(isp116x, HCRHSTATUS);
drivers/usb/host/isp116x-hcd.c
1364
isp116x_write_reg32(isp116x, HCFMINTVL, 0x27782edf);
drivers/usb/host/isp116x-hcd.c
1369
isp116x->intenb = HCINT_MIE | HCINT_RHSC | HCINT_UE;
drivers/usb/host/isp116x-hcd.c
1371
isp116x->intenb |= HCINT_RD;
drivers/usb/host/isp116x-hcd.c
1372
isp116x->irqenb = HCuPINT_ATL | HCuPINT_OPR; /* | HCuPINT_SUSP; */
drivers/usb/host/isp116x-hcd.c
1373
isp116x_write_reg32(isp116x, HCINTENB, isp116x->intenb);
drivers/usb/host/isp116x-hcd.c
1374
isp116x_write_reg16(isp116x, HCuPINTENB, isp116x->irqenb);
drivers/usb/host/isp116x-hcd.c
1380
isp116x_write_reg32(isp116x, HCCONTROL, val);
drivers/usb/host/isp116x-hcd.c
1383
isp116x_write_reg32(isp116x, HCRHPORT1, RH_PS_CCS);
drivers/usb/host/isp116x-hcd.c
1384
isp116x_write_reg32(isp116x, HCRHPORT2, RH_PS_CCS);
drivers/usb/host/isp116x-hcd.c
1386
isp116x_show_regs_log(isp116x);
drivers/usb/host/isp116x-hcd.c
1387
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1395
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1400
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1401
val = isp116x_read_reg32(isp116x, HCCONTROL);
drivers/usb/host/isp116x-hcd.c
1405
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
141
w = isp116x_raw_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
1412
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1413
isp116x_write_reg32(isp116x, HCCONTROL, val);
drivers/usb/host/isp116x-hcd.c
1414
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1419
isp116x_write_reg32(isp116x, HCCONTROL,
drivers/usb/host/isp116x-hcd.c
1427
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
1436
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1440
spin_lock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1442
val = isp116x_read_reg32(isp116x, HCCONTROL);
drivers/usb/host/isp116x-hcd.c
1447
isp116x_write_reg32(isp116x, HCCONTROL, val);
drivers/usb/host/isp116x-hcd.c
1452
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1457
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1463
if ((isp116x->rhdesca & RH_A_NDP) == 2)
drivers/usb/host/isp116x-hcd.c
1469
val = isp116x->rhdesca & RH_A_NDP;
drivers/usb/host/isp116x-hcd.c
147
*dp = 0xff & isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
1472
isp116x_read_reg32(isp116x, val ? HCRHPORT2 : HCRHPORT1);
drivers/usb/host/isp116x-hcd.c
1477
isp116x_write_reg32(isp116x, RH_PS_POCI, val
drivers/usb/host/isp116x-hcd.c
1480
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1486
spin_lock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1487
val = isp116x_read_reg32(isp116x, HCCONTROL);
drivers/usb/host/isp116x-hcd.c
1488
isp116x_write_reg32(isp116x, HCCONTROL,
drivers/usb/host/isp116x-hcd.c
1490
spin_unlock_irq(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1506
.hcd_priv_size = sizeof(struct isp116x),
drivers/usb/host/isp116x-hcd.c
152
*dp2++ = le16_to_cpu(isp116x_raw_read_data16(isp116x));
drivers/usb/host/isp116x-hcd.c
1532
struct isp116x *isp116x;
drivers/usb/host/isp116x-hcd.c
1537
isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1538
remove_debug_file(isp116x);
drivers/usb/host/isp116x-hcd.c
1541
iounmap(isp116x->data_reg);
drivers/usb/host/isp116x-hcd.c
1545
iounmap(isp116x->addr_reg);
drivers/usb/host/isp116x-hcd.c
1556
struct isp116x *isp116x;
drivers/usb/host/isp116x-hcd.c
156
*(u8 *) dp2 = 0xff & isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
159
isp116x_raw_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
1611
isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
1612
isp116x->data_reg = data_reg;
drivers/usb/host/isp116x-hcd.c
1613
isp116x->addr_reg = addr_reg;
drivers/usb/host/isp116x-hcd.c
1614
spin_lock_init(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
1615
INIT_LIST_HEAD(&isp116x->async);
drivers/usb/host/isp116x-hcd.c
1616
isp116x->board = dev_get_platdata(&pdev->dev);
drivers/usb/host/isp116x-hcd.c
1618
if (!isp116x->board) {
drivers/usb/host/isp116x-hcd.c
1623
if (isp116x_check_platform_delay(isp116x)) {
drivers/usb/host/isp116x-hcd.c
1637
create_debug_file(isp116x);
drivers/usb/host/isp116x-hcd.c
166
static void pack_fifo(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
170
int buflen = isp116x->atl_last_dir == PTD_DIR_IN
drivers/usb/host/isp116x-hcd.c
171
? isp116x->atl_bufshrt : isp116x->atl_buflen;
drivers/usb/host/isp116x-hcd.c
173
isp116x_write_reg16(isp116x, HCuPINT, HCuPINT_AIIEOT);
drivers/usb/host/isp116x-hcd.c
174
isp116x_write_reg16(isp116x, HCXFERCTR, buflen);
drivers/usb/host/isp116x-hcd.c
175
isp116x_write_addr(isp116x, HCATLPORT | ISP116x_WRITE_OFFSET);
drivers/usb/host/isp116x-hcd.c
176
for (ep = isp116x->atl_active; ep; ep = ep->active) {
drivers/usb/host/isp116x-hcd.c
180
isp116x_write_data16(isp116x, ptd->count);
drivers/usb/host/isp116x-hcd.c
181
isp116x_write_data16(isp116x, ptd->mps);
drivers/usb/host/isp116x-hcd.c
182
isp116x_write_data16(isp116x, ptd->len);
drivers/usb/host/isp116x-hcd.c
183
isp116x_write_data16(isp116x, ptd->faddr);
drivers/usb/host/isp116x-hcd.c
186
if (ep->active || (isp116x->atl_last_dir != PTD_DIR_IN)) {
drivers/usb/host/isp116x-hcd.c
187
write_ptddata_to_fifo(isp116x, ep->data, ep->length);
drivers/usb/host/isp116x-hcd.c
198
static void unpack_fifo(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
202
int buflen = isp116x->atl_last_dir == PTD_DIR_IN
drivers/usb/host/isp116x-hcd.c
203
? isp116x->atl_buflen : isp116x->atl_bufshrt;
drivers/usb/host/isp116x-hcd.c
205
isp116x_write_reg16(isp116x, HCuPINT, HCuPINT_AIIEOT);
drivers/usb/host/isp116x-hcd.c
206
isp116x_write_reg16(isp116x, HCXFERCTR, buflen);
drivers/usb/host/isp116x-hcd.c
207
isp116x_write_addr(isp116x, HCATLPORT);
drivers/usb/host/isp116x-hcd.c
208
for (ep = isp116x->atl_active; ep; ep = ep->active) {
drivers/usb/host/isp116x-hcd.c
210
ptd->count = isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
211
ptd->mps = isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
212
ptd->len = isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
213
ptd->faddr = isp116x_read_data16(isp116x);
drivers/usb/host/isp116x-hcd.c
216
if (ep->active || (isp116x->atl_last_dir == PTD_DIR_IN)) {
drivers/usb/host/isp116x-hcd.c
217
read_ptddata_from_fifo(isp116x, ep->data, ep->length);
drivers/usb/host/isp116x-hcd.c
231
static void preproc_atl_queue(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
238
for (ep = isp116x->atl_active; ep; ep = ep->active) {
drivers/usb/host/isp116x-hcd.c
283
isp116x->atl_last_dir = dir;
drivers/usb/host/isp116x-hcd.c
285
isp116x->atl_bufshrt = sizeof(struct ptd) + isp116x->atl_buflen;
drivers/usb/host/isp116x-hcd.c
286
isp116x->atl_buflen = isp116x->atl_bufshrt + ALIGN(len, 4);
drivers/usb/host/isp116x-hcd.c
294
static void finish_request(struct isp116x *isp116x, struct isp116x_ep *ep,
drivers/usb/host/isp116x-hcd.c
296
__releases(isp116x->lock) __acquires(isp116x->lock)
drivers/usb/host/isp116x-hcd.c
307
usb_hcd_unlink_urb_from_ep(isp116x_to_hcd(isp116x), urb);
drivers/usb/host/isp116x-hcd.c
308
spin_unlock(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
309
usb_hcd_giveback_urb(isp116x_to_hcd(isp116x), urb, status);
drivers/usb/host/isp116x-hcd.c
310
spin_lock(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
326
struct isp116x_ep **prev = &isp116x->periodic[i];
drivers/usb/host/isp116x-hcd.c
332
isp116x->load[i] -= ep->load;
drivers/usb/host/isp116x-hcd.c
335
isp116x_to_hcd(isp116x)->self.bandwidth_allocated -=
drivers/usb/host/isp116x-hcd.c
339
if (!--isp116x->periodic_count) {
drivers/usb/host/isp116x-hcd.c
340
isp116x->irqenb &= ~HCuPINT_SOF;
drivers/usb/host/isp116x-hcd.c
341
isp116x->irqenb |= HCuPINT_ATL;
drivers/usb/host/isp116x-hcd.c
348
static void postproc_atl_queue(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
358
for (ep = isp116x->atl_active; ep; ep = ep->active) {
drivers/usb/host/isp116x-hcd.c
472
finish_request(isp116x, ep, urb, status);
drivers/usb/host/isp116x-hcd.c
480
static void start_atl_transfers(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
487
if (atomic_read(&isp116x->atl_finishing))
drivers/usb/host/isp116x-hcd.c
490
if (!HC_IS_RUNNING(isp116x_to_hcd(isp116x)->state))
drivers/usb/host/isp116x-hcd.c
494
if (isp116x_read_reg16(isp116x, HCBUFSTAT) & HCBUFSTAT_ATL_FULL)
drivers/usb/host/isp116x-hcd.c
497
isp116x->atl_active = NULL;
drivers/usb/host/isp116x-hcd.c
498
isp116x->atl_buflen = isp116x->atl_bufshrt = 0;
drivers/usb/host/isp116x-hcd.c
501
if (isp116x->periodic_count) {
drivers/usb/host/isp116x-hcd.c
502
isp116x->fmindex = index =
drivers/usb/host/isp116x-hcd.c
503
(isp116x->fmindex + 1) & (PERIODIC_SIZE - 1);
drivers/usb/host/isp116x-hcd.c
504
load = isp116x->load[index];
drivers/usb/host/isp116x-hcd.c
508
isp116x->atl_active = last_ep =
drivers/usb/host/isp116x-hcd.c
509
isp116x->periodic[index];
drivers/usb/host/isp116x-hcd.c
517
list_for_each_entry(ep, &isp116x->async, schedule) {
drivers/usb/host/isp116x-hcd.c
560
isp116x->atl_active = ep;
drivers/usb/host/isp116x-hcd.c
565
if ((&isp116x->async)->next != (&isp116x->async)->prev)
drivers/usb/host/isp116x-hcd.c
566
list_move(&isp116x->async, (&isp116x->async)->next);
drivers/usb/host/isp116x-hcd.c
568
if (isp116x->atl_active) {
drivers/usb/host/isp116x-hcd.c
569
preproc_atl_queue(isp116x);
drivers/usb/host/isp116x-hcd.c
570
pack_fifo(isp116x);
drivers/usb/host/isp116x-hcd.c
577
static void finish_atl_transfers(struct isp116x *isp116x)
drivers/usb/host/isp116x-hcd.c
579
if (!isp116x->atl_active)
drivers/usb/host/isp116x-hcd.c
582
if (!(isp116x_read_reg16(isp116x, HCBUFSTAT) & HCBUFSTAT_ATL_DONE))
drivers/usb/host/isp116x-hcd.c
585
atomic_inc(&isp116x->atl_finishing);
drivers/usb/host/isp116x-hcd.c
586
unpack_fifo(isp116x);
drivers/usb/host/isp116x-hcd.c
587
postproc_atl_queue(isp116x);
drivers/usb/host/isp116x-hcd.c
588
atomic_dec(&isp116x->atl_finishing);
drivers/usb/host/isp116x-hcd.c
593
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
597
spin_lock(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
598
isp116x_write_reg16(isp116x, HCuPINTENB, 0);
drivers/usb/host/isp116x-hcd.c
599
irqstat = isp116x_read_reg16(isp116x, HCuPINT);
drivers/usb/host/isp116x-hcd.c
600
isp116x_write_reg16(isp116x, HCuPINT, irqstat);
drivers/usb/host/isp116x-hcd.c
604
finish_atl_transfers(isp116x);
drivers/usb/host/isp116x-hcd.c
608
u32 intstat = isp116x_read_reg32(isp116x, HCINTSTAT);
drivers/usb/host/isp116x-hcd.c
609
isp116x_write_reg32(isp116x, HCINTSTAT, intstat);
drivers/usb/host/isp116x-hcd.c
634
start_atl_transfers(isp116x);
drivers/usb/host/isp116x-hcd.c
637
isp116x_write_reg16(isp116x, HCuPINTENB, isp116x->irqenb);
drivers/usb/host/isp116x-hcd.c
639
spin_unlock(&isp116x->lock);
drivers/usb/host/isp116x-hcd.c
652
static int balance(struct isp116x *isp116x, u16 period, u16 load)
drivers/usb/host/isp116x-hcd.c
659
if (branch < 0 || isp116x->load[branch] > isp116x->load[i]) {
drivers/usb/host/isp116x-hcd.c
663
if ((isp116x->load[j] + load)
drivers/usb/host/isp116x-hcd.c
685
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
711
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
772
list_add_tail(&ep->schedule, &isp116x->async);
drivers/usb/host/isp116x-hcd.c
783
ep->branch = ret = balance(isp116x, ep->period, ep->load);
drivers/usb/host/isp116x-hcd.c
788
urb->start_frame = (isp116x->fmindex & (PERIODIC_SIZE - 1))
drivers/usb/host/isp116x-hcd.c
796
struct isp116x_ep **prev = &isp116x->periodic[i];
drivers/usb/host/isp116x-hcd.c
809
isp116x->load[i] += ep->load;
drivers/usb/host/isp116x-hcd.c
814
if (!isp116x->periodic_count++) {
drivers/usb/host/isp116x-hcd.c
815
isp116x->irqenb &= ~HCuPINT_ATL;
drivers/usb/host/isp116x-hcd.c
816
isp116x->irqenb |= HCuPINT_SOF;
drivers/usb/host/isp116x-hcd.c
817
isp116x_write_reg16(isp116x, HCuPINTENB,
drivers/usb/host/isp116x-hcd.c
818
isp116x->irqenb);
drivers/usb/host/isp116x-hcd.c
823
start_atl_transfers(isp116x);
drivers/usb/host/isp116x-hcd.c
829
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
839
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
845
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
857
for (ep_act = isp116x->atl_active; ep_act;
drivers/usb/host/isp116x-hcd.c
867
finish_request(isp116x, ep, urb, status);
drivers/usb/host/isp116x-hcd.c
869
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
894
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
898
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
899
fmnum = isp116x_read_reg32(isp116x, HCFMNUM);
drivers/usb/host/isp116x-hcd.c
90
static void write_ptddata_to_fifo(struct isp116x *isp116x, void *buf, int len)
drivers/usb/host/isp116x-hcd.c
900
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
909
struct isp116x *isp116x = hcd_to_isp116x(hcd);
drivers/usb/host/isp116x-hcd.c
921
ports = isp116x->rhdesca & RH_A_NDP;
drivers/usb/host/isp116x-hcd.c
922
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
923
isp116x->rhstatus = isp116x_read_reg32(isp116x, HCRHSTATUS);
drivers/usb/host/isp116x-hcd.c
924
if (isp116x->rhstatus & (RH_HS_LPSC | RH_HS_OCIC))
drivers/usb/host/isp116x-hcd.c
930
u32 status = isp116x_read_reg32(isp116x, i ? HCRHPORT2 : HCRHPORT1);
drivers/usb/host/isp116x-hcd.c
938
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
942
static void isp116x_hub_descriptor(struct isp116x *isp116x,
drivers/usb/host/isp116x-hcd.c
945
u32 reg = isp116x->rhdesca;
drivers/usb/host/isp116x-hcd.c
969
static inline void root_port_reset(struct isp116x *isp116x, unsigned port)
drivers/usb/host/isp116x-hcd.c
979
spin_lock_irqsave(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
982
tmp = isp116x_read_reg32(isp116x, port ?
drivers/usb/host/isp116x-hcd.c
990
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x-hcd.c
994
isp116x_write_reg32(isp116x, port ? HCRHPORT2 :
drivers/usb/host/isp116x-hcd.c
996
spin_unlock_irqrestore(&isp116x->lock, flags);
drivers/usb/host/isp116x.h
291
static inline struct isp116x *hcd_to_isp116x(struct usb_hcd *hcd)
drivers/usb/host/isp116x.h
293
return (struct isp116x *)(hcd->hcd_priv);
drivers/usb/host/isp116x.h
296
static inline struct usb_hcd *isp116x_to_hcd(struct isp116x *isp116x)
drivers/usb/host/isp116x.h
298
return container_of((void *)isp116x, struct usb_hcd, hcd_priv);
drivers/usb/host/isp116x.h
357
static inline void isp116x_write_addr(struct isp116x *isp116x, unsigned reg)
drivers/usb/host/isp116x.h
359
writew(reg & 0xff, isp116x->addr_reg);
drivers/usb/host/isp116x.h
360
isp116x_delay(isp116x, 300);
drivers/usb/host/isp116x.h
363
static inline void isp116x_write_data16(struct isp116x *isp116x, u16 val)
drivers/usb/host/isp116x.h
365
writew(val, isp116x->data_reg);
drivers/usb/host/isp116x.h
366
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
369
static inline void isp116x_raw_write_data16(struct isp116x *isp116x, u16 val)
drivers/usb/host/isp116x.h
371
__raw_writew(val, isp116x->data_reg);
drivers/usb/host/isp116x.h
372
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
375
static inline u16 isp116x_read_data16(struct isp116x *isp116x)
drivers/usb/host/isp116x.h
379
val = readw(isp116x->data_reg);
drivers/usb/host/isp116x.h
380
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
384
static inline u16 isp116x_raw_read_data16(struct isp116x *isp116x)
drivers/usb/host/isp116x.h
388
val = __raw_readw(isp116x->data_reg);
drivers/usb/host/isp116x.h
389
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
393
static inline void isp116x_write_data32(struct isp116x *isp116x, u32 val)
drivers/usb/host/isp116x.h
395
writew(val & 0xffff, isp116x->data_reg);
drivers/usb/host/isp116x.h
396
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
397
writew(val >> 16, isp116x->data_reg);
drivers/usb/host/isp116x.h
398
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
401
static inline u32 isp116x_read_data32(struct isp116x *isp116x)
drivers/usb/host/isp116x.h
405
val = (u32) readw(isp116x->data_reg);
drivers/usb/host/isp116x.h
406
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
407
val |= ((u32) readw(isp116x->data_reg)) << 16;
drivers/usb/host/isp116x.h
408
isp116x_delay(isp116x, 150);
drivers/usb/host/isp116x.h
415
static u16 isp116x_read_reg16(struct isp116x *isp116x, unsigned reg)
drivers/usb/host/isp116x.h
417
isp116x_write_addr(isp116x, reg);
drivers/usb/host/isp116x.h
418
return isp116x_read_data16(isp116x);
drivers/usb/host/isp116x.h
421
static u32 isp116x_read_reg32(struct isp116x *isp116x, unsigned reg)
drivers/usb/host/isp116x.h
423
isp116x_write_addr(isp116x, reg);
drivers/usb/host/isp116x.h
424
return isp116x_read_data32(isp116x);
drivers/usb/host/isp116x.h
427
static void isp116x_write_reg16(struct isp116x *isp116x, unsigned reg,
drivers/usb/host/isp116x.h
430
isp116x_write_addr(isp116x, reg | ISP116x_WRITE_OFFSET);
drivers/usb/host/isp116x.h
431
isp116x_write_data16(isp116x, (u16) (val & 0xffff));
drivers/usb/host/isp116x.h
434
static void isp116x_write_reg32(struct isp116x *isp116x, unsigned reg,
drivers/usb/host/isp116x.h
437
isp116x_write_addr(isp116x, reg | ISP116x_WRITE_OFFSET);
drivers/usb/host/isp116x.h
438
isp116x_write_data32(isp116x, (u32) val);
drivers/usb/host/isp116x.h
492
static inline void isp116x_show_regs_seq(struct isp116x *isp116x,
drivers/usb/host/isp116x.h
495
isp116x_show_regs(isp116x, seq, s);
drivers/usb/host/isp116x.h
501
static inline void isp116x_show_regs_log(struct isp116x *isp116x)
drivers/usb/host/isp116x.h
503
isp116x_show_regs(isp116x, log, NULL);