All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Collins <bcollins@kernel.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 5/5] iio: mcp9600: Add support for IIR filter
Date: Tue, 19 Aug 2025 16:41:05 -0400	[thread overview]
Message-ID: <2025081916-auspicious-centipede-ef9f92@boujee-and-buff> (raw)
In-Reply-To: <20250819193837.74c762c4@jic23-huawei>

On Tue, Aug 19, 2025 at 07:38:37PM -0500, Jonathan Cameron wrote:
> On Tue, 19 Aug 2025 19:28:51 +0100
> Jonathan Cameron <jic23@kernel.org> wrote:
> 
> > On Mon, 18 Aug 2025 16:00:20 -0400
> > Ben Collins <bcollins@kernel.org> wrote:
> > 
> > > On Mon, Aug 18, 2025 at 08:10:35PM -0500, Jonathan Cameron wrote:  
> > > >     
> > > > > > >  	case IIO_CHAN_INFO_SCALE:
> > > > > > >  		*val = 62;
> > > > > > >  		*val2 = 500000;
> > > > > > >  		return IIO_VAL_INT_PLUS_MICRO;
> > > > > > > +      
> > > > > > If you want the extra space put it in previous patch.
> > > > > >       
> > > > > > >  	case IIO_CHAN_INFO_THERMOCOUPLE_TYPE:
> > > > > > >  		*val = mcp9600_tc_types[data->thermocouple_type];
> > > > > > >  		return IIO_VAL_CHAR;
> > > > > > > +
> > > > > > > +	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
> > > > > > > +		if (data->filter_level == 0)      
> > > > > > 
> > > > > > Return the current requested value. An error is just going to confuse
> > > > > > someone who tried to write this before enabling the filter and then
> > > > > > checked to see if the write was successful.      
> > > > > 
> > > > > I could not get a concensus on this. On the one hand, if a user sets a
> > > > > value here, would they not assume that the filter was enabled? What
> > > > > about cases where a filter_type can be more than one valid type with
> > > > > different available coefficients for each? What should it show then?    
> > > > 
> > > > So I was thinking of this like other things with 'enables' such as events.
> > > > For those you always set the value first.  They don't really have a type
> > > > field though (well they do but the ABI allows multiple at once unlike filters
> > > > so we end up with a quite different looking ABI).
> > > > 
> > > > Agreed it gets challenging with multiple filter types. If it weren't for
> > > > advertising the range I'd suggest just stashing whatever was written and
> > > > then mapping it to nearest possible when the filter type is set.
> > > > That's what the ad7124 does for changing between filters anyway
> > > > though oddly it doesn't seem to have a control for filter type.
> > > > 
> > > > This is a good argument against the whole 'none' value for filter type
> > > > - that's not much used so we could deprecate it for new drivers.
> > > > 
> > > > I'm not particularly keen on filter_enable but seems we are coming back
> > > > around to that option to avoid this corner case.  Alternative being what
> > > > you have here which isn't great for ease of use.    
> > > 
> > > I'm somewhat wondering if the filter frequency and frequency_available
> > > attributes should not even show in sysfs unless the filter_type was
> > > something other than "none".
> > >   
> > I'm not keen on that and trying to bolt is_visible into the mess of how
> > we generate attributes would be hard and actual add and remove of attributes
> > is horrible for races with userspace.
> > 
> > > > So for next version let's go for that. Make sure to include Documentation
> > > > in a separate patch though so it's easy to see an poke holes in.    
> > > 
> > > Just to make sure I understand, you'd like to see a filter_enable
> > > attribute and filter_type would not contain "none", then frequency and
> > > frequency_available would always show something for whatever was in
> > > filter_type?  
> > 
> > Yes.  I think that is best way forwards.  If we want to retrofit the one
> > user of none to support the new ABI as well it should be easy to do.
> > 
> 
> Ignore that. David convinced me otherwise.  Lets take this a bit slow
> and discuss it fully in other branch of this thread.

Maybe a working solution would help the conversation to see how it would
look.

I think I can rework ad4080 so that it keeps "none" filter_type, but
also can make use of filter_enable. That way it can continue to work
for users while still providing a better interface for anything else
moving forward.

I can send this as a separate RFC series from my current mcp9600 changes
to break this out.

-- 
 Ben Collins
 https://libjwt.io
 https://github.com/benmcollins
 --
 3EC9 7598 1672 961A 1139  173A 5D5A 57C7 242B 22CF

  reply	other threads:[~2025-08-19 20:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-18  3:59 [PATCH v5 0/5] iio: mcp9600: Features and improvements Ben Collins
2025-08-18  3:59 ` [PATCH v5 1/5] dt-bindings: iio: mcp9600: Add microchip,mcp9601 and add constraints Ben Collins
2025-08-18  6:28   ` Krzysztof Kozlowski
2025-08-18 17:20     ` Conor Dooley
2025-08-18  6:33   ` Rob Herring (Arm)
2025-08-18  6:46     ` Ben Collins
2025-08-18  6:40   ` Krzysztof Kozlowski
2025-08-18  6:52     ` Ben Collins
2025-08-18  3:59 ` [PATCH v5 2/5] iio: mcp9600: White space and fixed width cleanup Ben Collins
2025-08-18  3:59 ` [PATCH v5 3/5] iio: mcp9600: Recognize chip id for mcp9601 Ben Collins
2025-08-18 18:03   ` Jonathan Cameron
2025-08-18  3:59 ` [PATCH v5 4/5] iio: mcp9600: Add support for thermocouple-type Ben Collins
2025-08-18  3:59 ` [PATCH v5 5/5] iio: mcp9600: Add support for IIR filter Ben Collins
2025-08-18 18:15   ` Jonathan Cameron
2025-08-18 18:47     ` Ben Collins
2025-08-18 18:59       ` David Lechner
2025-08-18 19:31         ` Ben Collins
2025-08-18 19:10       ` Jonathan Cameron
2025-08-18 20:00         ` Ben Collins
2025-08-19 18:28           ` Jonathan Cameron
2025-08-19 18:38             ` Jonathan Cameron
2025-08-19 20:41               ` Ben Collins [this message]
2025-08-19 20:37             ` Ben Collins

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=2025081916-auspicious-centipede-ef9f92@boujee-and-buff \
    --to=bcollins@kernel.org \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.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.