All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Gaignard <benjamin.gaignard@linaro.org>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: Jonathan Cameron <jic23@jic23.retrosnub.co.uk>,
	Alexandre Torgue <alexandre.torgue@st.com>,
	linux-iio@vger.kernel.org,
	Patrick Havelange <patrick.havelange@essensium.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Fabrice Gasnier <fabrice.gasnier@st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 1/7] counter: Simplify the count_read and count_write callbacks
Date: Wed, 18 Sep 2019 10:48:51 +0200	[thread overview]
Message-ID: <CA+M3ks45XTRjED2+2FAwcaG96YSszu2BZshTA7DSGscQQzAOFQ@mail.gmail.com> (raw)
In-Reply-To: <f7969048e5db977cc6cc9daa8d32b170cf9f4c17.1568792697.git.vilhelm.gray@gmail.com>

Le mer. 18 sept. 2019 à 09:53, William Breathitt Gray
<vilhelm.gray@gmail.com> a écrit :
>
> The count_read and count_write callbacks are simplified to pass val as
> unsigned long rather than as an opaque data structure. The opaque
> counter_count_read_value and counter_count_write_value structures,
> counter_count_value_type enum, and relevant counter_count_read_value_set
> and counter_count_write_value_get functions, are removed as they are no
> longer used.
>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>

Hi William,

This first patch break the compilation because you remove some
structure needed for the drivers.
You should merge all the serie in 1 patch to avoid that.

Benjamin

