diff options
Diffstat (limited to 'miscutils/i2c_tools.c')
-rw-r--r-- | miscutils/i2c_tools.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/miscutils/i2c_tools.c b/miscutils/i2c_tools.c index 03bb03974..7034dc9a8 100644 --- a/miscutils/i2c_tools.c +++ b/miscutils/i2c_tools.c | |||
@@ -379,8 +379,12 @@ static int i2c_dev_open(int i2cbus) | |||
379 | sprintf(filename, "/dev/i2c-%d", i2cbus); | 379 | sprintf(filename, "/dev/i2c-%d", i2cbus); |
380 | fd = open(filename, O_RDWR); | 380 | fd = open(filename, O_RDWR); |
381 | if (fd < 0) { | 381 | if (fd < 0) { |
382 | filename[8] = '/'; /* change to "/dev/i2c/%d" */ | 382 | if (errno == ENOENT) { |
383 | fd = xopen(filename, O_RDWR); | 383 | filename[8] = '/'; /* change to "/dev/i2c/%d" */ |
384 | fd = xopen(filename, O_RDWR); | ||
385 | } else { | ||
386 | bb_perror_msg_and_die("can't open '%s'", filename); | ||
387 | } | ||
384 | } | 388 | } |
385 | 389 | ||
386 | return fd; | 390 | return fd; |
@@ -1284,13 +1288,16 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv) | |||
1284 | unsigned opts; | 1288 | unsigned opts; |
1285 | 1289 | ||
1286 | opt_complementary = "q--r:r--q:" /* mutually exclusive */ | 1290 | opt_complementary = "q--r:r--q:" /* mutually exclusive */ |
1287 | "-1:?3"; /* from 1 to 3 args */ | 1291 | "?3"; /* up to 3 args */ |
1288 | opts = getopt32(argv, optstr); | 1292 | opts = getopt32(argv, optstr); |
1289 | argv += optind; | 1293 | argv += optind; |
1290 | 1294 | ||
1291 | if (opts & opt_l) | 1295 | if (opts & opt_l) |
1292 | list_i2c_busses_and_exit(); | 1296 | list_i2c_busses_and_exit(); |
1293 | 1297 | ||
1298 | if (!argv[0]) | ||
1299 | bb_show_usage(); | ||
1300 | |||
1294 | bus_num = i2c_bus_lookup(argv[0]); | 1301 | bus_num = i2c_bus_lookup(argv[0]); |
1295 | fd = i2c_dev_open(bus_num); | 1302 | fd = i2c_dev_open(bus_num); |
1296 | get_funcs_matrix(fd, &funcs); | 1303 | get_funcs_matrix(fd, &funcs); |