Revert "usb: chipidea: remove duplicate dev_set_drvdata for host_start"
authorPeter Chen <peter.chen@freescale.com>
Wed, 24 Dec 2014 03:33:17 +0000 (11:33 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jan 2015 17:45:30 +0000 (09:45 -0800)
commit24c498df1c70fa3b8b4df18f4424904bf014c709
tree181cd98e1804750626c06e4f23074a00dc0e974f
parent440893398a189d410cbc8a50ab7e1674a63b8501
Revert "usb: chipidea: remove duplicate dev_set_drvdata for host_start"

This reverts commit 14b4099c074f2ddf4d84b22d370170e61b527529

It moved platform_set_drvdata(pdev, ci) before hcd is created,
and the hcd will assign itself as ci controller's drvdata during
the hcd creation function (in usb_create_shared_hcd), so it
overwrites the real ci's drvdata which we want to use.

So, if the controller is at host mode, the system suspend
API will get the wrong struct ci_hdrc pointer, and cause the
oops.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/core.c
drivers/usb/chipidea/host.c