From: Olliver Schinagl <oliver@schinagl.nl>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Olliver Schinagl <oliver+list@schinagl.nl>,
Wolfram Sang <wsa@the-dreams.de>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
Jingoo Han <jg1.han@samsung.com>,
"David S. Miller" <davem@davemloft.net>,
Sam Ravnborg <sam@ravnborg.org>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1] input: make use of the input_set_capability helper
Date: Wed, 07 Jan 2015 10:41:24 +0100 [thread overview]
Message-ID: <54ACFF44.9050805@schinagl.nl> (raw)
In-Reply-To: <20150107082603.GG5256@dtor-ws>
HEy Dmitry,
On 07-01-15 09:26, Dmitry Torokhov wrote:
> On Wed, Jan 07, 2015 at 09:19:28AM +0100, Olliver Schinagl wrote:
>> Hey Dmitry,
>>
>> On 07-01-15 08:57, Dmitry Torokhov wrote:
>>> Hi Olliver,
>>>
>>> On Wed, Jan 07, 2015 at 08:31:06AM +0100, Olliver Schinagl wrote:
>>>> From: Olliver Schinagl <oliver@schinagl.nl>
>>>>
>>>> Almost all of the speaker drivers under input manipulate the ev bits
>>>> directly, which is not needed, as there is a helper available.
>>>>
>>>> This patch makes use of the helper for the speaker drivers.
>>>>
>>>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>>>> ---
>>>> drivers/input/misc/cm109.c | 4 ++--
>>>> drivers/input/misc/ixp4xx-beeper.c | 5 ++---
>>>> drivers/input/misc/m68kspkr.c | 5 ++---
>>>> drivers/input/misc/pcspkr.c | 5 ++---
>>>> drivers/input/misc/pwm-beeper.c | 5 +----
>>>> drivers/input/misc/sparcspkr.c | 6 ++----
>>>> 6 files changed, 11 insertions(+), 19 deletions(-)
>>>>
>>>> diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
>>>> index 9365535..8e41070 100644
>>>> --- a/drivers/input/misc/cm109.c
>>>> +++ b/drivers/input/misc/cm109.c
>>>> @@ -767,10 +767,10 @@ static int cm109_usb_probe(struct usb_interface *intf,
>>>> input_dev->keycodesize = sizeof(unsigned char);
>>>> input_dev->keycodemax = ARRAY_SIZE(dev->keymap);
>>>> - input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_SND);
>>>> - input_dev->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE);
>>>> + input_set_capability(input_dev, EV_SND, SND_BELL | SND_TONE);
>>> No, input_set_capability() takes single event code, not bitmask. The
>>> fact that it works for these 2 values of SND events is pure coincidence
>>> (the old code wasn't much better though).
> Ah, not, it does not work at all. Instead of setting bits 1 and 2 your
> code sets bit 3 in dev->sndbit.
>
>> What do you suggest we should do then? Fix input_set_capability to
>> take bit masks? or multiline events?
>> I'm not sure why __set_bits() wouldn't work for bitmasks, could you
>> educate me?
> Call it once per event:
>
> input_set_capability(input_dev, EV_SND, SND_BELL);
> input_set_capability(input_dev, EV_SND, SND_TONE);
roger, done
>
>>>> /* register available key events */
>>>> + input_dev->evbit[0] = BIT_MASK(EV_KEY);
>>> Would prefer __set_bit(EV_KEY, input_dev->evbit); here instead.
>> I only moved the EV_KEY bit from above to its appropiate place here.
> The original code was setting combination of bits; here we set single
> one and __set_bit() is cleaner IMO.
The documentation contradicts this actually, it says to use set_bit()
first, but favors the direct writing as above as it is 'shorter in some
cases'.
Furthermore, I'm a little confused as what the purpose of
input_set_capability() is, if we use set_bits (or __set_bits) here. It
appears we use set_bits here because it is manipulating several entries
in the array (well atleast index 0) and set_input_capability() doesn't
handle arrays? But when I look at struct input_dev, all those entries
are arrays, including sndbit. So we only use set_input_capabilities when
manipulating index 0 when its the only one? Feels a little strange to
me, but probably is my lack of knowledge herin, so appologies for that.
Olliver
>
>> I can change this one (and others) to use __set_bit() for now for
>> v2?
> Yes, please.
>
> Thanks.
>
next prev parent reply other threads:[~2015-01-07 9:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-07 7:31 [PATCH v1] input: make use of the input_set_capability helper Olliver Schinagl
2015-01-07 7:57 ` Dmitry Torokhov
2015-01-07 8:19 ` Olliver Schinagl
2015-01-07 8:26 ` Dmitry Torokhov
2015-01-07 9:41 ` Olliver Schinagl [this message]
2015-01-07 17:43 ` Dmitry Torokhov
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=54ACFF44.9050805@schinagl.nl \
--to=oliver@schinagl.nl \
--cc=davem@davemloft.net \
--cc=dmitry.torokhov@gmail.com \
--cc=jg1.han@samsung.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oliver+list@schinagl.nl \
--cc=paul.gortmaker@windriver.com \
--cc=sam@ravnborg.org \
--cc=wsa@the-dreams.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.