Commit 7bef559455fc71f66f8573cc1aafe1dd33966c1c
Committed by
Greg Kroah-Hartman
1 parent
1ff4e3065b
Exists in
master
and in
7 other branches
[PATCH] I2C: refactor message in i2c_detach_client
We could refactor the error message 34 different i2c drivers print if i2c_detach_client() fails in this function itself. Saves quite a few lines of code. Documentation is updated to reflect that change. Note that this patch should be applied after Rudolf Marek's w83792d patches. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 37 changed files with 42 additions and 137 deletions Side-by-side Diff
- Documentation/i2c/porting-clients
- Documentation/i2c/writing-clients
- drivers/hwmon/adm1021.c
- drivers/hwmon/adm1025.c
- drivers/hwmon/adm9240.c
- drivers/hwmon/asb100.c
- drivers/hwmon/ds1621.c
- drivers/hwmon/fscher.c
- drivers/hwmon/fscpos.c
- drivers/hwmon/gl518sm.c
- drivers/hwmon/gl520sm.c
- drivers/hwmon/it87.c
- drivers/hwmon/lm63.c
- drivers/hwmon/lm78.c
- drivers/hwmon/lm80.c
- drivers/hwmon/lm83.c
- drivers/hwmon/lm87.c
- drivers/hwmon/lm90.c
- drivers/hwmon/lm92.c
- drivers/hwmon/max1619.c
- drivers/hwmon/pc87360.c
- drivers/hwmon/sis5595.c
- drivers/hwmon/smsc47b397.c
- drivers/hwmon/smsc47m1.c
- drivers/hwmon/via686a.c
- drivers/hwmon/w83627ehf.c
- drivers/hwmon/w83627hf.c
- drivers/hwmon/w83781d.c
- drivers/hwmon/w83792d.c
- drivers/hwmon/w83l785ts.c
- drivers/i2c/chips/ds1337.c
- drivers/i2c/chips/eeprom.c
- drivers/i2c/chips/max6875.c
- drivers/i2c/chips/pca9539.c
- drivers/i2c/chips/pcf8574.c
- drivers/i2c/chips/pcf8591.c
- drivers/i2c/i2c-core.c
Documentation/i2c/porting-clients
... | ... | @@ -94,7 +94,8 @@ |
94 | 94 | limited to the strictly necessary steps. |
95 | 95 | |
96 | 96 | * [Detach] Get rid of data, remove the call to |
97 | - i2c_deregister_entry. | |
97 | + i2c_deregister_entry. Do not log an error message if | |
98 | + i2c_detach_client fails, as i2c-core will now do it for you. | |
98 | 99 | |
99 | 100 | * [Update] Don't access client->data directly, use |
100 | 101 | i2c_get_clientdata(client) instead. |
Documentation/i2c/writing-clients
... | ... | @@ -489,10 +489,8 @@ |
489 | 489 | /* SENSORS ONLY END */ |
490 | 490 | |
491 | 491 | /* Try to detach the client from i2c space */ |
492 | - if ((err = i2c_detach_client(client))) { | |
493 | - printk("foo.o: Client deregistration failed, client not detached.\n"); | |
492 | + if ((err = i2c_detach_client(client))) | |
494 | 493 | return err; |
495 | - } | |
496 | 494 | |
497 | 495 | /* HYBRID SENSORS CHIP ONLY START */ |
498 | 496 | if i2c_is_isa_client(client) |
drivers/hwmon/adm1021.c
... | ... | @@ -328,10 +328,8 @@ |
328 | 328 | |
329 | 329 | hwmon_device_unregister(data->class_dev); |
330 | 330 | |
331 | - if ((err = i2c_detach_client(client))) { | |
332 | - dev_err(&client->dev, "Client deregistration failed, client not detached.\n"); | |
331 | + if ((err = i2c_detach_client(client))) | |
333 | 332 | return err; |
334 | - } | |
335 | 333 | |
336 | 334 | kfree(data); |
337 | 335 | return 0; |
drivers/hwmon/adm1025.c
... | ... | @@ -517,11 +517,8 @@ |
517 | 517 | |
518 | 518 | hwmon_device_unregister(data->class_dev); |
519 | 519 | |
520 | - if ((err = i2c_detach_client(client))) { | |
521 | - dev_err(&client->dev, "Client deregistration failed, " | |
522 | - "client not detached.\n"); | |
520 | + if ((err = i2c_detach_client(client))) | |
523 | 521 | return err; |
524 | - } | |
525 | 522 | |
526 | 523 | kfree(data); |
527 | 524 | return 0; |
drivers/hwmon/adm9240.c
... | ... | @@ -645,11 +645,8 @@ |
645 | 645 | |
646 | 646 | hwmon_device_unregister(data->class_dev); |
647 | 647 | |
648 | - if ((err = i2c_detach_client(client))) { | |
649 | - dev_err(&client->dev, "Client deregistration failed, " | |
650 | - "client not detached.\n"); | |
648 | + if ((err = i2c_detach_client(client))) | |
651 | 649 | return err; |
652 | - } | |
653 | 650 | |
654 | 651 | kfree(data); |
655 | 652 | return 0; |
drivers/hwmon/asb100.c
... | ... | @@ -867,11 +867,8 @@ |
867 | 867 | if (data) |
868 | 868 | hwmon_device_unregister(data->class_dev); |
869 | 869 | |
870 | - if ((err = i2c_detach_client(client))) { | |
871 | - dev_err(&client->dev, "client deregistration failed; " | |
872 | - "client not detached.\n"); | |
870 | + if ((err = i2c_detach_client(client))) | |
873 | 871 | return err; |
874 | - } | |
875 | 872 | |
876 | 873 | /* main client */ |
877 | 874 | if (data) |
drivers/hwmon/ds1621.c
... | ... | @@ -282,11 +282,8 @@ |
282 | 282 | |
283 | 283 | hwmon_device_unregister(data->class_dev); |
284 | 284 | |
285 | - if ((err = i2c_detach_client(client))) { | |
286 | - dev_err(&client->dev, "Client deregistration failed, " | |
287 | - "client not detached.\n"); | |
285 | + if ((err = i2c_detach_client(client))) | |
288 | 286 | return err; |
289 | - } | |
290 | 287 | |
291 | 288 | kfree(data); |
292 | 289 |
drivers/hwmon/fscher.c
... | ... | @@ -383,11 +383,8 @@ |
383 | 383 | |
384 | 384 | hwmon_device_unregister(data->class_dev); |
385 | 385 | |
386 | - if ((err = i2c_detach_client(client))) { | |
387 | - dev_err(&client->dev, "Client deregistration failed, " | |
388 | - "client not detached.\n"); | |
386 | + if ((err = i2c_detach_client(client))) | |
389 | 387 | return err; |
390 | - } | |
391 | 388 | |
392 | 389 | kfree(data); |
393 | 390 | return 0; |
drivers/hwmon/fscpos.c
... | ... | @@ -549,11 +549,8 @@ |
549 | 549 | |
550 | 550 | hwmon_device_unregister(data->class_dev); |
551 | 551 | |
552 | - if ((err = i2c_detach_client(client))) { | |
553 | - dev_err(&client->dev, "Client deregistration failed, client" | |
554 | - " not detached.\n"); | |
552 | + if ((err = i2c_detach_client(client))) | |
555 | 553 | return err; |
556 | - } | |
557 | 554 | kfree(data); |
558 | 555 | return 0; |
559 | 556 | } |
drivers/hwmon/gl518sm.c
... | ... | @@ -492,11 +492,8 @@ |
492 | 492 | |
493 | 493 | hwmon_device_unregister(data->class_dev); |
494 | 494 | |
495 | - if ((err = i2c_detach_client(client))) { | |
496 | - dev_err(&client->dev, "Client deregistration failed, " | |
497 | - "client not detached.\n"); | |
495 | + if ((err = i2c_detach_client(client))) | |
498 | 496 | return err; |
499 | - } | |
500 | 497 | |
501 | 498 | kfree(data); |
502 | 499 | return 0; |
drivers/hwmon/gl520sm.c
... | ... | @@ -654,11 +654,8 @@ |
654 | 654 | |
655 | 655 | hwmon_device_unregister(data->class_dev); |
656 | 656 | |
657 | - if ((err = i2c_detach_client(client))) { | |
658 | - dev_err(&client->dev, "Client deregistration failed, " | |
659 | - "client not detached.\n"); | |
657 | + if ((err = i2c_detach_client(client))) | |
660 | 658 | return err; |
661 | - } | |
662 | 659 | |
663 | 660 | kfree(data); |
664 | 661 | return 0; |
drivers/hwmon/it87.c
... | ... | @@ -945,11 +945,8 @@ |
945 | 945 | |
946 | 946 | hwmon_device_unregister(data->class_dev); |
947 | 947 | |
948 | - if ((err = i2c_detach_client(client))) { | |
949 | - dev_err(&client->dev, | |
950 | - "Client deregistration failed, client not detached.\n"); | |
948 | + if ((err = i2c_detach_client(client))) | |
951 | 949 | return err; |
952 | - } | |
953 | 950 | |
954 | 951 | if(i2c_is_isa_client(client)) |
955 | 952 | release_region(client->addr, IT87_EXTENT); |
drivers/hwmon/lm63.c
... | ... | @@ -520,11 +520,8 @@ |
520 | 520 | |
521 | 521 | hwmon_device_unregister(data->class_dev); |
522 | 522 | |
523 | - if ((err = i2c_detach_client(client))) { | |
524 | - dev_err(&client->dev, "Client deregistration failed, " | |
525 | - "client not detached\n"); | |
523 | + if ((err = i2c_detach_client(client))) | |
526 | 524 | return err; |
527 | - } | |
528 | 525 | |
529 | 526 | kfree(data); |
530 | 527 | return 0; |
drivers/hwmon/lm78.c
... | ... | @@ -683,11 +683,8 @@ |
683 | 683 | |
684 | 684 | hwmon_device_unregister(data->class_dev); |
685 | 685 | |
686 | - if ((err = i2c_detach_client(client))) { | |
687 | - dev_err(&client->dev, | |
688 | - "Client deregistration failed, client not detached.\n"); | |
686 | + if ((err = i2c_detach_client(client))) | |
689 | 687 | return err; |
690 | - } | |
691 | 688 | |
692 | 689 | if(i2c_is_isa_client(client)) |
693 | 690 | release_region(client->addr, LM78_EXTENT); |
drivers/hwmon/lm80.c
... | ... | @@ -510,11 +510,8 @@ |
510 | 510 | |
511 | 511 | hwmon_device_unregister(data->class_dev); |
512 | 512 | |
513 | - if ((err = i2c_detach_client(client))) { | |
514 | - dev_err(&client->dev, "Client deregistration failed, " | |
515 | - "client not detached.\n"); | |
513 | + if ((err = i2c_detach_client(client))) | |
516 | 514 | return err; |
517 | - } | |
518 | 515 | |
519 | 516 | kfree(data); |
520 | 517 | return 0; |
drivers/hwmon/lm83.c
... | ... | @@ -363,11 +363,8 @@ |
363 | 363 | |
364 | 364 | hwmon_device_unregister(data->class_dev); |
365 | 365 | |
366 | - if ((err = i2c_detach_client(client))) { | |
367 | - dev_err(&client->dev, | |
368 | - "Client deregistration failed, client not detached.\n"); | |
366 | + if ((err = i2c_detach_client(client))) | |
369 | 367 | return err; |
370 | - } | |
371 | 368 | |
372 | 369 | kfree(data); |
373 | 370 | return 0; |
drivers/hwmon/lm87.c
... | ... | @@ -734,11 +734,8 @@ |
734 | 734 | |
735 | 735 | hwmon_device_unregister(data->class_dev); |
736 | 736 | |
737 | - if ((err = i2c_detach_client(client))) { | |
738 | - dev_err(&client->dev, "Client deregistration failed, " | |
739 | - "client not detached.\n"); | |
737 | + if ((err = i2c_detach_client(client))) | |
740 | 738 | return err; |
741 | - } | |
742 | 739 | |
743 | 740 | kfree(data); |
744 | 741 | return 0; |
drivers/hwmon/lm90.c
... | ... | @@ -562,11 +562,8 @@ |
562 | 562 | |
563 | 563 | hwmon_device_unregister(data->class_dev); |
564 | 564 | |
565 | - if ((err = i2c_detach_client(client))) { | |
566 | - dev_err(&client->dev, "Client deregistration failed, " | |
567 | - "client not detached.\n"); | |
565 | + if ((err = i2c_detach_client(client))) | |
568 | 566 | return err; |
569 | - } | |
570 | 567 | |
571 | 568 | kfree(data); |
572 | 569 | return 0; |
drivers/hwmon/lm92.c
... | ... | @@ -399,11 +399,8 @@ |
399 | 399 | |
400 | 400 | hwmon_device_unregister(data->class_dev); |
401 | 401 | |
402 | - if ((err = i2c_detach_client(client))) { | |
403 | - dev_err(&client->dev, "Client deregistration failed, " | |
404 | - "client not detached.\n"); | |
402 | + if ((err = i2c_detach_client(client))) | |
405 | 403 | return err; |
406 | - } | |
407 | 404 | |
408 | 405 | kfree(data); |
409 | 406 | return 0; |
drivers/hwmon/max1619.c
... | ... | @@ -322,11 +322,8 @@ |
322 | 322 | |
323 | 323 | hwmon_device_unregister(data->class_dev); |
324 | 324 | |
325 | - if ((err = i2c_detach_client(client))) { | |
326 | - dev_err(&client->dev, "Client deregistration failed, " | |
327 | - "client not detached.\n"); | |
325 | + if ((err = i2c_detach_client(client))) | |
328 | 326 | return err; |
329 | - } | |
330 | 327 | |
331 | 328 | kfree(data); |
332 | 329 | return 0; |
drivers/hwmon/pc87360.c
... | ... | @@ -984,11 +984,8 @@ |
984 | 984 | |
985 | 985 | hwmon_device_unregister(data->class_dev); |
986 | 986 | |
987 | - if ((i = i2c_detach_client(client))) { | |
988 | - dev_err(&client->dev, "Client deregistration failed, " | |
989 | - "client not detached.\n"); | |
987 | + if ((i = i2c_detach_client(client))) | |
990 | 988 | return i; |
991 | - } | |
992 | 989 | |
993 | 990 | for (i = 0; i < 3; i++) { |
994 | 991 | if (data->address[i]) { |
drivers/hwmon/sis5595.c
... | ... | @@ -618,11 +618,8 @@ |
618 | 618 | |
619 | 619 | hwmon_device_unregister(data->class_dev); |
620 | 620 | |
621 | - if ((err = i2c_detach_client(client))) { | |
622 | - dev_err(&client->dev, | |
623 | - "Client deregistration failed, client not detached.\n"); | |
621 | + if ((err = i2c_detach_client(client))) | |
624 | 622 | return err; |
625 | - } | |
626 | 623 | |
627 | 624 | release_region(client->addr, SIS5595_EXTENT); |
628 | 625 |
drivers/hwmon/smsc47b397.c
... | ... | @@ -214,11 +214,8 @@ |
214 | 214 | |
215 | 215 | hwmon_device_unregister(data->class_dev); |
216 | 216 | |
217 | - if ((err = i2c_detach_client(client))) { | |
218 | - dev_err(&client->dev, "Client deregistration failed, " | |
219 | - "client not detached.\n"); | |
217 | + if ((err = i2c_detach_client(client))) | |
220 | 218 | return err; |
221 | - } | |
222 | 219 | |
223 | 220 | release_region(client->addr, SMSC_EXTENT); |
224 | 221 | kfree(data); |
drivers/hwmon/smsc47m1.c
... | ... | @@ -497,11 +497,8 @@ |
497 | 497 | |
498 | 498 | hwmon_device_unregister(data->class_dev); |
499 | 499 | |
500 | - if ((err = i2c_detach_client(client))) { | |
501 | - dev_err(&client->dev, "Client deregistration failed, " | |
502 | - "client not detached.\n"); | |
500 | + if ((err = i2c_detach_client(client))) | |
503 | 501 | return err; |
504 | - } | |
505 | 502 | |
506 | 503 | release_region(client->addr, SMSC_EXTENT); |
507 | 504 | kfree(data); |
drivers/hwmon/via686a.c
... | ... | @@ -700,11 +700,8 @@ |
700 | 700 | |
701 | 701 | hwmon_device_unregister(data->class_dev); |
702 | 702 | |
703 | - if ((err = i2c_detach_client(client))) { | |
704 | - dev_err(&client->dev, | |
705 | - "Client deregistration failed, client not detached.\n"); | |
703 | + if ((err = i2c_detach_client(client))) | |
706 | 704 | return err; |
707 | - } | |
708 | 705 | |
709 | 706 | release_region(client->addr, VIA686A_EXTENT); |
710 | 707 | kfree(data); |
drivers/hwmon/w83627ehf.c
... | ... | @@ -774,11 +774,8 @@ |
774 | 774 | |
775 | 775 | hwmon_device_unregister(data->class_dev); |
776 | 776 | |
777 | - if ((err = i2c_detach_client(client))) { | |
778 | - dev_err(&client->dev, "Client deregistration failed, " | |
779 | - "client not detached.\n"); | |
777 | + if ((err = i2c_detach_client(client))) | |
780 | 778 | return err; |
781 | - } | |
782 | 779 | release_region(client->addr, REGION_LENGTH); |
783 | 780 | kfree(data); |
784 | 781 |
drivers/hwmon/w83627hf.c
... | ... | @@ -1157,11 +1157,8 @@ |
1157 | 1157 | |
1158 | 1158 | hwmon_device_unregister(data->class_dev); |
1159 | 1159 | |
1160 | - if ((err = i2c_detach_client(client))) { | |
1161 | - dev_err(&client->dev, | |
1162 | - "Client deregistration failed, client not detached.\n"); | |
1160 | + if ((err = i2c_detach_client(client))) | |
1163 | 1161 | return err; |
1164 | - } | |
1165 | 1162 | |
1166 | 1163 | release_region(client->addr, WINB_EXTENT); |
1167 | 1164 | kfree(data); |
drivers/hwmon/w83781d.c
... | ... | @@ -1299,11 +1299,8 @@ |
1299 | 1299 | if (i2c_is_isa_client(client)) |
1300 | 1300 | release_region(client->addr, W83781D_EXTENT); |
1301 | 1301 | |
1302 | - if ((err = i2c_detach_client(client))) { | |
1303 | - dev_err(&client->dev, | |
1304 | - "Client deregistration failed, client not detached.\n"); | |
1302 | + if ((err = i2c_detach_client(client))) | |
1305 | 1303 | return err; |
1306 | - } | |
1307 | 1304 | |
1308 | 1305 | /* main client */ |
1309 | 1306 | if (data) |
drivers/hwmon/w83792d.c
... | ... | @@ -1396,11 +1396,8 @@ |
1396 | 1396 | if (data) |
1397 | 1397 | hwmon_device_unregister(data->class_dev); |
1398 | 1398 | |
1399 | - if ((err = i2c_detach_client(client))) { | |
1400 | - dev_err(&client->dev, | |
1401 | - "Client deregistration failed, client not detached.\n"); | |
1399 | + if ((err = i2c_detach_client(client))) | |
1402 | 1400 | return err; |
1403 | - } | |
1404 | 1401 | |
1405 | 1402 | /* main client */ |
1406 | 1403 | if (data) |
drivers/hwmon/w83l785ts.c
... | ... | @@ -267,11 +267,8 @@ |
267 | 267 | |
268 | 268 | hwmon_device_unregister(data->class_dev); |
269 | 269 | |
270 | - if ((err = i2c_detach_client(client))) { | |
271 | - dev_err(&client->dev, "Client deregistration failed, " | |
272 | - "client not detached.\n"); | |
270 | + if ((err = i2c_detach_client(client))) | |
273 | 271 | return err; |
274 | - } | |
275 | 272 | |
276 | 273 | kfree(data); |
277 | 274 | return 0; |
drivers/i2c/chips/ds1337.c
... | ... | @@ -353,11 +353,8 @@ |
353 | 353 | int err; |
354 | 354 | struct ds1337_data *data = i2c_get_clientdata(client); |
355 | 355 | |
356 | - if ((err = i2c_detach_client(client))) { | |
357 | - dev_err(&client->dev, "Client deregistration failed, " | |
358 | - "client not detached.\n"); | |
356 | + if ((err = i2c_detach_client(client))) | |
359 | 357 | return err; |
360 | - } | |
361 | 358 | |
362 | 359 | list_del(&data->list); |
363 | 360 | kfree(data); |
drivers/i2c/chips/eeprom.c
drivers/i2c/chips/max6875.c
drivers/i2c/chips/pca9539.c
... | ... | @@ -163,10 +163,8 @@ |
163 | 163 | { |
164 | 164 | int err; |
165 | 165 | |
166 | - if ((err = i2c_detach_client(client))) { | |
167 | - dev_err(&client->dev, "Client deregistration failed.\n"); | |
166 | + if ((err = i2c_detach_client(client))) | |
168 | 167 | return err; |
169 | - } | |
170 | 168 | |
171 | 169 | kfree(i2c_get_clientdata(client)); |
172 | 170 | return 0; |
drivers/i2c/chips/pcf8574.c
... | ... | @@ -185,11 +185,8 @@ |
185 | 185 | { |
186 | 186 | int err; |
187 | 187 | |
188 | - if ((err = i2c_detach_client(client))) { | |
189 | - dev_err(&client->dev, | |
190 | - "Client deregistration failed, client not detached.\n"); | |
188 | + if ((err = i2c_detach_client(client))) | |
191 | 189 | return err; |
192 | - } | |
193 | 190 | |
194 | 191 | kfree(i2c_get_clientdata(client)); |
195 | 192 | return 0; |
drivers/i2c/chips/pcf8591.c
... | ... | @@ -240,11 +240,8 @@ |
240 | 240 | { |
241 | 241 | int err; |
242 | 242 | |
243 | - if ((err = i2c_detach_client(client))) { | |
244 | - dev_err(&client->dev, | |
245 | - "Client deregistration failed, client not detached.\n"); | |
243 | + if ((err = i2c_detach_client(client))) | |
246 | 244 | return err; |
247 | - } | |
248 | 245 | |
249 | 246 | kfree(i2c_get_clientdata(client)); |
250 | 247 | return 0; |
drivers/i2c/i2c-core.c
... | ... | @@ -449,8 +449,12 @@ |
449 | 449 | struct i2c_adapter *adapter = client->adapter; |
450 | 450 | int res = 0; |
451 | 451 | |
452 | - if ((client->flags & I2C_CLIENT_ALLOW_USE) && (client->usage_count > 0)) | |
452 | + if ((client->flags & I2C_CLIENT_ALLOW_USE) | |
453 | + && (client->usage_count > 0)) { | |
454 | + dev_warn(&client->dev, "Client [%s] still busy, " | |
455 | + "can't detach\n", client->name); | |
453 | 456 | return -EBUSY; |
457 | + } | |
454 | 458 | |
455 | 459 | if (adapter->client_unregister) { |
456 | 460 | res = adapter->client_unregister(client); |