From: Marcel Holtmann <marcel@holtmann.org>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Johannes Berg <johannes@sipsolutions.net>,
Alan Jenkins <alan-jenkins@tuffmail.co.uk>,
John Linville <linville@tuxdriver.com>,
linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] rfkill: create useful userspace interface
Date: Thu, 04 Jun 2009 06:13:26 +0200 [thread overview]
Message-ID: <1244088806.4145.24.camel@localhost.localdomain> (raw)
In-Reply-To: <20090603213340.GB22809@khazad-dum.debian.net>
Hi Henrique,
> > > > We just need to fix the platform drivers then. They should not set
> > > > global states since that is not what they are controlling. They control
> > >
> > > We should change things, yes. So that the platform stores the global
> > > state. That was half-broken on the old core (the platform stored the
> > > state of its own device, which could be out of sync with the global
> > > state), but the part of it setting the global state is correct.
> > >
> > > That needs a new in-kernel API to tie the core to platform drivers
> > > capable of storing global states without causing problems when drivers
> > > are unloaded, but it is not hard.
> > >
> > > As for NVS events, they have a clear use case: to let rfkilld know which
> > > global states it could leave alone the first time it loads, and which
> > > ones have to be restored...
> >
> > show me an example of a platform device that stores the global state. I
> > think you are confusing the word platform as in system with a platform
> > device. The ThinkPad Bluetooth and WWAN switches are platform devices
> > and control each one specific device. Same goes for the EeePC. They are
> > not controlling a global state.
>
> I don't know what big difference you see between the two uses of "platform",
> but I will just work around it to get something useful out of this mail.
>
> The laptop stores in NVS the state of its 'switches'. This is as close as
> one gets from 'storing the global state'. When the laptop boots,
> these devices get set by the firware to the state in NVS. It is the best
> place to store global state, because these devices will be in their proper
> state (i.e. matching what will be the global state when the rfkill core
> loads) all the time. It also gives you for free multi-OS/multi-kernel state
> storage for these devices, and compatibility with BIOSes that let you define
> the initial state for the devices in the firmware configuration, etc.
it stores the state of its switches and why should these be enforced as
a global state? Who says that this is a global state? For me that sounds
like policy.
> There. I didn't use the 'p' word once. Now, please tell me why show we
> just dump the storage done by the firmware in NVS, and instead store the
> global state for those switches in userspace?
We are getting OP_ADD for these switches when opening /dev/rfkill and it
is up to a userspace policy to either enforce this on all attached
devices or not.
> If it was a extremely complicated and fragile thing to do, it would be a
> different matter, but it isn't. It isn't even ugly code, even after we fix
> it to be all about global states.
This is not about ugly code or anything alike. We wanna get the RFKILL
subsystem cleaned up now. And just overloading it with things that might
be a good idea is bad. Enhancing it later when it is actually needed is
way easy. And I am not convinced even a little bit that we should treat
the firmware stored states as global. They are not global states. You
are just abusing them as this.
Regards
Marcel
next prev parent reply other threads:[~2009-06-04 4:13 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-28 15:31 [PATCH] rfkill: create useful userspace interface Johannes Berg
2009-05-28 15:44 ` [PATCH v2] " Johannes Berg
2009-05-28 15:47 ` Marcel Holtmann
2009-05-28 15:58 ` [PATCH v3] " Johannes Berg
2009-05-29 8:38 ` [PATCH v4] " Johannes Berg
2009-05-29 10:43 ` Marcel Holtmann
2009-05-31 9:13 ` [PATCH] " Alan Jenkins
2009-05-31 9:58 ` Johannes Berg
2009-05-31 12:36 ` Henrique de Moraes Holschuh
2009-05-31 13:18 ` Alan Jenkins
2009-05-31 19:01 ` Marcel Holtmann
2009-06-01 7:33 ` Johannes Berg
2009-06-01 8:17 ` Alan Jenkins
2009-06-01 12:10 ` Johannes Berg
2009-06-01 13:05 ` Alan Jenkins
2009-06-01 14:47 ` Marcel Holtmann
2009-06-01 14:57 ` Johannes Berg
2009-06-01 16:10 ` Alan Jenkins
2009-06-01 19:44 ` Marcel Holtmann
2009-06-01 22:26 ` Alan Jenkins
2009-06-02 7:38 ` Marcel Holtmann
2009-06-02 8:01 ` Johannes Berg
2009-06-02 8:18 ` Marcel Holtmann
2009-06-03 4:03 ` Henrique de Moraes Holschuh
2009-06-03 5:57 ` Marcel Holtmann
2009-06-03 21:33 ` Henrique de Moraes Holschuh
2009-06-04 4:13 ` Marcel Holtmann [this message]
2009-06-07 12:38 ` Alan Jenkins
2009-06-07 12:57 ` Henrique de Moraes Holschuh
2009-06-07 15:28 ` Alan Jenkins
2009-06-07 17:16 ` Johannes Berg
2009-06-07 17:26 ` Alan Jenkins
2009-06-08 10:14 ` [RFC] rfkill: remove set_global_sw_state() Alan Jenkins
2009-06-08 10:32 ` Johannes Berg
2009-06-08 11:10 ` Alan Jenkins
2009-06-08 11:13 ` Johannes Berg
2009-06-08 11:15 ` Alan Jenkins
2009-06-08 11:19 ` [PATCH v2] rfkill: remove set_global_sw_state Alan Jenkins
2009-06-08 11:22 ` Alan Jenkins
2009-06-08 11:24 ` [PATCH v3] " Alan Jenkins
2009-06-08 12:27 ` [PATCH v4] " Alan Jenkins
2009-06-10 1:55 ` Henrique de Moraes Holschuh
2009-06-07 15:46 ` [PATCH] rfkill: create useful userspace interface Marcel Holtmann
2009-06-07 16:04 ` Alan Jenkins
2009-06-07 16:35 ` Marcel Holtmann
2009-06-07 17:16 ` Alan Jenkins
2009-06-07 17:25 ` Johannes Berg
2009-06-10 2:05 ` Henrique de Moraes Holschuh
2009-06-10 7:13 ` Marcel Holtmann
2009-06-10 9:06 ` Alan Jenkins
2009-06-11 12:01 ` Marcel Holtmann
2009-06-11 12:56 ` Alan Jenkins
2009-06-07 17:04 ` Dan Williams
2009-06-10 2:22 ` Henrique de Moraes Holschuh
2009-06-10 7:16 ` Marcel Holtmann
2009-06-02 8:33 ` Alan Jenkins
2009-06-02 8:41 ` Marcel Holtmann
2009-06-03 4:10 ` Henrique de Moraes Holschuh
2009-06-03 6:01 ` Marcel Holtmann
2009-06-03 21:38 ` Henrique de Moraes Holschuh
2009-06-04 4:20 ` Marcel Holtmann
2009-06-03 13:03 ` Dan Williams
2009-06-03 21:40 ` Henrique de Moraes Holschuh
2009-06-04 4:24 ` Marcel Holtmann
2009-06-07 13:54 ` Henrique de Moraes Holschuh
2009-06-07 15:36 ` Marcel Holtmann
2009-06-10 2:44 ` Henrique de Moraes Holschuh
2009-06-10 7:19 ` Marcel Holtmann
2009-06-01 12:28 ` Henrique de Moraes Holschuh
2009-06-01 12:37 ` Henrique de Moraes Holschuh
2009-06-01 12:38 ` Johannes Berg
2009-06-01 12:45 ` Henrique de Moraes Holschuh
2009-06-01 12:50 ` Johannes Berg
2009-06-01 13:33 ` Henrique de Moraes Holschuh
2009-06-01 14:29 ` Johannes Berg
2009-06-01 15:36 ` Henrique de Moraes Holschuh
2009-06-01 15:37 ` Johannes Berg
2009-06-01 15:50 ` Henrique de Moraes Holschuh
2009-06-01 15:53 ` Johannes Berg
2009-06-01 17:56 ` Henrique de Moraes Holschuh
2009-06-01 19:22 ` Johannes Berg
2009-06-01 12:43 ` Johannes Berg
2009-06-01 12:49 ` Henrique de Moraes Holschuh
2009-06-01 12:53 ` Johannes Berg
2009-05-31 13:51 ` Alan Jenkins
2009-05-31 13:54 ` Johannes Berg
2009-05-31 18:22 ` Alan Jenkins
2009-05-31 19:03 ` Marcel Holtmann
2009-05-31 21:19 ` Dan Williams
2009-06-01 7:18 ` Marcel Holtmann
2009-06-01 7:27 ` Johannes Berg
2009-06-01 7:40 ` Alan Jenkins
2009-06-01 14:41 ` Marcel Holtmann
2009-06-02 8:08 ` [PATCH v5] " Johannes Berg
2009-06-02 8:33 ` Marcel Holtmann
2009-06-02 9:41 ` [PATCH v6] " Johannes Berg
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=1244088806.4145.24.camel@localhost.localdomain \
--to=marcel@holtmann.org \
--cc=alan-jenkins@tuffmail.co.uk \
--cc=hmh@hmh.eng.br \
--cc=johannes@sipsolutions.net \
--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).