Symbol: ccid
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1001
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1005
(ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0 ||
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1015
ccid_t *ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1017
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1070
ccid_t *ccid = cc->cc_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1072
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1074
list_remove(&ccid->ccid_command_queue, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1079
slot = &ccid->ccid_slots[cc->cc_slot];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1081
slot->cs_icc.icc_complete(ccid, slot, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1083
list_insert_tail(&ccid->ccid_complete_queue, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1090
ccid_command_dispatch(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1146
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1155
ccid = (ccid_t *)ubrp->bulk_client_private;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1156
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1162
VERIFY3P(ubrp, ==, ccid->ccid_bulkin_dispatched);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1163
ccid->ccid_bulkin_dispatched = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1165
if ((cc = list_head(&ccid->ccid_command_queue)) == NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1171
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1191
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1209
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1214
slot = &ccid->ccid_slots[cc->cc_slot];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1228
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1229
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1242
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1243
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1257
ret = ccid_bulkin_schedule(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1261
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1263
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1277
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1284
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1287
ccid = (ccid_t *)ubrp->bulk_client_private;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1288
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1294
VERIFY3P(ubrp, ==, ccid->ccid_bulkin_dispatched);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1295
ccid->ccid_bulkin_dispatched = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1303
if ((cc = list_head(&ccid->ccid_command_queue)) != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1309
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1319
ccid_bulkin_cache_refresh(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1321
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1322
while (ccid->ccid_bulkin_alloced < CCID_BULK_NALLOCED) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1325
if ((ubrp = usb_alloc_bulk_req(ccid->ccid_dip,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1326
ccid->ccid_bufsize, 0)) == NULL)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1329
ubrp->bulk_len = ccid->ccid_bufsize;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1331
ubrp->bulk_client_private = (usb_opaque_t)ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1337
ccid->ccid_bulkin_cache[ccid->ccid_bulkin_alloced] = ubrp;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1338
ccid->ccid_bulkin_alloced++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1344
ccid_bulkin_cache_get(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1348
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1350
if (ccid->ccid_bulkin_alloced == 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1351
ccid_bulkin_cache_refresh(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1352
if (ccid->ccid_bulkin_alloced == 0)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1356
ccid->ccid_bulkin_alloced--;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1357
ubrp = ccid->ccid_bulkin_cache[ccid->ccid_bulkin_alloced];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1359
ccid->ccid_bulkin_cache[ccid->ccid_bulkin_alloced] = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1369
ccid_bulkin_schedule(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1371
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1372
if (ccid->ccid_bulkin_dispatched == NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1376
ubrp = ccid_bulkin_cache_get(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1381
if ((ret = usb_pipe_bulk_xfer(ccid->ccid_bulkin_pipe, ubrp,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1383
ccid_error(ccid,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1389
ccid->ccid_bulkin_dispatched = ubrp;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1400
ccid_command_dispatch(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1404
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1405
while ((cc = list_head(&ccid->ccid_command_queue)) != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1408
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1429
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1431
ret = usb_pipe_bulk_xfer(ccid->ccid_bulkout_pipe, cc->cc_ubrp,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1433
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1440
ccid_error(ccid, "!Bulk pipe dispatch failed: %d\n",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1448
ccid_command_queue(ccid_t *ccid, ccid_command_t *cc)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1453
seq = id_alloc_nosleep(ccid->ccid_seqs);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1461
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1466
ccid_bulkin_cache_refresh(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1467
list_insert_tail(&ccid->ccid_command_queue, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1470
ccid_command_dispatch(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1471
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1485
ccid_t *ccid = cc->cc_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1487
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1497
ret = ccid_bulkin_schedule(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1501
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1512
ccid_t *ccid = cc->cc_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1514
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1517
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1569
ccid_command_alloc(ccid_t *ccid, ccid_slot_t *slot, boolean_t block,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1645
if (datasz + sizeof (ccid_header_t) > ccid->ccid_bufsize)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1654
cc->cc_ubrp = usb_alloc_bulk_req(ccid->ccid_dip, allocsz,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1657
cc->cc_ubrp = usb_alloc_bulk_req(ccid->ccid_dip, 0, usbflag);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1670
cc->cc_ccid = ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1711
ccid_command_poll(ccid_t *ccid, ccid_command_t *cc)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1715
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1717
(ccid->ccid_flags & CCID_F_DEV_GONE_MASK) == 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1718
cv_wait(&cc->cc_cv, &ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1726
for (check = list_head(&ccid->ccid_complete_queue); check != NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1727
check = list_next(&ccid->ccid_complete_queue, check)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1734
list_remove(&ccid->ccid_complete_queue, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1735
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1739
ccid_command_power_off(ccid_t *ccid, ccid_slot_t *cs)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1746
if ((ret = ccid_command_alloc(ccid, cs, B_TRUE, NULL, 0,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1751
if ((ret = ccid_command_queue(ccid, cc)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1756
ccid_command_poll(ccid, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1779
ccid_command_power_on(ccid_t *ccid, ccid_slot_t *cs, ccid_class_voltage_t volt,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1803
if ((ret = ccid_command_alloc(ccid, cs, B_TRUE, NULL, 0,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1808
if ((ret = ccid_command_queue(ccid, cc)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1813
ccid_command_poll(ccid, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1879
ccid_command_get_parameters(ccid_t *ccid, ccid_slot_t *slot,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1890
if ((ret = ccid_command_alloc(ccid, slot, B_TRUE, NULL, 0,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1895
if ((ret = ccid_command_queue(ccid, cc)) != 0)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1898
ccid_command_poll(ccid, cc);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1951
ccid_hw_error(ccid_t *ccid, ccid_intr_hwerr_t *hwerr)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1956
if (hwerr->cih_slot >= ccid->ccid_nslots) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1957
ccid->ccid_stats.cst_intr_inval++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1961
slot = &ccid->ccid_slots[hwerr->cih_slot];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1965
ccid->ccid_stats.cst_intr_inval++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1973
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1984
ccid_t *ccid = (ccid_t *)uirp->intr_client_private;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1996
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1997
ccid->ccid_stats.cst_intr_slot_change++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
1999
explen = 1 + ((2 * ccid->ccid_nslots + (NBBY-1)) / NBBY);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2001
ccid->ccid_stats.cst_intr_inval++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2002
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2007
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2014
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2028
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2030
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2033
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2034
ccid->ccid_stats.cst_intr_hwerr++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2037
ccid->ccid_stats.cst_intr_inval++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2038
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2043
ccid_hw_error(ccid, &ccid_hwerr);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2045
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2048
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2049
ccid->ccid_stats.cst_intr_unknown++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2050
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2061
ccid_t *ccid = (ccid_t *)uirp->intr_client_private;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2063
ccid->ccid_stats.cst_intr_errs++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2067
ccid->ccid_stats.cst_intr_restart++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2068
ccid_intr_poll_init(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2080
ccid_slot_teardown(ccid_t *ccid, ccid_slot_t *slot, boolean_t signal)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2082
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2085
slot->cs_icc.icc_fini(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2110
ccid_slot_io_teardown(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2119
slot->cs_icc.icc_teardown(ccid, slot, ENXIO);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2123
cv_wait(&slot->cs_io.ci_cv, &ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2131
ccid_slot_inactive(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2133
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2137
ccid_slot_io_teardown(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2144
ccid_slot_teardown(ccid, slot, B_TRUE);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2151
ccid_slot_removed(ccid_t *ccid, ccid_slot_t *slot, boolean_t notify)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2153
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2164
ccid_slot_inactive(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2168
ccid_slot_setup_functions(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2178
switch (ccid->ccid_class.ccd_dwFeatures & bits) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2199
ccid_error(ccid, "!CCID does not support I/O transfers to ICC");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2210
ccid_slot_params_init(ccid_t *ccid, ccid_slot_t *slot, mblk_t *atr)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2225
ccid_error(ccid, "!failed to parse ATR data from slot %d: %s",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2230
if ((ret = ccid_command_get_parameters(ccid, slot, &prot,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2232
ccid_error(ccid, "!failed to get parameters for slot %u: %d",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2240
if ((ccid->ccid_flags & (CCID_F_NEEDS_PPS | CCID_F_NEEDS_PARAMS |
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2242
ccid_error(ccid, "!CCID reader does not support required "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2254
ccid_slot_prot_init(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2256
ccid_slot_setup_functions(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2259
slot->cs_icc.icc_init(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2266
ccid_slot_power_on(ccid_t *ccid, ccid_slot_t *slot, ccid_class_voltage_t volts,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2271
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2273
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2274
if ((ret = ccid_command_power_on(ccid, slot, volts, atr)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2286
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2295
if (ccid_command_power_off(ccid, slot) == ENXIO) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2296
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2301
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2305
if (!ccid_slot_params_init(ccid, slot, *atr)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2306
ccid_error(ccid, "!failed to set slot paramters for ICC");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2307
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2311
if (!ccid_slot_prot_init(ccid, slot)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2312
ccid_error(ccid, "!failed to setup protocol for ICC");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2313
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2317
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2322
ccid_slot_power_off(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2326
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2328
ccid_slot_io_teardown(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2334
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2335
ret = ccid_command_power_off(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2336
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2341
ccid_slot_inactive(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2347
ccid_slot_inserted(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2355
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2356
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2377
if ((ccid->ccid_class.ccd_dwFeatures &
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2388
(ccid->ccid_class.ccd_bVoltageSupport & volts[cvolt]) ==
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2393
ret = ccid_slot_power_on(ccid, slot, volts[cvolt], &atr);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2404
ccid_error(ccid, "!failed to activate and power on ICC, no "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2419
ccid_slot_teardown(ccid, slot, B_FALSE);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2424
ccid_slot_warm_reset(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2430
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2432
ccid_slot_io_teardown(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2436
ccid_slot_teardown(ccid, slot, B_FALSE);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2438
ret = ccid_slot_power_on(ccid, slot, voltage, &atr);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2451
ccid_slot_reset(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2455
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2457
VERIFY(ccid->ccid_flags & CCID_F_WORKER_RUNNING);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2459
if (ccid->ccid_flags & CCID_F_DEV_GONE_MASK)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2465
ret = ccid_slot_power_off(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2477
ccid_error(ccid, "!failed to reset slot %d for next txn: %d; "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2487
(void) ccid_slot_inserted(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2502
ccid_t *ccid = arg;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2504
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2505
ccid->ccid_stats.cst_ndiscover++;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2506
ccid->ccid_stats.cst_lastdiscover = gethrtime();
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2507
ccid->ccid_flags |= CCID_F_WORKER_RUNNING;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2508
ccid->ccid_flags &= ~CCID_F_WORKER_REQUESTED;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2510
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2511
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2514
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2516
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2517
ccid->ccid_flags &= ~CCID_F_WORKER_MASK;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2518
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2533
ccid_slot_inactive(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2538
ccid_slot_removed(ccid, slot, B_TRUE);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2540
(void) ccid_slot_inserted(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2546
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2557
if (!ccid_slot_reset(ccid, slot)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2558
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2563
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2577
if ((ccid->ccid_flags & CCID_F_WORKER_REQUESTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2578
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2580
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2583
ccid->ccid_flags &= ~CCID_F_WORKER_RUNNING;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2584
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2585
ccid->ccid_flags &= ~CCID_F_WORKER_REQUESTED;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2586
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2590
if ((ccid->ccid_flags & CCID_F_WORKER_REQUESTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2591
(void) ddi_taskq_dispatch(ccid->ccid_taskq, ccid_worker, ccid,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2594
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2598
ccid_worker_request(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2602
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2603
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2607
run = (ccid->ccid_flags & CCID_F_WORKER_MASK) == 0;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2608
ccid->ccid_flags |= CCID_F_WORKER_REQUESTED;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2610
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2611
(void) ddi_taskq_dispatch(ccid->ccid_taskq, ccid_worker, ccid,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2613
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2620
ccid_t *ccid = arg;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2622
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2623
if ((ccid->ccid_flags & CCID_F_DEV_GONE_MASK) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2624
ccid->ccid_poll_timeout = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2625
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2627
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2629
ccid_intr_poll_init(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2638
ccid_parse_class_desc(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2653
sizeof (ccid->ccid_class.ccd_bMaxCCIDBusySlots);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2654
dp = ccid->ccid_dev_data;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2665
cvs->cvs_buf_len, &ccid->ccid_class,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2666
sizeof (ccid->ccid_class))) >= tlen) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2669
ccid_error(ccid, "!failed to parse CCID class descriptor from "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2673
ccid_error(ccid, "!failed to find matching CCID class descriptor");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2681
ccid_supported(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2687
uint16_t ver = ccid->ccid_class.ccd_bcdCCID;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2690
ccid_error(ccid, "!refusing to attach to CCID with unsupported "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2702
dp = ccid->ccid_dev_data;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2706
ccid->ccid_flags &= ~CCID_F_HAS_INTR;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2709
ccid->ccid_flags |= CCID_F_HAS_INTR;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2712
ccid_error(ccid, "!refusing to attach to CCID with unsupported "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2727
ccid->ccid_bufsize = ccid->ccid_class.ccd_dwMaxCCIDMessageLength;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2728
if (ccid->ccid_bufsize < CCID_MIN_MESSAGE_LENGTH) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2729
ccid_error(ccid, "!CCID reader maximum CCID message length (%u)"
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2731
ccid->ccid_bufsize, CCID_MIN_MESSAGE_LENGTH);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2740
feat = ccid->ccid_class.ccd_dwFeatures;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2747
if (ccid->ccid_class.ccd_bNumDataRatesSupported != 0 &&
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2749
ccid_error(ccid, "!CCID reader only supports fixed clock rates,"
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2767
ccid->ccid_flags |= CCID_F_NEEDS_PPS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2771
ccid->ccid_flags |= CCID_F_NEEDS_PARAMS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2776
ccid->ccid_flags |= CCID_F_NEEDS_DATAFREQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2783
ccid_open_pipes(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2790
data = ccid->ccid_dev_data;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2795
ep = usb_lookup_ep_data(ccid->ccid_dip, data, data->dev_curr_if, 0, 0,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2798
ccid_error(ccid, "!failed to find CCID Bulk-IN endpoint");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2803
ccid->ccid_dip, ep, &ccid->ccid_bulkin_xdesc)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2804
ccid_error(ccid, "!failed to fill Bulk-IN xdescr: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2808
ep = usb_lookup_ep_data(ccid->ccid_dip, data, data->dev_curr_if, 0, 0,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2811
ccid_error(ccid, "!failed to find CCID Bulk-OUT endpoint");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2816
ccid->ccid_dip, ep, &ccid->ccid_bulkout_xdesc)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2817
ccid_error(ccid, "!failed to fill Bulk-OUT xdescr: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2821
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2822
ep = usb_lookup_ep_data(ccid->ccid_dip, data, data->dev_curr_if,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2825
ccid_error(ccid, "!failed to find CCID Intr-IN "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2831
ccid->ccid_dip, ep, &ccid->ccid_intrin_xdesc)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2833
ccid_error(ccid, "!failed to fill Intr-OUT xdescr: %d",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2845
if ((ret = usb_pipe_xopen(ccid->ccid_dip, &ccid->ccid_bulkin_xdesc,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2846
&policy, USB_FLAGS_SLEEP, &ccid->ccid_bulkin_pipe)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2848
ccid_error(ccid, "!failed to open Bulk-IN pipe: %d\n", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2852
if ((ret = usb_pipe_xopen(ccid->ccid_dip, &ccid->ccid_bulkout_xdesc,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2853
&policy, USB_FLAGS_SLEEP, &ccid->ccid_bulkout_pipe)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2855
ccid_error(ccid, "!failed to open Bulk-OUT pipe: %d\n", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2856
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2858
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2862
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2863
if ((ret = usb_pipe_xopen(ccid->ccid_dip,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2864
&ccid->ccid_intrin_xdesc, &policy, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2865
&ccid->ccid_intrin_pipe)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2866
ccid_error(ccid, "!failed to open Intr-IN pipe: %d\n",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2868
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2870
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2871
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkout_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2873
ccid->ccid_bulkout_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2878
ccid->ccid_control_pipe = data->dev_default_ph;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2883
ccid_slots_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2887
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2888
VERIFY3U(ccid->ccid_slots[i].cs_slotno, ==, i);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2890
if (ccid->ccid_slots[i].cs_command != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2891
ccid_command_free(ccid->ccid_slots[i].cs_command);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2892
ccid->ccid_slots[i].cs_command = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2895
cv_destroy(&ccid->ccid_slots[i].cs_io.ci_cv);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2896
freemsgchain(ccid->ccid_slots[i].cs_atr);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2897
atr_data_free(ccid->ccid_slots[i].cs_icc.icc_atr_data);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2898
list_destroy(&ccid->ccid_slots[i].cs_minors);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2899
list_destroy(&ccid->ccid_slots[i].cs_excl_waiters);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2902
ddi_remove_minor_node(ccid->ccid_dip, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2903
kmem_free(ccid->ccid_slots, sizeof (ccid_slot_t) * ccid->ccid_nslots);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2904
ccid->ccid_nslots = 0;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2905
ccid->ccid_slots = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2909
ccid_slots_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2918
ccid->ccid_nslots = ccid->ccid_class.ccd_bMaxSlotIndex + 1;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2919
ccid->ccid_slots = kmem_zalloc(sizeof (ccid_slot_t) * ccid->ccid_nslots,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2921
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2922
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2931
slot->cs_ccid = ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2947
ccid_minors_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2951
ddi_remove_minor_node(ccid->ccid_dip, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2952
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2953
if (ccid->ccid_slots[i].cs_idx.cmi_minor == CCID_MINOR_INVALID)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2955
ccid_minor_idx_free(&ccid->ccid_slots[i].cs_idx);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2960
ccid_minors_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2964
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2967
(void) ccid_minor_idx_alloc(&ccid->ccid_slots[i].cs_idx,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2971
if (ddi_create_minor_node(ccid->ccid_dip, buf, S_IFCHR,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2972
ccid->ccid_slots[i].cs_idx.cmi_minor,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2974
ccid_minors_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2983
ccid_intr_poll_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2985
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2988
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2989
tid = ccid->ccid_poll_timeout;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2990
ccid->ccid_poll_timeout = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2991
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2993
usb_pipe_stop_intr_polling(ccid->ccid_intrin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2996
VERIFY3P(ccid->ccid_intrin_pipe, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3001
ccid_intr_poll_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3006
uirp = usb_alloc_intr_req(ccid->ccid_dip, 0, USB_FLAGS_SLEEP);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3007
uirp->intr_client_private = (usb_opaque_t)ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3014
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3015
if (ccid->ccid_flags & CCID_F_DEV_GONE_MASK) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3016
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3021
if ((ret = usb_pipe_intr_xfer(ccid->ccid_intrin_pipe, uirp,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3023
ccid_error(ccid, "!failed to start polling on CCID Intr-IN "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3025
ccid->ccid_poll_timeout = timeout(ccid_intr_restart_timeout,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3026
ccid, drv_usectohz(1000000));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3029
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3033
ccid_cleanup_bulkin(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3037
VERIFY3P(ccid->ccid_bulkin_dispatched, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3038
for (i = 0; i < ccid->ccid_bulkin_alloced; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3039
VERIFY3P(ccid->ccid_bulkin_cache[i], !=, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3040
usb_free_bulk_req(ccid->ccid_bulkin_cache[i]);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3041
ccid->ccid_bulkin_cache[i] = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3046
VERIFY3P(ccid->ccid_bulkin_cache[i], ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3049
ccid->ccid_bulkin_alloced = 0;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3056
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3063
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3064
if (ccid == NULL)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3066
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3068
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3074
ccid->ccid_flags |= CCID_F_DISCONNECTED;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3081
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3083
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3100
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3101
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3117
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3134
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3140
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3141
if (ccid == NULL)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3143
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3149
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3150
ccid->ccid_flags |= CCID_F_DETACHING;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3151
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3153
if ((ccid->ccid_attach & CCID_ATTACH_MINORS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3154
ccid_minors_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3155
ccid->ccid_attach &= ~CCID_ATTACH_MINORS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3158
if ((ccid->ccid_attach & CCID_ATTACH_INTR_ACTIVE) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3159
ccid_intr_poll_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3160
ccid->ccid_attach &= ~CCID_ATTACH_INTR_ACTIVE;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3168
if (ccid->ccid_taskq != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3169
ddi_taskq_wait(ccid->ccid_taskq);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3170
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3171
VERIFY0(ccid->ccid_flags & CCID_F_WORKER_MASK);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3172
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3175
if ((ccid->ccid_attach & CCID_ATTACH_HOTPLUG_CB) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3177
ccid->ccid_attach &= ~CCID_ATTACH_HOTPLUG_CB;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3180
if ((ccid->ccid_attach & CCID_ATTACH_SLOTS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3181
ccid_slots_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3182
ccid->ccid_attach &= ~CCID_ATTACH_SLOTS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3185
if ((ccid->ccid_attach & CCID_ATTACH_SEQ_IDS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3186
id_space_destroy(ccid->ccid_seqs);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3187
ccid->ccid_seqs = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3188
ccid->ccid_attach &= ~CCID_ATTACH_SEQ_IDS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3191
if ((ccid->ccid_attach & CCID_ATTACH_OPEN_PIPES) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3192
usb_pipe_close(dip, ccid->ccid_bulkin_pipe, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3194
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3195
usb_pipe_close(dip, ccid->ccid_bulkout_pipe, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3197
ccid->ccid_bulkout_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3198
if ((ccid->ccid_flags & CCID_F_HAS_INTR) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3199
usb_pipe_close(dip, ccid->ccid_intrin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3201
ccid->ccid_intrin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3203
VERIFY3P(ccid->ccid_intrin_pipe, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3205
ccid->ccid_control_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3206
ccid->ccid_attach &= ~CCID_ATTACH_OPEN_PIPES;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3213
ccid_cleanup_bulkin(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3215
if (ccid->ccid_attach & CCID_ATTACH_CMD_LIST) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3218
while ((cc = list_remove_head(&ccid->ccid_command_queue)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3222
list_destroy(&ccid->ccid_command_queue);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3224
while ((cc = list_remove_head(&ccid->ccid_complete_queue)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3228
list_destroy(&ccid->ccid_complete_queue);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3231
if ((ccid->ccid_attach & CCID_ATTACH_TASKQ) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3232
ddi_taskq_destroy(ccid->ccid_taskq);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3233
ccid->ccid_taskq = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3234
ccid->ccid_attach &= ~CCID_ATTACH_TASKQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3237
if ((ccid->ccid_attach & CCID_ATTACH_MUTEX_INIT) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3238
mutex_destroy(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3239
ccid->ccid_attach &= ~CCID_ATTACH_MUTEX_INIT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3242
if ((ccid->ccid_attach & CCID_ATTACH_USB_CLIENT) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3243
usb_client_detach(dip, ccid->ccid_dev_data);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3244
ccid->ccid_dev_data = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3245
ccid->ccid_attach &= ~CCID_ATTACH_USB_CLIENT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3248
ASSERT0(ccid->ccid_attach);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3255
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3269
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3270
ccid->ccid_dip = dip;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3273
ccid_error(ccid, "!failed to attach to usb client: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3276
ccid->ccid_attach |= CCID_ATTACH_USB_CLIENT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3278
if ((ret = usb_get_dev_data(dip, &ccid->ccid_dev_data, USB_PARSE_LVL_IF,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3280
ccid_error(ccid, "!failed to get usb device data: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3284
mutex_init(&ccid->ccid_mutex, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3285
ccid->ccid_dev_data->dev_iblock_cookie);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3286
ccid->ccid_attach |= CCID_ATTACH_MUTEX_INIT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3289
ccid->ccid_taskq = ddi_taskq_create(dip, buf, 1, TASKQ_DEFAULTPRI, 0);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3290
if (ccid->ccid_taskq == NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3291
ccid_error(ccid, "!failed to create CCID taskq");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3294
ccid->ccid_attach |= CCID_ATTACH_TASKQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3296
list_create(&ccid->ccid_command_queue, sizeof (ccid_command_t),
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3298
list_create(&ccid->ccid_complete_queue, sizeof (ccid_command_t),
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3301
if (!ccid_parse_class_desc(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3302
ccid_error(ccid, "!failed to parse CCID class descriptor");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3306
if (!ccid_supported(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3307
ccid_error(ccid,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3312
if (!ccid_open_pipes(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3313
ccid_error(ccid, "!failed to open CCID pipes, not attaching");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3316
ccid->ccid_attach |= CCID_ATTACH_OPEN_PIPES;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3319
if ((ccid->ccid_seqs = id_space_create(buf, CCID_SEQ_MIN,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3321
ccid_error(ccid, "!failed to create CCID sequence id space");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3324
ccid->ccid_attach |= CCID_ATTACH_SEQ_IDS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3326
if (!ccid_slots_init(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3327
ccid_error(ccid, "!failed to initialize CCID slot structures");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3330
ccid->ccid_attach |= CCID_ATTACH_SLOTS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3333
ccid_error(ccid, "!failed to register USB hotplug callbacks");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3336
ccid->ccid_attach |= CCID_ATTACH_HOTPLUG_CB;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3342
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3343
ccid_bulkin_cache_refresh(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3344
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3346
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3347
ccid_intr_poll_init(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3349
ccid->ccid_attach |= CCID_ATTACH_INTR_ACTIVE;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3354
if (!ccid_minors_init(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3355
ccid_error(ccid, "!failed to create minor nodes");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3358
ccid->ccid_attach |= CCID_ATTACH_MINORS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3360
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3361
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3362
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3381
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3387
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3388
VERIFY3P(ccid, !=, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3389
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3391
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3398
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) == 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3399
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3403
if (!list_is_empty(&ccid->ccid_command_queue) ||
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3404
!list_is_empty(&ccid->ccid_complete_queue)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3405
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3408
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3531
ccid_user_io_done(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3535
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3554
ccid_teardown_apdu(ccid_t *ccid, ccid_slot_t *slot, int error)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3557
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3567
ccid_user_io_done(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3581
ccid_complete_apdu(ccid_t *ccid, ccid_slot_t *slot, ccid_command_t *cc)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3587
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3610
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3640
ccid_user_io_done(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3649
ccid_write_apdu(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3654
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3656
if ((ret = ccid_command_alloc(ccid, slot, B_FALSE, NULL,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3666
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3668
if ((ret = ccid_command_queue(ccid, cc)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3669
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3675
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3687
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3700
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3702
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3703
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3704
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3712
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3730
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3740
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3754
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3767
ret = cv_wait_sig(&cmp->cm_read_cv, &ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3772
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3781
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3782
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3816
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3828
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3847
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3853
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3854
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3855
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3865
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3870
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3878
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3889
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3898
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3909
if ((ret = slot->cs_icc.icc_tx(ccid, slot)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3931
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3940
ccid_t *ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3971
bcopy(&ccid->ccid_class, &ucs.ucs_class, sizeof (ucs.ucs_class));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3973
if (ccid->ccid_dev_data->dev_product != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3975
ccid->ccid_dev_data->dev_product, sizeof (ucs.ucs_product));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3981
if (ccid->ccid_dev_data->dev_serial != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3982
(void) strlcpy(ucs.ucs_serial, ccid->ccid_dev_data->dev_serial,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
399
struct ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4140
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4159
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4160
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4173
ret = ccid_slot_warm_reset(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4177
ret = ccid_slot_power_off(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4181
ret = ccid_slot_inserted(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4185
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4232
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4241
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4243
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4244
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4245
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4250
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4275
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
464
typedef void (*icc_init_func_t)(struct ccid *, struct ccid_slot *);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
465
typedef int (*icc_transmit_func_t)(struct ccid *, struct ccid_slot *);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
466
typedef void (*icc_complete_func_t)(struct ccid *, struct ccid_slot *,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
468
typedef void (*icc_teardown_func_t)(struct ccid *, struct ccid_slot *, int);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
469
typedef void (*icc_fini_func_t)(struct ccid *, struct ccid_slot *);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
538
struct ccid *cs_ccid; /* WO */
usr/src/uts/common/io/usb/clients/ccid/ccid.c
698
ccid_error(ccid_t *ccid, const char *fmt, ...)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
703
if (ccid != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
704
vdev_err(ccid->ccid_dip, CE_WARN, fmt, ap);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
818
ccid_t *ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
820
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
835
slot->cs_icc.icc_teardown(ccid, slot, ECANCELED);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
845
cv_wait(&cmp->cm_iowait_cv, &ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
881
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
966
ccid_t *ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
972
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
995
ccid_t *ccid = slot->cs_ccid;