> ---
>  drivers/counter/counter.c | 66 +++++----------------------------------
>  include/linux/counter.h   | 43 +++----------------------
>  2 files changed, 12 insertions(+), 97 deletions(-)
>
> diff --git a/drivers/counter/counter.c b/drivers/counter/counter.c
> index 106bc7180cd8..1d08f1437b1b 100644
> --- a/drivers/counter/counter.c
> +++ b/drivers/counter/counter.c
> @@ -246,60 +246,6 @@ void counter_signal_read_value_set(struct counter_signal_read_value *const val,
>  }
>  EXPORT_SYMBOL_GPL(counter_signal_read_value_set);
>
> -/**
> - * counter_count_read_value_set - set counter_count_read_value data
> - * @val:       counter_count_read_value structure to set
> - * @type:      property Count data represents
> - * @data:      Count data
> - *
> - * This function sets an opaque counter_count_read_value structure with the
> - * provided Count data.
> - */
> -void counter_count_read_value_set(struct counter_count_read_value *const val,
> -                                 const enum counter_count_value_type type,
> -                                 void *const data)
> -{
> -       switch (type) {
> -       case COUNTER_COUNT_POSITION:
> -               val->len = sprintf(val->buf, "%lu\n", *(unsigned long *)data);
> -               break;
> -       default:
> -               val->len = 0;
> -       }
> -}
> -EXPORT_SYMBOL_GPL(counter_count_read_value_set);
> -
> -/**
> - * counter_count_write_value_get - get counter_count_write_value data
> - * @data:      Count data
> - * @type:      property Count data represents
> - * @val:       counter_count_write_value structure containing data
> - *
> - * This function extracts Count data from the provided opaque
> - * counter_count_write_value structure and stores it at the address provided by
> - * @data.
> - *
> - * RETURNS:
> - * 0 on success, negative error number on failure.
> - */
> -int counter_count_write_value_get(void *const data,
> -                                 const enum counter_count_value_type type,
> -                                 const struct counter_count_write_value *const val)
> -{
> -       int err;
> -
> -       switch (type) {
> -       case COUNTER_COUNT_POSITION:
> -               err = kstrtoul(val->buf, 0, data);
> -               if (err)
> -                       return err;
> -               break;
> -       }
> -
> -       return 0;
> -}
> -EXPORT_SYMBOL_GPL(counter_count_write_value_get);
> -
>  struct counter_attr_parm {
>         struct counter_device_attr_group *group;
>         const char *prefix;
> @@ -788,13 +734,13 @@ static ssize_t counter_count_show(struct device *dev,
>         const struct counter_count_unit *const component = devattr->component;
>         struct counter_count *const count = component->count;
>         int err;
> -       struct counter_count_read_value val = { .buf = buf };
> +       unsigned long val;
>
>         err = counter->ops->count_read(counter, count, &val);
>         if (err)
>                 return err;
>
> -       return val.len;
> +       return sprintf(buf, "%lu\n", val);
>  }
>
>  static ssize_t counter_count_store(struct device *dev,
> @@ -806,9 +752,13 @@ static ssize_t counter_count_store(struct device *dev,
>         const struct counter_count_unit *const component = devattr->component;
>         struct counter_count *const count = component->count;
>         int err;
> -       struct counter_count_write_value val = { .buf = buf };
> +       unsigned long val;
> +
> +       err = kstrtoul(buf, 0, &val);
> +       if (err)
> +               return err;
>
> -       err = counter->ops->count_write(counter, count, &val);
> +       err = counter->ops->count_write(counter, count, val);
>         if (err)
>                 return err;
>
> diff --git a/include/linux/counter.h b/include/linux/counter.h
> index a061cdcdef7c..7e40796598a6 100644
> --- a/include/linux/counter.h
> +++ b/include/linux/counter.h
> @@ -300,24 +300,6 @@ struct counter_signal_read_value {
>         size_t len;
>  };
>
> -/**
> - * struct counter_count_read_value - Opaque Count read value
> - * @buf:       string representation of Count read value
> - * @len:       length of string in @buf
> - */
> -struct counter_count_read_value {
> -       char *buf;
> -       size_t len;
> -};
> -
> -/**
> - * struct counter_count_write_value - Opaque Count write value
> - * @buf:       string representation of Count write value
> - */
> -struct counter_count_write_value {
> -       const char *buf;
> -};
> -
>  /**
>   * struct counter_ops - Callbacks from driver
>   * @signal_read:       optional read callback for Signal attribute. The read
> @@ -328,15 +310,10 @@ struct counter_count_write_value {
>   *                     signal_read callback.
>   * @count_read:                optional read callback for Count attribute. The read
>   *                     value of the respective Count should be passed back via
> - *                     the val parameter. val points to an opaque type which
> - *                     should be set only by calling the
> - *                     counter_count_read_value_set function from within the
> - *                     count_read callback.
> + *                     the val parameter.
>   * @count_write:       optional write callback for Count attribute. The write
>   *                     value for the respective Count is passed in via the val
> - *                     parameter. val points to an opaque type which should be
> - *                     accessed only by calling the
> - *                     counter_count_write_value_get function.
> + *                     parameter.
>   * @function_get:      function to get the current count function mode. Returns
>   *                     0 on success and negative error code on error. The index
>   *                     of the respective Count's returned function mode should
> @@ -357,11 +334,9 @@ struct counter_ops {
>                            struct counter_signal *signal,
>                            struct counter_signal_read_value *val);
>         int (*count_read)(struct counter_device *counter,
> -                         struct counter_count *count,
> -                         struct counter_count_read_value *val);
> +                         struct counter_count *count, unsigned long *val);
>         int (*count_write)(struct counter_device *counter,
> -                          struct counter_count *count,
> -                          struct counter_count_write_value *val);
> +                          struct counter_count *count, unsigned long val);
>         int (*function_get)(struct counter_device *counter,
>                             struct counter_count *count, size_t *function);
>         int (*function_set)(struct counter_device *counter,
> @@ -486,19 +461,9 @@ enum counter_signal_value_type {
>         COUNTER_SIGNAL_LEVEL = 0
>  };
>
> -enum counter_count_value_type {
> -       COUNTER_COUNT_POSITION = 0,
> -};
> -
>  void counter_signal_read_value_set(struct counter_signal_read_value *const val,
>                                    const enum counter_signal_value_type type,
>                                    void *const data);
> -void counter_count_read_value_set(struct counter_count_read_value *const val,
> -                                 const enum counter_count_value_type type,
> -                                 void *const data);
> -int counter_count_write_value_get(void *const data,
> -                                 const enum counter_count_value_type type,
> -                                 const struct counter_count_write_value *const val);
>
>  int counter_register(struct counter_device *const counter);
>  void counter_unregister(struct counter_device *const counter);
> --
> 2.23.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Gaignard <benjamin.gaignard@linaro.org>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: Jonathan Cameron <jic23@jic23.retrosnub.co.uk>,
	Alexandre Torgue <alexandre.torgue@st.com>,
	linux-iio@vger.kernel.org,
	Patrick Havelange <patrick.havelange@essensium.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Fabrice Gasnier <fabrice.gasnier@st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 1/7] counter: Simplify the count_read and count_write callbacks
Date: Wed, 18 Sep 2019 10:48:51 +0200	[thread overview]
Message-ID: <CA+M3ks45XTRjED2+2FAwcaG96YSszu2BZshTA7DSGscQQzAOFQ@mail.gmail.com> (raw)
In-Reply-To: <f7969048e5db977cc6cc9daa8d32b170cf9f4c17.1568792697.git.vilhelm.gray@gmail.com>

Le mer. 18 sept. 2019 à 09:53, William Breathitt Gray
<vilhelm.gray@gmail.com> a écrit :
>
> The count_read and count_write callbacks are simplified to pass val as
> unsigned long rather than as an opaque data structure. The opaque
> counter_count_read_value and counter_count_write_value structures,
> counter_count_value_type enum, and relevant counter_count_read_value_set
> and counter_count_write_value_get functions, are removed as they are no
> longer used.
>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>

Hi William,

This first patch break the compilation because you remove some
structure needed for the drivers.
You should merge all the serie in 1 patch to avoid that.

Benjamin

> ---
>  drivers/counter/counter.c | 66 +++++----------------------------------
>  include/linux/counter.h   | 43 +++----------------------
>  2 files changed, 12 insertions(+), 97 deletions(-)
>
> diff --git a/drivers/counter/counter.c b/drivers/counter/counter.c
> index 106bc7180cd8..1d08f1437b1b 100644
> --- a/drivers/counter/counter.c
> +++ b/drivers/counter/counter.c
> @@ -246,60 +246,6 @@ void counter_signal_read_value_set(struct counter_signal_read_value *const val,
>  }
>  EXPORT_SYMBOL_GPL(counter_signal_read_value_set);
>
> -/**
> - * counter_count_read_value_set - set counter_count_read_value data
> - * @val:       counter_count_read_value structure to set
> - * @type:      property Count data represents
> - * @data:      Count data
> - *
> - * This function sets an opaque counter_count_read_value structure with the
> - * provided Count data.
> - */
> -void counter_count_read_value_set(struct counter_count_read_value *const val,
> -                                 const enum counter_count_value_type type,
> -                                 void *const data)
> -{
> -       switch (type) {
> -       case COUNTER_COUNT_POSITION:
> -               val->len = sprintf(val->buf, "%lu\n", *(unsigned long *)data);
> -               break;
> -       default:
> -               val->len = 0;
> -       }
> -}
> -EXPORT_SYMBOL_GPL(counter_count_read_value_set);
> -
> -/**
> - * counter_count_write_value_get - get counter_count_write_value data
> - * @data:      Count data
> - * @type:      property Count data represents
> - * @val:       counter_count_write_value structure containing data
> - *
> - * This function extracts Count data from the provided opaque
> - * counter_count_write_value structure and stores it at the address provided by
> - * @data.
> - *
> - * RETURNS:
> - * 0 on success, negative error number on failure.
> - */
> -int counter_count_write_value_get(void *const data,
> -                                 const enum counter_count_value_type type,
> -                                 const struct counter_count_write_value *const val)
> -{
> -       int err;
> -
> -       switch (type) {
> -       case COUNTER_COUNT_POSITION:
> -               err = kstrtoul(val->buf, 0, data);
> -               if (err)
> -                       return err;
> -               break;
> -       }
> -
> -       return 0;
> -}
> -EXPORT_SYMBOL_GPL(counter_count_write_value_get);
> -
>  struct counter_attr_parm {
>         struct counter_device_attr_group *group;
>         const char *prefix;
> @@ -788,13 +734,13 @@ static ssize_t counter_count_show(struct device *dev,
>         const struct counter_count_unit *const component = devattr->component;
>         struct counter_count *const count = component->count;
>         int err;
> -       struct counter_count_read_value val = { .buf = buf };
> +       unsigned long val;
>
>         err = counter->ops->count_read(counter, count, &val);
>         if (err)
>                 return err;
>
> -       return val.len;
> +       return sprintf(buf, "%lu\n", val);
>  }
>
>  static ssize_t counter_count_store(struct device *dev,
> @@ -806,9 +752,13 @@ static ssize_t counter_count_store(struct device *dev,
>         const struct counter_count_unit *const component = devattr->component;
>         struct counter_count *const count = component->count;
>         int err;
> -       struct counter_count_write_value val = { .buf = buf };
> +       unsigned long val;
> +
> +       err = kstrtoul(buf, 0, &val);
> +       if (err)
> +               return err;
>
> -       err = counter->ops->count_write(counter, count, &val);
> +       err = counter->ops->count_write(counter, count, val);
>         if (err)
>                 return err;
>
> diff --git a/include/linux/counter.h b/include/linux/counter.h
> index a061cdcdef7c..7e40796598a6 100644
> --- a/include/linux/counter.h
> +++ b/include/linux/counter.h
> @@ -300,24 +300,6 @@ struct counter_signal_read_value {
>         size_t len;
>  };
>
> -/**
> - * struct counter_count_read_value - Opaque Count read value
> - * @buf:       string representation of Count read value
> - * @len:       length of string in @buf
> - */
> -struct counter_count_read_value {
> -       char *buf;
> -       size_t len;
> -};
> -
> -/**
> - * struct counter_count_write_value - Opaque Count write value
> - * @buf:       string representation of Count write value
> - */
> -struct counter_count_write_value {
> -       const char *buf;
> -};
> -
>  /**
>   * struct counter_ops - Callbacks from driver
>   * @signal_read:       optional read callback for Signal attribute. The read
> @@ -328,15 +310,10 @@ struct counter_count_write_value {
>   *                     signal_read callback.
>   * @count_read:                optional read callback for Count attribute. The read
>   *                     value of the respective Count should be passed back via
> - *                     the val parameter. val points to an opaque type which
> - *                     should be set only by calling the
> - *                     counter_count_read_value_set function from within the
> - *                     count_read callback.
> + *                     the val parameter.
>   * @count_write:       optional write callback for Count attribute. The write
>   *                     value for the respective Count is passed in via the val
> - *                     parameter. val points to an opaque type which should be
> - *                     accessed only by calling the
> - *                     counter_count_write_value_get function.
> + *                     parameter.
>   * @function_get:      function to get the current count function mode. Returns
>   *                     0 on success and negative error code on error. The index
>   *                     of the respective Count's returned function mode should
> @@ -357,11 +334,9 @@ struct counter_ops {
>                            struct counter_signal *signal,
>                            struct counter_signal_read_value *val);
>         int (*count_read)(struct counter_device *counter,
> -                         struct counter_count *count,
> -                         struct counter_count_read_value *val);
> +                         struct counter_count *count, unsigned long *val);
>         int (*count_write)(struct counter_device *counter,
> -                          struct counter_count *count,
> -                          struct counter_count_write_value *val);
> +                          struct counter_count *count, unsigned long val);
>         int (*function_get)(struct counter_device *counter,
>                             struct counter_count *count, size_t *function);
>         int (*function_set)(struct counter_device *counter,
> @@ -486,19 +461,9 @@ enum counter_signal_value_type {
>         COUNTER_SIGNAL_LEVEL = 0
>  };
>
> -enum counter_count_value_type {
> -       COUNTER_COUNT_POSITION = 0,
> -};
> -
>  void counter_signal_read_value_set(struct counter_signal_read_value *const val,
>                                    const enum counter_signal_value_type type,
>                                    void *const data);
> -void counter_count_read_value_set(struct counter_count_read_value *const val,
> -                                 const enum counter_count_value_type type,
> -                                 void *const data);
> -int counter_count_write_value_get(void *const data,
> -                                 const enum counter_count_value_type type,
> -                                 const struct counter_count_write_value *const val);
>
>  int counter_register(struct counter_device *const counter);
>  void counter_unregister(struct counter_device *const counter);
> --
> 2.23.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-09-18  8:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-18  7:52 [PATCH v2 0/7] counter: Simplify count_read/count_write/signal_read William Breathitt Gray
2019-09-18  7:52 ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 1/7] counter: Simplify the count_read and count_write callbacks William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  8:48   ` Benjamin Gaignard [this message]
2019-09-18  8:48     ` Benjamin Gaignard
2019-09-18  7:52 ` [PATCH v2 2/7] counter: Simplify the signal_read callback William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 3/7] docs: driver-api: generic-counter: Update Count and Signal data types William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 4/7] counter: 104-quad-8: Update count_read/count_write/signal_read callbacks William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 5/7] counter: ftm-quaddec: Update count_read and count_write callbacks William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 6/7] counter: stm32-lptimer-cnt: Update count_read callback William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18  7:52 ` [PATCH v2 7/7] counter: stm32-timer-cnt: Update count_read and count_write callbacks William Breathitt Gray
2019-09-18  7:52   ` William Breathitt Gray
2019-09-18 12:16   ` Fabrice Gasnier
2019-09-18 12:16     ` Fabrice Gasnier
2019-09-18  8:11 ` [PATCH v2 0/7] counter: Simplify count_read/count_write/signal_read William Breathitt Gray
2019-09-18  8:11   ` William Breathitt Gray

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=CA+M3ks45XTRjED2+2FAwcaG96YSszu2BZshTA7DSGscQQzAOFQ@mail.gmail.com \
    --to=benjamin.gaignard@linaro.org \
    --cc=alexandre.torgue@st.com \
    --cc=fabrice.gasnier@st.com \
    --cc=jic23@jic23.retrosnub.co.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=patrick.havelange@essensium.com \
    --cc=vilhelm.gray@gmail.com \
    /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.