Use PLA 0xe000 bit 8 to check if disabling ALDPS is finished.

Signed-off-by: Hayes Wang <hayesw...@realtek.com>
---
 drivers/net/usb/r8152.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index f43b7a8..204f4b2 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -2836,9 +2836,15 @@ static void r8153_aldps_en(struct r8152 *tp, bool enable)
                data |= EN_ALDPS;
                ocp_reg_write(tp, OCP_POWER_CFG, data);
        } else {
+               int i;
+
                data &= ~EN_ALDPS;
                ocp_reg_write(tp, OCP_POWER_CFG, data);
-               msleep(20);
+               for (i = 0; i < 20; i++) {
+                       usleep_range(1000, 2000);
+                       if (ocp_read_word(tp, MCU_TYPE_PLA, 0xe000) & 0x0100)
+                               break;
+               }
        }
 }
 
-- 
2.7.4

Reply via email to