aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-09-21 13:49:59 -0400
committerDavid S. Miller <davem@davemloft.net>2012-09-21 13:50:16 -0400
commite0c7a4a1a6c4ace4a176b95cb5089f55452c625e (patch)
treed35dc4bb27212b27a9696d43f5b7b50a67396bbc /drivers
parentdc9c9759ebc65d886453c335b2b5be39f87ab01e (diff)
parentab04c8bd423edb03e2148350a091836c196107fc (diff)
Merge branch 'fixes-for-3.6' of git://gitorious.org/linux-can/linux-can
Marc Kleine-Budde says: ==================== two patches for the v3.6 release cycle. Ira W. Snyder fixed support for the older version of the Janz CMOD-IO Carrier Board. I found and fixed an oops in the ti_hecc driver, which occurs when removing the module if the network interface is still open. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/can/janz-ican3.c4
-rw-r--r--drivers/net/can/ti_hecc.c2
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c
index 98ee43819911..7edadee487ba 100644
--- a/drivers/net/can/janz-ican3.c
+++ b/drivers/net/can/janz-ican3.c
@@ -1391,7 +1391,6 @@ static irqreturn_t ican3_irq(int irq, void *dev_id)
1391 */ 1391 */
1392static int ican3_reset_module(struct ican3_dev *mod) 1392static int ican3_reset_module(struct ican3_dev *mod)
1393{ 1393{
1394 u8 val = 1 << mod->num;
1395 unsigned long start; 1394 unsigned long start;
1396 u8 runold, runnew; 1395 u8 runold, runnew;
1397 1396
@@ -1405,8 +1404,7 @@ static int ican3_reset_module(struct ican3_dev *mod)
1405 runold = ioread8(mod->dpm + TARGET_RUNNING); 1404 runold = ioread8(mod->dpm + TARGET_RUNNING);
1406 1405
1407 /* reset the module */ 1406 /* reset the module */
1408 iowrite8(val, &mod->ctrl->reset_assert); 1407 iowrite8(0x00, &mod->dpmctrl->hwreset);
1409 iowrite8(val, &mod->ctrl->reset_deassert);
1410 1408
1411 /* wait until the module has finished resetting and is running */ 1409 /* wait until the module has finished resetting and is running */
1412 start = jiffies; 1410 start = jiffies;
diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
index 527dbcf95335..9ded21e79db5 100644
--- a/drivers/net/can/ti_hecc.c
+++ b/drivers/net/can/ti_hecc.c
@@ -984,12 +984,12 @@ static int __devexit ti_hecc_remove(struct platform_device *pdev)
984 struct net_device *ndev = platform_get_drvdata(pdev); 984 struct net_device *ndev = platform_get_drvdata(pdev);
985 struct ti_hecc_priv *priv = netdev_priv(ndev); 985 struct ti_hecc_priv *priv = netdev_priv(ndev);
986 986
987 unregister_candev(ndev);
987 clk_disable(priv->clk); 988 clk_disable(priv->clk);
988 clk_put(priv->clk); 989 clk_put(priv->clk);
989 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 990 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
990 iounmap(priv->base); 991 iounmap(priv->base);
991 release_mem_region(res->start, resource_size(res)); 992 release_mem_region(res->start, resource_size(res));
992 unregister_candev(ndev);
993 free_candev(ndev); 993 free_candev(ndev);
994 platform_set_drvdata(pdev, NULL); 994 platform_set_drvdata(pdev, NULL);
995 995