Merged changes from https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=6f199aa800253a69e5679d1057823039f1bd65c9

Pavankumar Kondeti <pkondeti@codeaurora.org>
USB: Allow skipping device resume during system resume

 Some buses would like to keep their devices in suspend state during system
 resume.  For example HSIC controller driver prevent system suspend when
 HSIC device is active.  If this device is resumed, during system resume
 HSIC controller acquire wake lock and prevent the subsequent suspend till
 HSIC device is auto suspended.
Merged changes from https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=41d004c4eaa5565cb8d9113862c3cef1e51be648

Pavankumar Kondeti <pkondeti@codeaurora.org>

USB: Prevent system suspend when HSIC device is active

 Some buses like HSIC would like to keep device in suspend state
 after system resume.  The remote wakeup or interface activity
 later will auto resume the device.  This will work only if the
 device is auto suspended before system suspend.  If the device
 runtime state had been active during system suspend and system
 suspend routine put the device in suspend, it will not be resumed
 during system resume.  When remote wakeup happen for this device,
 the runtime resume will not bring the device to active as runtime
 core think it is already active.

 The HSIC bus ensure that device is auto suspended prior to system
 suspend by holding a wakelock till the bus is suspended.  HSIC bus
 is not handling the case where device is auto resumed immediately
 after system suspend begins.  HSIC bus simply put the device into
 suspend in system suspend routine.

 This patch fixes above issue by returning an error code if the device
 is not auto suspended during system suspend.  Also add a safe guard
 check in HSIC system resume routine to skip device resume only if it
 is auto suspended prior to system suspend.