linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Helmut Schaa <helmut.schaa@googlemail.com>
To: reinette chatre <reinette.chatre@intel.com>
Cc: "linville@tuxdriver.com" <linville@tuxdriver.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"ipw3945-devel@lists.sourceforge.net"
	<ipw3945-devel@lists.sourceforge.net>,
	"Guy, Wey-Yi W" <wey-yi.w.guy@intel.com>
Subject: Re: [PATCH 2/3] iwlwifi: remove STATUS_ALIVE checking from rf_kill
Date: Thu, 26 Mar 2009 21:58:51 +0100	[thread overview]
Message-ID: <200903262158.52601.helmut.schaa@gmail.com> (raw)
In-Reply-To: <1238099847.25000.63.camel@rc-desk>

Am Donnerstag, 26. M=C3=A4rz 2009 schrieb reinette chatre:
> On Thu, 2009-03-26 at 12:49 -0700, Helmut Schaa wrote:
> > Am Donnerstag, 26. M=C3=A4rz 2009 schrieb reinette chatre:
> > > On Thu, 2009-03-26 at 12:11 -0700, Helmut Schaa wrote:
> > > > Am Donnerstag, 26. M=C3=A4rz 2009 schrieb reinette chatre:
> > > > > On Thu, 2009-03-26 at 10:50 -0700, Helmut Schaa wrote:
> > > > > > Hi,
> > > > > >=20
> > > > > > Am Donnerstag, 26. M=C3=A4rz 2009 schrieb Reinette Chatre:
> > > > > > > From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
> > > > > > >=20
> > > > > > > Remove STATUS_ALIVE checking when HW RF KILL disabled, th=
e bit get
> > > > > > > clear in __iwl_down() function; the additional checking w=
ill fail and
> > > > > > > cause RF can not be turn back on.
> > > > > >=20
> > > > > > Are you sure this is needed? I'd argue we should only resta=
rt the adapter
> > > > > > if it was alive when it got rf_killed. In case the adapter =
was rf_killed
> > > > > > while the interface was down I don't think we want to resta=
rt the adapter
> > > > > > immediately but first when the interface is taken up again.
> > > > >=20
> > > > > We also need to consider if a suspend/resume happens in the m=
iddle.
> > > > > Without the patch, if you enable rfkill, suspend, resume, dis=
able
> > > > > rfkill, then your interface cannot be brought up.
> > > >=20
> > > > I guess you refer to the situation where the interface is up, r=
ight?
> > > > Something like:
> > > >=20
> > > > - ifconfig wlan0 up
> > > > - press killswitch (kill wireless)
> > > > - suspend
> > > > - resume
> > > > - press killswitch (enable wireless)
> > > > - here the interface should still be up
> > > >=20
> > > > As the interface is/was up, mac80211's resume handler should re=
start the
> > > > adapter and thus we wouldn't need to restart the adapter in the
> > > > rfkill-handler, or did I miss anything?
> > >=20
> > > Yes, the resume handler will start the adapter (call "start"), bu=
t the
> > > actions done by it will exit early because of rfkill being enable=
d. The
> > > STATUS_ALIVE bit will thus not be set after this is completed. La=
ter,
> > > when user disables rfkill, we want to restart the adapter to get =
all
> > > this corrected, but this call currently fails because of this che=
ck.
> >=20
> > Got it, thanks for the explanation.
> >=20
> > Nevertheless, removing the check will result in restarting the adap=
ter even
> > if the interface is down. So, I agree that we have a problem here b=
ut I do
> > not agree with the solution ;)
>=20
> I agree that it is not efficient ... but it seems harmless.

Assume the following situation:

You only have one killswitch for both, wireless and bluetooth. The wire=
less
interface is down because it is unused and the user wants to use blueto=
oth
and enables it via the killswitch which also means that wireless gets
unkilled. Now restarting the adapter needs more power then keeping the
adapter down. In short: if the interface is down the user (space) does =
not
want to use the interface and probably wants to save power as well.

> > Maybe taking the interface up (not only pseudo-up, as done currentl=
y) should
> > be allowed even if wireless is killed? We already allow the interfa=
ce to
> > stay up when the adapter gets rfkilled.
>=20
> Knowing that rfkill is enabled enables us to save power by not bringi=
ng
> everything up.

Yes, but user (space) knows that the wireless card consumes more power =
if the
interface is up. And if you use NM for example it will just take the in=
terface
down when the killswitch gets activated.

Another solution would be to
1) not allow the interface to go up when it is rfkilled, and
2) take the interface down when it gets rfkilled

However, I'm not sure if 2 is possible without help of mac80211 and if =
it
makes sense to change an interface state from within the driver.

Helmut
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2009-03-26 20:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-26 17:14 [PATCH 0/3] iwlwifi driver updates 03/26/2009 Reinette Chatre
2009-03-26 17:14 ` [PATCH 1/3] iwlwifi: merge and better support of suspend/resume for iwlagn and iwl3945 Reinette Chatre
2009-03-26 17:14   ` [PATCH 2/3] iwlwifi: remove STATUS_ALIVE checking from rf_kill Reinette Chatre
2009-03-26 17:14     ` [PATCH 3/3] iwl3945: use iwl_mac_conf_tx Reinette Chatre
2009-03-26 17:50     ` [PATCH 2/3] iwlwifi: remove STATUS_ALIVE checking from rf_kill Helmut Schaa
2009-03-26 18:22       ` reinette chatre
2009-03-26 19:11         ` Helmut Schaa
2009-03-26 19:30           ` reinette chatre
2009-03-26 19:49             ` Helmut Schaa
2009-03-26 20:37               ` reinette chatre
2009-03-26 20:58                 ` Helmut Schaa [this message]
2009-03-26 23:26                   ` reinette chatre
2009-03-27  6:19                     ` Helmut Schaa
2009-03-27  6:25                     ` Helmut Schaa
2009-03-27 15:45                       ` reinette chatre
2009-03-27  3:49                   ` reinette chatre
2009-03-27  6:18     ` Helmut Schaa
2009-03-27 16:03       ` reinette chatre
2009-03-27 16:30         ` reinette chatre

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=200903262158.52601.helmut.schaa@gmail.com \
    --to=helmut.schaa@googlemail.com \
    --cc=ipw3945-devel@lists.sourceforge.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=reinette.chatre@intel.com \
    --cc=wey-yi.w.guy@intel.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).