Message ID | 4ABB89B2.8070302@tuffmail.co.uk (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Johannes Berg wrote: > On Thu, 2009-09-24 at 16:01 +0100, Alan Jenkins wrote: > > >> I think it's pretty clear it's in the sony code. It doesn't call >> set_hw_state() during init. I.e. (completely untested): >> > > Agree, looking at the code this seems reasonable. > > Although maybe it should just call sony_nc_rfkill_update() after > registering all of them? > > johannes > That means the initial "add" uevents etc. will contain wrong values (and then be updated immediately after). Do we care about that? It's unlikely to matter in practice for platform devices which only get loaded at boot-time, but perhaps it would set a bad example. Regards Alan -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Do, 24 Sep 2009, Alan Jenkins wrote: > + sony_call_snc_handle(0x124, 0x200, &result); > + hwblock = !(result & 0x1); > + rfkill_set_hw_state(rfk, hwblock); > + I confirm that the (full) patch fixed that problem. Thanks! Best wishes Norbert ------------------------------------------------------------------------------- Dr. Norbert Preining <preining@logic.at> Vienna University of Technology Debian Developer <preining@debian.org> Debian TeX Group gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 ------------------------------------------------------------------------------- GOLANT (adj.) Blank, sly and faintly embarrassed. Pertaining to the expression seen on the face of someone who has clearly forgotten your name. --- Douglas Adams, The Meaning of Liff -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 2009-09-24 at 16:12 +0100, Alan Jenkins wrote: > > Although maybe it should just call sony_nc_rfkill_update() after > > registering all of them? > That means the initial "add" uevents etc. will contain wrong values (and > then be updated immediately after). Do we care about that? It's > unlikely to matter in practice for platform devices which only get > loaded at boot-time, but perhaps it would set a bad example. Ah, good point. I was just a little concerned about the logic difference, but I don't really understand the _update() logic. johannes
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index dafaa4a..a234a9d 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -1081,6 +1081,8 @@ static int sony_nc_setup_rfkill(struct acpi_device *device, struct rfkill *rfk; enum rfkill_type type; const char *name; + int result; + bool hwblock; switch (nc_type) { case SONY_WIFI: @@ -1108,6 +1110,10 @@ static int sony_nc_setup_rfkill(struct acpi_device *device, if (!rfk) return -ENOMEM; + sony_call_snc_handle(0x124, 0x200, &result); + hwblock = !(result & 0x1); + rfkill_set_hw_state(rfk, hwblock); + err = rfkill_register(rfk); if (err) { rfkill_destroy(rfk);