diff options
-rw-r--r-- | drivers/power/smb349-charger.c | 6 | ||||
-rw-r--r-- | drivers/usb/otg/tegra-otg.c | 5 | ||||
-rw-r--r-- | include/linux/smb349-charger.h | 3 |
3 files changed, 8 insertions, 6 deletions
diff --git a/drivers/power/smb349-charger.c b/drivers/power/smb349-charger.c index 300f91929a1c..8719e8182762 100644 --- a/drivers/power/smb349-charger.c +++ b/drivers/power/smb349-charger.c @@ -450,12 +450,12 @@ error: return ret; } -static void smb349_otg_status(enum usb_otg_state otg_state, void *data) +static void smb349_otg_status(enum usb_otg_state to, enum usb_otg_state from, void *data) { struct i2c_client *client = charger->client; int ret; - if (otg_state == OTG_STATE_A_HOST) { + if ((from == OTG_STATE_A_SUSPEND) && (to == OTG_STATE_A_HOST)) { /* configure charger */ ret = smb349_configure_charger(client, 0); @@ -469,7 +469,7 @@ static void smb349_otg_status(enum usb_otg_state otg_state, void *data) dev_err(&client->dev, "%s() error in configuring" "otg..\n", __func__); - } else if (otg_state == OTG_STATE_A_SUSPEND) { + } else if ((from == OTG_STATE_A_HOST) && (to == OTG_STATE_A_SUSPEND)) { /* Disable OTG */ ret = smb349_configure_otg(client, 0); diff --git a/drivers/usb/otg/tegra-otg.c b/drivers/usb/otg/tegra-otg.c index ffbeede75ed8..e7a21f92f797 100644 --- a/drivers/usb/otg/tegra-otg.c +++ b/drivers/usb/otg/tegra-otg.c @@ -43,7 +43,8 @@ #define USB_VBUS_STATUS (1 << 10) #define USB_INTS (USB_VBUS_INT_STATUS | USB_ID_INT_STATUS) -typedef void (*callback_t)(enum usb_otg_state otg_state, void *args); +typedef void (*callback_t)(enum usb_otg_state to, + enum usb_otg_state from, void *args); struct tegra_otg_data { struct otg_transceiver otg; @@ -225,7 +226,7 @@ static void irq_work(struct work_struct *work) tegra_state_name(to)); if (tegra->charger_cb) - tegra->charger_cb(to, tegra->charger_cb_data); + tegra->charger_cb(to, from, tegra->charger_cb_data); if (to == OTG_STATE_A_SUSPEND) { if (from == OTG_STATE_A_HOST) diff --git a/include/linux/smb349-charger.h b/include/linux/smb349-charger.h index ab02b883c0af..116f036baf19 100644 --- a/include/linux/smb349-charger.h +++ b/include/linux/smb349-charger.h @@ -50,7 +50,8 @@ struct smb349_charger { }; int smb349_battery_online(void); -typedef void (*callback_t)(enum usb_otg_state otg_state, void *args); +typedef void (*callback_t)(enum usb_otg_state to, + enum usb_otg_state from, void *args); /* * Register callback function for the client. * Used by fuel-gauge driver to get battery charging properties. |