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>
This commit is contained in:
commit
e0c7a4a1a6
|
@ -1391,7 +1391,6 @@ static irqreturn_t ican3_irq(int irq, void *dev_id)
|
||||||
*/
|
*/
|
||||||
static int ican3_reset_module(struct ican3_dev *mod)
|
static int ican3_reset_module(struct ican3_dev *mod)
|
||||||
{
|
{
|
||||||
u8 val = 1 << mod->num;
|
|
||||||
unsigned long start;
|
unsigned long start;
|
||||||
u8 runold, runnew;
|
u8 runold, runnew;
|
||||||
|
|
||||||
|
@ -1405,8 +1404,7 @@ static int ican3_reset_module(struct ican3_dev *mod)
|
||||||
runold = ioread8(mod->dpm + TARGET_RUNNING);
|
runold = ioread8(mod->dpm + TARGET_RUNNING);
|
||||||
|
|
||||||
/* reset the module */
|
/* reset the module */
|
||||||
iowrite8(val, &mod->ctrl->reset_assert);
|
iowrite8(0x00, &mod->dpmctrl->hwreset);
|
||||||
iowrite8(val, &mod->ctrl->reset_deassert);
|
|
||||||
|
|
||||||
/* wait until the module has finished resetting and is running */
|
/* wait until the module has finished resetting and is running */
|
||||||
start = jiffies;
|
start = jiffies;
|
||||||
|
|
|
@ -984,12 +984,12 @@ static int __devexit ti_hecc_remove(struct platform_device *pdev)
|
||||||
struct net_device *ndev = platform_get_drvdata(pdev);
|
struct net_device *ndev = platform_get_drvdata(pdev);
|
||||||
struct ti_hecc_priv *priv = netdev_priv(ndev);
|
struct ti_hecc_priv *priv = netdev_priv(ndev);
|
||||||
|
|
||||||
|
unregister_candev(ndev);
|
||||||
clk_disable(priv->clk);
|
clk_disable(priv->clk);
|
||||||
clk_put(priv->clk);
|
clk_put(priv->clk);
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
iounmap(priv->base);
|
iounmap(priv->base);
|
||||||
release_mem_region(res->start, resource_size(res));
|
release_mem_region(res->start, resource_size(res));
|
||||||
unregister_candev(ndev);
|
|
||||||
free_candev(ndev);
|
free_candev(ndev);
|
||||||
platform_set_drvdata(pdev, NULL);
|
platform_set_drvdata(pdev, NULL);
|
||||||
|
|
||||||
|
|
Reference in New Issue