aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/i2c/porting-clients3
-rw-r--r--Documentation/i2c/writing-clients4
-rw-r--r--drivers/hwmon/adm1021.c4
-rw-r--r--drivers/hwmon/adm1025.c5
-rw-r--r--drivers/hwmon/adm9240.c5
-rw-r--r--drivers/hwmon/asb100.c5
-rw-r--r--drivers/hwmon/ds1621.c5
-rw-r--r--drivers/hwmon/fscher.c5
-rw-r--r--drivers/hwmon/fscpos.c5
-rw-r--r--drivers/hwmon/gl518sm.c5
-rw-r--r--drivers/hwmon/gl520sm.c5
-rw-r--r--drivers/hwmon/it87.c5
-rw-r--r--drivers/hwmon/lm63.c5
-rw-r--r--drivers/hwmon/lm78.c5
-rw-r--r--drivers/hwmon/lm80.c5
-rw-r--r--drivers/hwmon/lm83.c5
-rw-r--r--drivers/hwmon/lm87.c5
-rw-r--r--drivers/hwmon/lm90.c5
-rw-r--r--drivers/hwmon/lm92.c5
-rw-r--r--drivers/hwmon/max1619.c5
-rw-r--r--drivers/hwmon/pc87360.c5
-rw-r--r--drivers/hwmon/sis5595.c5
-rw-r--r--drivers/hwmon/smsc47b397.c5
-rw-r--r--drivers/hwmon/smsc47m1.c5
-rw-r--r--drivers/hwmon/via686a.c5
-rw-r--r--drivers/hwmon/w83627ehf.c5
-rw-r--r--drivers/hwmon/w83627hf.c5
-rw-r--r--drivers/hwmon/w83781d.c5
-rw-r--r--drivers/hwmon/w83792d.c5
-rw-r--r--drivers/hwmon/w83l785ts.c5
-rw-r--r--drivers/i2c/chips/ds1337.c5
-rw-r--r--drivers/i2c/chips/eeprom.c4
-rw-r--r--drivers/i2c/chips/max6875.c4
-rw-r--r--drivers/i2c/chips/pca9539.c4
-rw-r--r--drivers/i2c/chips/pcf8574.c5
-rw-r--r--drivers/i2c/chips/pcf8591.c5
-rw-r--r--drivers/i2c/i2c-core.c6
37 files changed, 42 insertions, 137 deletions
diff --git a/Documentation/i2c/porting-clients b/Documentation/i2c/porting-clients
index 105c6186b912..68bcd66e36b1 100644
--- a/Documentation/i2c/porting-clients
+++ b/Documentation/i2c/porting-clients
@@ -94,7 +94,8 @@ Technical changes:
94 limited to the strictly necessary steps. 94 limited to the strictly necessary steps.
95 95
96* [Detach] Get rid of data, remove the call to 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* [Update] Don't access client->data directly, use 100* [Update] Don't access client->data directly, use
100 i2c_get_clientdata(client) instead. 101 i2c_get_clientdata(client) instead.
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 522ae01d2e7f..7e2a8f11c220 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -489,10 +489,8 @@ much simpler than the attachment code, fortunately!
489 /* SENSORS ONLY END */ 489 /* SENSORS ONLY END */
490 490
491 /* Try to detach the client from i2c space */ 491 /* Try to detach the client from i2c space */
492 if ((err = i2c_detach_client(client))) { 492 if ((err = i2c_detach_client(client)))
493 printk("foo.o: Client deregistration failed, client not detached.\n");
494 return err; 493 return err;
495 }
496 494
497 /* HYBRID SENSORS CHIP ONLY START */ 495 /* HYBRID SENSORS CHIP ONLY START */
498 if i2c_is_isa_client(client) 496 if i2c_is_isa_client(client)
diff --git a/drivers/hwmon/adm1021.c b/drivers/hwmon/adm1021.c
index 2a341390d92e..da3e2c9f705f 100644
--- a/drivers/hwmon/adm1021.c
+++ b/drivers/hwmon/adm1021.c
@@ -328,10 +328,8 @@ static int adm1021_detach_client(struct i2c_client *client)
328 328
329 hwmon_device_unregister(data->class_dev); 329 hwmon_device_unregister(data->class_dev);
330 330
331 if ((err = i2c_detach_client(client))) { 331 if ((err = i2c_detach_client(client)))
332 dev_err(&client->dev, "Client deregistration failed, client not detached.\n");
333 return err; 332 return err;
334 }
335 333
336 kfree(data); 334 kfree(data);
337 return 0; 335 return 0;
diff --git a/drivers/hwmon/adm1025.c b/drivers/hwmon/adm1025.c
index bdba01e2f3ed..181dadf42002 100644
--- a/drivers/hwmon/adm1025.c
+++ b/drivers/hwmon/adm1025.c
@@ -517,11 +517,8 @@ static int adm1025_detach_client(struct i2c_client *client)
517 517
518 hwmon_device_unregister(data->class_dev); 518 hwmon_device_unregister(data->class_dev);
519 519
520 if ((err = i2c_detach_client(client))) { 520 if ((err = i2c_detach_client(client)))
521 dev_err(&client->dev, "Client deregistration failed, "
522 "client not detached.\n");
523 return err; 521 return err;
524 }
525 522
526 kfree(data); 523 kfree(data);
527 return 0; 524 return 0;
diff --git a/drivers/hwmon/adm9240.c b/drivers/hwmon/adm9240.c
index d52100027665..82edf286ebdc 100644
--- a/drivers/hwmon/adm9240.c
+++ b/drivers/hwmon/adm9240.c
@@ -645,11 +645,8 @@ static int adm9240_detach_client(struct i2c_client *client)
645 645
646 hwmon_device_unregister(data->class_dev); 646 hwmon_device_unregister(data->class_dev);
647 647
648 if ((err = i2c_detach_client(client))) { 648 if ((err = i2c_detach_client(client)))
649 dev_err(&client->dev, "Client deregistration failed, "
650 "client not detached.\n");
651 return err; 649 return err;
652 }
653 650
654 kfree(data); 651 kfree(data);
655 return 0; 652 return 0;
diff --git a/drivers/hwmon/asb100.c b/drivers/hwmon/asb100.c
index 290f7d2ac0a8..c6a2c94fad36 100644
--- a/drivers/hwmon/asb100.c
+++ b/drivers/hwmon/asb100.c
@@ -867,11 +867,8 @@ static int asb100_detach_client(struct i2c_client *client)
867 if (data) 867 if (data)
868 hwmon_device_unregister(data->class_dev); 868 hwmon_device_unregister(data->class_dev);
869 869
870 if ((err = i2c_detach_client(client))) { 870 if ((err = i2c_detach_client(client)))
871 dev_err(&client->dev, "client deregistration failed; "
872 "client not detached.\n");
873 return err; 871 return err;
874 }
875 872
876 /* main client */ 873 /* main client */
877 if (data) 874 if (data)
diff --git a/drivers/hwmon/ds1621.c b/drivers/hwmon/ds1621.c
index 4a316a7f7980..3ac37e95d2ef 100644
--- a/drivers/hwmon/ds1621.c
+++ b/drivers/hwmon/ds1621.c
@@ -282,11 +282,8 @@ static int ds1621_detach_client(struct i2c_client *client)
282 282
283 hwmon_device_unregister(data->class_dev); 283 hwmon_device_unregister(data->class_dev);
284 284
285 if ((err = i2c_detach_client(client))) { 285 if ((err = i2c_detach_client(client)))
286 dev_err(&client->dev, "Client deregistration failed, "
287 "client not detached.\n");
288 return err; 286 return err;
289 }
290 287
291 kfree(data); 288 kfree(data);
292 289
diff --git a/drivers/hwmon/fscher.c b/drivers/hwmon/fscher.c
index c7caa95c643b..ddf22fbf4ed1 100644
--- a/drivers/hwmon/fscher.c
+++ b/drivers/hwmon/fscher.c
@@ -383,11 +383,8 @@ static int fscher_detach_client(struct i2c_client *client)
383 383
384 hwmon_device_unregister(data->class_dev); 384 hwmon_device_unregister(data->class_dev);
385 385
386 if ((err = i2c_detach_client(client))) { 386 if ((err = i2c_detach_client(client)))
387 dev_err(&client->dev, "Client deregistration failed, "
388 "client not detached.\n");
389 return err; 387 return err;
390 }
391 388
392 kfree(data); 389 kfree(data);
393 return 0; 390 return 0;
diff --git a/drivers/hwmon/fscpos.c b/drivers/hwmon/fscpos.c
index fd75e444e758..489870ad6056 100644
--- a/drivers/hwmon/fscpos.c
+++ b/drivers/hwmon/fscpos.c
@@ -549,11 +549,8 @@ static int fscpos_detach_client(struct i2c_client *client)
549 549
550 hwmon_device_unregister(data->class_dev); 550 hwmon_device_unregister(data->class_dev);
551 551
552 if ((err = i2c_detach_client(client))) { 552 if ((err = i2c_detach_client(client)))
553 dev_err(&client->dev, "Client deregistration failed, client"
554 " not detached.\n");
555 return err; 553 return err;
556 }
557 kfree(data); 554 kfree(data);
558 return 0; 555 return 0;
559} 556}
diff --git a/drivers/hwmon/gl518sm.c b/drivers/hwmon/gl518sm.c
index 34d85b1e5539..63a2756c283a 100644
--- a/drivers/hwmon/gl518sm.c
+++ b/drivers/hwmon/gl518sm.c
@@ -492,11 +492,8 @@ static int gl518_detach_client(struct i2c_client *client)
492 492
493 hwmon_device_unregister(data->class_dev); 493 hwmon_device_unregister(data->class_dev);
494 494
495 if ((err = i2c_detach_client(client))) { 495 if ((err = i2c_detach_client(client)))
496 dev_err(&client->dev, "Client deregistration failed, "
497 "client not detached.\n");
498 return err; 496 return err;
499 }
500 497
501 kfree(data); 498 kfree(data);
502 return 0; 499 return 0;
diff --git a/drivers/hwmon/gl520sm.c b/drivers/hwmon/gl520sm.c
index b129d153deab..ff71eb7ac681 100644
--- a/drivers/hwmon/gl520sm.c
+++ b/drivers/hwmon/gl520sm.c
@@ -654,11 +654,8 @@ static int gl520_detach_client(struct i2c_client *client)
654 654
655 hwmon_device_unregister(data->class_dev); 655 hwmon_device_unregister(data->class_dev);
656 656
657 if ((err = i2c_detach_client(client))) { 657 if ((err = i2c_detach_client(client)))
658 dev_err(&client->dev, "Client deregistration failed, "
659 "client not detached.\n");
660 return err; 658 return err;
661 }
662 659
663 kfree(data); 660 kfree(data);
664 return 0; 661 return 0;
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index 0a8d795f15c2..b1719f4097ef 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -945,11 +945,8 @@ static int it87_detach_client(struct i2c_client *client)
945 945
946 hwmon_device_unregister(data->class_dev); 946 hwmon_device_unregister(data->class_dev);
947 947
948 if ((err = i2c_detach_client(client))) { 948 if ((err = i2c_detach_client(client)))
949 dev_err(&client->dev,
950 "Client deregistration failed, client not detached.\n");
951 return err; 949 return err;
952 }
953 950
954 if(i2c_is_isa_client(client)) 951 if(i2c_is_isa_client(client))
955 release_region(client->addr, IT87_EXTENT); 952 release_region(client->addr, IT87_EXTENT);
diff --git a/drivers/hwmon/lm63.c b/drivers/hwmon/lm63.c
index e19b11fd4816..736126d73aa2 100644
--- a/drivers/hwmon/lm63.c
+++ b/drivers/hwmon/lm63.c
@@ -520,11 +520,8 @@ static int lm63_detach_client(struct i2c_client *client)
520 520
521 hwmon_device_unregister(data->class_dev); 521 hwmon_device_unregister(data->class_dev);
522 522
523 if ((err = i2c_detach_client(client))) { 523 if ((err = i2c_detach_client(client)))
524 dev_err(&client->dev, "Client deregistration failed, "
525 "client not detached\n");
526 return err; 524 return err;
527 }
528 525
529 kfree(data); 526 kfree(data);
530 return 0; 527 return 0;
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index 784935f77016..21b767a66bbd 100644
--- a/drivers/hwmon/lm78.c
+++ b/drivers/hwmon/lm78.c
@@ -683,11 +683,8 @@ static int lm78_detach_client(struct i2c_client *client)
683 683
684 hwmon_device_unregister(data->class_dev); 684 hwmon_device_unregister(data->class_dev);
685 685
686 if ((err = i2c_detach_client(client))) { 686 if ((err = i2c_detach_client(client)))
687 dev_err(&client->dev,
688 "Client deregistration failed, client not detached.\n");
689 return err; 687 return err;
690 }
691 688
692 if(i2c_is_isa_client(client)) 689 if(i2c_is_isa_client(client))
693 release_region(client->addr, LM78_EXTENT); 690 release_region(client->addr, LM78_EXTENT);
diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c
index fa2cb17018cc..36a0cda36a7d 100644
--- a/drivers/hwmon/lm80.c
+++ b/drivers/hwmon/lm80.c
@@ -510,11 +510,8 @@ static int lm80_detach_client(struct i2c_client *client)
510 510
511 hwmon_device_unregister(data->class_dev); 511 hwmon_device_unregister(data->class_dev);
512 512
513 if ((err = i2c_detach_client(client))) { 513 if ((err = i2c_detach_client(client)))
514 dev_err(&client->dev, "Client deregistration failed, "
515 "client not detached.\n");
516 return err; 514 return err;
517 }
518 515
519 kfree(data); 516 kfree(data);
520 return 0; 517 return 0;
diff --git a/drivers/hwmon/lm83.c b/drivers/hwmon/lm83.c
index 0223b4d2ce1d..f3557f8826a9 100644
--- a/drivers/hwmon/lm83.c
+++ b/drivers/hwmon/lm83.c
@@ -363,11 +363,8 @@ static int lm83_detach_client(struct i2c_client *client)
363 363
364 hwmon_device_unregister(data->class_dev); 364 hwmon_device_unregister(data->class_dev);
365 365
366 if ((err = i2c_detach_client(client))) { 366 if ((err = i2c_detach_client(client)))
367 dev_err(&client->dev,
368 "Client deregistration failed, client not detached.\n");
369 return err; 367 return err;
370 }
371 368
372 kfree(data); 369 kfree(data);
373 return 0; 370 return 0;
diff --git a/drivers/hwmon/lm87.c b/drivers/hwmon/lm87.c
index 1dc3bf52b40d..f0ffe58e3670 100644
--- a/drivers/hwmon/lm87.c
+++ b/drivers/hwmon/lm87.c
@@ -734,11 +734,8 @@ static int lm87_detach_client(struct i2c_client *client)
734 734
735 hwmon_device_unregister(data->class_dev); 735 hwmon_device_unregister(data->class_dev);
736 736
737 if ((err = i2c_detach_client(client))) { 737 if ((err = i2c_detach_client(client)))
738 dev_err(&client->dev, "Client deregistration failed, "
739 "client not detached.\n");
740 return err; 738 return err;
741 }
742 739
743 kfree(data); 740 kfree(data);
744 return 0; 741 return 0;
diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index 4b914ec205fa..fbf9dac41ee5 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -562,11 +562,8 @@ static int lm90_detach_client(struct i2c_client *client)
562 562
563 hwmon_device_unregister(data->class_dev); 563 hwmon_device_unregister(data->class_dev);
564 564
565 if ((err = i2c_detach_client(client))) { 565 if ((err = i2c_detach_client(client)))
566 dev_err(&client->dev, "Client deregistration failed, "
567 "client not detached.\n");
568 return err; 566 return err;
569 }
570 567
571 kfree(data); 568 kfree(data);
572 return 0; 569 return 0;
diff --git a/drivers/hwmon/lm92.c b/drivers/hwmon/lm92.c
index 9c43120d6bd7..9740ee264051 100644
--- a/drivers/hwmon/lm92.c
+++ b/drivers/hwmon/lm92.c
@@ -399,11 +399,8 @@ static int lm92_detach_client(struct i2c_client *client)
399 399
400 hwmon_device_unregister(data->class_dev); 400 hwmon_device_unregister(data->class_dev);
401 401
402 if ((err = i2c_detach_client(client))) { 402 if ((err = i2c_detach_client(client)))
403 dev_err(&client->dev, "Client deregistration failed, "
404 "client not detached.\n");
405 return err; 403 return err;
406 }
407 404
408 kfree(data); 405 kfree(data);
409 return 0; 406 return 0;
diff --git a/drivers/hwmon/max1619.c b/drivers/hwmon/max1619.c
index 5f0376575c62..a53d7df92ba2 100644
--- a/drivers/hwmon/max1619.c
+++ b/drivers/hwmon/max1619.c
@@ -322,11 +322,8 @@ static int max1619_detach_client(struct i2c_client *client)
322 322
323 hwmon_device_unregister(data->class_dev); 323 hwmon_device_unregister(data->class_dev);
324 324
325 if ((err = i2c_detach_client(client))) { 325 if ((err = i2c_detach_client(client)))
326 dev_err(&client->dev, "Client deregistration failed, "
327 "client not detached.\n");
328 return err; 326 return err;
329 }
330 327
331 kfree(data); 328 kfree(data);
332 return 0; 329 return 0;
diff --git a/drivers/hwmon/pc87360.c b/drivers/hwmon/pc87360.c
index 4041488de6f1..1f1b3ca23f6f 100644
--- a/drivers/hwmon/pc87360.c
+++ b/drivers/hwmon/pc87360.c
@@ -984,11 +984,8 @@ static int pc87360_detach_client(struct i2c_client *client)
984 984
985 hwmon_device_unregister(data->class_dev); 985 hwmon_device_unregister(data->class_dev);
986 986
987 if ((i = i2c_detach_client(client))) { 987 if ((i = i2c_detach_client(client)))
988 dev_err(&client->dev, "Client deregistration failed, "
989 "client not detached.\n");
990 return i; 988 return i;
991 }
992 989
993 for (i = 0; i < 3; i++) { 990 for (i = 0; i < 3; i++) {
994 if (data->address[i]) { 991 if (data->address[i]) {
diff --git a/drivers/hwmon/sis5595.c b/drivers/hwmon/sis5595.c
index 67246299a308..55716cb579aa 100644
--- a/drivers/hwmon/sis5595.c
+++ b/drivers/hwmon/sis5595.c
@@ -618,11 +618,8 @@ static int sis5595_detach_client(struct i2c_client *client)
618 618
619 hwmon_device_unregister(data->class_dev); 619 hwmon_device_unregister(data->class_dev);
620 620
621 if ((err = i2c_detach_client(client))) { 621 if ((err = i2c_detach_client(client)))
622 dev_err(&client->dev,
623 "Client deregistration failed, client not detached.\n");
624 return err; 622 return err;
625 }
626 623
627 release_region(client->addr, SIS5595_EXTENT); 624 release_region(client->addr, SIS5595_EXTENT);
628 625
diff --git a/drivers/hwmon/smsc47b397.c b/drivers/hwmon/smsc47b397.c
index dddc94a7649b..7fe71576dea4 100644
--- a/drivers/hwmon/smsc47b397.c
+++ b/drivers/hwmon/smsc47b397.c
@@ -214,11 +214,8 @@ static int smsc47b397_detach_client(struct i2c_client *client)
214 214
215 hwmon_device_unregister(data->class_dev); 215 hwmon_device_unregister(data->class_dev);
216 216
217 if ((err = i2c_detach_client(client))) { 217 if ((err = i2c_detach_client(client)))
218 dev_err(&client->dev, "Client deregistration failed, "
219 "client not detached.\n");
220 return err; 218 return err;
221 }
222 219
223 release_region(client->addr, SMSC_EXTENT); 220 release_region(client->addr, SMSC_EXTENT);
224 kfree(data); 221 kfree(data);
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c
index 8126fdd7cbee..9da5d546e861 100644
--- a/drivers/hwmon/smsc47m1.c
+++ b/drivers/hwmon/smsc47m1.c
@@ -497,11 +497,8 @@ static int smsc47m1_detach_client(struct i2c_client *client)
497 497
498 hwmon_device_unregister(data->class_dev); 498 hwmon_device_unregister(data->class_dev);
499 499
500 if ((err = i2c_detach_client(client))) { 500 if ((err = i2c_detach_client(client)))
501 dev_err(&client->dev, "Client deregistration failed, "
502 "client not detached.\n");
503 return err; 501 return err;
504 }
505 502
506 release_region(client->addr, SMSC_EXTENT); 503 release_region(client->addr, SMSC_EXTENT);
507 kfree(data); 504 kfree(data);
diff --git a/drivers/hwmon/via686a.c b/drivers/hwmon/via686a.c
index cd3732c36671..d9251fb0b625 100644
--- a/drivers/hwmon/via686a.c
+++ b/drivers/hwmon/via686a.c
@@ -700,11 +700,8 @@ static int via686a_detach_client(struct i2c_client *client)
700 700
701 hwmon_device_unregister(data->class_dev); 701 hwmon_device_unregister(data->class_dev);
702 702
703 if ((err = i2c_detach_client(client))) { 703 if ((err = i2c_detach_client(client)))
704 dev_err(&client->dev,
705 "Client deregistration failed, client not detached.\n");
706 return err; 704 return err;
707 }
708 705
709 release_region(client->addr, VIA686A_EXTENT); 706 release_region(client->addr, VIA686A_EXTENT);
710 kfree(data); 707 kfree(data);
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
index b14801cd615d..b60efe8f8b26 100644
--- a/drivers/hwmon/w83627ehf.c
+++ b/drivers/hwmon/w83627ehf.c
@@ -774,11 +774,8 @@ static int w83627ehf_detach_client(struct i2c_client *client)
774 774
775 hwmon_device_unregister(data->class_dev); 775 hwmon_device_unregister(data->class_dev);
776 776
777 if ((err = i2c_detach_client(client))) { 777 if ((err = i2c_detach_client(client)))
778 dev_err(&client->dev, "Client deregistration failed, "
779 "client not detached.\n");
780 return err; 778 return err;
781 }
782 release_region(client->addr, REGION_LENGTH); 779 release_region(client->addr, REGION_LENGTH);
783 kfree(data); 780 kfree(data);
784 781
diff --git a/drivers/hwmon/w83627hf.c b/drivers/hwmon/w83627hf.c
index 9e31f5559ccc..f1ae0e00691b 100644
--- a/drivers/hwmon/w83627hf.c
+++ b/drivers/hwmon/w83627hf.c
@@ -1157,11 +1157,8 @@ static int w83627hf_detach_client(struct i2c_client *client)
1157 1157
1158 hwmon_device_unregister(data->class_dev); 1158 hwmon_device_unregister(data->class_dev);
1159 1159
1160 if ((err = i2c_detach_client(client))) { 1160 if ((err = i2c_detach_client(client)))
1161 dev_err(&client->dev,
1162 "Client deregistration failed, client not detached.\n");
1163 return err; 1161 return err;
1164 }
1165 1162
1166 release_region(client->addr, WINB_EXTENT); 1163 release_region(client->addr, WINB_EXTENT);
1167 kfree(data); 1164 kfree(data);
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c
index 70718559de75..66835c1e3f68 100644
--- a/drivers/hwmon/w83781d.c
+++ b/drivers/hwmon/w83781d.c
@@ -1299,11 +1299,8 @@ w83781d_detach_client(struct i2c_client *client)
1299 if (i2c_is_isa_client(client)) 1299 if (i2c_is_isa_client(client))
1300 release_region(client->addr, W83781D_EXTENT); 1300 release_region(client->addr, W83781D_EXTENT);
1301 1301
1302 if ((err = i2c_detach_client(client))) { 1302 if ((err = i2c_detach_client(client)))
1303 dev_err(&client->dev,
1304 "Client deregistration failed, client not detached.\n");
1305 return err; 1303 return err;
1306 }
1307 1304
1308 /* main client */ 1305 /* main client */
1309 if (data) 1306 if (data)
diff --git a/drivers/hwmon/w83792d.c b/drivers/hwmon/w83792d.c
index 05f9b92ad3e7..ea0c3519e03a 100644
--- a/drivers/hwmon/w83792d.c
+++ b/drivers/hwmon/w83792d.c
@@ -1396,11 +1396,8 @@ w83792d_detach_client(struct i2c_client *client)
1396 if (data) 1396 if (data)
1397 hwmon_device_unregister(data->class_dev); 1397 hwmon_device_unregister(data->class_dev);
1398 1398
1399 if ((err = i2c_detach_client(client))) { 1399 if ((err = i2c_detach_client(client)))
1400 dev_err(&client->dev,
1401 "Client deregistration failed, client not detached.\n");
1402 return err; 1400 return err;
1403 }
1404 1401
1405 /* main client */ 1402 /* main client */
1406 if (data) 1403 if (data)
diff --git a/drivers/hwmon/w83l785ts.c b/drivers/hwmon/w83l785ts.c
index 9cd1939cd040..213fb170d397 100644
--- a/drivers/hwmon/w83l785ts.c
+++ b/drivers/hwmon/w83l785ts.c
@@ -267,11 +267,8 @@ static int w83l785ts_detach_client(struct i2c_client *client)
267 267
268 hwmon_device_unregister(data->class_dev); 268 hwmon_device_unregister(data->class_dev);
269 269
270 if ((err = i2c_detach_client(client))) { 270 if ((err = i2c_detach_client(client)))
271 dev_err(&client->dev, "Client deregistration failed, "
272 "client not detached.\n");
273 return err; 271 return err;
274 }
275 272
276 kfree(data); 273 kfree(data);
277 return 0; 274 return 0;
diff --git a/drivers/i2c/chips/ds1337.c b/drivers/i2c/chips/ds1337.c
index 6ac0a6e00769..8ab4e2348cda 100644
--- a/drivers/i2c/chips/ds1337.c
+++ b/drivers/i2c/chips/ds1337.c
@@ -353,11 +353,8 @@ static int ds1337_detach_client(struct i2c_client *client)
353 int err; 353 int err;
354 struct ds1337_data *data = i2c_get_clientdata(client); 354 struct ds1337_data *data = i2c_get_clientdata(client);
355 355
356 if ((err = i2c_detach_client(client))) { 356 if ((err = i2c_detach_client(client)))
357 dev_err(&client->dev, "Client deregistration failed, "
358 "client not detached.\n");
359 return err; 357 return err;
360 }
361 358
362 list_del(&data->list); 359 list_del(&data->list);
363 kfree(data); 360 kfree(data);
diff --git a/drivers/i2c/chips/eeprom.c b/drivers/i2c/chips/eeprom.c
index 88f83bac3845..9466ada68932 100644
--- a/drivers/i2c/chips/eeprom.c
+++ b/drivers/i2c/chips/eeprom.c
@@ -230,10 +230,8 @@ static int eeprom_detach_client(struct i2c_client *client)
230 int err; 230 int err;
231 231
232 err = i2c_detach_client(client); 232 err = i2c_detach_client(client);
233 if (err) { 233 if (err)
234 dev_err(&client->dev, "Client deregistration failed, client not detached.\n");
235 return err; 234 return err;
236 }
237 235
238 kfree(i2c_get_clientdata(client)); 236 kfree(i2c_get_clientdata(client));
239 237
diff --git a/drivers/i2c/chips/max6875.c b/drivers/i2c/chips/max6875.c
index d1d48586b90e..52fd6bf29133 100644
--- a/drivers/i2c/chips/max6875.c
+++ b/drivers/i2c/chips/max6875.c
@@ -242,10 +242,8 @@ static int max6875_detach_client(struct i2c_client *client)
242 int err; 242 int err;
243 243
244 err = i2c_detach_client(client); 244 err = i2c_detach_client(client);
245 if (err) { 245 if (err)
246 dev_err(&client->dev, "i2c_detach_client() failed\n");
247 return err; 246 return err;
248 }
249 kfree(i2c_get_clientdata(client)); 247 kfree(i2c_get_clientdata(client));
250 return 0; 248 return 0;
251} 249}
diff --git a/drivers/i2c/chips/pca9539.c b/drivers/i2c/chips/pca9539.c
index c5b052363d9a..1500b1842ce5 100644
--- a/drivers/i2c/chips/pca9539.c
+++ b/drivers/i2c/chips/pca9539.c
@@ -163,10 +163,8 @@ static int pca9539_detach_client(struct i2c_client *client)
163{ 163{
164 int err; 164 int err;
165 165
166 if ((err = i2c_detach_client(client))) { 166 if ((err = i2c_detach_client(client)))
167 dev_err(&client->dev, "Client deregistration failed.\n");
168 return err; 167 return err;
169 }
170 168
171 kfree(i2c_get_clientdata(client)); 169 kfree(i2c_get_clientdata(client));
172 return 0; 170 return 0;
diff --git a/drivers/i2c/chips/pcf8574.c b/drivers/i2c/chips/pcf8574.c
index 7a1fa7914630..a109dfd3dbe7 100644
--- a/drivers/i2c/chips/pcf8574.c
+++ b/drivers/i2c/chips/pcf8574.c
@@ -185,11 +185,8 @@ static int pcf8574_detach_client(struct i2c_client *client)
185{ 185{
186 int err; 186 int err;
187 187
188 if ((err = i2c_detach_client(client))) { 188 if ((err = i2c_detach_client(client)))
189 dev_err(&client->dev,
190 "Client deregistration failed, client not detached.\n");
191 return err; 189 return err;
192 }
193 190
194 kfree(i2c_get_clientdata(client)); 191 kfree(i2c_get_clientdata(client));
195 return 0; 192 return 0;
diff --git a/drivers/i2c/chips/pcf8591.c b/drivers/i2c/chips/pcf8591.c
index 225b512dd4ad..7fce0fc048d9 100644
--- a/drivers/i2c/chips/pcf8591.c
+++ b/drivers/i2c/chips/pcf8591.c
@@ -240,11 +240,8 @@ static int pcf8591_detach_client(struct i2c_client *client)
240{ 240{
241 int err; 241 int err;
242 242
243 if ((err = i2c_detach_client(client))) { 243 if ((err = i2c_detach_client(client)))
244 dev_err(&client->dev,
245 "Client deregistration failed, client not detached.\n");
246 return err; 244 return err;
247 }
248 245
249 kfree(i2c_get_clientdata(client)); 246 kfree(i2c_get_clientdata(client));
250 return 0; 247 return 0;
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 7a7837ae3114..b0bceb2fb8b1 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -449,8 +449,12 @@ int i2c_detach_client(struct i2c_client *client)
449 struct i2c_adapter *adapter = client->adapter; 449 struct i2c_adapter *adapter = client->adapter;
450 int res = 0; 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 return -EBUSY; 456 return -EBUSY;
457 }
454 458
455 if (adapter->client_unregister) { 459 if (adapter->client_unregister) {
456 res = adapter->client_unregister(client); 460 res = adapter->client_unregister(client);