@@ -591,7 +591,7 @@ static int ni_usb_read(gpib_board_t *board, uint8_t *buffer, size_t length,
591
591
{
592
592
int retval , parse_retval ;
593
593
struct ni_usb_priv * ni_priv = board -> private_data ;
594
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
594
+ struct usb_device * usb_dev ;
595
595
u8 * out_data , * in_data ;
596
596
static const int out_data_length = 0x20 ;
597
597
int in_data_length ;
@@ -604,8 +604,11 @@ static int ni_usb_read(gpib_board_t *board, uint8_t *buffer, size_t length,
604
604
struct ni_usb_register reg ;
605
605
606
606
* bytes_read = 0 ;
607
+ if (!ni_priv -> bus_interface )
608
+ return - ENODEV ;
607
609
if (length > max_read_length )
608
610
return - EINVAL ;
611
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
609
612
out_data = kmalloc (out_data_length , GFP_KERNEL );
610
613
if (!out_data )
611
614
return - ENOMEM ;
@@ -718,7 +721,7 @@ static int ni_usb_write(gpib_board_t *board, uint8_t *buffer, size_t length,
718
721
{
719
722
int retval ;
720
723
struct ni_usb_priv * ni_priv = board -> private_data ;
721
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
724
+ struct usb_device * usb_dev ;
722
725
u8 * out_data , * in_data ;
723
726
int out_data_length ;
724
727
static const int in_data_length = 0x10 ;
@@ -728,9 +731,11 @@ static int ni_usb_write(gpib_board_t *board, uint8_t *buffer, size_t length,
728
731
struct ni_usb_status_block status ;
729
732
static const int max_write_length = 0xffff ;
730
733
731
- * bytes_written = 0 ;
734
+ if (!ni_priv -> bus_interface )
735
+ return - ENODEV ;
732
736
if (length > max_write_length )
733
737
return - EINVAL ;
738
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
734
739
out_data_length = length + 0x10 ;
735
740
out_data = kmalloc (out_data_length , GFP_KERNEL );
736
741
if (!out_data )
@@ -819,7 +824,7 @@ static int ni_usb_command_chunk(gpib_board_t *board, uint8_t *buffer, size_t len
819
824
{
820
825
int retval ;
821
826
struct ni_usb_priv * ni_priv = board -> private_data ;
822
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
827
+ struct usb_device * usb_dev ;
823
828
u8 * out_data , * in_data ;
824
829
int out_data_length ;
825
830
static const int in_data_length = 0x10 ;
@@ -831,8 +836,11 @@ static int ni_usb_command_chunk(gpib_board_t *board, uint8_t *buffer, size_t len
831
836
static const int max_command_length = 0x10 ;
832
837
833
838
* command_bytes_written = 0 ;
839
+ if (!ni_priv -> bus_interface )
840
+ return - ENODEV ;
834
841
if (length > max_command_length )
835
842
length = max_command_length ;
843
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
836
844
out_data_length = length + 0x10 ;
837
845
out_data = kmalloc (out_data_length , GFP_KERNEL );
838
846
if (!out_data )
@@ -925,14 +933,17 @@ static int ni_usb_take_control(gpib_board_t *board, int synchronous)
925
933
{
926
934
int retval ;
927
935
struct ni_usb_priv * ni_priv = board -> private_data ;
928
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
936
+ struct usb_device * usb_dev ;
929
937
u8 * out_data , * in_data ;
930
938
static const int out_data_length = 0x10 ;
931
939
static const int in_data_length = 0x10 ;
932
940
int bytes_written = 0 , bytes_read = 0 ;
933
941
int i = 0 ;
934
942
struct ni_usb_status_block status ;
935
943
944
+ if (!ni_priv -> bus_interface )
945
+ return - ENODEV ;
946
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
936
947
out_data = kmalloc (out_data_length , GFP_KERNEL );
937
948
if (!out_data )
938
949
return - ENOMEM ;
@@ -983,14 +994,17 @@ static int ni_usb_go_to_standby(gpib_board_t *board)
983
994
{
984
995
int retval ;
985
996
struct ni_usb_priv * ni_priv = board -> private_data ;
986
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
997
+ struct usb_device * usb_dev ;
987
998
u8 * out_data , * in_data ;
988
999
static const int out_data_length = 0x10 ;
989
1000
static const int in_data_length = 0x20 ;
990
1001
int bytes_written = 0 , bytes_read = 0 ;
991
1002
int i = 0 ;
992
1003
struct ni_usb_status_block status ;
993
1004
1005
+ if (!ni_priv -> bus_interface )
1006
+ return - ENODEV ;
1007
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
994
1008
out_data = kmalloc (out_data_length , GFP_KERNEL );
995
1009
if (!out_data )
996
1010
return - ENOMEM ;
@@ -1039,11 +1053,14 @@ static void ni_usb_request_system_control(gpib_board_t *board, int request_contr
1039
1053
{
1040
1054
int retval ;
1041
1055
struct ni_usb_priv * ni_priv = board -> private_data ;
1042
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1056
+ struct usb_device * usb_dev ;
1043
1057
int i = 0 ;
1044
1058
struct ni_usb_register writes [4 ];
1045
1059
unsigned int ibsta ;
1046
1060
1061
+ if (!ni_priv -> bus_interface )
1062
+ return ; // -ENODEV;
1063
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1047
1064
if (request_control ) {
1048
1065
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1049
1066
writes [i ].address = CMDR ;
@@ -1087,15 +1104,18 @@ static void ni_usb_interface_clear(gpib_board_t *board, int assert)
1087
1104
{
1088
1105
int retval ;
1089
1106
struct ni_usb_priv * ni_priv = board -> private_data ;
1090
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1107
+ struct usb_device * usb_dev ;
1091
1108
u8 * out_data , * in_data ;
1092
1109
static const int out_data_length = 0x10 ;
1093
1110
static const int in_data_length = 0x10 ;
1094
1111
int bytes_written = 0 , bytes_read = 0 ;
1095
1112
int i = 0 ;
1096
1113
struct ni_usb_status_block status ;
1097
1114
1098
- // FIXME: we are going to pulse when assert is true, and ignore otherwise
1115
+ if (!ni_priv -> bus_interface )
1116
+ return ; // -ENODEV;
1117
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1118
+ // FIXME: we are going to pulse when assert is true, and ignore otherwise
1099
1119
if (assert == 0 )
1100
1120
return ;
1101
1121
out_data = kmalloc (out_data_length , GFP_KERNEL );
@@ -1133,10 +1153,13 @@ static void ni_usb_remote_enable(gpib_board_t *board, int enable)
1133
1153
{
1134
1154
int retval ;
1135
1155
struct ni_usb_priv * ni_priv = board -> private_data ;
1136
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1156
+ struct usb_device * usb_dev ;
1137
1157
struct ni_usb_register reg ;
1138
1158
unsigned int ibsta ;
1139
1159
1160
+ if (!ni_priv -> bus_interface )
1161
+ return ; // -ENODEV;
1162
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1140
1163
reg .device = NIUSB_SUBDEV_TNT4882 ;
1141
1164
reg .address = nec7210_to_tnt4882_offset (AUXMR );
1142
1165
if (enable )
@@ -1180,11 +1203,14 @@ static unsigned int ni_usb_update_status(gpib_board_t *board, unsigned int clear
1180
1203
{
1181
1204
int retval ;
1182
1205
struct ni_usb_priv * ni_priv = board -> private_data ;
1183
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1206
+ struct usb_device * usb_dev ;
1184
1207
static const int buffer_length = 8 ;
1185
1208
u8 * buffer ;
1186
1209
struct ni_usb_status_block status ;
1187
1210
1211
+ if (!ni_priv -> bus_interface )
1212
+ return - ENODEV ;
1213
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1188
1214
buffer = kmalloc (buffer_length , GFP_KERNEL );
1189
1215
if (!buffer )
1190
1216
return board -> status ;
@@ -1232,11 +1258,14 @@ static int ni_usb_primary_address(gpib_board_t *board, unsigned int address)
1232
1258
{
1233
1259
int retval ;
1234
1260
struct ni_usb_priv * ni_priv = board -> private_data ;
1235
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1261
+ struct usb_device * usb_dev ;
1236
1262
int i = 0 ;
1237
1263
struct ni_usb_register writes [2 ];
1238
1264
unsigned int ibsta ;
1239
1265
1266
+ if (!ni_priv -> bus_interface )
1267
+ return - ENODEV ;
1268
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1240
1269
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1241
1270
writes [i ].address = nec7210_to_tnt4882_offset (ADR );
1242
1271
writes [i ].value = address ;
@@ -1287,11 +1316,14 @@ static int ni_usb_secondary_address(gpib_board_t *board, unsigned int address, i
1287
1316
{
1288
1317
int retval ;
1289
1318
struct ni_usb_priv * ni_priv = board -> private_data ;
1290
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1319
+ struct usb_device * usb_dev ;
1291
1320
int i = 0 ;
1292
1321
struct ni_usb_register writes [3 ];
1293
1322
unsigned int ibsta ;
1294
1323
1324
+ if (!ni_priv -> bus_interface )
1325
+ return - ENODEV ;
1326
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1295
1327
i += ni_usb_write_sad (writes , address , enable );
1296
1328
retval = ni_usb_write_registers (ni_priv , writes , i , & ibsta );
1297
1329
if (retval < 0 ) {
@@ -1306,7 +1338,7 @@ static int ni_usb_parallel_poll(gpib_board_t *board, uint8_t *result)
1306
1338
{
1307
1339
int retval ;
1308
1340
struct ni_usb_priv * ni_priv = board -> private_data ;
1309
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1341
+ struct usb_device * usb_dev ;
1310
1342
u8 * out_data , * in_data ;
1311
1343
static const int out_data_length = 0x10 ;
1312
1344
static const int in_data_length = 0x20 ;
@@ -1315,6 +1347,9 @@ static int ni_usb_parallel_poll(gpib_board_t *board, uint8_t *result)
1315
1347
int j = 0 ;
1316
1348
struct ni_usb_status_block status ;
1317
1349
1350
+ if (!ni_priv -> bus_interface )
1351
+ return - ENODEV ;
1352
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1318
1353
out_data = kmalloc (out_data_length , GFP_KERNEL );
1319
1354
if (!out_data )
1320
1355
return - ENOMEM ;
@@ -1358,11 +1393,14 @@ static void ni_usb_parallel_poll_configure(gpib_board_t *board, uint8_t config)
1358
1393
{
1359
1394
int retval ;
1360
1395
struct ni_usb_priv * ni_priv = board -> private_data ;
1361
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1396
+ struct usb_device * usb_dev ;
1362
1397
int i = 0 ;
1363
1398
struct ni_usb_register writes [1 ];
1364
1399
unsigned int ibsta ;
1365
1400
1401
+ if (!ni_priv -> bus_interface )
1402
+ return ; // -ENODEV;
1403
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1366
1404
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1367
1405
writes [i ].address = nec7210_to_tnt4882_offset (AUXMR );
1368
1406
writes [i ].value = PPR | config ;
@@ -1380,11 +1418,14 @@ static void ni_usb_parallel_poll_response(gpib_board_t *board, int ist)
1380
1418
{
1381
1419
int retval ;
1382
1420
struct ni_usb_priv * ni_priv = board -> private_data ;
1383
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1421
+ struct usb_device * usb_dev ;
1384
1422
int i = 0 ;
1385
1423
struct ni_usb_register writes [1 ];
1386
1424
unsigned int ibsta ;
1387
1425
1426
+ if (!ni_priv -> bus_interface )
1427
+ return ; // -ENODEV;
1428
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1388
1429
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1389
1430
writes [i ].address = nec7210_to_tnt4882_offset (AUXMR );
1390
1431
if (ist )
@@ -1405,11 +1446,14 @@ static void ni_usb_serial_poll_response(gpib_board_t *board, u8 status)
1405
1446
{
1406
1447
int retval ;
1407
1448
struct ni_usb_priv * ni_priv = board -> private_data ;
1408
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1449
+ struct usb_device * usb_dev ;
1409
1450
int i = 0 ;
1410
1451
struct ni_usb_register writes [1 ];
1411
1452
unsigned int ibsta ;
1412
1453
1454
+ if (!ni_priv -> bus_interface )
1455
+ return ; // -ENODEV;
1456
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1413
1457
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1414
1458
writes [i ].address = nec7210_to_tnt4882_offset (SPMR );
1415
1459
writes [i ].value = status ;
@@ -1432,11 +1476,14 @@ static void ni_usb_return_to_local(gpib_board_t *board)
1432
1476
{
1433
1477
int retval ;
1434
1478
struct ni_usb_priv * ni_priv = board -> private_data ;
1435
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1479
+ struct usb_device * usb_dev ;
1436
1480
int i = 0 ;
1437
1481
struct ni_usb_register writes [1 ];
1438
1482
unsigned int ibsta ;
1439
1483
1484
+ if (!ni_priv -> bus_interface )
1485
+ return ; // -ENODEV;
1486
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1440
1487
writes [i ].device = NIUSB_SUBDEV_TNT4882 ;
1441
1488
writes [i ].address = nec7210_to_tnt4882_offset (AUXMR );
1442
1489
writes [i ].value = AUX_RTL ;
@@ -1454,7 +1501,7 @@ static int ni_usb_line_status(const gpib_board_t *board)
1454
1501
{
1455
1502
int retval ;
1456
1503
struct ni_usb_priv * ni_priv = board -> private_data ;
1457
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1504
+ struct usb_device * usb_dev ;
1458
1505
u8 * out_data , * in_data ;
1459
1506
static const int out_data_length = 0x20 ;
1460
1507
static const int in_data_length = 0x20 ;
@@ -1464,6 +1511,9 @@ static int ni_usb_line_status(const gpib_board_t *board)
1464
1511
int line_status = ValidALL ;
1465
1512
// NI windows driver reads 0xd(HSSEL), 0xc (ARD0), 0x1f (BSR)
1466
1513
1514
+ if (!ni_priv -> bus_interface )
1515
+ return - ENODEV ;
1516
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1467
1517
out_data = kmalloc (out_data_length , GFP_KERNEL );
1468
1518
if (!out_data )
1469
1519
return - ENOMEM ;
@@ -1570,12 +1620,15 @@ static unsigned int ni_usb_t1_delay(gpib_board_t *board, unsigned int nano_sec)
1570
1620
{
1571
1621
int retval ;
1572
1622
struct ni_usb_priv * ni_priv = board -> private_data ;
1573
- struct usb_device * usb_dev = interface_to_usbdev ( ni_priv -> bus_interface ) ;
1623
+ struct usb_device * usb_dev ;
1574
1624
struct ni_usb_register writes [3 ];
1575
1625
unsigned int ibsta ;
1576
1626
unsigned int actual_ns ;
1577
1627
int i ;
1578
1628
1629
+ if (!ni_priv -> bus_interface )
1630
+ return - ENODEV ;
1631
+ usb_dev = interface_to_usbdev (ni_priv -> bus_interface );
1579
1632
i = ni_usb_setup_t1_delay (writes , nano_sec , & actual_ns );
1580
1633
retval = ni_usb_write_registers (ni_priv , writes , i , & ibsta );
1581
1634
if (retval < 0 ) {
0 commit comments