[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.0812040934080.16637@titan.stealer.net>
Date: Thu, 4 Dec 2008 10:12:16 +0100 (CET)
From: Sven Wegener <sven.wegener@...aler.net>
To: Matthew Garrett <mjg59@...f.ucam.org>
cc: Len Brown <lenb@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, Matt_Domsch@...l.com, greg@...ah.com,
linux-acpi@...r.kernel.org, Richard Purdie <rpurdie@...ys.net>,
Ivo van Doorn <ivdoorn@...il.com>
Subject: Re: [PATCH 2/2 update] misc: Add dell-laptop driver
On Wed, 3 Dec 2008, Matthew Garrett wrote:
> Add a driver for controling Dell-specific backlight and rfkill
> interfaces. This driver makes use of the dcdbas interface to the Dell
> firmware to allow the backlight and rfkill interfaces on Dell systems to
> be driven through the standardised sysfs interfaces.
> +static void parse_da_table(const struct dmi_header *dm)
__init
> +static void find_tokens(const struct dmi_header *dm)
__init
> +{
> + switch (dm->type) {
> + case 0xd4: /* Indexed IO */
> + break;
> + case 0xd5: /* Protected Area Type 1 */
> + break;
> + case 0xd6: /* Protected Area Type 2 */
> + break;
> + case 0xda: /* Calling interface */
> + parse_da_table(dm);
> + break;
> + }
This could be a simple if (dm->type == 0xda), it looks like the switch
is abused as documentation.
> +/* Derived from information in DellWirelessCtl.cpp:
> + Class 17, select 11 is radio control. It returns an array of 32-bit values.
> +
> + result[0]: return code
> + result[1]:
> + Bit 0: Hardware switch supported
> + Bit 1: Wifi locator supported
> + Bit 2: Wifi is supported
> + Bit 3: Bluetooth is supported
> + Bit 4: WWAN is supported
> + Bit 5: Wireless keyboard supported
> + Bits 6-7: Reserved
> + Bit 8: Wifi is installed
> + Bit 9: Bluetooth is installed
> + Bit 10: WWAN is installed
> + Bits 11-15: Reserved
> + Bit 16: Hardware switch is on
> + Bit 17: Wifi is blocked
> + Bit 18: Bluetooth is blocked
> + Bit 19: WWAN is blocked
> + Bits 20-31: Reserved
> + result[2]: NVRAM size in bytes
> + result[3]: NVRAM format version number
Could these bit numbers be defines with declarative names, e.g define
DELL_WIFI_BLOCKED (1<<17)? It would make reading the code that just uses
plain numbers easier.
> + memset(&buffer, 0, sizeof(struct calling_interface_buffer));
sizeof(buffer)
Likewise for other sizeof() occurrences that follow.
> +static int dell_setup_rfkill(void)
__init
Sven
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists