On Mon, Aug 03, 2015 at 09:29:54AM +0800, Gao Pan wrote:
> In our former i2c driver, i2c clk is enabled and disabled in
> xfer function, which contributes to power saving. However,
> the clk enable process brings a busy wait delay until the core
> is stable. As a result, the performance is sacrificed.
> 
> To weigh the power consumption and i2c bus performance, runtime
> pm is the good solution for it. The clk is enabled when a i2c
> transfer starts, and disabled after a specifically defined delay.
> 
> Without the patch the test case (many eeprom reads) executes with approx:
> real 1m7.735s
> user 0m0.488s
> sys 0m20.040s
> 
> With the patch the same test case (many eeprom reads) executes with approx:
> real 0m54.241s
> user 0m0.440s
> sys 0m5.920s
> 
> From the test result, the patch get better performance.
> 
> ---
> V2:
> As Uwe Kleine-König's suggestion, the version do below changes:
> - call clk_prepare_enable in probe to avoid never enabling clock
>   if CONFIG_PM is disabled
> - enable clock before request IRQ in probe
> - remove the pm staff in i2c_imx_isr
> 
> V3:
> - pm_runtime_get_sync returns < 0 as error
> 
> Signed-off-by: Fugang Duan <[email protected]>
> Signed-off-by: Gao Pan <[email protected]>

The signed-off lines should be before the "---" line.

Applied to for-next, thanks!


> ---

A second "---" line is not a good idea. Many workflow scripts will
break.

>  static struct platform_driver i2c_imx_driver = {
> -     .probe = i2c_imx_probe,
> -     .remove = i2c_imx_remove,
> -     .driver = {
> +     .probe          = i2c_imx_probe,
> +     .remove         = i2c_imx_remove,
> +     .driver         = {
>               .name   = DRIVER_NAME,
> +             .pm     = I2C_IMX_PM_OPS,
>               .of_match_table = i2c_imx_dt_ids,
>       },
>       .id_table       = imx_i2c_devtype,

I fixed this to use one space as an indentation and no tabs. Experience
shows this is more future-proof.

Thanks,

   Wolfram

Attachment: signature.asc
Description: Digital signature

Reply via email to