int register_c_can_dev(struct net_device *dev) { struct c_can_priv *priv = netdev_priv(dev); int err; /* Deactivate pins to prevent DRA7 DCAN IP from being * stuck in transition when module is disabled. * Pins are activated in c_can_start() and deactivated * in c_can_stop() */ pinctrl_pm_select_sleep_state(dev->dev.parent); c_can_pm_runtime_enable(priv); dev->flags |= IFF_ECHO; /* we support local echo */ dev->netdev_ops = &c_can_netdev_ops; err = register_candev(dev); if (err) c_can_pm_runtime_disable(priv); else devm_can_led_init(dev); return err; }
int register_c_can_dev(struct net_device *dev) { struct c_can_priv *priv = netdev_priv(dev); int err; c_can_pm_runtime_enable(priv); dev->flags |= IFF_ECHO; /* we support local echo */ dev->netdev_ops = &c_can_netdev_ops; err = register_candev(dev); if (err) c_can_pm_runtime_disable(priv); else devm_can_led_init(dev); return err; }