linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dcbw@redhat.com>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: "John W. Linville" <linville@tuxdriver.com>,
	Ivo van Doorn <ivdoorn@gmail.com>,
	linux-wireless@vger.kernel.org, Dmitry Torokhov <dtor@mail.ru>
Subject: Re: [PATCH 01/12] rfkill: clarify meaning of rfkill states
Date: Wed, 04 Jun 2008 16:27:26 -0400	[thread overview]
Message-ID: <1212611246.4018.12.camel@localhost.localdomain> (raw)
In-Reply-To: <1212549017-30144-2-git-send-email-hmh@hmh.eng.br>

On Wed, 2008-06-04 at 00:10 -0300, Henrique de Moraes Holschuh wrote: 
> rfkill really should have been named rfswitch.  As it is, one can get
> confused whether RFKILL_STATE_ON means the KILL switch is on (and
> therefore, the radio is being *blocked* from operating), or whether it
> means the RADIO rf output is on.
> 
> Clearly state that RFKILL_STATE_ON means the radio is *unblocked* from
> operating (i.e. there is no rf killing going on).

Looking over the rfkill stuff again, I think we have a problem.  There
are actually 3 states for each radio:

a) radio on
b) radio off, softkilled by NM, user, or whatever
c) radio off, hardkilled by a physical switch

I don't think that the rfkill layer can represent this, since the
'state' member of /sys/class/rfkill/rfkillX is only 0 or 1.  You should
be able to simulate state (b) by doing "iwconfig wlan0 txpower off".  If
the driver doesn't suck, the driver should then rfkill the radio (and
thus /sys/class/rfkill/rfkill0/state would be 0), but all killswitches
are still "on".  But there's no way to find out that the killswitches
are all "on" by reading something in sysfs because their state is not
distinct from the radio's state.

There are basically two options here:

1) separate switch state from radio state by having something on the
_device_
like /sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0/radio_state that
is 0 (radio on), 1 (radio off, softkilled), or 2 (radio off,
hardkilled).  Keep /sys/class/rfkill/rfkillX as actual killswitches as
reported by wireless drivers or by machine-specific BIOS proxy drivers
like hp-wmi, and keep the 'state' member rfkillX devices like it is now

2) Change the 'state' member of the /sys/class/rfkill/rfkillX devices to
reflect the hardkill and softkill

I personally like (1) the best, because there's a clear difference
between radio state and switch state, and it would preserve
compatibility with the current rfkill system.  If the userspace process
doesn't see the 'radio_state' item in sysfs for that specific wireless
device, it would fall back to using only /sys/class/rfkill/rfkill0/state
and loose the ability to handle softkill.

Thoughts?

Dan



  parent reply	other threads:[~2008-06-04 20:27 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 [this message]
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
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=1212611246.4018.12.camel@localhost.localdomain \
    --to=dcbw@redhat.com \
    --cc=dtor@mail.ru \
    --cc=hmh@hmh.eng.br \
    --cc=ivdoorn@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.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 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 NNTP newsgroup(s).