@@ -112,7 +112,6 @@ struct ds2760_device_info {
112
112
struct power_supply_desc bat_desc ;
113
113
struct workqueue_struct * monitor_wqueue ;
114
114
struct delayed_work monitor_work ;
115
- struct delayed_work set_charged_work ;
116
115
struct notifier_block pm_notifier ;
117
116
};
118
117
@@ -489,50 +488,6 @@ static void ds2760_battery_external_power_changed(struct power_supply *psy)
489
488
}
490
489
491
490
492
- static void ds2760_battery_set_charged_work (struct work_struct * work )
493
- {
494
- char bias ;
495
- struct ds2760_device_info * di = container_of (work ,
496
- struct ds2760_device_info , set_charged_work .work );
497
-
498
- dev_dbg (di -> dev , "%s\n" , __func__ );
499
-
500
- ds2760_battery_read_status (di );
501
-
502
- /* When we get notified by external circuitry that the battery is
503
- * considered fully charged now, we know that there is no current
504
- * flow any more. However, the ds2760's internal current meter is
505
- * too inaccurate to rely on - spec say something ~15% failure.
506
- * Hence, we use the current offset bias register to compensate
507
- * that error.
508
- */
509
-
510
- if (!power_supply_am_i_supplied (di -> bat ))
511
- return ;
512
-
513
- bias = (signed char ) di -> current_raw +
514
- (signed char ) di -> raw [DS2760_CURRENT_OFFSET_BIAS ];
515
-
516
- dev_dbg (di -> dev , "%s: bias = %d\n" , __func__ , bias );
517
-
518
- w1_ds2760_write (di -> dev , & bias , DS2760_CURRENT_OFFSET_BIAS , 1 );
519
- w1_ds2760_store_eeprom (di -> dev , DS2760_EEPROM_BLOCK1 );
520
- w1_ds2760_recall_eeprom (di -> dev , DS2760_EEPROM_BLOCK1 );
521
-
522
- /* Write to the di->raw[] buffer directly - the CURRENT_OFFSET_BIAS
523
- * value won't be read back by ds2760_battery_read_status() */
524
- di -> raw [DS2760_CURRENT_OFFSET_BIAS ] = bias ;
525
- }
526
-
527
- static void ds2760_battery_set_charged (struct power_supply * psy )
528
- {
529
- struct ds2760_device_info * di = power_supply_get_drvdata (psy );
530
-
531
- /* postpone the actual work by 20 secs. This is for debouncing GPIO
532
- * signals and to let the current value settle. See AN4188. */
533
- mod_delayed_work (di -> monitor_wqueue , & di -> set_charged_work , HZ * 20 );
534
- }
535
-
536
491
static int ds2760_battery_get_property (struct power_supply * psy ,
537
492
enum power_supply_property psp ,
538
493
union power_supply_propval * val )
@@ -692,7 +647,6 @@ static int w1_ds2760_add_slave(struct w1_slave *sl)
692
647
di -> bat_desc .set_property = ds2760_battery_set_property ;
693
648
di -> bat_desc .property_is_writeable =
694
649
ds2760_battery_property_is_writeable ;
695
- di -> bat_desc .set_charged = ds2760_battery_set_charged ;
696
650
di -> bat_desc .external_power_changed =
697
651
ds2760_battery_external_power_changed ;
698
652
@@ -747,8 +701,6 @@ static int w1_ds2760_add_slave(struct w1_slave *sl)
747
701
}
748
702
749
703
INIT_DELAYED_WORK (& di -> monitor_work , ds2760_battery_work );
750
- INIT_DELAYED_WORK (& di -> set_charged_work ,
751
- ds2760_battery_set_charged_work );
752
704
di -> monitor_wqueue = alloc_ordered_workqueue (name , WQ_MEM_RECLAIM );
753
705
if (!di -> monitor_wqueue ) {
754
706
retval = - ESRCH ;
@@ -774,7 +726,6 @@ static void w1_ds2760_remove_slave(struct w1_slave *sl)
774
726
775
727
unregister_pm_notifier (& di -> pm_notifier );
776
728
cancel_delayed_work_sync (& di -> monitor_work );
777
- cancel_delayed_work_sync (& di -> set_charged_work );
778
729
destroy_workqueue (di -> monitor_wqueue );
779
730
}
780
731
0 commit comments