All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff LaBundy <jeff@labundy.com>
To: Marek Vasut <marex@denx.de>
Cc: "Traut Manuel LCPF-CH" <Manuel.Traut@mt.com>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	"Frieder Schrempf" <frieder.schrempf@kontron.de>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>
Subject: Re: AW: EXTERNAL - [PATCH] Input: pwm-beeper - Support volume setting via sysfs
Date: Mon, 15 May 2023 09:25:28 -0500	[thread overview]
Message-ID: <ZGJA2M+V8ualidHH@nixie71> (raw)
In-Reply-To: <a5293af4-8d02-ed8f-52d1-722c71d47f37@denx.de>

Hi Marek and Traut,

On Mon, May 15, 2023 at 03:36:02PM +0200, Marek Vasut wrote:
> On 5/15/23 08:50, Traut Manuel LCPF-CH wrote:
> > Hi Marek,
> 
> Hi,
> 
> > > The PWM beeper volume can be controlled by adjusting the PWM duty cycle, expose volume setting via sysfs, so users can make the beeper quieter.
> > > This patch adds sysfs attribute 'volume' in range 0..50000, i.e. from 0 to 50% in 1/1000th of percent steps, this resolution should be sufficient.
> > > 
> > > The reason for 50000 cap on volume or PWM duty cycle is because duty cycle above 50% again reduces the loudness, the PWM wave form is inverted > wave form of the one for duty cycle below 50% and the beeper gets quieter the closer the setting is to 100% . Hence, 50% cap where the wave form yields the loudest result.
> > > 
> > >   Signed-off-by: Marek Vasut <marex@denx.de>
> > > ---
> > > An alternative option would be to extend the userspace input ABI, e.g. by using SND_TONE top 16bits to encode the duty cycle in 0..50000 range, and bottom 16bit to encode the existing frequency in Hz . Since frequency in Hz is likely to be below some 25 kHz for audible bell, this fits in 16bits just fine. Thoughts ?
> > 
> > I tend to not change existing user-space interfaces. I would prefer to have an additional event or using sysfs.
> 
> I am increasingly concerned about the race condition between change of
> volume (via sysfs) and frequency (via SND_TONE) . So I would be banking
> toward additional event, like SND_TONE_WITH_VOLUME or something along those
> lines.

This is just my $.02, but I don't see anything wrong with proposing an
_additive_ change to the ABI such as this. My only concern is that this
kind of change seems useful to any effect (e.g. SND_BEEP) and not limited
to only tones. Unless volume adjustment is less useful for those?

> 
> > > ---
> > > NOTE: This uses approach similar to [1], except it is much simpler.
> > >       [1] https://patchwork.kernel.org/project/linux-input/cover/20230201152128.614439-1-manuel.traut@mt.com/
> > 
> > This one is more complex, because the mapping between duty cycle and volume is not linear. Probably it depends also on the used beeper hardware which values are doing a significant change in volume. Therefore the patchset introduced a mapping between volume levels and duty cycle times in the device-tree to allow user-space applications to control the beeper volume hardware independently.
> 
> I wonder whether this mapping shouldn't be considered policy and left to
> userspace to deal with, instead of swamping the kernel or DT with it ?

I agree that the kernel need not try and linearize the values; in fact LEDs
already have the same problem. I still feel however that imposing a unique
maximum value (e.g. 50,000) is inappropriate because the range should remain
the same regardless of the underlying HW implementation (PWM, class A/B, etc.).

> 
> -- 
> Best regards,
> Marek Vasut

Kind regards,
Jeff LaBundy

  reply	other threads:[~2023-05-15 14:25 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-12 18:55 [PATCH] Input: pwm-beeper - Support volume setting via sysfs Marek Vasut
2023-05-13  1:12 ` Jeff LaBundy
2023-05-13  1:51   ` Marek Vasut
2023-05-13 21:02     ` Marek Vasut
2023-07-31  5:36       ` Dmitry Torokhov
2023-07-31  6:21         ` Takashi Iwai
2023-07-31 11:49           ` Marek Vasut
2023-07-31 12:15             ` Takashi Iwai
2023-07-31 14:05               ` Marek Vasut
2023-07-31 14:20                 ` Takashi Iwai
2023-07-31 14:36                   ` Marek Vasut
2023-07-31 16:24                     ` Dmitry Torokhov
2023-07-31 17:49                       ` Marek Vasut
2023-08-01  2:56                         ` Jeff LaBundy
2023-08-01  6:11                           ` Takashi Iwai
2023-08-01 11:38                             ` Marek Vasut
2023-08-01 12:25                               ` Takashi Iwai
2023-08-01  7:28                           ` Dmitry Torokhov
2023-08-01 11:51                             ` Marek Vasut
2023-08-11  4:19                               ` Jeff LaBundy
2023-08-11  7:52                                 ` Takashi Iwai
2023-08-11 10:47                                   ` Traut Manuel LCPF-CH
2023-08-15 21:33                                     ` Dmitry Torokhov
2023-08-17 10:50                                       ` Marek Vasut
2023-08-11 12:39                             ` John Watts
2023-08-14  2:26                               ` Marek Vasut
2023-05-15  6:50 ` AW: EXTERNAL - " Traut Manuel LCPF-CH
2023-05-15 13:36   ` Marek Vasut
2023-05-15 14:25     ` Jeff LaBundy [this message]
2023-05-15 17:27       ` Marek Vasut
2023-05-15 15:24     ` AW: AW: " Traut Manuel LCPF-CH
2023-05-15 17:28       ` Marek Vasut
2023-06-14  6:45 ` Uwe Kleine-König
2023-06-14  9:30   ` Marek Vasut

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=ZGJA2M+V8ualidHH@nixie71 \
    --to=jeff@labundy.com \
    --cc=Manuel.Traut@mt.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=frieder.schrempf@kontron.de \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=thierry.reding@gmail.com \
    --cc=u.kleine-koenig@pengutronix.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.