summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/greybus/arche-platform.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c
index f44c34314127..64dd8a1ebe37 100644
--- a/drivers/staging/greybus/arche-platform.c
+++ b/drivers/staging/greybus/arche-platform.c
@@ -94,6 +94,10 @@ static int apb_poweroff(struct device *dev, void *data)
{
apb_ctrl_poweroff(dev);
+ /* Enable HUB3613 into HUB mode. */
+ if (usb3613_hub_mode_ctrl(false))
+ dev_warn(dev, "failed to control hub device\n");
+
return 0;
}
@@ -142,6 +146,7 @@ static irqreturn_t arche_platform_wd_irq_thread(int irq, void *devid)
/* It should complete power cycle, so first make sure it is poweroff */
device_for_each_child(arche_pdata->dev, NULL, apb_poweroff);
+
/* Bring APB out of reset: cold boot sequence */
device_for_each_child(arche_pdata->dev, NULL, apb_cold_boot);
@@ -301,10 +306,6 @@ static ssize_t state_store(struct device *dev,
arche_platform_poweroff_seq(arche_pdata);
- ret = usb3613_hub_mode_ctrl(false);
- if (ret)
- dev_warn(arche_pdata->dev, "failed to control hub device\n");
- /* TODO: Should we do anything more here ?? */
} else if (sysfs_streq(buf, "active")) {
if (arche_pdata->state == ARCHE_PLATFORM_STATE_ACTIVE)
return count;
@@ -327,11 +328,6 @@ static ssize_t state_store(struct device *dev,
arche_platform_poweroff_seq(arche_pdata);
- ret = usb3613_hub_mode_ctrl(false);
- if (ret)
- dev_warn(arche_pdata->dev, "failed to control hub device\n");
- /* TODO: Should we do anything more here ?? */
-
arche_platform_fw_flashing_seq(arche_pdata);
device_for_each_child(arche_pdata->dev, NULL, apb_fw_flashing_state);