Symbol: scc
arch/arm/mach-versatile/tc2_pm.c
118
return !(readl_relaxed(scc + RESET_CTRL) & mask);
arch/arm/mach-versatile/tc2_pm.c
134
readl_relaxed(scc + RESET_CTRL));
arch/arm/mach-versatile/tc2_pm.c
214
scc = of_iomap(np, 0);
arch/arm/mach-versatile/tc2_pm.c
215
if (!scc)
arch/arm/mach-versatile/tc2_pm.c
218
a15_cluster_id = readl_relaxed(scc + A15_CONF) & 0xf;
arch/arm/mach-versatile/tc2_pm.c
219
a7_cluster_id = readl_relaxed(scc + A7_CONF) & 0xf;
arch/arm/mach-versatile/tc2_pm.c
223
sys_info = readl_relaxed(scc + SYS_INFO);
arch/arm/mach-versatile/tc2_pm.c
235
ret = ve_spc_init(scc + SPC_BASE, a15_cluster_id, irq);
arch/arm/mach-versatile/tc2_pm.c
39
static void __iomem *scc;
arch/mips/include/asm/octeon/cvmx-pciercx-defs.h
185
__BITFIELD_FIELD(uint32_t scc:1,
arch/powerpc/boot/cpm-serial.c
119
out_be32(&scc->gsmrl, in_be32(&scc->gsmrl) & ~0x30);
arch/powerpc/boot/cpm-serial.c
130
out_be32(&scc->gsmrl, in_be32(&scc->gsmrl) | 0x30);
arch/powerpc/boot/cpm-serial.c
239
scc = vreg[0];
arch/powerpc/boot/cpm-serial.c
74
static struct cpm_scc *scc;
arch/s390/include/asm/machine.h
90
DEFINE_MACHINE_HAS_FEATURE(scc, MFEATURE_SCC)
drivers/ata/sata_mv.c
4332
u8 scc;
drivers/ata/sata_mv.c
4338
pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &scc);
drivers/ata/sata_mv.c
4339
if (scc == 0)
drivers/ata/sata_mv.c
4341
else if (scc == 0x01)
drivers/net/ethernet/atheros/atlx/atl1.c
1701
adapter->soft_stats.scc += smb->tx_1_col;
drivers/net/ethernet/atheros/atlx/atl1.c
3191
{"tx_single_coll_ok", ATL1_STAT(soft_stats.scc)},
drivers/net/ethernet/atheros/atlx/atl1.h
668
u64 scc; /* packets TX after a single collision */
drivers/net/ethernet/freescale/fs_enet/fs_enet.h
177
} scc;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
100
iounmap(fep->scc.sccp);
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
117
fep->scc.hthi = 0;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
118
fep->scc.htlo = 0;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
159
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
167
scc_enet_t __iomem *ep = fep->scc.ep;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
178
scc_enet_t __iomem *ep = fep->scc.ep;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
194
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
195
scc_enet_t __iomem *ep = fep->scc.ep;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
233
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
234
scc_enet_t __iomem *ep = fep->scc.ep;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
353
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
371
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
379
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
387
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
405
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
413
scc_t __iomem *sccp = fep->scc.sccp;
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
432
memcpy_fromio(p, fep->scc.sccp, sizeof(scc_t));
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
435
memcpy_fromio(p, fep->scc.ep, sizeof(scc_enet_t __iomem *));
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
94
fep->scc.sccp = of_iomap(ofdev->dev.of_node, 0);
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
95
if (!fep->scc.sccp)
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
98
fep->scc.ep = of_iomap(ofdev->dev.of_node, 1);
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
99
if (!fep->scc.ep) {
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
53
{ "tx_single_coll_ok", E1000_STAT(stats.scc) },
drivers/net/ethernet/intel/e1000/e1000_hw.h
1256
u64 scc;
drivers/net/ethernet/intel/e1000/e1000_main.c
3633
adapter->stats.scc += er32(SCC);
drivers/net/ethernet/intel/e1000e/ethtool.c
73
E1000_STAT("tx_single_coll_ok", stats.scc),
drivers/net/ethernet/intel/e1000e/hw.h
384
u64 scc;
drivers/net/ethernet/intel/e1000e/netdev.c
4906
adapter->stats.scc += phy_data;
drivers/net/ethernet/intel/e1000e/netdev.c
4981
adapter->stats.scc += er32(SCC);
drivers/net/ethernet/intel/igb/e1000_hw.h
173
u64 scc;
drivers/net/ethernet/intel/igb/igb_ethtool.c
51
IGB_STAT("tx_single_coll_ok", stats.scc),
drivers/net/ethernet/intel/igb/igb_ethtool.c
558
regs_buff[59] = adapter->stats.scc;
drivers/net/ethernet/intel/igb/igb_main.c
6840
adapter->stats.scc += rd32(E1000_SCC);
drivers/net/ethernet/intel/igc/igc_ethtool.c
240
regs_buff[35] = adapter->stats.scc;
drivers/net/ethernet/intel/igc/igc_ethtool.c
45
IGC_STAT("tx_single_coll_ok", stats.scc),
drivers/net/ethernet/intel/igc/igc_hw.h
210
u64 scc;
drivers/net/ethernet/intel/igc/igc_main.c
5235
adapter->stats.scc += rd32(IGC_SCC);
drivers/net/hamradio/scc.c
1002
timer_delete(&scc->tx_t);
drivers/net/hamradio/scc.c
1006
handler(&scc->tx_t);
drivers/net/hamradio/scc.c
1010
scc->tx_t.function = handler;
drivers/net/hamradio/scc.c
1011
scc->tx_t.expires = jiffies + (when*HZ)/100;
drivers/net/hamradio/scc.c
1012
add_timer(&scc->tx_t);
drivers/net/hamradio/scc.c
1016
static void scc_start_tx_timer(struct scc_channel *scc,
drivers/net/hamradio/scc.c
1022
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1023
__scc_start_tx_timer(scc, handler, when);
drivers/net/hamradio/scc.c
1024
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1027
static void scc_start_defer(struct scc_channel *scc)
drivers/net/hamradio/scc.c
1031
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1032
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1034
if (scc->kiss.maxdefer != 0 && scc->kiss.maxdefer != TIMER_OFF)
drivers/net/hamradio/scc.c
1036
scc->tx_wdog.function = t_busy;
drivers/net/hamradio/scc.c
1037
scc->tx_wdog.expires = jiffies + HZ*scc->kiss.maxdefer;
drivers/net/hamradio/scc.c
1038
add_timer(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1040
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1043
static void scc_start_maxkeyup(struct scc_channel *scc)
drivers/net/hamradio/scc.c
1047
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1048
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1050
if (scc->kiss.maxkeyup != 0 && scc->kiss.maxkeyup != TIMER_OFF)
drivers/net/hamradio/scc.c
1052
scc->tx_wdog.function = t_maxkeyup;
drivers/net/hamradio/scc.c
1053
scc->tx_wdog.expires = jiffies + HZ*scc->kiss.maxkeyup;
drivers/net/hamradio/scc.c
1054
add_timer(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1056
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1064
static void scc_tx_done(struct scc_channel *scc)
drivers/net/hamradio/scc.c
1070
switch (scc->kiss.fulldup)
drivers/net/hamradio/scc.c
1073
scc->stat.tx_state = TXS_IDLE2;
drivers/net/hamradio/scc.c
1074
if (scc->kiss.idletime != TIMER_OFF)
drivers/net/hamradio/scc.c
1075
scc_start_tx_timer(scc, t_idle,
drivers/net/hamradio/scc.c
1076
scc->kiss.idletime*100);
drivers/net/hamradio/scc.c
1079
scc_notify(scc, HWEV_ALL_SENT);
drivers/net/hamradio/scc.c
1082
scc->stat.tx_state = TXS_BUSY;
drivers/net/hamradio/scc.c
1083
scc_start_tx_timer(scc, t_tail, scc->kiss.tailtime);
drivers/net/hamradio/scc.c
1086
netif_wake_queue(scc->dev);
drivers/net/hamradio/scc.c
1092
static inline int is_grouped(struct scc_channel *scc)
drivers/net/hamradio/scc.c
1098
grp1 = scc->kiss.group;
drivers/net/hamradio/scc.c
1105
if (scc2 == scc || !(scc2->dev && grp2))
drivers/net/hamradio/scc.c
1130
struct scc_channel *scc = timer_container_of(scc, t, tx_t);
drivers/net/hamradio/scc.c
1132
if (scc->stat.tx_state == TXS_WAIT) /* maxkeyup or idle timeout */
drivers/net/hamradio/scc.c
1134
if (skb_queue_empty(&scc->tx_queue)) { /* nothing to send */
drivers/net/hamradio/scc.c
1135
scc->stat.tx_state = TXS_IDLE;
drivers/net/hamradio/scc.c
1136
netif_wake_queue(scc->dev); /* t_maxkeyup locked it. */
drivers/net/hamradio/scc.c
1140
scc->stat.tx_state = TXS_BUSY;
drivers/net/hamradio/scc.c
1143
if (scc->kiss.fulldup == KISS_DUPLEX_HALF)
drivers/net/hamradio/scc.c
1147
if (scc->dcd || (scc->kiss.persist) < Rand || (scc->kiss.group && is_grouped(scc)) )
drivers/net/hamradio/scc.c
1149
scc_start_defer(scc);
drivers/net/hamradio/scc.c
1150
scc_start_tx_timer(scc, t_dwait, scc->kiss.slottime);
drivers/net/hamradio/scc.c
1155
if ( !(scc->wreg[R5] & RTS) )
drivers/net/hamradio/scc.c
1157
scc_key_trx(scc, TX_ON);
drivers/net/hamradio/scc.c
1158
scc_start_tx_timer(scc, t_txdelay, scc->kiss.txdelay);
drivers/net/hamradio/scc.c
1160
scc_start_tx_timer(scc, t_txdelay, 0);
drivers/net/hamradio/scc.c
1172
struct scc_channel *scc = timer_container_of(scc, t, tx_t);
drivers/net/hamradio/scc.c
1174
scc_start_maxkeyup(scc);
drivers/net/hamradio/scc.c
1176
if (scc->tx_buff == NULL)
drivers/net/hamradio/scc.c
1178
disable_irq(scc->irq);
drivers/net/hamradio/scc.c
1179
scc_txint(scc);
drivers/net/hamradio/scc.c
1180
enable_irq(scc->irq);
drivers/net/hamradio/scc.c
1193
struct scc_channel *scc = timer_container_of(scc, t, tx_t);
drivers/net/hamradio/scc.c
1196
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1197
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1198
scc_key_trx(scc, TX_OFF);
drivers/net/hamradio/scc.c
1199
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1201
if (scc->stat.tx_state == TXS_TIMEOUT) /* we had a timeout? */
drivers/net/hamradio/scc.c
1203
scc->stat.tx_state = TXS_WAIT;
drivers/net/hamradio/scc.c
1204
scc_start_tx_timer(scc, t_dwait, scc->kiss.mintime*100);
drivers/net/hamradio/scc.c
1208
scc->stat.tx_state = TXS_IDLE;
drivers/net/hamradio/scc.c
1209
netif_wake_queue(scc->dev);
drivers/net/hamradio/scc.c
1220
struct scc_channel *scc = timer_container_of(scc, t, tx_wdog);
drivers/net/hamradio/scc.c
1222
timer_delete(&scc->tx_t);
drivers/net/hamradio/scc.c
1223
netif_stop_queue(scc->dev); /* don't pile on the wabbit! */
drivers/net/hamradio/scc.c
1225
scc_discard_buffers(scc);
drivers/net/hamradio/scc.c
1226
scc->stat.txerrs++;
drivers/net/hamradio/scc.c
1227
scc->stat.tx_state = TXS_IDLE;
drivers/net/hamradio/scc.c
1229
netif_wake_queue(scc->dev);
drivers/net/hamradio/scc.c
1239
struct scc_channel *scc = timer_container_of(scc, t, tx_wdog);
drivers/net/hamradio/scc.c
1242
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1248
netif_stop_queue(scc->dev);
drivers/net/hamradio/scc.c
1249
scc_discard_buffers(scc);
drivers/net/hamradio/scc.c
1251
timer_delete(&scc->tx_t);
drivers/net/hamradio/scc.c
1253
cl(scc, R1, TxINT_ENAB); /* force an ABORT, but don't */
drivers/net/hamradio/scc.c
1254
cl(scc, R15, TxUIE); /* count it. */
drivers/net/hamradio/scc.c
1255
OutReg(scc->ctrl, R0, RES_Tx_P);
drivers/net/hamradio/scc.c
1257
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1259
scc->stat.txerrs++;
drivers/net/hamradio/scc.c
1260
scc->stat.tx_state = TXS_TIMEOUT;
drivers/net/hamradio/scc.c
1261
scc_start_tx_timer(scc, t_tail, scc->kiss.tailtime);
drivers/net/hamradio/scc.c
1273
struct scc_channel *scc = timer_container_of(scc, t, tx_t);
drivers/net/hamradio/scc.c
1275
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1277
scc_key_trx(scc, TX_OFF);
drivers/net/hamradio/scc.c
1278
if(scc->kiss.mintime)
drivers/net/hamradio/scc.c
1279
scc_start_tx_timer(scc, t_dwait, scc->kiss.mintime*100);
drivers/net/hamradio/scc.c
1280
scc->stat.tx_state = TXS_WAIT;
drivers/net/hamradio/scc.c
1283
static void scc_init_timer(struct scc_channel *scc)
drivers/net/hamradio/scc.c
1287
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1288
scc->stat.tx_state = TXS_IDLE;
drivers/net/hamradio/scc.c
1289
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1304
static unsigned int scc_set_param(struct scc_channel *scc, unsigned int cmd, unsigned int arg)
drivers/net/hamradio/scc.c
1308
case PARAM_TXDELAY: scc->kiss.txdelay=arg; break;
drivers/net/hamradio/scc.c
1309
case PARAM_PERSIST: scc->kiss.persist=arg; break;
drivers/net/hamradio/scc.c
1310
case PARAM_SLOTTIME: scc->kiss.slottime=arg; break;
drivers/net/hamradio/scc.c
1311
case PARAM_TXTAIL: scc->kiss.tailtime=arg; break;
drivers/net/hamradio/scc.c
1312
case PARAM_FULLDUP: scc->kiss.fulldup=arg; break;
drivers/net/hamradio/scc.c
1314
case PARAM_GROUP: scc->kiss.group=arg; break;
drivers/net/hamradio/scc.c
1315
case PARAM_IDLE: scc->kiss.idletime=arg; break;
drivers/net/hamradio/scc.c
1316
case PARAM_MIN: scc->kiss.mintime=arg; break;
drivers/net/hamradio/scc.c
1317
case PARAM_MAXKEY: scc->kiss.maxkeyup=arg; break;
drivers/net/hamradio/scc.c
1318
case PARAM_WAIT: scc->kiss.waittime=arg; break;
drivers/net/hamradio/scc.c
1319
case PARAM_MAXDEFER: scc->kiss.maxdefer=arg; break;
drivers/net/hamradio/scc.c
1320
case PARAM_TX: scc->kiss.tx_inhibit=arg; break;
drivers/net/hamradio/scc.c
1323
scc->kiss.softdcd=arg;
drivers/net/hamradio/scc.c
1326
or(scc, R15, SYNCIE);
drivers/net/hamradio/scc.c
1327
cl(scc, R15, DCDIE);
drivers/net/hamradio/scc.c
1328
start_hunt(scc);
drivers/net/hamradio/scc.c
1330
or(scc, R15, DCDIE);
drivers/net/hamradio/scc.c
1331
cl(scc, R15, SYNCIE);
drivers/net/hamradio/scc.c
1337
scc->modem.speed=arg*100;
drivers/net/hamradio/scc.c
1339
scc->modem.speed=arg;
drivers/net/hamradio/scc.c
1341
if (scc->stat.tx_state == 0) /* only switch baudrate on rx... ;-) */
drivers/net/hamradio/scc.c
1342
set_speed(scc);
drivers/net/hamradio/scc.c
1346
if ( !(scc->wreg[R5] & RTS) )
drivers/net/hamradio/scc.c
1349
scc_key_trx(scc, TX_ON);
drivers/net/hamradio/scc.c
1350
scc_start_tx_timer(scc, t_txdelay, scc->kiss.txdelay);
drivers/net/hamradio/scc.c
1355
scc->stat.tx_state = TXS_BUSY;
drivers/net/hamradio/scc.c
1356
scc_start_tx_timer(scc, t_tail, scc->kiss.tailtime);
drivers/net/hamradio/scc.c
1362
scc_notify(scc, scc->dcd? HWEV_DCD_ON:HWEV_DCD_OFF);
drivers/net/hamradio/scc.c
1373
static unsigned long scc_get_param(struct scc_channel *scc, unsigned int cmd)
drivers/net/hamradio/scc.c
1377
case PARAM_TXDELAY: return CAST(scc->kiss.txdelay);
drivers/net/hamradio/scc.c
1378
case PARAM_PERSIST: return CAST(scc->kiss.persist);
drivers/net/hamradio/scc.c
1379
case PARAM_SLOTTIME: return CAST(scc->kiss.slottime);
drivers/net/hamradio/scc.c
1380
case PARAM_TXTAIL: return CAST(scc->kiss.tailtime);
drivers/net/hamradio/scc.c
1381
case PARAM_FULLDUP: return CAST(scc->kiss.fulldup);
drivers/net/hamradio/scc.c
1382
case PARAM_SOFTDCD: return CAST(scc->kiss.softdcd);
drivers/net/hamradio/scc.c
1383
case PARAM_DTR: return CAST((scc->wreg[R5] & DTR)? 1:0);
drivers/net/hamradio/scc.c
1384
case PARAM_RTS: return CAST((scc->wreg[R5] & RTS)? 1:0);
drivers/net/hamradio/scc.c
1385
case PARAM_SPEED: return CAST(scc->modem.speed);
drivers/net/hamradio/scc.c
1386
case PARAM_GROUP: return CAST(scc->kiss.group);
drivers/net/hamradio/scc.c
1387
case PARAM_IDLE: return CAST(scc->kiss.idletime);
drivers/net/hamradio/scc.c
1388
case PARAM_MIN: return CAST(scc->kiss.mintime);
drivers/net/hamradio/scc.c
1389
case PARAM_MAXKEY: return CAST(scc->kiss.maxkeyup);
drivers/net/hamradio/scc.c
1390
case PARAM_WAIT: return CAST(scc->kiss.waittime);
drivers/net/hamradio/scc.c
1391
case PARAM_MAXDEFER: return CAST(scc->kiss.maxdefer);
drivers/net/hamradio/scc.c
1392
case PARAM_TX: return CAST(scc->kiss.tx_inhibit);
drivers/net/hamradio/scc.c
1406
struct scc_channel *scc = timer_container_of(scc, t, tx_wdog);
drivers/net/hamradio/scc.c
1409
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1410
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1411
scc_key_trx(scc, TX_OFF);
drivers/net/hamradio/scc.c
1412
wr(scc, R6, 0);
drivers/net/hamradio/scc.c
1413
wr(scc, R7, FLAG);
drivers/net/hamradio/scc.c
1414
Outb(scc->ctrl,RES_EXT_INT); /* reset ext/status interrupts */
drivers/net/hamradio/scc.c
1415
Outb(scc->ctrl,RES_EXT_INT);
drivers/net/hamradio/scc.c
1417
netif_wake_queue(scc->dev);
drivers/net/hamradio/scc.c
1418
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1423
scc_start_calibrate(struct scc_channel *scc, int duration, unsigned char pattern)
drivers/net/hamradio/scc.c
1427
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1428
netif_stop_queue(scc->dev);
drivers/net/hamradio/scc.c
1429
scc_discard_buffers(scc);
drivers/net/hamradio/scc.c
1431
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1433
scc->tx_wdog.function = scc_stop_calibrate;
drivers/net/hamradio/scc.c
1434
scc->tx_wdog.expires = jiffies + HZ*duration;
drivers/net/hamradio/scc.c
1435
add_timer(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1438
wr(scc, R6, 0);
drivers/net/hamradio/scc.c
1439
wr(scc, R7, pattern);
drivers/net/hamradio/scc.c
1446
Outb(scc->ctrl,RES_EXT_INT); /* reset ext/status interrupts */
drivers/net/hamradio/scc.c
1447
Outb(scc->ctrl,RES_EXT_INT);
drivers/net/hamradio/scc.c
1449
scc_key_trx(scc, TX_ON);
drivers/net/hamradio/scc.c
1450
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1464
struct scc_channel *scc;
drivers/net/hamradio/scc.c
1485
scc=&SCC_Info[2*chip];
drivers/net/hamradio/scc.c
1486
if (!scc->ctrl) continue;
drivers/net/hamradio/scc.c
1490
if(scc->brand & EAGLE) /* this is an EAGLE card */
drivers/net/hamradio/scc.c
1491
Outb(scc->special,0x08); /* enable interrupt on the board */
drivers/net/hamradio/scc.c
1493
if(scc->brand & (PC100 | PRIMUS)) /* this is a PC100/PRIMUS card */
drivers/net/hamradio/scc.c
1494
Outb(scc->special,scc->option); /* set the MODEM mode (0x22) */
drivers/net/hamradio/scc.c
1499
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1501
Outb(scc->ctrl, 0);
drivers/net/hamradio/scc.c
1502
OutReg(scc->ctrl,R9,FHWRES); /* force hardware reset */
drivers/net/hamradio/scc.c
1504
wr(scc, R2, chip*16); /* interrupt vector */
drivers/net/hamradio/scc.c
1505
wr(scc, R9, VIS); /* vector includes status */
drivers/net/hamradio/scc.c
1506
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1517
static int scc_net_alloc(const char *name, struct scc_channel *scc)
drivers/net/hamradio/scc.c
1526
dev->ml_priv = scc;
drivers/net/hamradio/scc.c
1527
scc->dev = dev;
drivers/net/hamradio/scc.c
1528
spin_lock_init(&scc->lock);
drivers/net/hamradio/scc.c
1529
timer_setup(&scc->tx_t, NULL, 0);
drivers/net/hamradio/scc.c
1530
timer_setup(&scc->tx_wdog, NULL, 0);
drivers/net/hamradio/scc.c
1537
scc->dev = NULL;
drivers/net/hamradio/scc.c
1583
struct scc_channel *scc = (struct scc_channel *) dev->ml_priv;
drivers/net/hamradio/scc.c
1585
if (!scc->init)
drivers/net/hamradio/scc.c
1588
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
1589
skb_queue_head_init(&scc->tx_queue);
drivers/net/hamradio/scc.c
1591
init_channel(scc);
drivers/net/hamradio/scc.c
1601
struct scc_channel *scc = (struct scc_channel *) dev->ml_priv;
drivers/net/hamradio/scc.c
1606
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1607
Outb(scc->ctrl,0); /* Make sure pointer is written */
drivers/net/hamradio/scc.c
1608
wr(scc,R1,0); /* disable interrupts */
drivers/net/hamradio/scc.c
1609
wr(scc,R3,0);
drivers/net/hamradio/scc.c
1610
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1612
timer_delete_sync(&scc->tx_t);
drivers/net/hamradio/scc.c
1613
timer_delete_sync(&scc->tx_wdog);
drivers/net/hamradio/scc.c
1615
scc_discard_buffers(scc);
drivers/net/hamradio/scc.c
1622
static void scc_net_rx(struct scc_channel *scc, struct sk_buff *skb)
drivers/net/hamradio/scc.c
1629
scc->dev_stat.rx_packets++;
drivers/net/hamradio/scc.c
1630
scc->dev_stat.rx_bytes += skb->len;
drivers/net/hamradio/scc.c
1632
skb->protocol = ax25_type_trans(skb, scc->dev);
drivers/net/hamradio/scc.c
1641
struct scc_channel *scc = (struct scc_channel *) dev->ml_priv;
drivers/net/hamradio/scc.c
1648
if (skb->len > scc->stat.bufsize || skb->len < 2) {
drivers/net/hamradio/scc.c
1649
scc->dev_stat.tx_dropped++; /* bogus frame */
drivers/net/hamradio/scc.c
1654
scc->dev_stat.tx_packets++;
drivers/net/hamradio/scc.c
1655
scc->dev_stat.tx_bytes += skb->len;
drivers/net/hamradio/scc.c
1656
scc->stat.txframes++;
drivers/net/hamradio/scc.c
1662
scc_set_param(scc, kisscmd, *skb->data);
drivers/net/hamradio/scc.c
1667
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
1669
if (skb_queue_len(&scc->tx_queue) > scc->dev->tx_queue_len) {
drivers/net/hamradio/scc.c
1671
skb_del = skb_dequeue(&scc->tx_queue);
drivers/net/hamradio/scc.c
1674
skb_queue_tail(&scc->tx_queue, skb);
drivers/net/hamradio/scc.c
1684
if(scc->stat.tx_state == TXS_IDLE || scc->stat.tx_state == TXS_IDLE2) {
drivers/net/hamradio/scc.c
1685
scc->stat.tx_state = TXS_BUSY;
drivers/net/hamradio/scc.c
1686
if (scc->kiss.fulldup == KISS_DUPLEX_HALF)
drivers/net/hamradio/scc.c
1687
__scc_start_tx_timer(scc, t_dwait, scc->kiss.waittime);
drivers/net/hamradio/scc.c
1689
__scc_start_tx_timer(scc, t_dwait, 0);
drivers/net/hamradio/scc.c
1691
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
1715
struct scc_channel *scc = (struct scc_channel *) dev->ml_priv;
drivers/net/hamradio/scc.c
1852
if (!scc->init)
drivers/net/hamradio/scc.c
1859
scc->stat.bufsize = SCC_BUFSIZE;
drivers/net/hamradio/scc.c
1861
if (copy_from_user(&scc->modem, arg, sizeof(struct scc_modem)))
drivers/net/hamradio/scc.c
1866
if (scc->modem.speed < 4800)
drivers/net/hamradio/scc.c
1868
scc->kiss.txdelay = 36; /* 360 ms */
drivers/net/hamradio/scc.c
1869
scc->kiss.persist = 42; /* 25% persistence */ /* was 25 */
drivers/net/hamradio/scc.c
1870
scc->kiss.slottime = 16; /* 160 ms */
drivers/net/hamradio/scc.c
1871
scc->kiss.tailtime = 4; /* minimal reasonable value */
drivers/net/hamradio/scc.c
1872
scc->kiss.fulldup = 0; /* CSMA */
drivers/net/hamradio/scc.c
1873
scc->kiss.waittime = 50; /* 500 ms */
drivers/net/hamradio/scc.c
1874
scc->kiss.maxkeyup = 10; /* 10 s */
drivers/net/hamradio/scc.c
1875
scc->kiss.mintime = 3; /* 3 s */
drivers/net/hamradio/scc.c
1876
scc->kiss.idletime = 30; /* 30 s */
drivers/net/hamradio/scc.c
1877
scc->kiss.maxdefer = 120; /* 2 min */
drivers/net/hamradio/scc.c
1878
scc->kiss.softdcd = 0; /* hardware dcd */
drivers/net/hamradio/scc.c
1880
scc->kiss.txdelay = 10; /* 100 ms */
drivers/net/hamradio/scc.c
1881
scc->kiss.persist = 64; /* 25% persistence */ /* was 25 */
drivers/net/hamradio/scc.c
1882
scc->kiss.slottime = 8; /* 160 ms */
drivers/net/hamradio/scc.c
1883
scc->kiss.tailtime = 1; /* minimal reasonable value */
drivers/net/hamradio/scc.c
1884
scc->kiss.fulldup = 0; /* CSMA */
drivers/net/hamradio/scc.c
1885
scc->kiss.waittime = 50; /* 500 ms */
drivers/net/hamradio/scc.c
1886
scc->kiss.maxkeyup = 7; /* 7 s */
drivers/net/hamradio/scc.c
1887
scc->kiss.mintime = 3; /* 3 s */
drivers/net/hamradio/scc.c
1888
scc->kiss.idletime = 30; /* 30 s */
drivers/net/hamradio/scc.c
1889
scc->kiss.maxdefer = 120; /* 2 min */
drivers/net/hamradio/scc.c
1890
scc->kiss.softdcd = 0; /* hardware dcd */
drivers/net/hamradio/scc.c
1893
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
1894
skb_queue_head_init(&scc->tx_queue);
drivers/net/hamradio/scc.c
1895
scc->init = 1;
drivers/net/hamradio/scc.c
1912
scc->stat.bufsize = memcfg.bufsize;
drivers/net/hamradio/scc.c
1916
if (!arg || copy_to_user(arg, &scc->stat, sizeof(scc->stat)))
drivers/net/hamradio/scc.c
1923
kiss_cmd.param = scc_get_param(scc, kiss_cmd.command);
drivers/net/hamradio/scc.c
1932
return scc_set_param(scc, kiss_cmd.command, kiss_cmd.param);
drivers/net/hamradio/scc.c
1939
scc_start_calibrate(scc, cal.time, cal.pattern);
drivers/net/hamradio/scc.c
1963
struct scc_channel *scc = (struct scc_channel *) dev->ml_priv;
drivers/net/hamradio/scc.c
1965
scc->dev_stat.rx_errors = scc->stat.rxerrs + scc->stat.rx_over;
drivers/net/hamradio/scc.c
1966
scc->dev_stat.tx_errors = scc->stat.txerrs + scc->stat.tx_under;
drivers/net/hamradio/scc.c
1967
scc->dev_stat.rx_fifo_errors = scc->stat.rx_over;
drivers/net/hamradio/scc.c
1968
scc->dev_stat.tx_fifo_errors = scc->stat.tx_under;
drivers/net/hamradio/scc.c
1970
return &scc->dev_stat;
drivers/net/hamradio/scc.c
2001
struct scc_channel *scc = v;
drivers/net/hamradio/scc.c
2004
for (k = (v == SEQ_START_TOKEN) ? 0 : (scc - SCC_Info)+1;
drivers/net/hamradio/scc.c
2025
const struct scc_channel *scc = v;
drivers/net/hamradio/scc.c
2026
const struct scc_stat *stat = &scc->stat;
drivers/net/hamradio/scc.c
2027
const struct scc_kiss *kiss = &scc->kiss;
drivers/net/hamradio/scc.c
203
static void init_channel(struct scc_channel *scc);
drivers/net/hamradio/scc.c
204
static void scc_key_trx (struct scc_channel *scc, char tx);
drivers/net/hamradio/scc.c
2040
scc->dev->name,
drivers/net/hamradio/scc.c
2041
scc->data, scc->ctrl, scc->irq, scc->clock, scc->brand,
drivers/net/hamradio/scc.c
2042
scc->enhanced, Vector_Latch, scc->special,
drivers/net/hamradio/scc.c
2043
scc->option);
drivers/net/hamradio/scc.c
2045
scc->modem.speed, scc->modem.nrz,
drivers/net/hamradio/scc.c
2046
scc->modem.clocksrc, kiss->softdcd,
drivers/net/hamradio/scc.c
205
static void scc_init_timer(struct scc_channel *scc);
drivers/net/hamradio/scc.c
2067
seq_printf(seq, "%2.2x ", scc->wreg[reg]);
drivers/net/hamradio/scc.c
207
static int scc_net_alloc(const char *name, struct scc_channel *scc);
drivers/net/hamradio/scc.c
2070
seq_printf(seq, "\tR %2.2x %2.2x XX ", InReg(scc->ctrl,R0), InReg(scc->ctrl,R1));
drivers/net/hamradio/scc.c
2072
seq_printf(seq, "%2.2x ", InReg(scc->ctrl, reg));
drivers/net/hamradio/scc.c
2075
seq_printf(seq, "%2.2x ", InReg(scc->ctrl, reg));
drivers/net/hamradio/scc.c
211
static void scc_net_rx(struct scc_channel *scc, struct sk_buff *skb);
drivers/net/hamradio/scc.c
2124
struct scc_channel *scc;
drivers/net/hamradio/scc.c
2153
scc = &SCC_Info[k];
drivers/net/hamradio/scc.c
2154
if (scc->ctrl)
drivers/net/hamradio/scc.c
2156
release_region(scc->ctrl, 1);
drivers/net/hamradio/scc.c
2157
release_region(scc->data, 1);
drivers/net/hamradio/scc.c
2159
if (scc->dev)
drivers/net/hamradio/scc.c
2161
unregister_netdev(scc->dev);
drivers/net/hamradio/scc.c
2162
free_netdev(scc->dev);
drivers/net/hamradio/scc.c
278
static inline void wr(struct scc_channel *scc, unsigned char reg,
drivers/net/hamradio/scc.c
281
OutReg(scc->ctrl, reg, (scc->wreg[reg] = val));
drivers/net/hamradio/scc.c
284
static inline void or(struct scc_channel *scc, unsigned char reg, unsigned char val)
drivers/net/hamradio/scc.c
286
OutReg(scc->ctrl, reg, (scc->wreg[reg] |= val));
drivers/net/hamradio/scc.c
289
static inline void cl(struct scc_channel *scc, unsigned char reg, unsigned char val)
drivers/net/hamradio/scc.c
291
OutReg(scc->ctrl, reg, (scc->wreg[reg] &= ~val));
drivers/net/hamradio/scc.c
298
static inline void scc_discard_buffers(struct scc_channel *scc)
drivers/net/hamradio/scc.c
302
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
303
if (scc->tx_buff != NULL)
drivers/net/hamradio/scc.c
305
dev_kfree_skb_irq(scc->tx_buff);
drivers/net/hamradio/scc.c
306
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
309
while (!skb_queue_empty(&scc->tx_queue))
drivers/net/hamradio/scc.c
310
dev_kfree_skb_irq(skb_dequeue(&scc->tx_queue));
drivers/net/hamradio/scc.c
312
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
324
static inline void scc_notify(struct scc_channel *scc, int event)
drivers/net/hamradio/scc.c
329
if (scc->kiss.fulldup != KISS_DUPLEX_OPTIMA)
drivers/net/hamradio/scc.c
338
scc_net_rx(scc, skb);
drivers/net/hamradio/scc.c
340
scc->stat.nospace++;
drivers/net/hamradio/scc.c
343
static inline void flush_rx_FIFO(struct scc_channel *scc)
drivers/net/hamradio/scc.c
348
Inb(scc->data);
drivers/net/hamradio/scc.c
350
if(scc->rx_buff != NULL) /* did we receive something? */
drivers/net/hamradio/scc.c
352
scc->stat.rxerrs++; /* then count it as an error */
drivers/net/hamradio/scc.c
353
dev_kfree_skb_irq(scc->rx_buff);
drivers/net/hamradio/scc.c
354
scc->rx_buff = NULL;
drivers/net/hamradio/scc.c
358
static void start_hunt(struct scc_channel *scc)
drivers/net/hamradio/scc.c
360
if ((scc->modem.clocksrc != CLK_EXTERNAL))
drivers/net/hamradio/scc.c
361
OutReg(scc->ctrl,R14,SEARCH|scc->wreg[R14]); /* DPLL: enter search mode */
drivers/net/hamradio/scc.c
362
or(scc,R3,ENT_HM|RxENABLE); /* enable the receiver, hunt mode */
drivers/net/hamradio/scc.c
369
static inline void scc_txint(struct scc_channel *scc)
drivers/net/hamradio/scc.c
373
scc->stat.txints++;
drivers/net/hamradio/scc.c
374
skb = scc->tx_buff;
drivers/net/hamradio/scc.c
380
skb = skb_dequeue(&scc->tx_queue);
drivers/net/hamradio/scc.c
381
scc->tx_buff = skb;
drivers/net/hamradio/scc.c
382
netif_wake_queue(scc->dev);
drivers/net/hamradio/scc.c
386
scc_tx_done(scc);
drivers/net/hamradio/scc.c
387
Outb(scc->ctrl, RES_Tx_P);
drivers/net/hamradio/scc.c
394
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
395
scc_tx_done(scc);
drivers/net/hamradio/scc.c
396
Outb(scc->ctrl, RES_Tx_P);
drivers/net/hamradio/scc.c
400
scc->stat.tx_state = TXS_ACTIVE;
drivers/net/hamradio/scc.c
402
OutReg(scc->ctrl, R0, RES_Tx_CRC);
drivers/net/hamradio/scc.c
404
or(scc,R10,ABUNDER); /* re-install underrun protection */
drivers/net/hamradio/scc.c
405
Outb(scc->data,*skb->data); /* send byte */
drivers/net/hamradio/scc.c
408
if (!scc->enhanced) /* reset EOM latch */
drivers/net/hamradio/scc.c
409
Outb(scc->ctrl,RES_EOM_L);
drivers/net/hamradio/scc.c
417
Outb(scc->ctrl, RES_Tx_P); /* reset pending int */
drivers/net/hamradio/scc.c
418
cl(scc, R10, ABUNDER); /* send CRC */
drivers/net/hamradio/scc.c
420
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
421
scc->stat.tx_state = TXS_NEWFRAME; /* next frame... */
drivers/net/hamradio/scc.c
427
Outb(scc->data,*skb->data);
drivers/net/hamradio/scc.c
433
static inline void scc_exint(struct scc_channel *scc)
drivers/net/hamradio/scc.c
437
scc->stat.exints++;
drivers/net/hamradio/scc.c
439
status = InReg(scc->ctrl,R0);
drivers/net/hamradio/scc.c
440
changes = status ^ scc->status;
drivers/net/hamradio/scc.c
446
flush_rx_FIFO(scc);
drivers/net/hamradio/scc.c
450
if ((changes & SYNC_HUNT) && scc->kiss.softdcd)
drivers/net/hamradio/scc.c
454
scc->dcd = 0;
drivers/net/hamradio/scc.c
455
flush_rx_FIFO(scc);
drivers/net/hamradio/scc.c
456
if ((scc->modem.clocksrc != CLK_EXTERNAL))
drivers/net/hamradio/scc.c
457
OutReg(scc->ctrl,R14,SEARCH|scc->wreg[R14]); /* DPLL: enter search mode */
drivers/net/hamradio/scc.c
459
scc->dcd = 1;
drivers/net/hamradio/scc.c
462
scc_notify(scc, scc->dcd? HWEV_DCD_OFF:HWEV_DCD_ON);
drivers/net/hamradio/scc.c
468
if((changes & DCD) && !scc->kiss.softdcd) /* DCD input changed state */
drivers/net/hamradio/scc.c
472
start_hunt(scc);
drivers/net/hamradio/scc.c
473
scc->dcd = 1;
drivers/net/hamradio/scc.c
475
cl(scc,R3,ENT_HM|RxENABLE); /* disable the receiver */
drivers/net/hamradio/scc.c
476
flush_rx_FIFO(scc);
drivers/net/hamradio/scc.c
477
scc->dcd = 0;
drivers/net/hamradio/scc.c
480
scc_notify(scc, scc->dcd? HWEV_DCD_ON:HWEV_DCD_OFF);
drivers/net/hamradio/scc.c
492
if (scc->kiss.txdelay == 0) /* zero TXDELAY = wait for CTS */
drivers/net/hamradio/scc.c
493
scc_start_tx_timer(scc, t_txdelay, 0);
drivers/net/hamradio/scc.c
497
if (scc->stat.tx_state == TXS_ACTIVE && (status & TxEOM))
drivers/net/hamradio/scc.c
499
scc->stat.tx_under++; /* oops, an underrun! count 'em */
drivers/net/hamradio/scc.c
500
Outb(scc->ctrl, RES_EXT_INT); /* reset ext/status interrupts */
drivers/net/hamradio/scc.c
502
if (scc->tx_buff != NULL)
drivers/net/hamradio/scc.c
504
dev_kfree_skb_irq(scc->tx_buff);
drivers/net/hamradio/scc.c
505
scc->tx_buff = NULL;
drivers/net/hamradio/scc.c
508
or(scc,R10,ABUNDER);
drivers/net/hamradio/scc.c
509
scc_start_tx_timer(scc, t_txdelay, 0); /* restart transmission */
drivers/net/hamradio/scc.c
512
scc->status = status;
drivers/net/hamradio/scc.c
513
Outb(scc->ctrl,RES_EXT_INT);
drivers/net/hamradio/scc.c
518
static inline void scc_rxint(struct scc_channel *scc)
drivers/net/hamradio/scc.c
522
scc->stat.rxints++;
drivers/net/hamradio/scc.c
524
if((scc->wreg[5] & RTS) && scc->kiss.fulldup == KISS_DUPLEX_HALF)
drivers/net/hamradio/scc.c
526
Inb(scc->data); /* discard char */
drivers/net/hamradio/scc.c
527
or(scc,R3,ENT_HM); /* enter hunt mode for next flag */
drivers/net/hamradio/scc.c
531
skb = scc->rx_buff;
drivers/net/hamradio/scc.c
535
skb = dev_alloc_skb(scc->stat.bufsize);
drivers/net/hamradio/scc.c
538
scc->dev_stat.rx_dropped++;
drivers/net/hamradio/scc.c
539
scc->stat.nospace++;
drivers/net/hamradio/scc.c
540
Inb(scc->data);
drivers/net/hamradio/scc.c
541
or(scc, R3, ENT_HM);
drivers/net/hamradio/scc.c
545
scc->rx_buff = skb;
drivers/net/hamradio/scc.c
549
if (skb->len >= scc->stat.bufsize)
drivers/net/hamradio/scc.c
555
scc->rx_buff = NULL;
drivers/net/hamradio/scc.c
556
Inb(scc->data);
drivers/net/hamradio/scc.c
557
or(scc, R3, ENT_HM);
drivers/net/hamradio/scc.c
561
skb_put_u8(skb, Inb(scc->data));
drivers/net/hamradio/scc.c
566
static inline void scc_spint(struct scc_channel *scc)
drivers/net/hamradio/scc.c
571
scc->stat.spints++;
drivers/net/hamradio/scc.c
573
status = InReg(scc->ctrl,R1); /* read receiver status */
drivers/net/hamradio/scc.c
575
Inb(scc->data); /* throw away Rx byte */
drivers/net/hamradio/scc.c
576
skb = scc->rx_buff;
drivers/net/hamradio/scc.c
580
scc->stat.rx_over++; /* count them */
drivers/net/hamradio/scc.c
581
or(scc,R3,ENT_HM); /* enter hunt mode for next flag */
drivers/net/hamradio/scc.c
585
scc->rx_buff = skb = NULL;
drivers/net/hamradio/scc.c
596
scc_net_rx(scc, skb);
drivers/net/hamradio/scc.c
597
scc->rx_buff = NULL;
drivers/net/hamradio/scc.c
598
scc->stat.rxframes++;
drivers/net/hamradio/scc.c
601
scc->rx_buff = NULL;
drivers/net/hamradio/scc.c
602
scc->stat.rxerrs++;
drivers/net/hamradio/scc.c
606
Outb(scc->ctrl,ERR_RES);
drivers/net/hamradio/scc.c
612
static void scc_isr_dispatch(struct scc_channel *scc, int vector)
drivers/net/hamradio/scc.c
614
spin_lock(&scc->lock);
drivers/net/hamradio/scc.c
617
case TXINT: scc_txint(scc); break;
drivers/net/hamradio/scc.c
618
case EXINT: scc_exint(scc); break;
drivers/net/hamradio/scc.c
619
case RXINT: scc_rxint(scc); break;
drivers/net/hamradio/scc.c
620
case SPINT: scc_spint(scc); break;
drivers/net/hamradio/scc.c
622
spin_unlock(&scc->lock);
drivers/net/hamradio/scc.c
636
struct scc_channel *scc;
drivers/net/hamradio/scc.c
650
scc=&SCC_Info[vector >> 3 ^ 0x01];
drivers/net/hamradio/scc.c
651
if (!scc->dev) break;
drivers/net/hamradio/scc.c
653
scc_isr_dispatch(scc, vector);
drivers/net/hamradio/scc.c
655
OutReg(scc->ctrl,R0,RES_H_IUS); /* Reset Highest IUS */
drivers/net/hamradio/scc.c
677
scc = NULL;
drivers/net/hamradio/scc.c
683
scc = &SCC_Info[vector >> 3 ^ 0x01];
drivers/net/hamradio/scc.c
684
if (!scc->dev) break;
drivers/net/hamradio/scc.c
686
scc_isr_dispatch(scc, vector);
drivers/net/hamradio/scc.c
702
if (scc != NULL)
drivers/net/hamradio/scc.c
704
OutReg(scc->ctrl,R0,RES_H_IUS);
drivers/net/hamradio/scc.c
721
static inline void set_brg(struct scc_channel *scc, unsigned int tc)
drivers/net/hamradio/scc.c
723
cl(scc,R14,BRENABL); /* disable baudrate generator */
drivers/net/hamradio/scc.c
724
wr(scc,R12,tc & 255); /* brg rate LOW */
drivers/net/hamradio/scc.c
725
wr(scc,R13,tc >> 8); /* brg rate HIGH */
drivers/net/hamradio/scc.c
726
or(scc,R14,BRENABL); /* enable baudrate generator */
drivers/net/hamradio/scc.c
729
static inline void set_speed(struct scc_channel *scc)
drivers/net/hamradio/scc.c
732
spin_lock_irqsave(&scc->lock, flags);
drivers/net/hamradio/scc.c
734
if (scc->modem.speed > 0) /* paranoia... */
drivers/net/hamradio/scc.c
735
set_brg(scc, (unsigned) (scc->clock / (scc->modem.speed * 64)) - 2);
drivers/net/hamradio/scc.c
737
spin_unlock_irqrestore(&scc->lock, flags);
drivers/net/hamradio/scc.c
743
static inline void init_brg(struct scc_channel *scc)
drivers/net/hamradio/scc.c
745
wr(scc, R14, BRSRC); /* BRG source = PCLK */
drivers/net/hamradio/scc.c
746
OutReg(scc->ctrl, R14, SSBR|scc->wreg[R14]); /* DPLL source = BRG */
drivers/net/hamradio/scc.c
747
OutReg(scc->ctrl, R14, SNRZI|scc->wreg[R14]); /* DPLL NRZI mode */
drivers/net/hamradio/scc.c
795
static void init_channel(struct scc_channel *scc)
drivers/net/hamradio/scc.c
797
timer_delete(&scc->tx_t);
drivers/net/hamradio/scc.c
798
timer_delete(&scc->tx_wdog);
drivers/net/hamradio/scc.c
800
disable_irq(scc->irq);
drivers/net/hamradio/scc.c
802
wr(scc,R4,X1CLK|SDLC); /* *1 clock, SDLC mode */
drivers/net/hamradio/scc.c
803
wr(scc,R1,0); /* no W/REQ operation */
drivers/net/hamradio/scc.c
804
wr(scc,R3,Rx8|RxCRC_ENAB); /* RX 8 bits/char, CRC, disabled */
drivers/net/hamradio/scc.c
805
wr(scc,R5,Tx8|DTR|TxCRC_ENAB); /* TX 8 bits/char, disabled, DTR */
drivers/net/hamradio/scc.c
806
wr(scc,R6,0); /* SDLC address zero (not used) */
drivers/net/hamradio/scc.c
807
wr(scc,R7,FLAG); /* SDLC flag value */
drivers/net/hamradio/scc.c
808
wr(scc,R9,VIS); /* vector includes status */
drivers/net/hamradio/scc.c
809
wr(scc,R10,(scc->modem.nrz? NRZ : NRZI)|CRCPS|ABUNDER); /* abort on underrun, preset CRC generator, NRZ(I) */
drivers/net/hamradio/scc.c
810
wr(scc,R14, 0);
drivers/net/hamradio/scc.c
839
switch(scc->modem.clocksrc)
drivers/net/hamradio/scc.c
842
wr(scc, R11, RCDPLL|TCDPLL|TRxCOI|TRxCDP);
drivers/net/hamradio/scc.c
843
init_brg(scc);
drivers/net/hamradio/scc.c
847
wr(scc, R11, ((scc->brand & BAYCOM)? TRxCDP : TRxCBR) | RCDPLL|TCRTxCP|TRxCOI);
drivers/net/hamradio/scc.c
848
init_brg(scc);
drivers/net/hamradio/scc.c
852
wr(scc, R11, (scc->brand & BAYCOM)? RCTRxCP|TCRTxCP : RCRTxCP|TCTRxCP);
drivers/net/hamradio/scc.c
853
OutReg(scc->ctrl, R14, DISDPLL);
drivers/net/hamradio/scc.c
858
set_speed(scc); /* set baudrate */
drivers/net/hamradio/scc.c
860
if(scc->enhanced)
drivers/net/hamradio/scc.c
862
or(scc,R15,SHDLCE|FIFOE); /* enable FIFO, SDLC/HDLC Enhancements (From now R7 is R7') */
drivers/net/hamradio/scc.c
863
wr(scc,R7,AUTOEOM);
drivers/net/hamradio/scc.c
866
if(scc->kiss.softdcd || (InReg(scc->ctrl,R0) & DCD))
drivers/net/hamradio/scc.c
869
start_hunt(scc);
drivers/net/hamradio/scc.c
874
wr(scc,R15, BRKIE|TxUIE|(scc->kiss.softdcd? SYNCIE:DCDIE));
drivers/net/hamradio/scc.c
876
Outb(scc->ctrl,RES_EXT_INT); /* reset ext/status interrupts */
drivers/net/hamradio/scc.c
877
Outb(scc->ctrl,RES_EXT_INT); /* must be done twice */
drivers/net/hamradio/scc.c
879
or(scc,R1,INT_ALL_Rx|TxINT_ENAB|EXT_INT_ENAB); /* enable interrupts */
drivers/net/hamradio/scc.c
881
scc->status = InReg(scc->ctrl,R0); /* read initial status */
drivers/net/hamradio/scc.c
883
or(scc,R9,MIE); /* master interrupt enable */
drivers/net/hamradio/scc.c
885
scc_init_timer(scc);
drivers/net/hamradio/scc.c
887
enable_irq(scc->irq);
drivers/net/hamradio/scc.c
901
static void scc_key_trx(struct scc_channel *scc, char tx)
drivers/net/hamradio/scc.c
905
if (scc->brand & PRIMUS)
drivers/net/hamradio/scc.c
906
Outb(scc->ctrl + 4, scc->option | (tx? 0x80 : 0));
drivers/net/hamradio/scc.c
908
if (scc->modem.speed < 300)
drivers/net/hamradio/scc.c
909
scc->modem.speed = 1200;
drivers/net/hamradio/scc.c
911
time_const = (unsigned) (scc->clock / (scc->modem.speed * (tx? 2:64))) - 2;
drivers/net/hamradio/scc.c
913
disable_irq(scc->irq);
drivers/net/hamradio/scc.c
917
or(scc, R1, TxINT_ENAB); /* t_maxkeyup may have reset these */
drivers/net/hamradio/scc.c
918
or(scc, R15, TxUIE);
drivers/net/hamradio/scc.c
921
if (scc->modem.clocksrc == CLK_DPLL)
drivers/net/hamradio/scc.c
926
cl(scc, R3, RxENABLE|ENT_HM); /* switch off receiver */
drivers/net/hamradio/scc.c
927
cl(scc, R15, DCDIE|SYNCIE); /* No DCD changes, please */
drivers/net/hamradio/scc.c
929
set_brg(scc, time_const); /* reprogram baudrate generator */
drivers/net/hamradio/scc.c
932
wr(scc, R11, RCDPLL|TCBR|TRxCOI|TRxCBR);
drivers/net/hamradio/scc.c
935
if (scc->kiss.tx_inhibit)
drivers/net/hamradio/scc.c
937
or(scc,R5, TxENAB);
drivers/net/hamradio/scc.c
938
scc->wreg[R5] |= RTS;
drivers/net/hamradio/scc.c
940
or(scc,R5,RTS|TxENAB); /* set the RTS line and enable TX */
drivers/net/hamradio/scc.c
943
cl(scc,R5,RTS|TxENAB);
drivers/net/hamradio/scc.c
945
set_brg(scc, time_const); /* reprogram baudrate generator */
drivers/net/hamradio/scc.c
948
wr(scc, R11, RCDPLL|TCDPLL|TRxCOI|TRxCDP);
drivers/net/hamradio/scc.c
951
if (scc->kiss.softdcd)
drivers/net/hamradio/scc.c
954
or(scc,R15, scc->kiss.softdcd? SYNCIE:DCDIE);
drivers/net/hamradio/scc.c
955
start_hunt(scc);
drivers/net/hamradio/scc.c
962
if (scc->kiss.fulldup == KISS_DUPLEX_HALF)
drivers/net/hamradio/scc.c
964
cl(scc, R3, RxENABLE);
drivers/net/hamradio/scc.c
965
cl(scc, R15, DCDIE|SYNCIE);
drivers/net/hamradio/scc.c
969
if (scc->kiss.tx_inhibit)
drivers/net/hamradio/scc.c
971
or(scc,R5, TxENAB);
drivers/net/hamradio/scc.c
972
scc->wreg[R5] |= RTS;
drivers/net/hamradio/scc.c
974
or(scc,R5,RTS|TxENAB); /* enable tx */
drivers/net/hamradio/scc.c
977
cl(scc,R5,RTS|TxENAB); /* disable tx */
drivers/net/hamradio/scc.c
979
if ((scc->kiss.fulldup == KISS_DUPLEX_HALF) &&
drivers/net/hamradio/scc.c
981
scc->kiss.softdcd)
drivers/net/hamradio/scc.c
986
or(scc, R15, scc->kiss.softdcd? SYNCIE:DCDIE);
drivers/net/hamradio/scc.c
987
start_hunt(scc);
drivers/net/hamradio/scc.c
992
enable_irq(scc->irq);
drivers/net/hamradio/scc.c
998
static void __scc_start_tx_timer(struct scc_channel *scc,
drivers/tty/serial/zs.c
102
resource_size_t scc[ZS_NUM_SCCS];
drivers/tty/serial/zs.c
1082
zs_parms.scc[n_chips] = IOASIC_SCC0;
drivers/tty/serial/zs.c
1088
zs_parms.scc[n_chips] = IOASIC_SCC1;
drivers/tty/serial/zs.c
1103
zport->scc = &zs_sccs[chip];
drivers/tty/serial/zs.c
1115
zs_parms.scc[chip] +
drivers/tty/serial/zs.c
1131
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
1135
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
1139
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
1151
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
1157
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
1168
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
1173
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
1188
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
1280
struct zs_scc *scc = &zs_sccs[i / ZS_NUM_CHAN];
drivers/tty/serial/zs.c
1281
struct zs_port *zport = &scc->zport[i % ZS_NUM_CHAN];
drivers/tty/serial/zs.c
1284
if (zport->scc)
drivers/tty/serial/zs.c
1296
struct zs_scc *scc = &zs_sccs[i / ZS_NUM_CHAN];
drivers/tty/serial/zs.c
1297
struct zs_port *zport = &scc->zport[i % ZS_NUM_CHAN];
drivers/tty/serial/zs.c
1300
if (zport->scc)
drivers/tty/serial/zs.c
198
if (!zport->scc)
drivers/tty/serial/zs.c
239
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
243
zs_spin_unlock_cond_irq(&scc->zlock, irq);
drivers/tty/serial/zs.c
245
zs_spin_lock_cond_irq(&scc->zlock, irq);
drivers/tty/serial/zs.c
252
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
256
zs_spin_unlock_cond_irq(&scc->zlock, irq);
drivers/tty/serial/zs.c
258
zs_spin_lock_cond_irq(&scc->zlock, irq);
drivers/tty/serial/zs.c
307
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
311
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
313
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
337
struct zs_port *zport_a = &zport->scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
344
struct zs_port *zport_a = &zport->scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
375
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
378
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
380
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
388
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
389
struct zs_port *zport_a = &scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
392
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
416
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
428
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
430
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
432
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
440
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
442
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
448
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
454
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
455
struct zs_port *zport_a = &scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
457
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
482
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
488
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
489
struct zs_port *zport_a = &scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
494
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
512
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
518
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
521
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
527
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
540
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
547
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
549
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
553
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
556
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
572
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
574
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
640
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
642
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
644
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
650
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
654
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
662
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
667
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
674
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
690
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
696
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
704
struct zs_scc *scc = dev_id;
drivers/tty/serial/zs.c
705
struct zs_port *zport_a = &scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
706
struct zs_port *zport_b = &scc->zport[ZS_CHAN_B];
drivers/tty/serial/zs.c
719
spin_lock(&scc->zlock);
drivers/tty/serial/zs.c
721
spin_unlock(&scc->zlock);
drivers/tty/serial/zs.c
756
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
761
irq_guard = atomic_add_return(1, &scc->irq_guard);
drivers/tty/serial/zs.c
764
IRQF_SHARED, "scc", scc);
drivers/tty/serial/zs.c
766
atomic_add(-1, &scc->irq_guard);
drivers/tty/serial/zs.c
773
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
801
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
809
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
813
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
819
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
821
irq_guard = atomic_add_return(-1, &scc->irq_guard);
drivers/tty/serial/zs.c
823
free_irq(zport->port.irq, scc);
drivers/tty/serial/zs.c
829
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
833
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
835
if (!scc->initialised) {
drivers/tty/serial/zs.c
843
scc->initialised = 1;
drivers/tty/serial/zs.c
846
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.c
853
struct zs_scc *scc = zport->scc;
drivers/tty/serial/zs.c
854
struct zs_port *zport_a = &scc->zport[ZS_CHAN_A];
drivers/tty/serial/zs.c
859
spin_lock_irqsave(&scc->zlock, flags);
drivers/tty/serial/zs.c
956
spin_unlock_irqrestore(&scc->zlock, flags);
drivers/tty/serial/zs.h
23
struct zs_scc *scc; /* Containing SCC. */
include/linux/bpf_verifier.h
595
u32 scc;
include/linux/bpf_verifier.h
716
u32 scc;
kernel/bpf/verifier.c
1853
u32 i, scc, insn_idx;
kernel/bpf/verifier.c
1858
scc = env->insn_aux_data[insn_idx].scc;
kernel/bpf/verifier.c
1859
if (scc) {
kernel/bpf/verifier.c
1860
callchain->scc = scc;
kernel/bpf/verifier.c
1875
struct bpf_scc_info *info = env->scc_info[callchain->scc];
kernel/bpf/verifier.c
1896
u32 scc, num_visits;
kernel/bpf/verifier.c
1899
scc = callchain->scc;
kernel/bpf/verifier.c
1900
info = env->scc_info[scc];
kernel/bpf/verifier.c
1903
info = kvrealloc(env->scc_info[scc], new_sz, GFP_KERNEL_ACCOUNT);
kernel/bpf/verifier.c
1906
env->scc_info[scc] = info;
kernel/bpf/verifier.c
1927
delta += snprintf(buf + delta, TMP_STR_BUF_LEN - delta, "%u)", callchain->scc);
kernel/bpf/verifier.c
25748
if (env->insn_aux_data[i].scc)
kernel/bpf/verifier.c
25749
verbose(env, "%3d ", env->insn_aux_data[i].scc);
kernel/bpf/verifier.c
25932
aux[t].scc = next_scc_id;
net/unix/garbage.c
376
static bool unix_scc_dead(struct list_head *scc, bool fast)
net/unix/garbage.c
384
list_for_each_entry_reverse(vertex, scc, scc_entry) {
net/unix/garbage.c
403
static void unix_collect_skb(struct list_head *scc, struct sk_buff_head *hitlist)
net/unix/garbage.c
407
list_for_each_entry_reverse(vertex, scc, scc_entry) {
net/unix/garbage.c
436
static bool unix_scc_cyclic(struct list_head *scc)
net/unix/garbage.c
442
if (!list_is_singular(scc))
net/unix/garbage.c
445
vertex = list_first_entry(scc, typeof(*vertex), scc_entry);
net/unix/garbage.c
523
struct list_head scc;
net/unix/garbage.c
530
__list_cut_position(&scc, &vertex_stack, &vertex->scc_entry);
net/unix/garbage.c
532
if (unix_scc_dead(&scc, false)) {
net/unix/garbage.c
533
unix_collect_skb(&scc, hitlist);
net/unix/garbage.c
538
if (unix_scc_cyclic(&scc))
net/unix/garbage.c
542
list_del(&scc);
net/unix/garbage.c
585
struct list_head scc;
net/unix/garbage.c
588
list_add(&scc, &vertex->scc_entry);
net/unix/garbage.c
590
if (unix_scc_dead(&scc, true)) {
net/unix/garbage.c
592
unix_collect_skb(&scc, hitlist);
net/unix/garbage.c
595
list_del(&scc);