usb: otg:  Retry putting the OTG PHY in low power mode.

The MSM OTG PHY does not go into low power mode when powered up with a
charger. Hence reset the PHY and add logic to retry the LPM Handshake.
This will avoid the msm_otg wakelock getting stuck forever when powered
up with a charger.

Change-Id: I00d90ce3bf3bb23e36aa42233a2e91a719264ec9
Signed-off-by: Ravikumar Vembu <a18394@motorola.com>
Signed-off-by: Luis Cruz <ljc2491@gmail.com>
kswapd: Introduce congestion_wait_kswapd

congestion_wait for kswapd is similar to congestion_wait, the vital
difference is that congestion_wait_kswapd uses schedule_timeout
instead of io_schedule_timeout (which can cause IO wait conditions,
due to nr_iowait usage).

Derived from: https://github.com/oppo-source/Find5-Kernel-Source-4.2/commit/c7b44a43a970b699ecd68655bd6f83a8fbb3d74d
Original author: huanggd @oppo-source

Change-Id: I08bbbdd49c8764a3180c0d7a9197d2b9c8112d81
Signed-off-by: Luis Cruz <ljc2491@gmail.com>
Merge changes I08bbbdd4,I00d90ce3 into cm-11.0

* changes:
  kswapd: Introduce congestion_wait_kswapd
  usb: otg:  Retry putting the OTG PHY in low power mode.