Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bef4b39 authored by Daniele Venzano's avatar Daniele Venzano Committed by Jeff Garzik
Browse files

Fix Wake on LAN support in sis900



Fix two bugs in the WoL implementation of sis900. The first causes
hangs on some system on driver load, the second causes troubles
when disabling WoL support.  Both fixes are one liner and really
simple.

Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarDaniele Venzano <venza@brownhat.org>
parent a0124d78
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -540,7 +540,7 @@ static int __devinit sis900_probe(struct pci_dev *pci_dev,
	printk("%2.2x.\n", net_dev->dev_addr[i]);

	/* Detect Wake on Lan support */
	ret = inl(CFGPMC & PMESP);
	ret = (inl(net_dev->base_addr + CFGPMC) & PMESP) >> 27;
	if (netif_msg_probe(sis_priv) && (ret & PME_D3C) == 0)
		printk(KERN_INFO "%s: Wake on LAN only available from suspend to RAM.", net_dev->name);

@@ -2040,7 +2040,7 @@ static int sis900_set_wol(struct net_device *net_dev, struct ethtool_wolinfo *wo

	if (wol->wolopts == 0) {
		pci_read_config_dword(sis_priv->pci_dev, CFGPMCSR, &cfgpmcsr);
		cfgpmcsr |= ~PME_EN;
		cfgpmcsr &= ~PME_EN;
		pci_write_config_dword(sis_priv->pci_dev, CFGPMCSR, cfgpmcsr);
		outl(pmctrl_bits, pmctrl_addr);
		if (netif_msg_wol(sis_priv))