Patch "can: ti_hecc: add missing prepare and unprepare of the clock" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
can: ti_hecc: add missing prepare and unprepare of the clock
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
can-ti_hecc-add-missing-prepare-and-unprepare-of-the-clock.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
befa60113ce7ea270cb51eada28443ca2756f480Mon Sep 17 00:00:00 2001
From: Yegor Yefremov <[email protected]>
Date: Wed, 18 Jan 2017 11:35:57 +0100
Subject: can: ti_hecc: add missing prepare and unprepare of the clock
From: Yegor Yefremov <[email protected]>
commit befa60113ce7ea270cb51eada28443ca2756f480 upstream.
In order to make the driver work with the common clock framework, this patch converts the clk_enable()/clk_disable() to clk_prepare_enable()/clk_disable_unprepare().
Also add error checking for clk_prepare_enable().
--- drivers/net/can/ti_hecc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
drivers/net/can/ti_hecc.c +12 -4
@@ -948,7 +948,12 @@ static int ti_hecc_probe(struct platformnetif_napi_add (ndev, &priv->napi, ti_hecc_rx_poll,HECC_DEF_NAPI_WEIGHT ); -clk_enable (priv->clk); + err =clk_prepare_enable (priv->clk); +if (err) { +dev_err (&pdev->dev,"clk_prepare_enable() failed\n" ); + goto probe_exit_clk; + } + err =register_candev (ndev);if (err) {dev_err (&pdev->dev,"register_candev() failed\n" );
@@ -981,7 +986,7 @@ static int ti_hecc_remove(struct platforstruct ti_hecc_priv *priv =netdev_priv (ndev);unregister_candev (ndev); -clk_disable (priv->clk); +clk_disable_unprepare (priv->clk);clk_put (priv->clk); res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );iounmap (priv->base);
@@ -1006,7 +1011,7 @@ static int ti_hecc_suspend(struct platfohecc_set_bit (priv,HECC_CANMC ,HECC_CANMC_PDR ); priv->can.state =CAN_STATE_SLEEPING ; -clk_disable (priv->clk); +clk_disable_unprepare (priv->clk);return 0 ; }
@@ -1015,8 +1020,11 @@ static int ti_hecc_resume(struct platfor {struct net_device *dev =platform_get_drvdata (pdev);struct ti_hecc_priv *priv =netdev_priv (dev); +int err; -clk_enable (priv->clk); + err =clk_prepare_enable (priv->clk); +if (err) +return err;hecc_clear_bit (priv,HECC_CANMC ,HECC_CANMC_PDR ); priv->can.state =CAN_STATE_ERROR_ACTIVE ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/can-ti_hecc-add-missing-prepare-and-unprepare-of-the-clock.patch