于 2014年02月27日 17:16, Philippe De Muyter 写道: > Currently, at module removal, one gets the following warnings: > ------------[ cut here ]------------ > WARNING: at drivers/clk/clk.c:780 clk_disable+0x18/0x24() > Modules linked in: spi_imx(-) [last unloaded: ev76c560] > CPU: 1 PID: 16337 Comm: rmmod Tainted: G W 3.10.17-80548-g90191eb-dirty #33 > [<80013b4c>] (unwind_backtrace+0x0/0xf8) from [<800115dc>] (show_stack+0x10/0x14) > [<800115dc>] (show_stack+0x10/0x14) from [<800257b8>] (warn_slowpath_common+0x4c/0x68) > [<800257b8>] (warn_slowpath_common+0x4c/0x68) from [<800257f0>] (warn_slowpath_null+0x1c/0x24) > [<800257f0>] (warn_slowpath_null+0x1c/0x24) from [<803f60ec>] (clk_disable+0x18/0x24) > [<803f60ec>] (clk_disable+0x18/0x24) from [<7f02c9cc>] (spi_imx_remove+0x54/0x9c [spi_imx]) > [<7f02c9cc>] (spi_imx_remove+0x54/0x9c [spi_imx]) from [<8025868c>] (platform_drv_remove+0x18/0x1c) > [<8025868c>] (platform_drv_remove+0x18/0x1c) from [<80256f60>] (__device_release_driver+0x70/0xcc) > [<80256f60>] (__device_release_driver+0x70/0xcc) from [<80257770>] (driver_detach+0xcc/0xd0) > [<80257770>] (driver_detach+0xcc/0xd0) from [<80256d90>] (bus_remove_driver+0x7c/0xc0) > [<80256d90>] (bus_remove_driver+0x7c/0xc0) from [<80068668>] (SyS_delete_module+0x144/0x1f8) > [<80068668>] (SyS_delete_module+0x144/0x1f8) from [<8000e080>] (ret_fast_syscall+0x0/0x30) > ---[ end trace 1f5df9ad54996300 ]--- > ------------[ cut here ]------------ > WARNING: at drivers/clk/clk.c:780 clk_disable+0x18/0x24() > Modules linked in: spi_imx(-) [last unloaded: ev76c560] > CPU: 1 PID: 16337 Comm: rmmod Tainted: G W 3.10.17-80548-g90191eb-dirty #33 > [<80013b4c>] (unwind_backtrace+0x0/0xf8) from [<800115dc>] (show_stack+0x10/0x14) > [<800115dc>] (show_stack+0x10/0x14) from [<800257b8>] (warn_slowpath_common+0x4c/0x68) > [<800257b8>] (warn_slowpath_common+0x4c/0x68) from [<800257f0>] (warn_slowpath_null+0x1c/0x24) > [<800257f0>] (warn_slowpath_null+0x1c/0x24) from [<803f60ec>] (clk_disable+0x18/0x24) > [<803f60ec>] (clk_disable+0x18/0x24) from [<7f02c9e8>] (spi_imx_remove+0x70/0x9c [spi_imx]) > [<7f02c9e8>] (spi_imx_remove+0x70/0x9c [spi_imx]) from [<8025868c>] (platform_drv_remove+0x18/0x1c) > [<8025868c>] (platform_drv_remove+0x18/0x1c) from [<80256f60>] (__device_release_driver+0x70/0xcc) > [<80256f60>] (__device_release_driver+0x70/0xcc) from [<80257770>] (driver_detach+0xcc/0xd0) > [<80257770>] (driver_detach+0xcc/0xd0) from [<80256d90>] (bus_remove_driver+0x7c/0xc0) > [<80256d90>] (bus_remove_driver+0x7c/0xc0) from [<80068668>] (SyS_delete_module+0x144/0x1f8) > [<80068668>] (SyS_delete_module+0x144/0x1f8) from [<8000e080>] (ret_fast_syscall+0x0/0x30) > ---[ end trace 1f5df9ad54996301 ]--- > > Since commit 9e556dcc55774c9a1032f32baa0e5cfafede8b70, "spi: spi-imx: only > enable the clocks when we start to transfer a message", clocks are always > disabled except when transmitting messages. There is thus no need to > disable them at module removal. > > Signed-off-by: Philippe De Muyter <phdm@xxxxxxxxx> > Cc: Huang Shijie <b32955@xxxxxxxxxxxxx> > Cc: Mark Brown <broonie@xxxxxxxxxx> > Cc: Shawn Guo <shawn.guo@xxxxxxxxxx> > --- > Change since v1: > keep the 'unprepare' part (Thanks Huang) > drivers/spi/spi-imx.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index a5474ef..47f15d9 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -948,8 +948,8 @@ static int spi_imx_remove(struct platform_device *pdev) > spi_bitbang_stop(&spi_imx->bitbang); > > writel(0, spi_imx->base + MXC_CSPICTRL); > - clk_disable_unprepare(spi_imx->clk_ipg); > - clk_disable_unprepare(spi_imx->clk_per); > + clk_unprepare(spi_imx->clk_ipg); > + clk_unprepare(spi_imx->clk_per); > spi_master_put(master); > > return 0; Acked-by: Huang Shijie <b32955@xxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html