1 diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
5 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
6 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
7 @@ -3123,6 +3123,34 @@ static int bcmgenet_set_wol(struct net_device *dev,
8 umac->mpd_ctrl |= MPD_PW_EN;
11 + if (pDevCtrl->phyType == BRCM_PHY_TYPE_EXT_RGMII)
13 + if(wol->wolopts & WAKE_MAGIC)
15 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
16 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006e);
17 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, dev->dev_addr[1]<<8 | dev->dev_addr[0]);
18 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, dev->dev_addr[3]<<8 | dev->dev_addr[2]);
19 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x17, dev->dev_addr[5]<<8 | dev->dev_addr[4]);
20 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
21 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
22 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
23 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x1000);
24 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
25 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x19, 0x0001);
26 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
31 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
32 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
33 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
34 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x0000);
35 + pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
39 device_set_wakeup_enable(&dev->dev, wol->wolopts);
40 pDevCtrl->wolopts = wol->wolopts;
42 diff --git a/kernel/printk.c b/kernel/printk.c
43 index 1af3691..b0b73ff 100644
46 @@ -1125,11 +1125,21 @@ MODULE_PARM_DESC(console_suspend, "suspend console during suspend"
48 * This disables printk() while we go into suspend states
50 +void (*brcm_s3_cb)(void);
53 +void register_brcm_s3_cb(void (*cb)(void))
57 +EXPORT_SYMBOL(register_brcm_s3_cb);
59 void suspend_console(void)
61 if (!console_suspend_enabled)
63 printk("Suspending console(s) (use no_console_suspend to debug)\n");
64 + if(brcm_s3_cb) brcm_s3_cb();
66 console_suspended = 1;