summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/power/smb349-charger.c6
-rw-r--r--drivers/usb/otg/tegra-otg.c5
-rw-r--r--include/linux/smb349-charger.h3
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.