Re: [PATCH] HID-PICOLCD: Dummy hid-picolcd functions should return error code

From: Bruno PrÃmont
Date: Wed Jun 22 2016 - 03:42:52 EST


Hi Arvind,

I can only NACK this patch as it would cause the driver to refuse
probe()ing if any of the features are disabled in kernel configuration.

Have a look at the callers in hid-picolcd_code.c, if any of those
functions does return an error the probe function aborts with an error.


Your commit message talks about allowing compilation if features
are disabled, so which compilation errors do you get that changing
those return codes "fix"?
If you don't have such errors, I don't get your motivations for the
change out of your commit message.

Regards,
Bruno


On Wed, 22 Jun 2016 00:08:40 +0530 Arvind Yadav wrote:
> - inline picolcd_fb_reset and picolcd_init_framebuffer stub simply
> allows compilation on systems with CONFIG_HID_PICOLCD_FB disabled.
> - inline picolcd_init_backlight and picolcd_resume_backlight stub
> simply allows compilation on systems with CONFIG_HID_PICOLCD_BACKLIGHT
> disabled.
> - inline picolcd_init_lcd and picolcd_resume_lcd stub simply allows
> compilation on systems with CONFIG_HID_PICOLCD_LCD disabled.
> - inline picolcd_init_leds stub simply allows compilation on systems
> with CONFIG_HID_PICOLCD_LEDS disabled.
> - inline picolcd_init_cir stub simply allows compilation on systems
> with CONFIG_HID_PICOLCD_CIR disabled.
>
> Signed-off-by: Arvind Yadav <arvind.yadav.cs@xxxxxxxxx>
> ---
> drivers/hid/hid-picolcd.h | 18 ++++++++++--------
> 1 file changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/hid/hid-picolcd.h b/drivers/hid/hid-picolcd.h
> index e56d847..7e6c10a 100644
> --- a/drivers/hid/hid-picolcd.h
> +++ b/drivers/hid/hid-picolcd.h
> @@ -17,6 +17,8 @@
> * along with this software. If not see <http://www.gnu.org/licenses/>. *
> ***************************************************************************/
>
> +#include <linux/errno.h>
> +
> #define PICOLCD_NAME "PicoLCD (graphic)"
>
> /* Report numbers */
> @@ -192,11 +194,11 @@ void picolcd_fb_refresh(struct picolcd_data *data);
> #else
> static inline int picolcd_fb_reset(struct picolcd_data *data, int clear)
> {
> - return 0;
> + return -ENODEV;
> }
> static inline int picolcd_init_framebuffer(struct picolcd_data *data)
> {
> - return 0;
> + return -ENOMEM;
> }
> static inline void picolcd_exit_framebuffer(struct picolcd_data *data)
> {
> @@ -221,14 +223,14 @@ void picolcd_suspend_backlight(struct picolcd_data *data);
> static inline int picolcd_init_backlight(struct picolcd_data *data,
> struct hid_report *report)
> {
> - return 0;
> + return -ENODEV;
> }
> static inline void picolcd_exit_backlight(struct picolcd_data *data)
> {
> }
> static inline int picolcd_resume_backlight(struct picolcd_data *data)
> {
> - return 0;
> + return -ENODEV;
> }
> static inline void picolcd_suspend_backlight(struct picolcd_data *data)
> {
> @@ -248,14 +250,14 @@ int picolcd_resume_lcd(struct picolcd_data *data);
> static inline int picolcd_init_lcd(struct picolcd_data *data,
> struct hid_report *report)
> {
> - return 0;
> + return -ENODEV;
> }
> static inline void picolcd_exit_lcd(struct picolcd_data *data)
> {
> }
> static inline int picolcd_resume_lcd(struct picolcd_data *data)
> {
> - return 0;
> + return -ENODEV;
> }
> #endif /* CONFIG_HID_PICOLCD_LCD */
>
> @@ -271,7 +273,7 @@ void picolcd_leds_set(struct picolcd_data *data);
> static inline int picolcd_init_leds(struct picolcd_data *data,
> struct hid_report *report)
> {
> - return 0;
> + return -ENODEV;
> }
> static inline void picolcd_exit_leds(struct picolcd_data *data)
> {
> @@ -297,7 +299,7 @@ static inline int picolcd_raw_cir(struct picolcd_data *data,
> }
> static inline int picolcd_init_cir(struct picolcd_data *data, struct hid_report *report)
> {
> - return 0;
> + return -ENOMEM;
> }
> static inline void picolcd_exit_cir(struct picolcd_data *data)
> {