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
2772
ccid->ccid_flags |= CCID_F_NEEDS_PARAMS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2777
ccid->ccid_flags |= CCID_F_NEEDS_DATAFREQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2784
ccid_open_pipes(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2791
data = ccid->ccid_dev_data;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2796
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
2799
ccid_error(ccid, "!failed to find CCID Bulk-IN endpoint");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2804
ccid->ccid_dip, ep, &ccid->ccid_bulkin_xdesc)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2805
ccid_error(ccid, "!failed to fill Bulk-IN xdescr: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2809
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
2812
ccid_error(ccid, "!failed to find CCID Bulk-OUT endpoint");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2817
ccid->ccid_dip, ep, &ccid->ccid_bulkout_xdesc)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2818
ccid_error(ccid, "!failed to fill Bulk-OUT xdescr: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2822
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2823
ep = usb_lookup_ep_data(ccid->ccid_dip, data, data->dev_curr_if,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2826
ccid_error(ccid, "!failed to find CCID Intr-IN "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2832
ccid->ccid_dip, ep, &ccid->ccid_intrin_xdesc)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2834
ccid_error(ccid, "!failed to fill Intr-OUT xdescr: %d",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2846
if ((ret = usb_pipe_xopen(ccid->ccid_dip, &ccid->ccid_bulkin_xdesc,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2847
&policy, USB_FLAGS_SLEEP, &ccid->ccid_bulkin_pipe)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2849
ccid_error(ccid, "!failed to open Bulk-IN pipe: %d\n", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2853
if ((ret = usb_pipe_xopen(ccid->ccid_dip, &ccid->ccid_bulkout_xdesc,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2854
&policy, USB_FLAGS_SLEEP, &ccid->ccid_bulkout_pipe)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2856
ccid_error(ccid, "!failed to open Bulk-OUT pipe: %d\n", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2857
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2859
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2863
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2864
if ((ret = usb_pipe_xopen(ccid->ccid_dip,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2865
&ccid->ccid_intrin_xdesc, &policy, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2866
&ccid->ccid_intrin_pipe)) != USB_SUCCESS) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2867
ccid_error(ccid, "!failed to open Intr-IN pipe: %d\n",
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2869
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2871
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2872
usb_pipe_close(ccid->ccid_dip, ccid->ccid_bulkout_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2874
ccid->ccid_bulkout_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2879
ccid->ccid_control_pipe = data->dev_default_ph;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2884
ccid_slots_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2888
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2889
VERIFY3U(ccid->ccid_slots[i].cs_slotno, ==, i);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2891
if (ccid->ccid_slots[i].cs_command != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2892
ccid_command_free(ccid->ccid_slots[i].cs_command);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2893
ccid->ccid_slots[i].cs_command = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2896
cv_destroy(&ccid->ccid_slots[i].cs_io.ci_cv);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2897
freemsgchain(ccid->ccid_slots[i].cs_atr);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2898
atr_data_free(ccid->ccid_slots[i].cs_icc.icc_atr_data);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2899
list_destroy(&ccid->ccid_slots[i].cs_minors);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2900
list_destroy(&ccid->ccid_slots[i].cs_excl_waiters);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2903
ddi_remove_minor_node(ccid->ccid_dip, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2904
kmem_free(ccid->ccid_slots, sizeof (ccid_slot_t) * ccid->ccid_nslots);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2905
ccid->ccid_nslots = 0;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2906
ccid->ccid_slots = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2910
ccid_slots_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2919
ccid->ccid_nslots = ccid->ccid_class.ccd_bMaxSlotIndex + 1;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2920
ccid->ccid_slots = kmem_zalloc(sizeof (ccid_slot_t) * ccid->ccid_nslots,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2922
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2923
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2932
slot->cs_ccid = ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2948
ccid_minors_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2952
ddi_remove_minor_node(ccid->ccid_dip, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2953
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2954
if (ccid->ccid_slots[i].cs_idx.cmi_minor == CCID_MINOR_INVALID)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2956
ccid_minor_idx_free(&ccid->ccid_slots[i].cs_idx);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2961
ccid_minors_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2965
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2968
(void) ccid_minor_idx_alloc(&ccid->ccid_slots[i].cs_idx,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2972
if (ddi_create_minor_node(ccid->ccid_dip, buf, S_IFCHR,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2973
ccid->ccid_slots[i].cs_idx.cmi_minor,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2975
ccid_minors_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2984
ccid_intr_poll_fini(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2986
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2989
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2990
tid = ccid->ccid_poll_timeout;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2991
ccid->ccid_poll_timeout = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2992
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2994
usb_pipe_stop_intr_polling(ccid->ccid_intrin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
2997
VERIFY3P(ccid->ccid_intrin_pipe, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3002
ccid_intr_poll_init(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3007
uirp = usb_alloc_intr_req(ccid->ccid_dip, 0, USB_FLAGS_SLEEP);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3008
uirp->intr_client_private = (usb_opaque_t)ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3015
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3016
if (ccid->ccid_flags & CCID_F_DEV_GONE_MASK) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3017
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3022
if ((ret = usb_pipe_intr_xfer(ccid->ccid_intrin_pipe, uirp,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3024
ccid_error(ccid, "!failed to start polling on CCID Intr-IN "
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3026
ccid->ccid_poll_timeout = timeout(ccid_intr_restart_timeout,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3027
ccid, drv_usectohz(1000000));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3030
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3034
ccid_cleanup_bulkin(ccid_t *ccid)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3038
VERIFY3P(ccid->ccid_bulkin_dispatched, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3039
for (i = 0; i < ccid->ccid_bulkin_alloced; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3040
VERIFY3P(ccid->ccid_bulkin_cache[i], !=, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3041
usb_free_bulk_req(ccid->ccid_bulkin_cache[i]);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3042
ccid->ccid_bulkin_cache[i] = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3047
VERIFY3P(ccid->ccid_bulkin_cache[i], ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3050
ccid->ccid_bulkin_alloced = 0;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3057
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3064
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3065
if (ccid == NULL)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3067
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3069
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3075
ccid->ccid_flags |= CCID_F_DISCONNECTED;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3082
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3084
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3101
for (i = 0; i < ccid->ccid_nslots; i++) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3102
ccid_slot_t *slot = &ccid->ccid_slots[i];
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3118
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3135
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3141
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3142
if (ccid == NULL)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3144
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3150
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3151
ccid->ccid_flags |= CCID_F_DETACHING;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3152
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3154
if ((ccid->ccid_attach & CCID_ATTACH_MINORS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3155
ccid_minors_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3156
ccid->ccid_attach &= ~CCID_ATTACH_MINORS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3159
if ((ccid->ccid_attach & CCID_ATTACH_INTR_ACTIVE) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3160
ccid_intr_poll_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3161
ccid->ccid_attach &= ~CCID_ATTACH_INTR_ACTIVE;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3169
if (ccid->ccid_taskq != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3170
ddi_taskq_wait(ccid->ccid_taskq);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3171
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3172
VERIFY0(ccid->ccid_flags & CCID_F_WORKER_MASK);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3173
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3176
if ((ccid->ccid_attach & CCID_ATTACH_HOTPLUG_CB) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3178
ccid->ccid_attach &= ~CCID_ATTACH_HOTPLUG_CB;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3181
if ((ccid->ccid_attach & CCID_ATTACH_SLOTS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3182
ccid_slots_fini(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3183
ccid->ccid_attach &= ~CCID_ATTACH_SLOTS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3186
if ((ccid->ccid_attach & CCID_ATTACH_SEQ_IDS) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3187
id_space_destroy(ccid->ccid_seqs);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3188
ccid->ccid_seqs = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3189
ccid->ccid_attach &= ~CCID_ATTACH_SEQ_IDS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3192
if ((ccid->ccid_attach & CCID_ATTACH_OPEN_PIPES) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3193
usb_pipe_close(dip, ccid->ccid_bulkin_pipe, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3195
ccid->ccid_bulkin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3196
usb_pipe_close(dip, ccid->ccid_bulkout_pipe, USB_FLAGS_SLEEP,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3198
ccid->ccid_bulkout_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3199
if ((ccid->ccid_flags & CCID_F_HAS_INTR) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3200
usb_pipe_close(dip, ccid->ccid_intrin_pipe,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3202
ccid->ccid_intrin_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3204
VERIFY3P(ccid->ccid_intrin_pipe, ==, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3206
ccid->ccid_control_pipe = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3207
ccid->ccid_attach &= ~CCID_ATTACH_OPEN_PIPES;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3214
ccid_cleanup_bulkin(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3216
if (ccid->ccid_attach & CCID_ATTACH_CMD_LIST) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3219
while ((cc = list_remove_head(&ccid->ccid_command_queue)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3223
list_destroy(&ccid->ccid_command_queue);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3225
while ((cc = list_remove_head(&ccid->ccid_complete_queue)) !=
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3229
list_destroy(&ccid->ccid_complete_queue);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3232
if ((ccid->ccid_attach & CCID_ATTACH_TASKQ) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3233
ddi_taskq_destroy(ccid->ccid_taskq);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3234
ccid->ccid_taskq = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3235
ccid->ccid_attach &= ~CCID_ATTACH_TASKQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3238
if ((ccid->ccid_attach & CCID_ATTACH_MUTEX_INIT) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3239
mutex_destroy(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3240
ccid->ccid_attach &= ~CCID_ATTACH_MUTEX_INIT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3243
if ((ccid->ccid_attach & CCID_ATTACH_USB_CLIENT) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3244
usb_client_detach(dip, ccid->ccid_dev_data);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3245
ccid->ccid_dev_data = NULL;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3246
ccid->ccid_attach &= ~CCID_ATTACH_USB_CLIENT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3249
ASSERT0(ccid->ccid_attach);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3256
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3270
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3271
ccid->ccid_dip = dip;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3274
ccid_error(ccid, "!failed to attach to usb client: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3277
ccid->ccid_attach |= CCID_ATTACH_USB_CLIENT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3279
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
3281
ccid_error(ccid, "!failed to get usb device data: %d", ret);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3285
mutex_init(&ccid->ccid_mutex, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3286
ccid->ccid_dev_data->dev_iblock_cookie);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3287
ccid->ccid_attach |= CCID_ATTACH_MUTEX_INIT;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3290
ccid->ccid_taskq = ddi_taskq_create(dip, buf, 1, TASKQ_DEFAULTPRI, 0);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3291
if (ccid->ccid_taskq == NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3292
ccid_error(ccid, "!failed to create CCID taskq");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3295
ccid->ccid_attach |= CCID_ATTACH_TASKQ;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3297
list_create(&ccid->ccid_command_queue, sizeof (ccid_command_t),
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3299
list_create(&ccid->ccid_complete_queue, sizeof (ccid_command_t),
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3302
if (!ccid_parse_class_desc(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3303
ccid_error(ccid, "!failed to parse CCID class descriptor");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3307
if (!ccid_supported(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3308
ccid_error(ccid,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3313
if (!ccid_open_pipes(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3314
ccid_error(ccid, "!failed to open CCID pipes, not attaching");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3317
ccid->ccid_attach |= CCID_ATTACH_OPEN_PIPES;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3320
if ((ccid->ccid_seqs = id_space_create(buf, CCID_SEQ_MIN,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3322
ccid_error(ccid, "!failed to create CCID sequence id space");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3325
ccid->ccid_attach |= CCID_ATTACH_SEQ_IDS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3327
if (!ccid_slots_init(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3328
ccid_error(ccid, "!failed to initialize CCID slot structures");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3331
ccid->ccid_attach |= CCID_ATTACH_SLOTS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3334
ccid_error(ccid, "!failed to register USB hotplug callbacks");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3337
ccid->ccid_attach |= CCID_ATTACH_HOTPLUG_CB;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3343
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3344
ccid_bulkin_cache_refresh(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3345
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3347
if (ccid->ccid_flags & CCID_F_HAS_INTR) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3348
ccid_intr_poll_init(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3350
ccid->ccid_attach |= CCID_ATTACH_INTR_ACTIVE;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3355
if (!ccid_minors_init(ccid)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3356
ccid_error(ccid, "!failed to create minor nodes");
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3359
ccid->ccid_attach |= CCID_ATTACH_MINORS;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3361
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3362
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3363
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3382
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3388
ccid = ddi_get_soft_state(ccid_softstate, inst);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3389
VERIFY3P(ccid, !=, NULL);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3390
VERIFY3P(dip, ==, ccid->ccid_dip);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3392
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3399
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) == 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3400
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3404
if (!list_is_empty(&ccid->ccid_command_queue) ||
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3405
!list_is_empty(&ccid->ccid_complete_queue)) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3406
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3409
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3532
ccid_user_io_done(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3536
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3555
ccid_teardown_apdu(ccid_t *ccid, ccid_slot_t *slot, int error)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3558
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3568
ccid_user_io_done(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3582
ccid_complete_apdu(ccid_t *ccid, ccid_slot_t *slot, ccid_command_t *cc)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3588
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3611
ccid_worker_request(ccid);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3641
ccid_user_io_done(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3650
ccid_write_apdu(ccid_t *ccid, ccid_slot_t *slot)
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3655
VERIFY(MUTEX_HELD(&ccid->ccid_mutex));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3657
if ((ret = ccid_command_alloc(ccid, slot, B_FALSE, NULL,
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3667
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3669
if ((ret = ccid_command_queue(ccid, cc)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3670
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3676
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3688
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3701
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3703
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3704
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3705
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3713
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3731
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3741
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3755
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3768
ret = cv_wait_sig(&cmp->cm_read_cv, &ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3773
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3782
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3783
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3817
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3829
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3848
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3854
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3855
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3856
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3866
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3871
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3879
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3890
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3899
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3910
if ((ret = slot->cs_icc.icc_tx(ccid, slot)) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3932
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3941
ccid_t *ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3972
bcopy(&ccid->ccid_class, &ucs.ucs_class, sizeof (ucs.ucs_class));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3974
if (ccid->ccid_dev_data->dev_product != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3976
ccid->ccid_dev_data->dev_product, sizeof (ucs.ucs_product));
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3982
if (ccid->ccid_dev_data->dev_serial != NULL) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
3983
(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
4141
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4160
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4161
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4174
ret = ccid_slot_warm_reset(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4178
ret = ccid_slot_power_off(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4182
ret = ccid_slot_inserted(ccid, slot);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4186
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4233
ccid_t *ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4242
ccid = slot->cs_ccid;
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4244
mutex_enter(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4245
if ((ccid->ccid_flags & CCID_F_DISCONNECTED) != 0) {
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4246
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4251
mutex_exit(&ccid->ccid_mutex);
usr/src/uts/common/io/usb/clients/ccid/ccid.c
4276
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;