All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/2] misc: uclass: Add enable/disable function
Date: Thu, 3 May 2018 13:02:04 -0600	[thread overview]
Message-ID: <CAPnjgZ0uJap0EOq_7ZUshfC7du6ZRcrw0R08K8YB6OnpZ-_o5A@mail.gmail.com> (raw)
In-Reply-To: <20180427125216.936-1-mario.six@gdsys.cc>

Hi Mario,

On 27 April 2018 at 06:52, Mario Six <mario.six@gdsys.cc> wrote:
> Add generic enable/disable function to the misc uclass.
>
> Signed-off-by: Mario Six <mario.six@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.

This makes be wonder whether we should have this as a concept
understood by the DM core. But perhaps not until we have more use
cases. So far I know of only display that needs this.

> + *
> + * @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
> + */
> +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

How about returning the old state (0 or 1)?

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

Regards,
Simon

  parent reply	other threads:[~2018-05-03 19:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-27 12:52 [U-Boot] [PATCH v2 1/2] misc: uclass: Add enable/disable function Mario Six
2018-04-27 12:52 ` [U-Boot] [PATCH v2 2/2] misc: Add gdsys_ioep driver Mario Six
2018-04-27 13:39 ` [U-Boot] [PATCH v2 1/2] misc: uclass: Add enable/disable function Michal Simek
2018-05-03 19:02 ` Simon Glass [this message]
2018-05-04  9:01   ` Mario Six
2018-05-04 21:38     ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ0uJap0EOq_7ZUshfC7du6ZRcrw0R08K8YB6OnpZ-_o5A@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.