Re: [PATCH 3/3 v2] dl2k: Implement suspend

Francois Romieu
2015-11-19T00:56:05Z

Ondrej Zary <linux@rainbow-software.org> :
[...]
> diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c
> index 9e9baa0..28a96d3 100644
> --- a/drivers/net/ethernet/dlink/dl2k.c
> +++ b/drivers/net/ethernet/dlink/dl2k.c
[...]
> @@ -1824,11 +1831,55 @@ rio_remove1 (struct pci_dev *pdev)
> }
> }
>
> +#ifdef CONFIG_PM_SLEEP
> +static int rio_suspend(struct device *device)
> +{
> + struct net_device *dev = dev_get_drvdata(device);
> + struct netdev_private *np = netdev_priv(dev);
> +
> + if (!netif_running(dev))
> + return 0;
> +
> + netif_device_detach(dev);
> + del_timer_sync(&np->timer);
> + rio_hw_stop(dev);
> +
> + return 0;
> +}
> +
> +static int rio_resume(struct device *device)
> +{
> + struct net_device *dev = dev_get_drvdata(device);
> + struct netdev_private *np = netdev_priv(dev);
> +
> + if (!netif_running(dev))
> + return 0;
> +
> + rio_reset_ring(np);

Almost. You should give the Rx/Tx descriptor 'status' word some love.

--
Ueimor