Commit 7bef559455fc71f66f8573cc1aafe1dd33966c1c

Authored by Jean Delvare
Committed by Greg Kroah-Hartman
1 parent 1ff4e3065b

[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
... ... @@ -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
... ... @@ -230,10 +230,8 @@
230 230 int err;
231 231  
232 232 err = i2c_detach_client(client);
233   - if (err) {
234   - dev_err(&client->dev, "Client deregistration failed, client not detached.\n");
  233 + if (err)
235 234 return err;
236   - }
237 235  
238 236 kfree(i2c_get_clientdata(client));
239 237  
drivers/i2c/chips/max6875.c
... ... @@ -242,10 +242,8 @@
242 242 int err;
243 243  
244 244 err = i2c_detach_client(client);
245   - if (err) {
246   - dev_err(&client->dev, "i2c_detach_client() failed\n");
  245 + if (err)
247 246 return err;
248   - }
249 247 kfree(i2c_get_clientdata(client));
250 248 return 0;
251 249 }
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);