Linux-IIO Archive mirror
 help / color / mirror / Atom feed
* [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro
@ 2024-03-01 10:25 Fabrice Gasnier
  2024-03-01 15:55 ` William Breathitt Gray
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Gasnier @ 2024-03-01 10:25 UTC (permalink / raw
  To: william.gray
  Cc: syednwaris, vigneshr, jpanis, alexandre.torgue, fabrice.gasnier,
	linux-iio, linux-stm32, linux-arm-kernel, linux-kernel

Now that there are two users for the "frequency" extension, introduce a
new COUNTER_COMP_FREQUENCY() macro.
This extension is intended to be a read-only signal attribute.

Suggested-by: William Breathitt Gray <william.gray@linaro.org>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
---
Changes in v5
- "frequency" extension is read-only, so there's no need to provide
  a write parameter.
- patch sent separately from "counter: Add stm32 timer events support" [1]
[1] https://lore.kernel.org/lkml/20240227173803.53906-2-fabrice.gasnier@foss.st.com/
---
 include/linux/counter.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/linux/counter.h b/include/linux/counter.h
index 702e9108bbb4..0ac36f815b7d 100644
--- a/include/linux/counter.h
+++ b/include/linux/counter.h
@@ -602,6 +602,13 @@ struct counter_array {
 #define COUNTER_COMP_FLOOR(_read, _write) \
 	COUNTER_COMP_COUNT_U64("floor", _read, _write)
 
+#define COUNTER_COMP_FREQUENCY(_read) \
+{ \
+	.type = COUNTER_COMP_U64, \
+	.name = "frequency", \
+	.signal_u64_read = (_read), \
+}
+
 #define COUNTER_COMP_POLARITY(_read, _write, _available) \
 { \
 	.type = COUNTER_COMP_SIGNAL_POLARITY, \
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro
  2024-03-01 10:25 [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro Fabrice Gasnier
@ 2024-03-01 15:55 ` William Breathitt Gray
  2024-03-04  8:41   ` Fabrice Gasnier
  0 siblings, 1 reply; 4+ messages in thread
From: William Breathitt Gray @ 2024-03-01 15:55 UTC (permalink / raw
  To: Fabrice Gasnier
  Cc: syednwaris, vigneshr, jpanis, alexandre.torgue, linux-iio,
	linux-stm32, linux-arm-kernel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1569 bytes --]

On Fri, Mar 01, 2024 at 11:25:05AM +0100, Fabrice Gasnier wrote:
> Now that there are two users for the "frequency" extension, introduce a
> new COUNTER_COMP_FREQUENCY() macro.
> This extension is intended to be a read-only signal attribute.
> 
> Suggested-by: William Breathitt Gray <william.gray@linaro.org>
> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
> ---
> Changes in v5
> - "frequency" extension is read-only, so there's no need to provide
>   a write parameter.
> - patch sent separately from "counter: Add stm32 timer events support" [1]
> [1] https://lore.kernel.org/lkml/20240227173803.53906-2-fabrice.gasnier@foss.st.com/
> ---
>  include/linux/counter.h | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/include/linux/counter.h b/include/linux/counter.h
> index 702e9108bbb4..0ac36f815b7d 100644
> --- a/include/linux/counter.h
> +++ b/include/linux/counter.h
> @@ -602,6 +602,13 @@ struct counter_array {
>  #define COUNTER_COMP_FLOOR(_read, _write) \
>  	COUNTER_COMP_COUNT_U64("floor", _read, _write)
>  
> +#define COUNTER_COMP_FREQUENCY(_read) \
> +{ \
> +	.type = COUNTER_COMP_U64, \
> +	.name = "frequency", \
> +	.signal_u64_read = (_read), \
> +}
> +
>  #define COUNTER_COMP_POLARITY(_read, _write, _available) \
>  { \
>  	.type = COUNTER_COMP_SIGNAL_POLARITY, \
> -- 
> 2.25.1

Hi Fabrice,

Setting the structure members directly works, but why not use
COUNTER_COMP_SIGNAL_U64("frequency", _read, NULL) instead to keep the
code more succinct?

William Breathitt Gray

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro
  2024-03-01 15:55 ` William Breathitt Gray
@ 2024-03-04  8:41   ` Fabrice Gasnier
  2024-03-04 13:28     ` William Breathitt Gray
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Gasnier @ 2024-03-04  8:41 UTC (permalink / raw
  To: William Breathitt Gray
  Cc: syednwaris, vigneshr, jpanis, alexandre.torgue, linux-iio,
	linux-stm32, linux-arm-kernel, linux-kernel

On 3/1/24 16:55, William Breathitt Gray wrote:
> On Fri, Mar 01, 2024 at 11:25:05AM +0100, Fabrice Gasnier wrote:
>> Now that there are two users for the "frequency" extension, introduce a
>> new COUNTER_COMP_FREQUENCY() macro.
>> This extension is intended to be a read-only signal attribute.
>>
>> Suggested-by: William Breathitt Gray <william.gray@linaro.org>
>> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
>> ---
>> Changes in v5
>> - "frequency" extension is read-only, so there's no need to provide
>>   a write parameter.
>> - patch sent separately from "counter: Add stm32 timer events support" [1]
>> [1] https://lore.kernel.org/lkml/20240227173803.53906-2-fabrice.gasnier@foss.st.com/
>> ---
>>  include/linux/counter.h | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/include/linux/counter.h b/include/linux/counter.h
>> index 702e9108bbb4..0ac36f815b7d 100644
>> --- a/include/linux/counter.h
>> +++ b/include/linux/counter.h
>> @@ -602,6 +602,13 @@ struct counter_array {
>>  #define COUNTER_COMP_FLOOR(_read, _write) \
>>  	COUNTER_COMP_COUNT_U64("floor", _read, _write)
>>  
>> +#define COUNTER_COMP_FREQUENCY(_read) \
>> +{ \
>> +	.type = COUNTER_COMP_U64, \
>> +	.name = "frequency", \
>> +	.signal_u64_read = (_read), \
>> +}
>> +
>>  #define COUNTER_COMP_POLARITY(_read, _write, _available) \
>>  { \
>>  	.type = COUNTER_COMP_SIGNAL_POLARITY, \
>> -- 
>> 2.25.1
> 
> Hi Fabrice,
> 
> Setting the structure members directly works, but why not use
> COUNTER_COMP_SIGNAL_U64("frequency", _read, NULL) instead to keep the
> code more succinct?

Hi William,

I originally wrote it this way, but I had a doubt since some macros use
the structure members directly.

I can update to use COUNTER_COMP_SIGNAL_U64() instead, that will spare
few lines.

Please let me know what you prefer (I guess your proposal above ?).

Best Regards,
Thanks,
Fabrice

> 
> William Breathitt Gray

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro
  2024-03-04  8:41   ` Fabrice Gasnier
@ 2024-03-04 13:28     ` William Breathitt Gray
  0 siblings, 0 replies; 4+ messages in thread
From: William Breathitt Gray @ 2024-03-04 13:28 UTC (permalink / raw
  To: Fabrice Gasnier
  Cc: syednwaris, vigneshr, jpanis, alexandre.torgue, linux-iio,
	linux-stm32, linux-arm-kernel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2888 bytes --]

On Mon, Mar 04, 2024 at 09:41:14AM +0100, Fabrice Gasnier wrote:
> On 3/1/24 16:55, William Breathitt Gray wrote:
> > On Fri, Mar 01, 2024 at 11:25:05AM +0100, Fabrice Gasnier wrote:
> >> Now that there are two users for the "frequency" extension, introduce a
> >> new COUNTER_COMP_FREQUENCY() macro.
> >> This extension is intended to be a read-only signal attribute.
> >>
> >> Suggested-by: William Breathitt Gray <william.gray@linaro.org>
> >> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
> >> ---
> >> Changes in v5
> >> - "frequency" extension is read-only, so there's no need to provide
> >>   a write parameter.
> >> - patch sent separately from "counter: Add stm32 timer events support" [1]
> >> [1] https://lore.kernel.org/lkml/20240227173803.53906-2-fabrice.gasnier@foss.st.com/
> >> ---
> >>  include/linux/counter.h | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/include/linux/counter.h b/include/linux/counter.h
> >> index 702e9108bbb4..0ac36f815b7d 100644
> >> --- a/include/linux/counter.h
> >> +++ b/include/linux/counter.h
> >> @@ -602,6 +602,13 @@ struct counter_array {
> >>  #define COUNTER_COMP_FLOOR(_read, _write) \
> >>  	COUNTER_COMP_COUNT_U64("floor", _read, _write)
> >>  
> >> +#define COUNTER_COMP_FREQUENCY(_read) \
> >> +{ \
> >> +	.type = COUNTER_COMP_U64, \
> >> +	.name = "frequency", \
> >> +	.signal_u64_read = (_read), \
> >> +}
> >> +
> >>  #define COUNTER_COMP_POLARITY(_read, _write, _available) \
> >>  { \
> >>  	.type = COUNTER_COMP_SIGNAL_POLARITY, \
> >> -- 
> >> 2.25.1
> > 
> > Hi Fabrice,
> > 
> > Setting the structure members directly works, but why not use
> > COUNTER_COMP_SIGNAL_U64("frequency", _read, NULL) instead to keep the
> > code more succinct?
> 
> Hi William,
> 
> I originally wrote it this way, but I had a doubt since some macros use
> the structure members directly.

Ah yes, the macros that use the members directly are typically the ones
that are unique for their particular type. For example, the enum
constant type COUNTER_COMP_COUNT_DIRECTION will only ever be used with
the COUNTER_COMP_DIRECTION() macro.

For macros that are based on general types such as COUNTER_COMP_U64,
it's better to use the respective base macro such as
COUNTER_COMP_SIGNAL_U64(). Not only is this more succinct and clearer of
the intent, if the need arises in the future it allows us to upgrade the
the underlying base macro and have those changes propagate to the macros
that utilize it.

> 
> I can update to use COUNTER_COMP_SIGNAL_U64() instead, that will spare
> few lines.
> 
> Please let me know what you prefer (I guess your proposal above ?).
> 
> Best Regards,
> Thanks,
> Fabrice

Update to use COUNTER_COMP_SIGNAL_U64() instead, and I should be able to
pick it up quickly.

Thanks,

William Breathitt Gray

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-03-04 13:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-01 10:25 [PATCH v5] counter: Introduce the COUNTER_COMP_FREQUENCY() macro Fabrice Gasnier
2024-03-01 15:55 ` William Breathitt Gray
2024-03-04  8:41   ` Fabrice Gasnier
2024-03-04 13:28     ` William Breathitt Gray

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).