From: Ivo van Doorn <ivdoorn@gmail.com>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Tomas Winkler <tomasw@gmail.com>, Dan Williams <dcbw@redhat.com>,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org, Dmitry Torokhov <dtor@mail.ru>
Subject: Re: [PATCH 01/12] rfkill: clarify meaning of rfkill states
Date: Thu, 5 Jun 2008 18:03:42 +0200 [thread overview]
Message-ID: <200806051803.43193.IvDoorn@gmail.com> (raw)
In-Reply-To: <20080605003808.GA16599@khazad-dum.debian.net>
On Thursday 05 June 2008, Henrique de Moraes Holschuh wrote:
> On Thu, 05 Jun 2008, Tomas Winkler wrote:
> > SW should be able to more sw radio switch regardless of hw switch so
>
> Be extremely careful with "should" and any ideas you might have of the
> capabilities of rf switch hardware, because chances are firmware-based
> switches will frustate you. In fact, you're wrong. Some firmware
> softswitches don't let you change their status when there is also a
> hardware switch present, and that hardware switch is in the "block
> transmissions" state.
>
> > I believe it's better to have separate sysfs entry for sw and hw switch states.
> > hw sysfs file should be read only.
>
> When you do this (have more than one rfkill class for the same device),
> the kernel events and uevents are not able to propagate the real state
> of the device anymore: upon the recepit of any event, you need to
> *locate* all rfkill switches attached to that device, query them all,
> and only if all of them are in state RFKILL_STATE_ON, will the device be
> in RFKILL_STATE_ON.
>
> So, we'd need to change the rfkill class to avoid all that hassle (see
> more on this below).
>
> Sincerely, I heavly prefer to add a third state (RFKILL_STATE_HARDOFF or
> something like that). That is a safe path that will have no subtle
> interactions with the way rfkill is meant to be used. I am not so sure
> the other possibilities have this advantage, even if I cannot pinpoint
> what interactions they could cause right now.
>
> > I agree it good to keep radio state separately as well.
>
> I don't like this either, unless by "separate" you mean outside of
> rfkill entirely.
>
> What you seem to be calling "radio state" is the effective state of a
> device with more than one kill line (be it software or hardware). We
> could call that "device rfkill state" instead of "switch rfkill state"
> to avoid confusion, I suppose.
>
> Anyway, if we are to use various *related* rfkill switches per device,
> rfkill needs further changes, including an extra callback into the
> driver, so as to be able to export the device rfkill state also in all
> switch rfkill state events (otherwise these events become quite useless
> for many uses).
>
> It is more complicated and heavyweight a solution for very little gain
> when compared to the addition of a third RFKILL_STATE state, IMO.
> Remeber that multiple related switches per device adds complexity to the
> INTERFACE, and therefore to all applications that use that interface.
>
> > Third I think this patch use opposite logic as used currently in
> > practice. RFKILL_ON means that radio is off .
>
> The correct reading of rfkill class states are:
>
> RFKILL_STATE_ON: transmitter is UNBLOCKED and *may* operate
> RFKILL_STATE_OFF: transmitter is BLOCKED and will *NOT* operate.
>
> Nothing else is correct.
>
> We could certainly rename these states to
>
> enum rfkill_state {
> RFKILL_STATE_BLOCKED = 0,
> RFKILL_STATE_UNBLOCKED = 1,
> };
>
> #define RFKILL_STATE_ON RFKILL_STATE_UNBLOCKED
> #define RFKILL_STATE_OFF RFKILL_STATE_BLOCKED
>
> Ivo, do you want a patch that does the above (plus the documentation
> changes, of course)?
Patch would be good. I would however drop the #define RFKILL_STATE_ON
and force the RFKILL_STATE_BLOCKED/RFKILL_STATE_UNBLOCKED usage
to make sure everybody gets the right idea about the meaning.
Ivo
next prev parent reply other threads:[~2008-06-05 15:55 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-04 3:10 [GIT PATCH] rkfill improvements for -next Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 01/12] rfkill: clarify meaning of rfkill states Henrique de Moraes Holschuh
2008-06-04 3:32 ` Pavel Roskin
2008-06-04 3:39 ` Henrique de Moraes Holschuh
2008-06-04 20:27 ` Dan Williams
2008-06-04 20:32 ` Dan Williams
2008-06-04 23:07 ` Tomas Winkler
2008-06-05 0:38 ` Henrique de Moraes Holschuh
2008-06-05 8:33 ` Tomas Winkler
2008-06-05 12:38 ` Henrique de Moraes Holschuh
2008-06-05 12:12 ` Dan Williams
2008-06-05 13:03 ` Henrique de Moraes Holschuh
2008-06-05 14:46 ` Dan Williams
2008-06-05 20:13 ` Henrique de Moraes Holschuh
2008-06-06 3:26 ` Dan Williams
2008-06-06 13:24 ` Dan Williams
2008-06-06 14:14 ` Henrique de Moraes Holschuh
2008-06-06 14:27 ` Dan Williams
2008-06-07 12:09 ` Tomas Winkler
2008-06-08 20:16 ` Matthew Garrett
2008-06-10 4:11 ` Henrique de Moraes Holschuh
2008-06-11 17:10 ` Tomas Winkler
2008-06-12 18:03 ` Henrique de Moraes Holschuh
2008-06-12 15:43 ` Dan Williams
2008-06-12 16:31 ` Henrique de Moraes Holschuh
2008-06-05 16:03 ` Ivo van Doorn [this message]
2008-06-05 16:36 ` Tomas Winkler
2008-06-05 17:42 ` Henrique de Moraes Holschuh
2008-06-05 17:54 ` Tomas Winkler
2008-06-05 20:16 ` Henrique de Moraes Holschuh
2008-06-05 17:53 ` Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 02/12] rfkill: fix minor typo in kernel doc Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 03/12] rfkill: handle SW_RFKILL_ALL events Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 04/12] rfkill: add parameter to disable radios by default Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 05/12] rfkill: add read-write rfkill switch support Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 06/12] rfkill: add the WWAN radio type Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 07/12] rfkill: rework suspend and resume handlers Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 08/12] rfkill: add notifier chains support Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 09/12] rfkill: add type string helper Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 10/12] rfkill: add uevent notifications Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 11/12] rfkill: do not allow userspace to override ALL RADIOS OFF Henrique de Moraes Holschuh
2008-06-04 3:10 ` [PATCH 12/12] rfkill: document rw rfkill switches and clarify input subsystem interactions Henrique de Moraes Holschuh
-- strict thread matches above, loose matches on Subject: below --
2008-06-22 15:38 [GIT PATCH] rfkill rework for 2.6.27 (v2) Henrique de Moraes Holschuh
2008-06-22 15:38 ` [PATCH 01/12] rfkill: clarify meaning of rfkill states Henrique de Moraes Holschuh
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=200806051803.43193.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=dcbw@redhat.com \
--cc=dtor@mail.ru \
--cc=hmh@hmh.eng.br \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=tomasw@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.