Ben Gardiner <[email protected]> writes:

> When the RMII PHY on the UI board is enabled with CONFIG_DA850_UI_RMII then 
> then
> following will be printed to the console when warnings are also enabled:
>
> WARNING: at drivers/gpio/gpiolib.c:1567 __gpio_set_value+0x4c/0x5c()
> Modules linked in:
> [<c002c6ac>] (unwind_backtrace+0x0/0xf8) from [<c003b48c>] 
> (warn_slowpath_common+0x4c/0x64)
> [<c003b48c>] (warn_slowpath_common+0x4c/0x64) from [<c003b4c0>] 
> (warn_slowpath_null+0x1c/0x24)
> [<c003b4c0>] (warn_slowpath_null+0x1c/0x24) from [<c01aed60>] 
> (__gpio_set_value+0x4c/0x5c)
> [<c01aed60>] (__gpio_set_value+0x4c/0x5c) from [<c0033bd4>] 
> (da850_evm_ui_expander_setup+0x1e4/0x2
> 44)
> [<c0033bd4>] (da850_evm_ui_expander_setup+0x1e4/0x244) from [<c02e2e1c>] 
> (pca953x_probe+0x1f8/0x29
> 0)
> <snip>
>
> Traced the WARN_ON to the gpio_set_value(rmii_sel,0) call in
> da850_evm_setup_emac_rmii. Replacing the call with the _cansleep variant
> results in no more warning.

OK, looks like GPIOs on the GPIO expander used for the UI expander
(pca953x) are of the 'can_sleep' variety, so any users of these should
be cansleep.

I suspect you'll still see the similar warnings in the 'teardown' path,
since those on the same expander.

Care to update/test that path as well?

Also, can you update the subject to something like:

      da850-evm: UI expander GPIO usage can sleep, use _cansleep

Thanks,

Kevin

> Signed-off-by: Ben Gardiner <[email protected]>
> Reviewed-by: Chris Cordahi <[email protected]>
>
> ---
>
>  arch/arm/mach-davinci/board-da850-evm.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/board-da850-evm.c 
> b/arch/arm/mach-davinci/board-da850-evm.c
> index c6e11c6..e8e54ff 100644
> --- a/arch/arm/mach-davinci/board-da850-evm.c
> +++ b/arch/arm/mach-davinci/board-da850-evm.c
> @@ -266,7 +266,7 @@ static inline void da850_evm_setup_emac_rmii(int rmii_sel)
>       struct davinci_soc_info *soc_info = &davinci_soc_info;
>  
>       soc_info->emac_pdata->rmii_en = 1;
> -     gpio_set_value(rmii_sel, 0);
> +     gpio_set_value_cansleep(rmii_sel, 0);
>  }
>  #else
>  static inline void da850_evm_setup_emac_rmii(int rmii_sel) { }
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to