diff options
| -rw-r--r-- | drivers/power/bq2415x_charger.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/power/bq2415x_charger.c b/drivers/power/bq2415x_charger.c index 79a37f6d3307..e384844a1ae1 100644 --- a/drivers/power/bq2415x_charger.c +++ b/drivers/power/bq2415x_charger.c | |||
| @@ -840,8 +840,7 @@ static int bq2415x_notifier_call(struct notifier_block *nb, | |||
| 840 | if (bq->automode < 1) | 840 | if (bq->automode < 1) |
| 841 | return NOTIFY_OK; | 841 | return NOTIFY_OK; |
| 842 | 842 | ||
| 843 | sysfs_notify(&bq->charger.dev->kobj, NULL, "reported_mode"); | 843 | schedule_delayed_work(&bq->work, 0); |
| 844 | bq2415x_set_mode(bq, bq->reported_mode); | ||
| 845 | 844 | ||
| 846 | return NOTIFY_OK; | 845 | return NOTIFY_OK; |
| 847 | } | 846 | } |
| @@ -892,6 +891,11 @@ static void bq2415x_timer_work(struct work_struct *work) | |||
| 892 | int error; | 891 | int error; |
| 893 | int boost; | 892 | int boost; |
| 894 | 893 | ||
| 894 | if (bq->automode > 0 && (bq->reported_mode != bq->mode)) { | ||
| 895 | sysfs_notify(&bq->charger.dev->kobj, NULL, "reported_mode"); | ||
| 896 | bq2415x_set_mode(bq, bq->reported_mode); | ||
| 897 | } | ||
| 898 | |||
| 895 | if (!bq->autotimer) | 899 | if (!bq->autotimer) |
| 896 | return; | 900 | return; |
| 897 | 901 | ||
