From: bertrand.cachet@heig-vd.ch Date: Tue, 15 Nov 2011 03:40:53 +0000 (+0000) Subject: Improve Power Management in SMC911X driver. X-Git-Tag: v2011.12-rc1~132 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3c8849df5f2954944578cd2e2af31c001283dbf2;p=u-boot Improve Power Management in SMC911X driver. device is already in *normal* (D0) mode => it doesn't need to be wake-up. With this patch, we only wake-up (writing on TEST_BYTE register) if PM_MODE bits of PM_CTRL register is in sleep (D1/D2) mode. Signed-off-by: Bertrand Cachet --- diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h index 8ce08a91e2..a290073bb8 100644 --- a/drivers/net/smc911x.h +++ b/drivers/net/smc911x.h @@ -471,8 +471,11 @@ static void smc911x_reset(struct eth_device *dev) { int timeout; - /* Take out of PM setting first */ - if (smc911x_reg_read(dev, PMT_CTRL) & PMT_CTRL_READY) { + /* + * Take out of PM setting first + * Device is already wake up if PMT_CTRL_READY bit is set + */ + if ((smc911x_reg_read(dev, PMT_CTRL) & PMT_CTRL_READY) == 0) { /* Write to the bytetest will take out of powerdown */ smc911x_reg_write(dev, BYTE_TEST, 0x0);