linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	Johannes Berg <johannes@sipsolutions.net>,
	John Linville <linville@tuxdriver.com>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] rfkill: create useful userspace interface
Date: Thu, 11 Jun 2009 14:01:29 +0200	[thread overview]
Message-ID: <1244721689.27363.15.camel@violet> (raw)
In-Reply-To: <4A2F779F.8070003@tuffmail.co.uk>

Hi Alan,

> >>>> I don't think we should expect userspace to know whether or not a device
> >>>> has a persistent state.  Yes, it _could_ maintain whitelists, but why
> >>>> should it have to if the driver already knows?
> >>>>         
> >>> If you want that, then the best approach seems an extra sysfs attribute
> >>> for this. It is not intrusive on the event API and lets udev etc. have
> >>> these information, too.
> >>>       
> >> I have no problems with either approach.  As long as the information of
> >> which devices have restored their initial state from NVS is available to
> >> userspace, it is enough.
> >>     
> >
> > just to get the semantic right here. We are not telling userspace if a
> > state has been restored or not. We are telling userspace that this
> > specific RFKILL switch is capable of storing something in a persistent
> > state over boot. There is a difference here.
> >
> > If a RFKILL driver claims it is capable of persistent storage then it
> > better work or it should not claims it. Either it does it all the time
> > or doesn't do it at all. Otherwise we end up in policy again and that is
> > not the job of the kernel.
> >
> >   
> >> Do note that this information also needs to be available for resume (state
> >> should be checkpointed to NVS on sleep, and restored from NVS on resume.  I
> >> believe tpacpi does this, but if it doesn't, I will fix it eventually).
> >>     
> >
> > Correct. That is the job of the driver. If it is broken, that needs
> > fixing.
> >   
> 
> The core needs fixing too, currently it restores state for all devices
> on resume.
> 
> This is my fault again, for coming up with scenarios you probably don't
> care about :-).  The problem is that suspend to disk provides a
> possibility that the state will change for _any_ driver.  It's more
> obvious with rfkill-input and NVS, if the wireless toggle key is pressed
> when the disk image is being written out.  But you can also contrive it
> with no NVS and rfkilld, if rfkilld gets started in the initramfs of the
> resume kernel.  We took the easy way out, rather than adding resume
> handlers to all drivers, or trying to work out what the real design
> problem was :-).
> 
> I hope that explains the issue.  I agree with your logic, I just want to
> be clear that it needs more work on the rfkill core.  Drivers with NVS
> should have a resume handler to call rfkill_set_sw_state(), but for this
> to work the core will need to stop restoring their state (for NVS
> drivers only).  As a detail, I think this behaviour difference with NVS
> means it should be flagged with a more explicit API, e.g.
> rfkill_init_persistent_sw_state().

I don't see any problem here. If the driver needs extra help from the
RFKILL subsystem to express its states, that is just fine with me.

> rfkill-input would like another (even more intrusive) hack here to set
> the global state on resume.  But I for one can live without it for the
> transition.  I think NVS state change over suspend is much more of a
> corner case.  At least on eeepc-laptop it only seems to happen if the
> user does something relatively odd.  And the worst that will happen is
> they have to press the wireless-toggle key a second time before it
> starts working.

So one think is NVS states and the other are the HW switches. For the
NVS ones we need extra support for suspend/resume details, but that is
as mentioned above just fine. Also please keep in mind that NVS states
are per device and not global. If a system wants to treat them as global
that is userspace policy and not our concern from the kernel side.

For the HW states, I think they gonna store its state pretty obvious and
if we need a resume callback to poll its current state, then that seems
logical to me too.

Regards

Marcel



  reply	other threads:[~2009-06-11 12:01 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
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 [this message]
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=1244721689.27363.15.camel@violet \
    --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).