From: Quentin Schulz Date: Fri, 5 May 2017 13:50:31 +0000 (+0200) Subject: can: m_can: make m_can_start and m_can_stop symmetric X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8a3f3f24a829c80d8d451e75e887912c3905dfd0;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git can: m_can: make m_can_start and m_can_stop symmetric This moves clocks gating outside of the m_can_stop function as the m_can_start function does not (and cannot, at least in current implementation) ungate clocks. This way, both functions can now be used symmetrically. Signed-off-by: Quentin Schulz Signed-off-by: Marc Kleine-Budde --- diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 5da1bdb202a3..6115dede671e 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -1324,9 +1324,6 @@ static void m_can_stop(struct net_device *dev) /* disable all interrupts */ m_can_disable_all_interrupts(priv); - clk_disable_unprepare(priv->hclk); - clk_disable_unprepare(priv->cclk); - /* set the state as STOPPED */ priv->can.state = CAN_STATE_STOPPED; } @@ -1338,6 +1335,8 @@ static int m_can_close(struct net_device *dev) netif_stop_queue(dev); napi_disable(&priv->napi); m_can_stop(dev); + clk_disable_unprepare(priv->hclk); + clk_disable_unprepare(priv->cclk); free_irq(dev->irq, dev); close_candev(dev); can_led_event(dev, CAN_LED_EVENT_STOP);