[U-Boot] [PATCH v2 1/2] misc: uclass: Add enable/disable function

Michal Simek michal.simek at xilinx.com
Fri Apr 27 13:39:37 UTC 2018


On 27.4.2018 14:52, Mario Six wrote:
> Add generic enable/disable function to the misc uclass.
> 
> Signed-off-by: Mario Six <mario.six at gdsys.cc>
> ---
> 
> v1 -> v2:
> * Merged the two functions into one function
> * Explained the semantics of enabling/disabling more throughly
> 
> ---
>  drivers/misc/misc-uclass.c | 10 ++++++++++
>  include/misc.h             | 25 +++++++++++++++++++++++++
>  2 files changed, 35 insertions(+)
> 
> diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c
> index d9eea3dac5..0e3e0e8bf7 100644
> --- a/drivers/misc/misc-uclass.c
> +++ b/drivers/misc/misc-uclass.c
> @@ -56,6 +56,16 @@ int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
>  	return ops->call(dev, msgid, tx_msg, tx_size, rx_msg, rx_size);
>  }
>  
> +int misc_set_enabled(struct udevice *dev, bool val)
> +{
> +	const struct misc_ops *ops = device_get_ops(dev);
> +
> +	if (!ops->set_enabled)
> +		return -ENOSYS;
> +
> +	return ops->set_enabled(dev, val);
> +}
> +
>  UCLASS_DRIVER(misc) = {
>  	.id		= UCLASS_MISC,
>  	.name		= "misc",
> diff --git a/include/misc.h b/include/misc.h
> index 03ef55cdc8..04a4b65155 100644
> --- a/include/misc.h
> +++ b/include/misc.h
> @@ -58,6 +58,22 @@ int misc_ioctl(struct udevice *dev, unsigned long request, void *buf);
>  int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
>  	      void *rx_msg, int rx_size);
>  
> +/*
> + * Enable or disable a device.
> + *
> + * The semantics of "disable" and "enable" should be understood here as
> + * activating or deactivating the device's primary function, hence a "disabled"
> + * device should be dormant, but still answer to commands and queries.
> + *
> + * A probed device may start in a disabled or enabled state, depending on the
> + * driver and hardware.
> + *
> + * @dev: the device to enable or disable.
> + * @val: the flag that tells the driver to either enable or disable the device.
> + * @return: 0 if OK, -ve on error
> + */


Nit: comment above suggest that you want to use kernel-doc format but
unfortunately it is not. It is easy to convert it to that.

I know that this the same style as is done in the whole file but there
is no reason to follow incorrect style if you know how to do it right
and ./script/kernel-doc helps you with validation.


> +int misc_set_enabled(struct udevice *dev, bool val);
> +
>  /*
>   * struct misc_ops - Driver model Misc operations
>   *
> @@ -109,6 +125,15 @@ struct misc_ops {
>  	 */
>  	int (*call)(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
>  		    void *rx_msg, int rx_size);
> +	/*
> +	 * Enable or disable a device, optional.
> +	 *
> +	 * @dev: the device to enable.
> +	 * @val: the flag that tells the driver to either enable or disable the
> +	 *	 device.
> +	 * @return: 0 if OK, -ve on error
> +	 */

The same here.

> +	int (*set_enabled)(struct udevice *dev, bool val);
>  };
>  
>  #endif	/* _MISC_H_ */
> 


M


More information about the U-Boot mailing list