clk_enable()和 clk_prepare_enable()区别

名称中含有prepare、unprepare字符串的API是内核后来才加入的,过去只有
clk_enable()和clk_disable()。只有clk_enable()和clk_disable()带来的问题是,有时候,某些硬件
使能/禁止时钟可能会引起睡眠以使得使能/禁止不能在原子上下文进行。加上prepare后,把过去的
clk_enable()分解成不可在原子上下文调用的clk_prepare()(该函数可能睡眠)和可以在原子上下文调
用的clk_enable()。而clk_prepare_enable()则同时完成准备和使能的工作,当然也只能在可能睡眠的上
下文调用该API。

你可能感兴趣的:(Linux驱动开发,ARM,c语言,驱动开发)