diff options
35 files changed, 1355 insertions, 1154 deletions
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt deleted file mode 100644 index 4beafa663dd..00000000000 --- a/Documentation/laptops/acer-wmi.txt +++ /dev/null @@ -1,184 +0,0 @@ -Acer Laptop WMI Extras Driver -http://code.google.com/p/aceracpi -Version 0.3 -4th April 2009 - -Copyright 2007-2009 Carlos Corbacho <carlos@strangeworlds.co.uk> - -acer-wmi is a driver to allow you to control various parts of your Acer laptop -hardware under Linux which are exposed via ACPI-WMI. - -This driver completely replaces the old out-of-tree acer_acpi, which I am -currently maintaining for bug fixes only on pre-2.6.25 kernels. All development -work is now focused solely on acer-wmi. - -Disclaimer -********** - -Acer and Wistron have provided nothing towards the development acer_acpi or -acer-wmi. All information we have has been through the efforts of the developers -and the users to discover as much as possible about the hardware. - -As such, I do warn that this could break your hardware - this is extremely -unlikely of course, but please bear this in mind. - -Background -********** - -acer-wmi is derived from acer_acpi, originally developed by Mark -Smith in 2005, then taken over by Carlos Corbacho in 2007, in order to activate -the wireless LAN card under a 64-bit version of Linux, as acerhk[1] (the -previous solution to the problem) relied on making 32 bit BIOS calls which are -not possible in kernel space from a 64 bit OS. - -[1] acerhk: http://www.cakey.de/acerhk/ - -Supported Hardware -****************** - -NOTE: The Acer Aspire One is not supported hardware. It cannot work with -acer-wmi until Acer fix their ACPI-WMI implementation on them, so has been -blacklisted until that happens. - -Please see the website for the current list of known working hardware: - -http://code.google.com/p/aceracpi/wiki/SupportedHardware - -If your laptop is not listed, or listed as unknown, and works with acer-wmi, -please contact me with a copy of the DSDT. - -If your Acer laptop doesn't work with acer-wmi, I would also like to see the -DSDT. - -To send me the DSDT, as root/sudo: - -cat /sys/firmware/acpi/tables/DSDT > dsdt - -And send me the resulting 'dsdt' file. - -Usage -***** - -On Acer laptops, acer-wmi should already be autoloaded based on DMI matching. -For non-Acer laptops, until WMI based autoloading support is added, you will -need to manually load acer-wmi. - -acer-wmi creates /sys/devices/platform/acer-wmi, and fills it with various -files whose usage is detailed below, which enables you to control some of the -following (varies between models): - -* the wireless LAN card radio -* inbuilt Bluetooth adapter -* inbuilt 3G card -* mail LED of your laptop -* brightness of the LCD panel - -Wireless -******** - -With regards to wireless, all acer-wmi does is enable the radio on the card. It -is not responsible for the wireless LED - once the radio is enabled, this is -down to the wireless driver for your card. So the behaviour of the wireless LED, -once you enable the radio, will depend on your hardware and driver combination. - -e.g. With the BCM4318 on the Acer Aspire 5020 series: - -ndiswrapper: Light blinks on when transmitting -b43: Solid light, blinks off when transmitting - -Wireless radio control is unconditionally enabled - all Acer laptops that support -acer-wmi come with built-in wireless. However, should you feel so inclined to -ever wish to remove the card, or swap it out at some point, please get in touch -with me, as we may well be able to gain some data on wireless card detection. - -The wireless radio is exposed through rfkill. - -Bluetooth -********* - -For bluetooth, this is an internal USB dongle, so once enabled, you will get -a USB device connection event, and a new USB device appears. When you disable -bluetooth, you get the reverse - a USB device disconnect event, followed by the -device disappearing again. - -Bluetooth is autodetected by acer-wmi, so if you do not have a bluetooth module -installed in your laptop, this file won't exist (please be aware that it is -quite common for Acer not to fit bluetooth to their laptops - so just because -you have a bluetooth button on the laptop, doesn't mean that bluetooth is -installed). - -For the adventurously minded - if you want to buy an internal bluetooth -module off the internet that is compatible with your laptop and fit it, then -it will work just fine with acer-wmi. - -Bluetooth is exposed through rfkill. - -3G -** - -3G is currently not autodetected, so the 'threeg' file is always created under -sysfs. So far, no-one in possession of an Acer laptop with 3G built-in appears to -have tried Linux, or reported back, so we don't have any information on this. - -If you have an Acer laptop that does have a 3G card in, please contact me so we -can properly detect these, and find out a bit more about them. - -To read the status of the 3G card (0=off, 1=on): -cat /sys/devices/platform/acer-wmi/threeg - -To enable the 3G card: -echo 1 > /sys/devices/platform/acer-wmi/threeg - -To disable the 3G card: -echo 0 > /sys/devices/platform/acer-wmi/threeg - -To set the state of the 3G card when loading acer-wmi, pass: -threeg=X (where X is 0 or 1) - -Mail LED -******** - -This can be found in most older Acer laptops supported by acer-wmi, and many -newer ones - it is built into the 'mail' button, and blinks when active. - -On newer (WMID) laptops though, we have no way of detecting the mail LED. If -your laptop identifies itself in dmesg as a WMID model, then please try loading -acer_acpi with: - -force_series=2490 - -This will use a known alternative method of reading/ writing the mail LED. If -it works, please report back to me with the DMI data from your laptop so this -can be added to acer-wmi. - -The LED is exposed through the LED subsystem, and can be found in: - -/sys/devices/platform/acer-wmi/leds/acer-wmi::mail/ - -The mail LED is autodetected, so if you don't have one, the LED device won't -be registered. - -Backlight -********* - -The backlight brightness control is available on all acer-wmi supported -hardware. The maximum brightness level is usually 15, but on some newer laptops -it's 10 (this is again autodetected). - -The backlight is exposed through the backlight subsystem, and can be found in: - -/sys/devices/platform/acer-wmi/backlight/acer-wmi/ - -Credits -******* - -Olaf Tauber, who did the real hard work when he developed acerhk -http://www.cakey.de/acerhk/ -All the authors of laptop ACPI modules in the kernel, whose work -was an inspiration in the early days of acer_acpi -Mathieu Segaud, who solved the problem with having to modprobe the driver -twice in acer_acpi 0.2. -Jim Ramsay, who added support for the WMID interface -Mark Smith, who started the original acer_acpi - -And the many people who have used both acer_acpi and acer-wmi. diff --git a/MAINTAINERS b/MAINTAINERS index 2e94220898d..29801f760b6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -223,10 +223,8 @@ S:	Maintained  F:	drivers/platform/x86/acerhdf.c  ACER WMI LAPTOP EXTRAS -M:	Carlos Corbacho <carlos@strangeworlds.co.uk> -L:	aceracpi@googlegroups.com (subscribers-only) +M:	Joey Lee <jlee@novell.com>  L:	platform-driver-x86@vger.kernel.org -W:	http://code.google.com/p/aceracpi  S:	Maintained  F:	drivers/platform/x86/acer-wmi.c @@ -271,10 +269,8 @@ S:	Supported  F:	drivers/acpi/video.c  ACPI WMI DRIVER -M:	Carlos Corbacho <carlos@strangeworlds.co.uk>  L:	platform-driver-x86@vger.kernel.org -W:	http://www.lesswatts.org/projects/acpi/ -S:	Maintained +S:	Orphan  F:	drivers/platform/x86/wmi.c  AD1889 ALSA SOUND DRIVER @@ -3033,9 +3029,8 @@ S:	Maintained  F:	drivers/net/wireless/hostap/  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER -M:	Carlos Corbacho <carlos@strangeworlds.co.uk>  L:	platform-driver-x86@vger.kernel.org -S:	Odd Fixes +S:	Orphan  F:	drivers/platform/x86/tc1100-wmi.c  HP100:	Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index 5cb999b50f9..45e0191c35d 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig @@ -39,7 +39,7 @@ config ACER_WMI  config ACERHDF  	tristate "Acer Aspire One temperature and fan driver" -	depends on THERMAL && THERMAL_HWMON && ACPI +	depends on THERMAL && ACPI  	---help---  	  This is a driver for Acer Aspire One netbooks. It allows to access  	  the temperature sensor and to control the fan. @@ -760,4 +760,13 @@ config MXM_WMI            MXM is a standard for laptop graphics cards, the WMI interface  	  is required for switchable nvidia graphics machines +config INTEL_OAKTRAIL +	tristate "Intel Oaktrail Platform Extras" +	depends on ACPI +	depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI +	---help--- +	  Intel Oaktrail platform need this driver to provide interfaces to +	  enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y +	  here; it will only load on supported platforms. +  endif # X86_PLATFORM_DEVICES diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile index a7ab3bc7b3a..afc1f832aa6 100644 --- a/drivers/platform/x86/Makefile +++ b/drivers/platform/x86/Makefile @@ -41,5 +41,6 @@ obj-$(CONFIG_XO1_RFKILL)	+= xo1-rfkill.o  obj-$(CONFIG_XO15_EBOOK)	+= xo15-ebook.o  obj-$(CONFIG_IBM_RTL)		+= ibm_rtl.o  obj-$(CONFIG_SAMSUNG_LAPTOP)	+= samsung-laptop.o -obj-$(CONFIG_INTEL_MFLD_THERMAL)	+= intel_mid_thermal.o  obj-$(CONFIG_MXM_WMI)		+= mxm-wmi.o +obj-$(CONFIG_INTEL_MID_POWER_BUTTON)	+= intel_mid_powerbtn.o +obj-$(CONFIG_INTEL_OAKTRAIL)	+= intel_oaktrail.o diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index ac4e7f83ce6..005417bd429 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -98,13 +98,26 @@ enum acer_wmi_event_ids {  static const struct key_entry acer_wmi_keymap[] = {  	{KE_KEY, 0x01, {KEY_WLAN} },     /* WiFi */ +	{KE_KEY, 0x03, {KEY_WLAN} },     /* WiFi */  	{KE_KEY, 0x12, {KEY_BLUETOOTH} },	/* BT */  	{KE_KEY, 0x21, {KEY_PROG1} },    /* Backup */  	{KE_KEY, 0x22, {KEY_PROG2} },    /* Arcade */  	{KE_KEY, 0x23, {KEY_PROG3} },    /* P_Key */  	{KE_KEY, 0x24, {KEY_PROG4} },    /* Social networking_Key */ +	{KE_IGNORE, 0x41, {KEY_MUTE} }, +	{KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} }, +	{KE_IGNORE, 0x43, {KEY_NEXTSONG} }, +	{KE_IGNORE, 0x44, {KEY_PLAYPAUSE} }, +	{KE_IGNORE, 0x45, {KEY_STOP} }, +	{KE_IGNORE, 0x48, {KEY_VOLUMEUP} }, +	{KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} }, +	{KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} }, +	{KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} }, +	{KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} },  	{KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} },	/* Display Switch */ +	{KE_IGNORE, 0x81, {KEY_SLEEP} },  	{KE_KEY, 0x82, {KEY_TOUCHPAD_TOGGLE} },	/* Touch Pad On/Off */ +	{KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },  	{KE_END, 0}  }; @@ -122,6 +135,7 @@ struct event_return_value {   */  #define ACER_WMID3_GDS_WIRELESS		(1<<0)	/* WiFi */  #define ACER_WMID3_GDS_THREEG		(1<<6)	/* 3G */ +#define ACER_WMID3_GDS_WIMAX		(1<<7)	/* WiMAX */  #define ACER_WMID3_GDS_BLUETOOTH	(1<<11)	/* BT */  struct lm_input_params { @@ -737,8 +751,11 @@ WMI_execute_u32(u32 method_id, u32 in, u32 *out)  	obj = (union acpi_object *) result.pointer;  	if (obj && obj->type == ACPI_TYPE_BUFFER && -		obj->buffer.length == sizeof(u32)) { +		(obj->buffer.length == sizeof(u32) || +		obj->buffer.length == sizeof(u64))) {  		tmp = *((u32 *) obj->buffer.pointer); +	} else if (obj->type == ACPI_TYPE_INTEGER) { +		tmp = (u32) obj->integer.value;  	} else {  		tmp = 0;  	} @@ -866,8 +883,11 @@ static acpi_status WMID_set_capabilities(void)  	obj = (union acpi_object *) out.pointer;  	if (obj && obj->type == ACPI_TYPE_BUFFER && -		obj->buffer.length == sizeof(u32)) { +		(obj->buffer.length == sizeof(u32) || +		obj->buffer.length == sizeof(u64))) {  		devices = *((u32 *) obj->buffer.pointer); +	} else if (obj->type == ACPI_TYPE_INTEGER) { +		devices = (u32) obj->integer.value;  	} else {  		kfree(out.pointer);  		return AE_ERROR; @@ -876,7 +896,8 @@ static acpi_status WMID_set_capabilities(void)  	dmi_walk(type_aa_dmi_decode, NULL);  	if (!has_type_aa) {  		interface->capability |= ACER_CAP_WIRELESS; -		interface->capability |= ACER_CAP_THREEG; +		if (devices & 0x40) +			interface->capability |= ACER_CAP_THREEG;  		if (devices & 0x10)  			interface->capability |= ACER_CAP_BLUETOOTH;  	} @@ -961,10 +982,12 @@ static void __init acer_commandline_init(void)  	 * These will all fail silently if the value given is invalid, or the  	 * capability isn't available on the given interface  	 */ -	set_u32(mailled, ACER_CAP_MAILLED); -	if (!has_type_aa) +	if (mailled >= 0) +		set_u32(mailled, ACER_CAP_MAILLED); +	if (!has_type_aa && threeg >= 0)  		set_u32(threeg, ACER_CAP_THREEG); -	set_u32(brightness, ACER_CAP_BRIGHTNESS); +	if (brightness >= 0) +		set_u32(brightness, ACER_CAP_BRIGHTNESS);  }  /* @@ -1081,7 +1104,7 @@ static acpi_status wmid3_get_device_status(u32 *value, u16 device)  		return AE_ERROR;  	}  	if (obj->buffer.length != 8) { -		pr_warning("Unknown buffer length %d\n", obj->buffer.length); +		pr_warn("Unknown buffer length %d\n", obj->buffer.length);  		kfree(obj);  		return AE_ERROR;  	} @@ -1090,8 +1113,8 @@ static acpi_status wmid3_get_device_status(u32 *value, u16 device)  	kfree(obj);  	if (return_value.error_code || return_value.ec_return_value) -		pr_warning("Get Device Status failed: " -			"0x%x - 0x%x\n", return_value.error_code, +		pr_warn("Get Device Status failed: 0x%x - 0x%x\n", +			return_value.error_code,  			return_value.ec_return_value);  	else  		*value = !!(return_value.devices & device); @@ -1124,6 +1147,114 @@ static acpi_status get_device_status(u32 *value, u32 cap)  	}  } +static acpi_status wmid3_set_device_status(u32 value, u16 device) +{ +	struct wmid3_gds_return_value return_value; +	acpi_status status; +	union acpi_object *obj; +	u16 devices; +	struct wmid3_gds_input_param params = { +		.function_num = 0x1, +		.hotkey_number = 0x01, +		.devices = ACER_WMID3_GDS_WIRELESS & +				ACER_WMID3_GDS_THREEG & +				ACER_WMID3_GDS_WIMAX & +				ACER_WMID3_GDS_BLUETOOTH, +	}; +	struct acpi_buffer input = { +		sizeof(struct wmid3_gds_input_param), +		¶ms +	}; +	struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; +	struct acpi_buffer output2 = { ACPI_ALLOCATE_BUFFER, NULL }; + +	status = wmi_evaluate_method(WMID_GUID3, 0, 0x2, &input, &output); +	if (ACPI_FAILURE(status)) +		return status; + +	obj = output.pointer; + +	if (!obj) +		return AE_ERROR; +	else if (obj->type != ACPI_TYPE_BUFFER) { +		kfree(obj); +		return AE_ERROR; +	} +	if (obj->buffer.length != 8) { +		pr_warning("Unknown buffer length %d\n", obj->buffer.length); +		kfree(obj); +		return AE_ERROR; +	} + +	return_value = *((struct wmid3_gds_return_value *)obj->buffer.pointer); +	kfree(obj); + +	if (return_value.error_code || return_value.ec_return_value) { +		pr_warning("Get Current Device Status failed: " +			"0x%x - 0x%x\n", return_value.error_code, +			return_value.ec_return_value); +		return status; +	} + +	devices = return_value.devices; +	params.function_num = 0x2; +	params.hotkey_number = 0x01; +	params.devices = (value) ? (devices | device) : (devices & ~device); + +	status = wmi_evaluate_method(WMID_GUID3, 0, 0x1, &input, &output2); +	if (ACPI_FAILURE(status)) +		return status; + +	obj = output2.pointer; + +	if (!obj) +		return AE_ERROR; +	else if (obj->type != ACPI_TYPE_BUFFER) { +		kfree(obj); +		return AE_ERROR; +	} +	if (obj->buffer.length != 4) { +		pr_warning("Unknown buffer length %d\n", obj->buffer.length); +		kfree(obj); +		return AE_ERROR; +	} + +	return_value = *((struct wmid3_gds_return_value *)obj->buffer.pointer); +	kfree(obj); + +	if (return_value.error_code || return_value.ec_return_value) +		pr_warning("Set Device Status failed: " +			"0x%x - 0x%x\n", return_value.error_code, +			return_value.ec_return_value); + +	return status; +} + +static acpi_status set_device_status(u32 value, u32 cap) +{ +	if (wmi_has_guid(WMID_GUID3)) { +		u16 device; + +		switch (cap) { +		case ACER_CAP_WIRELESS: +			device = ACER_WMID3_GDS_WIRELESS; +			break; +		case ACER_CAP_BLUETOOTH: +			device = ACER_WMID3_GDS_BLUETOOTH; +			break; +		case ACER_CAP_THREEG: +			device = ACER_WMID3_GDS_THREEG; +			break; +		default: +			return AE_ERROR; +		} +		return wmid3_set_device_status(value, device); + +	} else { +		return set_u32(value, cap); +	} +} +  /*   * Rfkill devices   */ @@ -1160,7 +1291,7 @@ static int acer_rfkill_set(void *data, bool blocked)  	u32 cap = (unsigned long)data;  	if (rfkill_inited) { -		status = set_u32(!blocked, cap); +		status = set_device_status(!blocked, cap);  		if (ACPI_FAILURE(status))  			return -ENODEV;  	} @@ -1317,7 +1448,7 @@ static void acer_wmi_notify(u32 value, void *context)  	status = wmi_get_event_data(value, &response);  	if (status != AE_OK) { -		pr_warning("bad event status 0x%x\n", status); +		pr_warn("bad event status 0x%x\n", status);  		return;  	} @@ -1326,12 +1457,12 @@ static void acer_wmi_notify(u32 value, void *context)  	if (!obj)  		return;  	if (obj->type != ACPI_TYPE_BUFFER) { -		pr_warning("Unknown response received %d\n", obj->type); +		pr_warn("Unknown response received %d\n", obj->type);  		kfree(obj);  		return;  	}  	if (obj->buffer.length != 8) { -		pr_warning("Unknown buffer length %d\n", obj->buffer.length); +		pr_warn("Unknown buffer length %d\n", obj->buffer.length);  		kfree(obj);  		return;  	} @@ -1343,7 +1474,7 @@ static void acer_wmi_notify(u32 value, void *context)  	case WMID_HOTKEY_EVENT:  		if (return_value.device_state) {  			u16 device_state = return_value.device_state; -			pr_debug("deivces states: 0x%x\n", device_state); +			pr_debug("device state: 0x%x\n", device_state);  			if (has_cap(ACER_CAP_WIRELESS))  				rfkill_set_sw_state(wireless_rfkill,  				!(device_state & ACER_WMID3_GDS_WIRELESS)); @@ -1356,11 +1487,11 @@ static void acer_wmi_notify(u32 value, void *context)  		}  		if (!sparse_keymap_report_event(acer_wmi_input_dev,  				return_value.key_num, 1, true)) -			pr_warning("Unknown key number - 0x%x\n", +			pr_warn("Unknown key number - 0x%x\n",  				return_value.key_num);  		break;  	default: -		pr_warning("Unknown function number - %d - %d\n", +		pr_warn("Unknown function number - %d - %d\n",  			return_value.function, return_value.key_num);  		break;  	} @@ -1389,7 +1520,7 @@ wmid3_set_lm_mode(struct lm_input_params *params,  		return AE_ERROR;  	}  	if (obj->buffer.length != 4) { -		pr_warning("Unknown buffer length %d\n", obj->buffer.length); +		pr_warn("Unknown buffer length %d\n", obj->buffer.length);  		kfree(obj);  		return AE_ERROR;  	} @@ -1414,11 +1545,11 @@ static int acer_wmi_enable_ec_raw(void)  	status = wmid3_set_lm_mode(¶ms, &return_value);  	if (return_value.error_code || return_value.ec_return_value) -		pr_warning("Enabling EC raw mode failed: " -		       "0x%x - 0x%x\n", return_value.error_code, -		       return_value.ec_return_value); +		pr_warn("Enabling EC raw mode failed: 0x%x - 0x%x\n", +			return_value.error_code, +			return_value.ec_return_value);  	else -		pr_info("Enabled EC raw mode"); +		pr_info("Enabled EC raw mode\n");  	return status;  } @@ -1437,9 +1568,9 @@ static int acer_wmi_enable_lm(void)  	status = wmid3_set_lm_mode(¶ms, &return_value);  	if (return_value.error_code || return_value.ec_return_value) -		pr_warning("Enabling Launch Manager failed: " -		       "0x%x - 0x%x\n", return_value.error_code, -		       return_value.ec_return_value); +		pr_warn("Enabling Launch Manager failed: 0x%x - 0x%x\n", +			return_value.error_code, +			return_value.ec_return_value);  	return status;  } @@ -1506,8 +1637,11 @@ static u32 get_wmid_devices(void)  	obj = (union acpi_object *) out.pointer;  	if (obj && obj->type == ACPI_TYPE_BUFFER && -		obj->buffer.length == sizeof(u32)) { +		(obj->buffer.length == sizeof(u32) || +		obj->buffer.length == sizeof(u64))) {  		devices = *((u32 *) obj->buffer.pointer); +	} else if (obj->type == ACPI_TYPE_INTEGER) { +		devices = (u32) obj->integer.value;  	}  	kfree(out.pointer); diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c index 60f9cfcac93..fca3489218b 100644 --- a/drivers/platform/x86/acerhdf.c +++ b/drivers/platform/x86/acerhdf.c @@ -35,10 +35,8 @@  #include <linux/kernel.h>  #include <linux/module.h> -#include <linux/fs.h>  #include <linux/dmi.h> -#include <acpi/acpi_drivers.h> -#include <linux/sched.h> +#include <linux/acpi.h>  #include <linux/thermal.h>  #include <linux/platform_device.h> diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c index c53b3ff7978..d65df92e2ac 100644 --- a/drivers/platform/x86/asus-laptop.c +++ b/drivers/platform/x86/asus-laptop.c @@ -318,7 +318,7 @@ static int acpi_check_handle(acpi_handle handle, const char *method,  	if (status != AE_OK) {  		if (ret) -			pr_warning("Error finding %s\n", method); +			pr_warn("Error finding %s\n", method);  		return -ENODEV;  	}  	return 0; @@ -383,7 +383,7 @@ static int asus_kled_lvl(struct asus_laptop *asus)  	rv = acpi_evaluate_integer(asus->handle, METHOD_KBD_LIGHT_GET,  				   ¶ms, &kblv);  	if (ACPI_FAILURE(rv)) { -		pr_warning("Error reading kled level\n"); +		pr_warn("Error reading kled level\n");  		return -ENODEV;  	}  	return kblv; @@ -397,7 +397,7 @@ static int asus_kled_set(struct asus_laptop *asus, int kblv)  		kblv = 0;  	if (write_acpi_int(asus->handle, METHOD_KBD_LIGHT_SET, kblv)) { -		pr_warning("Keyboard LED display write failed\n"); +		pr_warn("Keyboard LED display write failed\n");  		return -EINVAL;  	}  	return 0; @@ -531,7 +531,7 @@ static int asus_read_brightness(struct backlight_device *bd)  	rv = acpi_evaluate_integer(asus->handle, METHOD_BRIGHTNESS_GET,  				   NULL, &value);  	if (ACPI_FAILURE(rv)) -		pr_warning("Error reading brightness\n"); +		pr_warn("Error reading brightness\n");  	return value;  } @@ -541,7 +541,7 @@ static int asus_set_brightness(struct backlight_device *bd, int value)  	struct asus_laptop *asus = bl_get_data(bd);  	if (write_acpi_int(asus->handle, METHOD_BRIGHTNESS_SET, value)) { -		pr_warning("Error changing brightness\n"); +		pr_warn("Error changing brightness\n");  		return -EIO;  	}  	return 0; @@ -730,7 +730,7 @@ static ssize_t store_ledd(struct device *dev, struct device_attribute *attr,  	rv = parse_arg(buf, count, &value);  	if (rv > 0) {  		if (write_acpi_int(asus->handle, METHOD_LEDD, value)) { -			pr_warning("LED display write failed\n"); +			pr_warn("LED display write failed\n");  			return -ENODEV;  		}  		asus->ledd_status = (u32) value; @@ -752,7 +752,7 @@ static int asus_wireless_status(struct asus_laptop *asus, int mask)  	rv = acpi_evaluate_integer(asus->handle, METHOD_WL_STATUS,  				   NULL, &status);  	if (ACPI_FAILURE(rv)) { -		pr_warning("Error reading Wireless status\n"); +		pr_warn("Error reading Wireless status\n");  		return -EINVAL;  	}  	return !!(status & mask); @@ -764,7 +764,7 @@ static int asus_wireless_status(struct asus_laptop *asus, int mask)  static int asus_wlan_set(struct asus_laptop *asus, int status)  {  	if (write_acpi_int(asus->handle, METHOD_WLAN, !!status)) { -		pr_warning("Error setting wlan status to %d", status); +		pr_warn("Error setting wlan status to %d\n", status);  		return -EIO;  	}  	return 0; @@ -792,7 +792,7 @@ static ssize_t store_wlan(struct device *dev, struct device_attribute *attr,  static int asus_bluetooth_set(struct asus_laptop *asus, int status)  {  	if (write_acpi_int(asus->handle, METHOD_BLUETOOTH, !!status)) { -		pr_warning("Error setting bluetooth status to %d", status); +		pr_warn("Error setting bluetooth status to %d\n", status);  		return -EIO;  	}  	return 0; @@ -821,7 +821,7 @@ static ssize_t store_bluetooth(struct device *dev,  static int asus_wimax_set(struct asus_laptop *asus, int status)  {  	if (write_acpi_int(asus->handle, METHOD_WIMAX, !!status)) { -		pr_warning("Error setting wimax status to %d", status); +		pr_warn("Error setting wimax status to %d\n", status);  		return -EIO;  	}  	return 0; @@ -850,7 +850,7 @@ static ssize_t store_wimax(struct device *dev,  static int asus_wwan_set(struct asus_laptop *asus, int status)  {  	if (write_acpi_int(asus->handle, METHOD_WWAN, !!status)) { -		pr_warning("Error setting wwan status to %d", status); +		pr_warn("Error setting wwan status to %d\n", status);  		return -EIO;  	}  	return 0; @@ -880,7 +880,7 @@ static void asus_set_display(struct asus_laptop *asus, int value)  {  	/* no sanity check needed for now */  	if (write_acpi_int(asus->handle, METHOD_SWITCH_DISPLAY, value)) -		pr_warning("Error setting display\n"); +		pr_warn("Error setting display\n");  	return;  } @@ -909,7 +909,7 @@ static ssize_t store_disp(struct device *dev, struct device_attribute *attr,  static void asus_als_switch(struct asus_laptop *asus, int value)  {  	if (write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value)) -		pr_warning("Error setting light sensor switch\n"); +		pr_warn("Error setting light sensor switch\n");  	asus->light_switch = value;  } @@ -937,7 +937,7 @@ static ssize_t store_lssw(struct device *dev, struct device_attribute *attr,  static void asus_als_level(struct asus_laptop *asus, int value)  {  	if (write_acpi_int(asus->handle, METHOD_ALS_LEVEL, value)) -		pr_warning("Error setting light sensor level\n"); +		pr_warn("Error setting light sensor level\n");  	asus->light_level = value;  } @@ -976,7 +976,7 @@ static int asus_gps_status(struct asus_laptop *asus)  	rv = acpi_evaluate_integer(asus->handle, METHOD_GPS_STATUS,  				   NULL, &status);  	if (ACPI_FAILURE(rv)) { -		pr_warning("Error reading GPS status\n"); +		pr_warn("Error reading GPS status\n");  		return -ENODEV;  	}  	return !!status; @@ -1284,7 +1284,7 @@ static int asus_laptop_get_info(struct asus_laptop *asus)  	 */  	status = acpi_get_table(ACPI_SIG_DSDT, 1, &asus->dsdt_info);  	if (ACPI_FAILURE(status)) -		pr_warning("Couldn't get the DSDT table header\n"); +		pr_warn("Couldn't get the DSDT table header\n");  	/* We have to write 0 on init this far for all ASUS models */  	if (write_acpi_int_ret(asus->handle, "INIT", 0, &buffer)) { @@ -1296,7 +1296,7 @@ static int asus_laptop_get_info(struct asus_laptop *asus)  	status =  	    acpi_evaluate_integer(asus->handle, "BSTS", NULL, &bsts_result);  	if (ACPI_FAILURE(status)) -		pr_warning("Error calling BSTS\n"); +		pr_warn("Error calling BSTS\n");  	else if (bsts_result)  		pr_notice("BSTS called, 0x%02x returned\n",  		       (uint) bsts_result); diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index 832a3fd7c1c..00460cb9587 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -425,7 +425,7 @@ static void asus_rfkill_hotplug(struct asus_wmi *asus)  	if (asus->hotplug_slot) {  		bus = pci_find_bus(0, 1);  		if (!bus) { -			pr_warning("Unable to find PCI bus 1?\n"); +			pr_warn("Unable to find PCI bus 1?\n");  			goto out_unlock;  		} @@ -436,12 +436,12 @@ static void asus_rfkill_hotplug(struct asus_wmi *asus)  		absent = (l == 0xffffffff);  		if (blocked != absent) { -			pr_warning("BIOS says wireless lan is %s, " -				   "but the pci device is %s\n", -				   blocked ? "blocked" : "unblocked", -				   absent ? "absent" : "present"); -			pr_warning("skipped wireless hotplug as probably " -				   "inappropriate for this model\n"); +			pr_warn("BIOS says wireless lan is %s, " +				"but the pci device is %s\n", +				blocked ? "blocked" : "unblocked", +				absent ? "absent" : "present"); +			pr_warn("skipped wireless hotplug as probably " +				"inappropriate for this model\n");  			goto out_unlock;  		} @@ -500,7 +500,7 @@ static int asus_register_rfkill_notifier(struct asus_wmi *asus, char *node)  						     ACPI_SYSTEM_NOTIFY,  						     asus_rfkill_notify, asus);  		if (ACPI_FAILURE(status)) -			pr_warning("Failed to register notify on %s\n", node); +			pr_warn("Failed to register notify on %s\n", node);  	} else  		return -ENODEV; @@ -1223,7 +1223,7 @@ static int asus_wmi_sysfs_init(struct platform_device *device)  /*   * Platform device   */ -static int __init asus_wmi_platform_init(struct asus_wmi *asus) +static int asus_wmi_platform_init(struct asus_wmi *asus)  {  	int rv; @@ -1583,12 +1583,12 @@ static int asus_wmi_probe(struct platform_device *pdev)  	int ret;  	if (!wmi_has_guid(ASUS_WMI_MGMT_GUID)) { -		pr_warning("Management GUID not found\n"); +		pr_warn("Management GUID not found\n");  		return -ENODEV;  	}  	if (wdrv->event_guid && !wmi_has_guid(wdrv->event_guid)) { -		pr_warning("Event GUID not found\n"); +		pr_warn("Event GUID not found\n");  		return -ENODEV;  	} diff --git a/drivers/platform/x86/asus_acpi.c b/drivers/platform/x86/asus_acpi.c index f503607c064..d9312b3073e 100644 --- a/drivers/platform/x86/asus_acpi.c +++ b/drivers/platform/x86/asus_acpi.c @@ -30,6 +30,8 @@   *   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/slab.h> @@ -581,8 +583,7 @@ static int read_led(const char *ledname, int ledmask)  		if (read_acpi_int(NULL, ledname, &led_status))  			return led_status;  		else -			printk(KERN_WARNING "Asus ACPI: Error reading LED " -			       "status\n"); +			pr_warn("Error reading LED status\n");  	}  	return (hotk->status & ledmask) ? 1 : 0;  } @@ -621,8 +622,7 @@ write_led(const char __user *buffer, unsigned long count,  		led_out = !led_out;  	if (!write_acpi_int(hotk->handle, ledname, led_out, NULL)) -		printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", -		       ledname); +		pr_warn("LED (%s) write failed\n", ledname);  	return rv;  } @@ -679,8 +679,7 @@ static ssize_t ledd_proc_write(struct file *file, const char __user *buffer,  	if (rv > 0) {  		if (!write_acpi_int  		    (hotk->handle, hotk->methods->mt_ledd, value, NULL)) -			printk(KERN_WARNING -			       "Asus ACPI: LED display write failed\n"); +			pr_warn("LED display write failed\n");  		else  			hotk->ledd_status = (u32) value;  	} @@ -838,8 +837,7 @@ static int get_lcd_state(void)  	} else {  		/* We don't have to check anything if we are here */  		if (!read_acpi_int(NULL, hotk->methods->lcd_status, &lcd)) -			printk(KERN_WARNING -			       "Asus ACPI: Error reading LCD status\n"); +			pr_warn("Error reading LCD status\n");  		if (hotk->model == L2D)  			lcd = ~lcd; @@ -871,7 +869,7 @@ static int set_lcd_state(int value)  			   the exact behaviour is simulated here */  		}  		if (ACPI_FAILURE(status)) -			printk(KERN_WARNING "Asus ACPI: Error switching LCD\n"); +			pr_warn("Error switching LCD\n");  	}  	return 0; @@ -915,13 +913,11 @@ static int read_brightness(struct backlight_device *bd)  	if (hotk->methods->brightness_get) {	/* SPLV/GPLV laptop */  		if (!read_acpi_int(hotk->handle, hotk->methods->brightness_get,  				   &value)) -			printk(KERN_WARNING -			       "Asus ACPI: Error reading brightness\n"); +			pr_warn("Error reading brightness\n");  	} else if (hotk->methods->brightness_status) {	/* For D1 for example */  		if (!read_acpi_int(NULL, hotk->methods->brightness_status,  				   &value)) -			printk(KERN_WARNING -			       "Asus ACPI: Error reading brightness\n"); +			pr_warn("Error reading brightness\n");  	} else			/* No GPLV method */  		value = hotk->brightness;  	return value; @@ -939,8 +935,7 @@ static int set_brightness(int value)  	if (hotk->methods->brightness_set) {  		if (!write_acpi_int(hotk->handle, hotk->methods->brightness_set,  				    value, NULL)) { -			printk(KERN_WARNING -			       "Asus ACPI: Error changing brightness\n"); +			pr_warn("Error changing brightness\n");  			ret = -EIO;  		}  		goto out; @@ -955,8 +950,7 @@ static int set_brightness(int value)  					      NULL, NULL);  		(value > 0) ? value-- : value++;  		if (ACPI_FAILURE(status)) { -			printk(KERN_WARNING -			       "Asus ACPI: Error changing brightness\n"); +			pr_warn("Error changing brightness\n");  			ret = -EIO;  		}  	} @@ -1008,7 +1002,7 @@ static void set_display(int value)  	/* no sanity check needed for now */  	if (!write_acpi_int(hotk->handle, hotk->methods->display_set,  			    value, NULL)) -		printk(KERN_WARNING "Asus ACPI: Error setting display\n"); +		pr_warn("Error setting display\n");  	return;  } @@ -1021,8 +1015,7 @@ static int disp_proc_show(struct seq_file *m, void *v)  	int value = 0;  	if (!read_acpi_int(hotk->handle, hotk->methods->display_get, &value)) -		printk(KERN_WARNING -		       "Asus ACPI: Error reading display status\n"); +		pr_warn("Error reading display status\n");  	value &= 0x07;	/* needed for some models, shouldn't hurt others */  	seq_printf(m, "%d\n", value);  	return 0; @@ -1068,7 +1061,7 @@ asus_proc_add(char *name, const struct file_operations *proc_fops, mode_t mode,  	proc = proc_create_data(name, mode, acpi_device_dir(device),  				proc_fops, acpi_driver_data(device));  	if (!proc) { -		printk(KERN_WARNING "  Unable to create %s fs entry\n", name); +		pr_warn("  Unable to create %s fs entry\n", name);  		return -1;  	}  	proc->uid = asus_uid; @@ -1085,8 +1078,8 @@ static int asus_hotk_add_fs(struct acpi_device *device)  		mode = S_IFREG | S_IRUGO | S_IWUSR | S_IWGRP;  	} else {  		mode = S_IFREG | S_IRUSR | S_IRGRP | S_IWUSR | S_IWGRP; -		printk(KERN_WARNING "  asus_uid and asus_gid parameters are " -		       "deprecated, use chown and chmod instead!\n"); +		pr_warn("  asus_uid and asus_gid parameters are " +			"deprecated, use chown and chmod instead!\n");  	}  	acpi_device_dir(device) = asus_proc_dir; @@ -1099,8 +1092,7 @@ static int asus_hotk_add_fs(struct acpi_device *device)  		proc->uid = asus_uid;  		proc->gid = asus_gid;  	} else { -		printk(KERN_WARNING "  Unable to create " PROC_INFO -		       " fs entry\n"); +		pr_warn("  Unable to create " PROC_INFO " fs entry\n");  	}  	if (hotk->methods->mt_wled) { @@ -1283,20 +1275,19 @@ static int asus_hotk_get_info(void)  	 */  	status = acpi_get_table(ACPI_SIG_DSDT, 1, &asus_info);  	if (ACPI_FAILURE(status)) -		printk(KERN_WARNING "  Couldn't get the DSDT table header\n"); +		pr_warn("  Couldn't get the DSDT table header\n");  	/* We have to write 0 on init this far for all ASUS models */  	if (!write_acpi_int(hotk->handle, "INIT", 0, &buffer)) { -		printk(KERN_ERR "  Hotkey initialization failed\n"); +		pr_err("  Hotkey initialization failed\n");  		return -ENODEV;  	}  	/* This needs to be called for some laptops to init properly */  	if (!read_acpi_int(hotk->handle, "BSTS", &bsts_result)) -		printk(KERN_WARNING "  Error calling BSTS\n"); +		pr_warn("  Error calling BSTS\n");  	else if (bsts_result) -		printk(KERN_NOTICE "  BSTS called, 0x%02x returned\n", -		       bsts_result); +		pr_notice("  BSTS called, 0x%02x returned\n", bsts_result);  	/*  	 * Try to match the object returned by INIT to the specific model. @@ -1324,23 +1315,21 @@ static int asus_hotk_get_info(void)  		if (asus_info &&  		    strncmp(asus_info->oem_table_id, "ODEM", 4) == 0) {  			hotk->model = P30; -			printk(KERN_NOTICE -			       "  Samsung P30 detected, supported\n"); +			pr_notice("  Samsung P30 detected, supported\n");  			hotk->methods = &model_conf[hotk->model];  			kfree(model);  			return 0;  		} else {  			hotk->model = M2E; -			printk(KERN_NOTICE "  unsupported model %s, trying " -			       "default values\n", string); -			printk(KERN_NOTICE -			       "  send /proc/acpi/dsdt to the developers\n"); +			pr_notice("  unsupported model %s, trying default values\n", +				  string); +			pr_notice("  send /proc/acpi/dsdt to the developers\n");  			kfree(model);  			return -ENODEV;  		}  	}  	hotk->methods = &model_conf[hotk->model]; -	printk(KERN_NOTICE "  %s model detected, supported\n", string); +	pr_notice("  %s model detected, supported\n", string);  	/* Sort of per-model blacklist */  	if (strncmp(string, "L2B", 3) == 0) @@ -1385,7 +1374,7 @@ static int asus_hotk_check(void)  	if (hotk->device->status.present) {  		result = asus_hotk_get_info();  	} else { -		printk(KERN_ERR "  Hotkey device not present, aborting\n"); +		pr_err("  Hotkey device not present, aborting\n");  		return -EINVAL;  	} @@ -1399,8 +1388,7 @@ static int asus_hotk_add(struct acpi_device *device)  	acpi_status status = AE_OK;  	int result; -	printk(KERN_NOTICE "Asus Laptop ACPI Extras version %s\n", -	       ASUS_ACPI_VERSION); +	pr_notice("Asus Laptop ACPI Extras version %s\n", ASUS_ACPI_VERSION);  	hotk = kzalloc(sizeof(struct asus_hotk), GFP_KERNEL);  	if (!hotk) @@ -1428,15 +1416,14 @@ static int asus_hotk_add(struct acpi_device *device)  		    acpi_evaluate_object(NULL, hotk->methods->brightness_down,  					 NULL, NULL);  		if (ACPI_FAILURE(status)) -			printk(KERN_WARNING "  Error changing brightness\n"); +			pr_warn("  Error changing brightness\n");  		else {  			status =  			    acpi_evaluate_object(NULL,  						 hotk->methods->brightness_up,  						 NULL, NULL);  			if (ACPI_FAILURE(status)) -				printk(KERN_WARNING "  Strange, error changing" -				       " brightness\n"); +				pr_warn("  Strange, error changing brightness\n");  		}  	} @@ -1488,7 +1475,7 @@ static int __init asus_acpi_init(void)  	asus_proc_dir = proc_mkdir(PROC_ASUS, acpi_root_dir);  	if (!asus_proc_dir) { -		printk(KERN_ERR "Asus ACPI: Unable to create /proc entry\n"); +		pr_err("Unable to create /proc entry\n");  		acpi_bus_unregister_driver(&asus_hotk_driver);  		return -ENODEV;  	} @@ -1513,7 +1500,7 @@ static int __init asus_acpi_init(void)  							  &asus_backlight_data,  							  &props);  	if (IS_ERR(asus_backlight_device)) { -		printk(KERN_ERR "Could not register asus backlight device\n"); +		pr_err("Could not register asus backlight device\n");  		asus_backlight_device = NULL;  		asus_acpi_exit();  		return -ENODEV; diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c index 9b3afb6f0b1..3f204fde1b0 100644 --- a/drivers/platform/x86/compal-laptop.c +++ b/drivers/platform/x86/compal-laptop.c @@ -68,6 +68,8 @@   * only enabled on a JHL90 board until it is verified that they work on the   * other boards too.  See the extra_features variable. */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/init.h> @@ -760,16 +762,14 @@ static struct rfkill *bt_rfkill;  static int dmi_check_cb(const struct dmi_system_id *id)  { -	printk(KERN_INFO DRIVER_NAME": Identified laptop model '%s'\n", -		id->ident); +	pr_info("Identified laptop model '%s'\n", id->ident);  	extra_features = false;  	return 1;  }  static int dmi_check_cb_extra(const struct dmi_system_id *id)  { -	printk(KERN_INFO DRIVER_NAME": Identified laptop model '%s', " -		"enabling extra features\n", +	pr_info("Identified laptop model '%s', enabling extra features\n",  		id->ident);  	extra_features = true;  	return 1; @@ -956,14 +956,12 @@ static int __init compal_init(void)  	int ret;  	if (acpi_disabled) { -		printk(KERN_ERR DRIVER_NAME": ACPI needs to be enabled for " -						"this driver to work!\n"); +		pr_err("ACPI needs to be enabled for this driver to work!\n");  		return -ENODEV;  	}  	if (!force && !dmi_check_system(compal_dmi_table)) { -		printk(KERN_ERR DRIVER_NAME": Motherboard not recognized (You " -				"could try the module's force-parameter)"); +		pr_err("Motherboard not recognized (You could try the module's force-parameter)\n");  		return -ENODEV;  	} @@ -998,8 +996,7 @@ static int __init compal_init(void)  	if (ret)  		goto err_rfkill; -	printk(KERN_INFO DRIVER_NAME": Driver "DRIVER_VERSION -						" successfully loaded\n"); +	pr_info("Driver " DRIVER_VERSION " successfully loaded\n");  	return 0;  err_rfkill: @@ -1064,7 +1061,7 @@ static void __exit compal_cleanup(void)  	rfkill_destroy(wifi_rfkill);  	rfkill_destroy(bt_rfkill); -	printk(KERN_INFO DRIVER_NAME": Driver unloaded\n"); +	pr_info("Driver unloaded\n");  }  static int __devexit compal_remove(struct platform_device *pdev) @@ -1074,8 +1071,7 @@ static int __devexit compal_remove(struct platform_device *pdev)  	if (!extra_features)  		return 0; -	printk(KERN_INFO DRIVER_NAME": Unloading: resetting fan control " -							"to motherboard\n"); +	pr_info("Unloading: resetting fan control to motherboard\n");  	pwm_disable_control();  	data = platform_get_drvdata(pdev); diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c index de301aa8e5c..d3841de6a8c 100644 --- a/drivers/platform/x86/dell-laptop.c +++ b/drivers/platform/x86/dell-laptop.c @@ -11,6 +11,8 @@   *  published by the Free Software Foundation.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/init.h> @@ -434,8 +436,7 @@ static int __init dell_setup_rfkill(void)  	int ret;  	if (dmi_check_system(dell_blacklist)) { -		printk(KERN_INFO "dell-laptop: Blacklisted hardware detected - " -				"not enabling rfkill\n"); +		pr_info("Blacklisted hardware detected - not enabling rfkill\n");  		return 0;  	} @@ -606,7 +607,7 @@ static int __init dell_init(void)  	dmi_walk(find_tokens, NULL);  	if (!da_tokens)  { -		printk(KERN_INFO "dell-laptop: Unable to find dmi tokens\n"); +		pr_info("Unable to find dmi tokens\n");  		return -ENODEV;  	} @@ -636,14 +637,13 @@ static int __init dell_init(void)  	ret = dell_setup_rfkill();  	if (ret) { -		printk(KERN_WARNING "dell-laptop: Unable to setup rfkill\n"); +		pr_warn("Unable to setup rfkill\n");  		goto fail_rfkill;  	}  	ret = i8042_install_filter(dell_laptop_i8042_filter);  	if (ret) { -		printk(KERN_WARNING -		       "dell-laptop: Unable to install key filter\n"); +		pr_warn("Unable to install key filter\n");  		goto fail_filter;  	} diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c index 0ed84573ae1..3f945457f71 100644 --- a/drivers/platform/x86/dell-wmi-aio.c +++ b/drivers/platform/x86/dell-wmi-aio.c @@ -15,6 +15,7 @@   *  along with this program; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ +  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt  #include <linux/kernel.h> @@ -138,7 +139,7 @@ static int __init dell_wmi_aio_init(void)  	guid = dell_wmi_aio_find();  	if (!guid) { -		pr_warning("No known WMI GUID found\n"); +		pr_warn("No known WMI GUID found\n");  		return -ENXIO;  	} diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c index 77f1d55414c..ce790827e19 100644 --- a/drivers/platform/x86/dell-wmi.c +++ b/drivers/platform/x86/dell-wmi.c @@ -23,6 +23,8 @@   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> @@ -141,7 +143,7 @@ static void dell_wmi_notify(u32 value, void *context)  	status = wmi_get_event_data(value, &response);  	if (status != AE_OK) { -		printk(KERN_INFO "dell-wmi: bad event status 0x%x\n", status); +		pr_info("bad event status 0x%x\n", status);  		return;  	} @@ -153,8 +155,8 @@ static void dell_wmi_notify(u32 value, void *context)  		u16 *buffer_entry = (u16 *)obj->buffer.pointer;  		if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { -			printk(KERN_INFO "dell-wmi: Received unknown WMI event" -					 " (0x%x)\n", buffer_entry[1]); +			pr_info("Received unknown WMI event (0x%x)\n", +				buffer_entry[1]);  			kfree(obj);  			return;  		} @@ -167,8 +169,7 @@ static void dell_wmi_notify(u32 value, void *context)  		key = sparse_keymap_entry_from_scancode(dell_wmi_input_dev,  							reported_key);  		if (!key) { -			printk(KERN_INFO "dell-wmi: Unknown key %x pressed\n", -				reported_key); +			pr_info("Unknown key %x pressed\n", reported_key);  		} else if ((key->keycode == KEY_BRIGHTNESSUP ||  			    key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video) {  			/* Don't report brightness notifications that will also @@ -275,7 +276,7 @@ static int __init dell_wmi_init(void)  	acpi_status status;  	if (!wmi_has_guid(DELL_EVENT_GUID)) { -		printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); +		pr_warn("No known WMI GUID found\n");  		return -ENODEV;  	} @@ -290,9 +291,7 @@ static int __init dell_wmi_init(void)  					 dell_wmi_notify, NULL);  	if (ACPI_FAILURE(status)) {  		dell_wmi_input_destroy(); -		printk(KERN_ERR -			"dell-wmi: Unable to register notify handler - %d\n", -			status); +		pr_err("Unable to register notify handler - %d\n", status);  		return -ENODEV;  	} diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 2c1abf63957..1c45d92e216 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c @@ -228,7 +228,7 @@ static int set_acpi(struct eeepc_laptop *eeepc, int cm, int value)  		return -ENODEV;  	if (write_acpi_int(eeepc->handle, method, value)) -		pr_warning("Error writing %s\n", method); +		pr_warn("Error writing %s\n", method);  	return 0;  } @@ -243,7 +243,7 @@ static int get_acpi(struct eeepc_laptop *eeepc, int cm)  		return -ENODEV;  	if (read_acpi_int(eeepc->handle, method, &value)) -		pr_warning("Error reading %s\n", method); +		pr_warn("Error reading %s\n", method);  	return value;  } @@ -261,7 +261,7 @@ static int acpi_setter_handle(struct eeepc_laptop *eeepc, int cm,  	status = acpi_get_handle(eeepc->handle, (char *)method,  				 handle);  	if (status != AE_OK) { -		pr_warning("Error finding %s\n", method); +		pr_warn("Error finding %s\n", method);  		return -ENODEV;  	}  	return 0; @@ -417,7 +417,7 @@ static ssize_t store_cpufv_disabled(struct device *dev,  	switch (value) {  	case 0:  		if (eeepc->cpufv_disabled) -			pr_warning("cpufv enabled (not officially supported " +			pr_warn("cpufv enabled (not officially supported "  				"on this model)\n");  		eeepc->cpufv_disabled = false;  		return rv; @@ -609,7 +609,7 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc, acpi_handle handle)  		bus = port->subordinate;  		if (!bus) { -			pr_warning("Unable to find PCI bus?\n"); +			pr_warn("Unable to find PCI bus 1?\n");  			goto out_unlock;  		} @@ -621,12 +621,12 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc, acpi_handle handle)  		absent = (l == 0xffffffff);  		if (blocked != absent) { -			pr_warning("BIOS says wireless lan is %s, " -					"but the pci device is %s\n", +			pr_warn("BIOS says wireless lan is %s, " +				"but the pci device is %s\n",  				blocked ? "blocked" : "unblocked",  				absent ? "absent" : "present"); -			pr_warning("skipped wireless hotplug as probably " -					"inappropriate for this model\n"); +			pr_warn("skipped wireless hotplug as probably " +				"inappropriate for this model\n");  			goto out_unlock;  		} @@ -691,7 +691,8 @@ static int eeepc_register_rfkill_notifier(struct eeepc_laptop *eeepc,  						     eeepc_rfkill_notify,  						     eeepc);  		if (ACPI_FAILURE(status)) -			pr_warning("Failed to register notify on %s\n", node); +			pr_warn("Failed to register notify on %s\n", node); +  		/*  		 * Refresh pci hotplug in case the rfkill state was  		 * changed during setup. diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c index 649dcadd8ea..4aa867a9b88 100644 --- a/drivers/platform/x86/eeepc-wmi.c +++ b/drivers/platform/x86/eeepc-wmi.c @@ -84,7 +84,7 @@ static const struct key_entry eeepc_wmi_keymap[] = {  static acpi_status eeepc_wmi_parse_device(acpi_handle handle, u32 level,  						 void *context, void **retval)  { -	pr_warning("Found legacy ATKD device (%s)", EEEPC_ACPI_HID); +	pr_warn("Found legacy ATKD device (%s)\n", EEEPC_ACPI_HID);  	*(bool *)context = true;  	return AE_CTRL_TERMINATE;  } @@ -105,12 +105,12 @@ static int eeepc_wmi_check_atkd(void)  static int eeepc_wmi_probe(struct platform_device *pdev)  {  	if (eeepc_wmi_check_atkd()) { -		pr_warning("WMI device present, but legacy ATKD device is also " -			   "present and enabled."); -		pr_warning("You probably booted with acpi_osi=\"Linux\" or " -			   "acpi_osi=\"!Windows 2009\""); -		pr_warning("Can't load eeepc-wmi, use default acpi_osi " -			   "(preferred) or eeepc-laptop"); +		pr_warn("WMI device present, but legacy ATKD device is also " +			"present and enabled\n"); +		pr_warn("You probably booted with acpi_osi=\"Linux\" or " +			"acpi_osi=\"!Windows 2009\"\n"); +		pr_warn("Can't load eeepc-wmi, use default acpi_osi " +			"(preferred) or eeepc-laptop\n");  		return -EBUSY;  	}  	return 0; diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index 493054c2dbe..6b26666b37f 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c @@ -56,6 +56,8 @@   *   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/init.h> @@ -585,8 +587,7 @@ static struct platform_driver fujitsupf_driver = {  static void dmi_check_cb_common(const struct dmi_system_id *id)  {  	acpi_handle handle; -	printk(KERN_INFO "fujitsu-laptop: Identified laptop model '%s'.\n", -	       id->ident); +	pr_info("Identified laptop model '%s'\n", id->ident);  	if (use_alt_lcd_levels == -1) {  		if (ACPI_SUCCESS(acpi_get_handle(NULL,  				"\\_SB.PCI0.LPCB.FJEX.SBL2", &handle))) @@ -691,11 +692,11 @@ static int acpi_fujitsu_add(struct acpi_device *device)  	result = acpi_bus_update_power(fujitsu->acpi_handle, &state);  	if (result) { -		printk(KERN_ERR "Error reading power state\n"); +		pr_err("Error reading power state\n");  		goto err_unregister_input_dev;  	} -	printk(KERN_INFO "ACPI: %s [%s] (%s)\n", +	pr_info("ACPI: %s [%s] (%s)\n",  	       acpi_device_name(device), acpi_device_bid(device),  	       !device->power.state ? "on" : "off"); @@ -707,7 +708,7 @@ static int acpi_fujitsu_add(struct acpi_device *device)  		if (ACPI_FAILURE  		    (acpi_evaluate_object  		     (device->handle, METHOD_NAME__INI, NULL, NULL))) -			printk(KERN_ERR "_INI Method failed\n"); +			pr_err("_INI Method failed\n");  	}  	/* do config (detect defaults) */ @@ -827,7 +828,7 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  	error = kfifo_alloc(&fujitsu_hotkey->fifo, RINGBUFFERSIZE * sizeof(int),  			GFP_KERNEL);  	if (error) { -		printk(KERN_ERR "kfifo_alloc failed\n"); +		pr_err("kfifo_alloc failed\n");  		goto err_stop;  	} @@ -859,13 +860,13 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  	result = acpi_bus_update_power(fujitsu_hotkey->acpi_handle, &state);  	if (result) { -		printk(KERN_ERR "Error reading power state\n"); +		pr_err("Error reading power state\n");  		goto err_unregister_input_dev;  	} -	printk(KERN_INFO "ACPI: %s [%s] (%s)\n", -	       acpi_device_name(device), acpi_device_bid(device), -	       !device->power.state ? "on" : "off"); +	pr_info("ACPI: %s [%s] (%s)\n", +		acpi_device_name(device), acpi_device_bid(device), +		!device->power.state ? "on" : "off");  	fujitsu_hotkey->dev = device; @@ -875,7 +876,7 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  		if (ACPI_FAILURE  		    (acpi_evaluate_object  		     (device->handle, METHOD_NAME__INI, NULL, NULL))) -			printk(KERN_ERR "_INI Method failed\n"); +			pr_err("_INI Method failed\n");  	}  	i = 0; @@ -897,8 +898,7 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  			call_fext_func(FUNC_RFKILL, 0x4, 0x0, 0x0);  	/* Suspect this is a keymap of the application panel, print it */ -	printk(KERN_INFO "fujitsu-laptop: BTNI: [0x%x]\n", -		call_fext_func(FUNC_BUTTONS, 0x0, 0x0, 0x0)); +	pr_info("BTNI: [0x%x]\n", call_fext_func(FUNC_BUTTONS, 0x0, 0x0, 0x0));  #if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)  	if (call_fext_func(FUNC_LEDS, 0x0, 0x0, 0x0) & LOGOLAMP_POWERON) { @@ -907,8 +907,8 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  		if (result == 0) {  			fujitsu_hotkey->logolamp_registered = 1;  		} else { -			printk(KERN_ERR "fujitsu-laptop: Could not register " -			"LED handler for logo lamp, error %i\n", result); +			pr_err("Could not register LED handler for logo lamp, error %i\n", +			       result);  		}  	} @@ -919,8 +919,8 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)  		if (result == 0) {  			fujitsu_hotkey->kblamps_registered = 1;  		} else { -			printk(KERN_ERR "fujitsu-laptop: Could not register " -			"LED handler for keyboard lamps, error %i\n", result); +			pr_err("Could not register LED handler for keyboard lamps, error %i\n", +			       result);  		}  	}  #endif @@ -1169,8 +1169,7 @@ static int __init fujitsu_init(void)  			fujitsu->bl_device->props.power = 0;  	} -	printk(KERN_INFO "fujitsu-laptop: driver " FUJITSU_DRIVER_VERSION -	       " successfully loaded.\n"); +	pr_info("driver " FUJITSU_DRIVER_VERSION " successfully loaded\n");  	return 0; @@ -1216,7 +1215,7 @@ static void __exit fujitsu_cleanup(void)  	kfree(fujitsu); -	printk(KERN_INFO "fujitsu-laptop: driver unloaded.\n"); +	pr_info("driver unloaded\n");  }  module_init(fujitsu_init); diff --git a/drivers/platform/x86/hdaps.c b/drivers/platform/x86/hdaps.c index 067bf36d32f..5a34973dc16 100644 --- a/drivers/platform/x86/hdaps.c +++ b/drivers/platform/x86/hdaps.c @@ -26,6 +26,8 @@   * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/delay.h>  #include <linux/platform_device.h>  #include <linux/input-polldev.h> @@ -238,7 +240,7 @@ static int hdaps_device_init(void)  		     __check_latch(0x1611, 0x01))  		goto out; -	printk(KERN_DEBUG "hdaps: initial latch check good (0x%02x).\n", +	printk(KERN_DEBUG "hdaps: initial latch check good (0x%02x)\n",  	       __get_latch(0x1611));  	outb(0x17, 0x1610); @@ -299,7 +301,7 @@ static int hdaps_probe(struct platform_device *dev)  	if (ret)  		return ret; -	printk(KERN_INFO "hdaps: device successfully initialized.\n"); +	pr_info("device successfully initialized\n");  	return 0;  } @@ -480,7 +482,7 @@ static struct attribute_group hdaps_attribute_group = {  /* hdaps_dmi_match - found a match.  return one, short-circuiting the hunt. */  static int __init hdaps_dmi_match(const struct dmi_system_id *id)  { -	printk(KERN_INFO "hdaps: %s detected.\n", id->ident); +	pr_info("%s detected\n", id->ident);  	return 1;  } @@ -488,8 +490,7 @@ static int __init hdaps_dmi_match(const struct dmi_system_id *id)  static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id)  {  	hdaps_invert = (unsigned long)id->driver_data; -	printk(KERN_INFO "hdaps: inverting axis (%u) readings.\n", -	       hdaps_invert); +	pr_info("inverting axis (%u) readings\n", hdaps_invert);  	return hdaps_dmi_match(id);  } @@ -543,7 +544,7 @@ static int __init hdaps_init(void)  	int ret;  	if (!dmi_check_system(hdaps_whitelist)) { -		printk(KERN_WARNING "hdaps: supported laptop not found!\n"); +		pr_warn("supported laptop not found!\n");  		ret = -ENODEV;  		goto out;  	} @@ -595,7 +596,7 @@ static int __init hdaps_init(void)  	if (ret)  		goto out_idev; -	printk(KERN_INFO "hdaps: driver successfully loaded.\n"); +	pr_info("driver successfully loaded\n");  	return 0;  out_idev: @@ -609,7 +610,7 @@ out_driver:  out_region:  	release_region(HDAPS_LOW_PORT, HDAPS_NR_PORTS);  out: -	printk(KERN_WARNING "hdaps: driver init failed (ret=%d)!\n", ret); +	pr_warn("driver init failed (ret=%d)!\n", ret);  	return ret;  } @@ -622,7 +623,7 @@ static void __exit hdaps_exit(void)  	platform_driver_unregister(&hdaps_driver);  	release_region(HDAPS_LOW_PORT, HDAPS_NR_PORTS); -	printk(KERN_INFO "hdaps: driver unloaded.\n"); +	pr_info("driver unloaded\n");  }  module_init(hdaps_init); diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 1bc4a7539ba..f94017bcdd6 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -24,6 +24,8 @@   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> @@ -54,9 +56,6 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");  #define HPWMI_HOTKEY_QUERY 0xc  #define HPWMI_WIRELESS2_QUERY 0x1b -#define PREFIX "HP WMI: " -#define UNIMP "Unimplemented " -  enum hp_wmi_radio {  	HPWMI_WIFI = 0,  	HPWMI_BLUETOOTH = 1, @@ -228,9 +227,8 @@ static int hp_wmi_perform_query(int query, int write, void *buffer,  	if (bios_return->return_code) {  		if (bios_return->return_code != HPWMI_RET_UNKNOWN_CMDTYPE) -			printk(KERN_WARNING PREFIX "query 0x%x returned " -						   "error 0x%x\n", -			       query, bios_return->return_code); +			pr_warn("query 0x%x returned error 0x%x\n", +				query, bios_return->return_code);  		kfree(obj);  		return bios_return->return_code;  	} @@ -384,8 +382,7 @@ static int hp_wmi_rfkill2_refresh(void)  		if (num >= state.count ||  		    devstate->rfkill_id != rfkill2[i].id) { -			printk(KERN_WARNING PREFIX "power configuration of " -			       "the wireless devices unexpectedly changed\n"); +			pr_warn("power configuration of the wireless devices unexpectedly changed\n");  			continue;  		} @@ -471,7 +468,7 @@ static void hp_wmi_notify(u32 value, void *context)  	status = wmi_get_event_data(value, &response);  	if (status != AE_OK) { -		printk(KERN_INFO PREFIX "bad event status 0x%x\n", status); +		pr_info("bad event status 0x%x\n", status);  		return;  	} @@ -480,8 +477,7 @@ static void hp_wmi_notify(u32 value, void *context)  	if (!obj)  		return;  	if (obj->type != ACPI_TYPE_BUFFER) { -		printk(KERN_INFO "hp-wmi: Unknown response received %d\n", -		       obj->type); +		pr_info("Unknown response received %d\n", obj->type);  		kfree(obj);  		return;  	} @@ -498,8 +494,7 @@ static void hp_wmi_notify(u32 value, void *context)  		event_id = *location;  		event_data = *(location + 2);  	} else { -		printk(KERN_INFO "hp-wmi: Unknown buffer length %d\n", -		       obj->buffer.length); +		pr_info("Unknown buffer length %d\n", obj->buffer.length);  		kfree(obj);  		return;  	} @@ -527,8 +522,7 @@ static void hp_wmi_notify(u32 value, void *context)  		if (!sparse_keymap_report_event(hp_wmi_input_dev,  						key_code, 1, true)) -			printk(KERN_INFO PREFIX "Unknown key code - 0x%x\n", -			       key_code); +			pr_info("Unknown key code - 0x%x\n", key_code);  		break;  	case HPWMI_WIRELESS:  		if (rfkill2_count) { @@ -550,14 +544,12 @@ static void hp_wmi_notify(u32 value, void *context)  					  hp_wmi_get_hw_state(HPWMI_WWAN));  		break;  	case HPWMI_CPU_BATTERY_THROTTLE: -		printk(KERN_INFO PREFIX UNIMP "CPU throttle because of 3 Cell" -		       " battery event detected\n"); +		pr_info("Unimplemented CPU throttle because of 3 Cell battery event detected\n");  		break;  	case HPWMI_LOCK_SWITCH:  		break;  	default: -		printk(KERN_INFO PREFIX "Unknown event_id - %d - 0x%x\n", -		       event_id, event_data); +		pr_info("Unknown event_id - %d - 0x%x\n", event_id, event_data);  		break;  	}  } @@ -705,7 +697,7 @@ static int __devinit hp_wmi_rfkill2_setup(struct platform_device *device)  		return err;  	if (state.count > HPWMI_MAX_RFKILL2_DEVICES) { -		printk(KERN_WARNING PREFIX "unable to parse 0x1b query output\n"); +		pr_warn("unable to parse 0x1b query output\n");  		return -EINVAL;  	} @@ -727,14 +719,14 @@ static int __devinit hp_wmi_rfkill2_setup(struct platform_device *device)  			name = "hp-wwan";  			break;  		default: -			printk(KERN_WARNING PREFIX "unknown device type 0x%x\n", -				 state.device[i].radio_type); +			pr_warn("unknown device type 0x%x\n", +				state.device[i].radio_type);  			continue;  		}  		if (!state.device[i].vendor_id) { -			printk(KERN_WARNING PREFIX "zero device %d while %d " -			       "reported\n", i, state.count); +			pr_warn("zero device %d while %d reported\n", +				i, state.count);  			continue;  		} @@ -755,8 +747,7 @@ static int __devinit hp_wmi_rfkill2_setup(struct platform_device *device)  				    IS_HWBLOCKED(state.device[i].power));  		if (!(state.device[i].power & HPWMI_POWER_BIOS)) -			printk(KERN_INFO PREFIX "device %s blocked by BIOS\n", -			       name); +			pr_info("device %s blocked by BIOS\n", name);  		err = rfkill_register(rfkill);  		if (err) { diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c index b1396e5b295..811d436cd67 100644 --- a/drivers/platform/x86/ibm_rtl.c +++ b/drivers/platform/x86/ibm_rtl.c @@ -22,6 +22,8 @@   *   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/delay.h>  #include <linux/module.h> @@ -69,9 +71,10 @@ struct ibm_rtl_table {  #define RTL_SIGNATURE 0x0000005f4c54525fULL  #define RTL_MASK      0x000000ffffffffffULL -#define RTL_DEBUG(A, ...) do { \ -	if (debug) \ -		pr_info("ibm-rtl: " A, ##__VA_ARGS__ ); \ +#define RTL_DEBUG(fmt, ...)				\ +do {							\ +	if (debug)					\ +		pr_info(fmt, ##__VA_ARGS__);		\  } while (0)  static DEFINE_MUTEX(rtl_lock); @@ -114,7 +117,7 @@ static int ibm_rtl_write(u8 value)  	int ret = 0, count = 0;  	static u32 cmd_port_val; -	RTL_DEBUG("%s(%d)\n", __FUNCTION__, value); +	RTL_DEBUG("%s(%d)\n", __func__, value);  	value = value == 1 ? RTL_CMD_ENTER_PRTM : RTL_CMD_EXIT_PRTM; @@ -144,8 +147,8 @@ static int ibm_rtl_write(u8 value)  		while (ioread8(&rtl_table->command)) {  			msleep(10);  			if (count++ > 500) { -				pr_err("ibm-rtl: Hardware not responding to " -					"mode switch request\n"); +				pr_err("Hardware not responding to " +				       "mode switch request\n");  				ret = -EIO;  				break;  			} @@ -250,7 +253,7 @@ static int __init ibm_rtl_init(void) {  	int ret = -ENODEV, i;  	if (force) -		pr_warning("ibm-rtl: module loaded by force\n"); +		pr_warn("module loaded by force\n");  	/* first ensure that we are running on IBM HW */  	else if (efi_enabled || !dmi_check_system(ibm_rtl_dmi_table))  		return -ENODEV; @@ -288,19 +291,19 @@ static int __init ibm_rtl_init(void) {  		if ((readq(&tmp->signature) & RTL_MASK) == RTL_SIGNATURE) {  			phys_addr_t addr;  			unsigned int plen; -			RTL_DEBUG("found RTL_SIGNATURE at %#llx\n", (u64)tmp); +			RTL_DEBUG("found RTL_SIGNATURE at %p\n", tmp);  			rtl_table = tmp;  			/* The address, value, width and offset are platform  			 * dependent and found in the ibm_rtl_table */  			rtl_cmd_width = ioread8(&rtl_table->cmd_granularity);  			rtl_cmd_type = ioread8(&rtl_table->cmd_address_type);  			RTL_DEBUG("rtl_cmd_width = %u, rtl_cmd_type = %u\n", -			      rtl_cmd_width, rtl_cmd_type); +				  rtl_cmd_width, rtl_cmd_type);  			addr = ioread32(&rtl_table->cmd_port_address);  			RTL_DEBUG("addr = %#llx\n", (unsigned long long)addr);  			plen = rtl_cmd_width/sizeof(char);  			rtl_cmd_addr = rtl_port_map(addr, plen); -			RTL_DEBUG("rtl_cmd_addr = %#llx\n", (u64)rtl_cmd_addr); +			RTL_DEBUG("rtl_cmd_addr = %p\n", rtl_cmd_addr);  			if (!rtl_cmd_addr) {  				ret = -ENOMEM;  				break; diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 21b101899ba..bfdda33feb2 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c @@ -20,6 +20,8 @@   *  02110-1301, USA.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c index eacd5da7dd2..809adea4965 100644 --- a/drivers/platform/x86/intel_menlow.c +++ b/drivers/platform/x86/intel_menlow.c @@ -27,6 +27,8 @@   *  to get/set bandwidth.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> @@ -135,8 +137,7 @@ static int memory_set_cur_bandwidth(struct thermal_cooling_device *cdev,  	    acpi_evaluate_integer(handle, MEMORY_SET_BANDWIDTH, &arg_list,  				  &temp); -	printk(KERN_INFO -	       "Bandwidth value was %ld: status is %d\n", state, status); +	pr_info("Bandwidth value was %ld: status is %d\n", state, status);  	if (ACPI_FAILURE(status))  		return -EFAULT; diff --git a/drivers/platform/x86/intel_mid_powerbtn.c b/drivers/platform/x86/intel_mid_powerbtn.c index 213e79ba68d..f1ae5078b7e 100644 --- a/drivers/platform/x86/intel_mid_powerbtn.c +++ b/drivers/platform/x86/intel_mid_powerbtn.c @@ -23,58 +23,48 @@  #include <linux/slab.h>  #include <linux/platform_device.h>  #include <linux/input.h> +  #include <asm/intel_scu_ipc.h>  #define DRIVER_NAME "msic_power_btn" -#define MSIC_IRQ_STAT	0x02 -  #define MSIC_IRQ_PB	(1 << 0) -#define MSIC_PB_CONFIG	0x3e  #define MSIC_PB_STATUS	0x3f -  #define MSIC_PB_LEVEL (1 << 3) /* 1 - release, 0 - press */ - -struct mfld_pb_priv { -	struct input_dev *input; -	unsigned int irq; -}; +#define MSIC_PB_LEVEL	(1 << 3) /* 1 - release, 0 - press */  static irqreturn_t mfld_pb_isr(int irq, void *dev_id)  { -	struct mfld_pb_priv *priv = dev_id; +	struct input_dev *input = dev_id;  	int ret;  	u8 pbstat;  	ret = intel_scu_ipc_ioread8(MSIC_PB_STATUS, &pbstat); -	if (ret < 0) -		return IRQ_HANDLED; - -	input_event(priv->input, EV_KEY, KEY_POWER, !(pbstat & MSIC_PB_LEVEL)); -	input_sync(priv->input); +	if (ret < 0) { +		dev_err(input->dev.parent, "Read error %d while reading" +			       " MSIC_PB_STATUS\n", ret); +	} else { +		input_event(input, EV_KEY, KEY_POWER, +			       !(pbstat & MSIC_PB_LEVEL)); +		input_sync(input); +	}  	return IRQ_HANDLED;  }  static int __devinit mfld_pb_probe(struct platform_device *pdev)  { -	struct mfld_pb_priv *priv;  	struct input_dev *input; -	int irq; +	int irq = platform_get_irq(pdev, 0);  	int error; -	irq = platform_get_irq(pdev, 0);  	if (irq < 0)  		return -EINVAL; -	priv = kzalloc(sizeof(struct mfld_pb_priv), GFP_KERNEL);  	input = input_allocate_device(); -	if (!priv || !input) { -		error = -ENOMEM; -		goto err_free_mem; +	if (!input) { +		dev_err(&pdev->dev, "Input device allocation error\n"); +		return -ENOMEM;  	} -	priv->input = input; -	priv->irq = irq; -  	input->name = pdev->name;  	input->phys = "power-button/input0";  	input->id.bustype = BUS_HOST; @@ -82,42 +72,40 @@ static int __devinit mfld_pb_probe(struct platform_device *pdev)  	input_set_capability(input, EV_KEY, KEY_POWER); -	error = request_threaded_irq(priv->irq, NULL, mfld_pb_isr, -				     0, DRIVER_NAME, priv); +	error = request_threaded_irq(irq, NULL, mfld_pb_isr, 0, +			DRIVER_NAME, input);  	if (error) { -		dev_err(&pdev->dev, -			"unable to request irq %d for mfld power button\n", -			irq); -		goto err_free_mem; +		dev_err(&pdev->dev, "Unable to request irq %d for mfld power" +				"button\n", irq); +		goto err_free_input;  	}  	error = input_register_device(input);  	if (error) { -		dev_err(&pdev->dev, -			"unable to register input dev, error %d\n", error); +		dev_err(&pdev->dev, "Unable to register input dev, error " +				"%d\n", error);  		goto err_free_irq;  	} -	platform_set_drvdata(pdev, priv); +	platform_set_drvdata(pdev, input);  	return 0;  err_free_irq: -	free_irq(priv->irq, priv); -err_free_mem: +	free_irq(irq, input); +err_free_input:  	input_free_device(input); -	kfree(priv);  	return error;  }  static int __devexit mfld_pb_remove(struct platform_device *pdev)  { -	struct mfld_pb_priv *priv = platform_get_drvdata(pdev); - -	free_irq(priv->irq, priv); -	input_unregister_device(priv->input); -	kfree(priv); +	struct input_dev *input = platform_get_drvdata(pdev); +	int irq = platform_get_irq(pdev, 0); +	free_irq(irq, input); +	input_unregister_device(input);  	platform_set_drvdata(pdev, NULL); +  	return 0;  } diff --git a/drivers/platform/x86/intel_mid_thermal.c b/drivers/platform/x86/intel_mid_thermal.c index c2f4bd8013b..3a578323122 100644 --- a/drivers/platform/x86/intel_mid_thermal.c +++ b/drivers/platform/x86/intel_mid_thermal.c @@ -37,49 +37,50 @@  #include <asm/intel_scu_ipc.h>  /* Number of thermal sensors */ -#define MSIC_THERMAL_SENSORS   4 +#define MSIC_THERMAL_SENSORS	4  /* ADC1 - thermal registers */ -#define MSIC_THERM_ADC1CNTL1   0x1C0 -#define MSIC_ADC_ENBL          0x10 -#define MSIC_ADC_START         0x08 +#define MSIC_THERM_ADC1CNTL1	0x1C0 +#define MSIC_ADC_ENBL		0x10 +#define MSIC_ADC_START		0x08 -#define MSIC_THERM_ADC1CNTL3   0x1C2 -#define MSIC_ADCTHERM_ENBL     0x04 -#define MSIC_ADCRRDATA_ENBL    0x05 -#define MSIC_CHANL_MASK_VAL    0x0F +#define MSIC_THERM_ADC1CNTL3	0x1C2 +#define MSIC_ADCTHERM_ENBL	0x04 +#define MSIC_ADCRRDATA_ENBL	0x05 +#define MSIC_CHANL_MASK_VAL	0x0F -#define MSIC_STOPBIT_MASK      16 -#define MSIC_ADCTHERM_MASK     4 -#define ADC_CHANLS_MAX         15 /* Number of ADC channels */ -#define ADC_LOOP_MAX           (ADC_CHANLS_MAX - MSIC_THERMAL_SENSORS) +#define MSIC_STOPBIT_MASK	16 +#define MSIC_ADCTHERM_MASK	4 +/* Number of ADC channels */ +#define ADC_CHANLS_MAX		15 +#define ADC_LOOP_MAX		(ADC_CHANLS_MAX - MSIC_THERMAL_SENSORS)  /* ADC channel code values */ -#define SKIN_SENSOR0_CODE      0x08 -#define SKIN_SENSOR1_CODE      0x09 -#define SYS_SENSOR_CODE                0x0A -#define MSIC_DIE_SENSOR_CODE   0x03 +#define SKIN_SENSOR0_CODE	0x08 +#define SKIN_SENSOR1_CODE	0x09 +#define SYS_SENSOR_CODE		0x0A +#define MSIC_DIE_SENSOR_CODE	0x03 -#define SKIN_THERM_SENSOR0     0 -#define SKIN_THERM_SENSOR1     1 -#define SYS_THERM_SENSOR2      2 -#define MSIC_DIE_THERM_SENSOR3 3 +#define SKIN_THERM_SENSOR0	0 +#define SKIN_THERM_SENSOR1	1 +#define SYS_THERM_SENSOR2	2 +#define MSIC_DIE_THERM_SENSOR3	3  /* ADC code range */ -#define ADC_MAX                        977 -#define ADC_MIN                        162 -#define ADC_VAL0C              887 -#define ADC_VAL20C             720 -#define ADC_VAL40C             508 -#define ADC_VAL60C             315 +#define ADC_MAX			977 +#define ADC_MIN			162 +#define ADC_VAL0C		887 +#define ADC_VAL20C		720 +#define ADC_VAL40C		508 +#define ADC_VAL60C		315  /* ADC base addresses */ -#define ADC_CHNL_START_ADDR    0x1C5   /* increments by 1 */ -#define ADC_DATA_START_ADDR     0x1D4   /* increments by 2 */ +#define ADC_CHNL_START_ADDR	0x1C5	/* increments by 1 */ +#define ADC_DATA_START_ADDR	0x1D4	/* increments by 2 */  /* MSIC die attributes */ -#define MSIC_DIE_ADC_MIN       488 -#define MSIC_DIE_ADC_MAX       1004 +#define MSIC_DIE_ADC_MIN	488 +#define MSIC_DIE_ADC_MAX	1004  /* This holds the address of the first free ADC channel,   * among the 15 channels @@ -87,15 +88,15 @@  static int channel_index;  struct platform_info { -       struct platform_device *pdev; -       struct thermal_zone_device *tzd[MSIC_THERMAL_SENSORS]; +	struct platform_device *pdev; +	struct thermal_zone_device *tzd[MSIC_THERMAL_SENSORS];  };  struct thermal_device_info { -       unsigned int chnl_addr; -       int direct; -       /* This holds the current temperature in millidegree celsius */ -       long curr_temp; +	unsigned int chnl_addr; +	int direct; +	/* This holds the current temperature in millidegree celsius */ +	long curr_temp;  };  /** @@ -106,7 +107,7 @@ struct thermal_device_info {   */  static int to_msic_die_temp(uint16_t adc_val)  { -       return (368 * (adc_val) / 1000) - 220; +	return (368 * (adc_val) / 1000) - 220;  }  /** @@ -118,7 +119,7 @@ static int to_msic_die_temp(uint16_t adc_val)   */  static int is_valid_adc(uint16_t adc_val, uint16_t min, uint16_t max)  { -       return (adc_val >= min) && (adc_val <= max); +	return (adc_val >= min) && (adc_val <= max);  }  /** @@ -136,35 +137,35 @@ static int is_valid_adc(uint16_t adc_val, uint16_t min, uint16_t max)   */  static int adc_to_temp(int direct, uint16_t adc_val, unsigned long *tp)  { -       int temp; +	int temp; -       /* Direct conversion for die temperature */ -       if (direct) { -               if (is_valid_adc(adc_val, MSIC_DIE_ADC_MIN, MSIC_DIE_ADC_MAX)) { -                       *tp = to_msic_die_temp(adc_val) * 1000; -                       return 0; -               } -               return -ERANGE; -       } +	/* Direct conversion for die temperature */ +	if (direct) { +		if (is_valid_adc(adc_val, MSIC_DIE_ADC_MIN, MSIC_DIE_ADC_MAX)) { +			*tp = to_msic_die_temp(adc_val) * 1000; +			return 0; +		} +		return -ERANGE; +	} -       if (!is_valid_adc(adc_val, ADC_MIN, ADC_MAX)) -               return -ERANGE; +	if (!is_valid_adc(adc_val, ADC_MIN, ADC_MAX)) +		return -ERANGE; -       /* Linear approximation for skin temperature */ -       if (adc_val > ADC_VAL0C) -               temp = 177 - (adc_val/5); -       else if ((adc_val <= ADC_VAL0C) && (adc_val > ADC_VAL20C)) -               temp = 111 - (adc_val/8); -       else if ((adc_val <= ADC_VAL20C) && (adc_val > ADC_VAL40C)) -               temp = 92 - (adc_val/10); -       else if ((adc_val <= ADC_VAL40C) && (adc_val > ADC_VAL60C)) -               temp = 91 - (adc_val/10); -       else -               temp = 112 - (adc_val/6); +	/* Linear approximation for skin temperature */ +	if (adc_val > ADC_VAL0C) +		temp = 177 - (adc_val/5); +	else if ((adc_val <= ADC_VAL0C) && (adc_val > ADC_VAL20C)) +		temp = 111 - (adc_val/8); +	else if ((adc_val <= ADC_VAL20C) && (adc_val > ADC_VAL40C)) +		temp = 92 - (adc_val/10); +	else if ((adc_val <= ADC_VAL40C) && (adc_val > ADC_VAL60C)) +		temp = 91 - (adc_val/10); +	else +		temp = 112 - (adc_val/6); -       /* Convert temperature in celsius to milli degree celsius */ -       *tp = temp * 1000; -       return 0; +	/* Convert temperature in celsius to milli degree celsius */ +	*tp = temp * 1000; +	return 0;  }  /** @@ -178,47 +179,47 @@ static int adc_to_temp(int direct, uint16_t adc_val, unsigned long *tp)   */  static int mid_read_temp(struct thermal_zone_device *tzd, unsigned long *temp)  { -       struct thermal_device_info *td_info = tzd->devdata; -       uint16_t adc_val, addr; -       uint8_t data = 0; -       int ret; -       unsigned long curr_temp; +	struct thermal_device_info *td_info = tzd->devdata; +	uint16_t adc_val, addr; +	uint8_t data = 0; +	int ret; +	unsigned long curr_temp; -       addr = td_info->chnl_addr; +	addr = td_info->chnl_addr; -       /* Enable the msic for conversion before reading */ -       ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCRRDATA_ENBL); -       if (ret) -               return ret; +	/* Enable the msic for conversion before reading */ +	ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCRRDATA_ENBL); +	if (ret) +		return ret; -       /* Re-toggle the RRDATARD bit (temporary workaround) */ -       ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCTHERM_ENBL); -       if (ret) -               return ret; +	/* Re-toggle the RRDATARD bit (temporary workaround) */ +	ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCTHERM_ENBL); +	if (ret) +		return ret; -       /* Read the higher bits of data */ -       ret = intel_scu_ipc_ioread8(addr, &data); -       if (ret) -               return ret; +	/* Read the higher bits of data */ +	ret = intel_scu_ipc_ioread8(addr, &data); +	if (ret) +		return ret; -       /* Shift bits to accommodate the lower two data bits */ -       adc_val = (data << 2); -       addr++; +	/* Shift bits to accommodate the lower two data bits */ +	adc_val = (data << 2); +	addr++; -       ret = intel_scu_ipc_ioread8(addr, &data);/* Read lower bits */ -       if (ret) -               return ret; +	ret = intel_scu_ipc_ioread8(addr, &data);/* Read lower bits */ +	if (ret) +		return ret; -       /* Adding lower two bits to the higher bits */ -       data &= 03; -       adc_val += data; +	/* Adding lower two bits to the higher bits */ +	data &= 03; +	adc_val += data; -       /* Convert ADC value to temperature */ -       ret = adc_to_temp(td_info->direct, adc_val, &curr_temp); -       if (ret == 0) -               *temp = td_info->curr_temp = curr_temp; -       return ret; +	/* Convert ADC value to temperature */ +	ret = adc_to_temp(td_info->direct, adc_val, &curr_temp); +	if (ret == 0) +		*temp = td_info->curr_temp = curr_temp; +	return ret;  }  /** @@ -231,22 +232,21 @@ static int mid_read_temp(struct thermal_zone_device *tzd, unsigned long *temp)   */  static int configure_adc(int val)  { -       int ret; -       uint8_t data; +	int ret; +	uint8_t data; -       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data); -       if (ret) -               return ret; +	ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data); +	if (ret) +		return ret; -       if (val) { -               /* Enable and start the ADC */ -               data |= (MSIC_ADC_ENBL | MSIC_ADC_START); -       } else { -               /* Just stop the ADC */ -               data &= (~MSIC_ADC_START); -       } - -       return intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL1, data); +	if (val) { +		/* Enable and start the ADC */ +		data |= (MSIC_ADC_ENBL | MSIC_ADC_START); +	} else { +		/* Just stop the ADC */ +		data &= (~MSIC_ADC_START); +	} +	return intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL1, data);  }  /** @@ -259,30 +259,30 @@ static int configure_adc(int val)   */  static int set_up_therm_channel(u16 base_addr)  { -       int ret; +	int ret; -       /* Enable all the sensor channels */ -       ret = intel_scu_ipc_iowrite8(base_addr, SKIN_SENSOR0_CODE); -       if (ret) -               return ret; +	/* Enable all the sensor channels */ +	ret = intel_scu_ipc_iowrite8(base_addr, SKIN_SENSOR0_CODE); +	if (ret) +		return ret; -       ret = intel_scu_ipc_iowrite8(base_addr + 1, SKIN_SENSOR1_CODE); -       if (ret) -               return ret; +	ret = intel_scu_ipc_iowrite8(base_addr + 1, SKIN_SENSOR1_CODE); +	if (ret) +		return ret; -       ret = intel_scu_ipc_iowrite8(base_addr + 2, SYS_SENSOR_CODE); -       if (ret) -               return ret; +	ret = intel_scu_ipc_iowrite8(base_addr + 2, SYS_SENSOR_CODE); +	if (ret) +		return ret; -       /* Since this is the last channel, set the stop bit -          to 1 by ORing the DIE_SENSOR_CODE with 0x10 */ -       ret = intel_scu_ipc_iowrite8(base_addr + 3, -                                       (MSIC_DIE_SENSOR_CODE | 0x10)); -       if (ret) -               return ret; +	/* Since this is the last channel, set the stop bit +	 * to 1 by ORing the DIE_SENSOR_CODE with 0x10 */ +	ret = intel_scu_ipc_iowrite8(base_addr + 3, +			(MSIC_DIE_SENSOR_CODE | 0x10)); +	if (ret) +		return ret; -       /* Enable ADC and start it */ -       return configure_adc(1); +	/* Enable ADC and start it */ +	return configure_adc(1);  }  /** @@ -293,13 +293,13 @@ static int set_up_therm_channel(u16 base_addr)   */  static int reset_stopbit(uint16_t addr)  { -       int ret; -       uint8_t data; -       ret = intel_scu_ipc_ioread8(addr, &data); -       if (ret) -               return ret; -       /* Set the stop bit to zero */ -       return intel_scu_ipc_iowrite8(addr, (data & 0xEF)); +	int ret; +	uint8_t data; +	ret = intel_scu_ipc_ioread8(addr, &data); +	if (ret) +		return ret; +	/* Set the stop bit to zero */ +	return intel_scu_ipc_iowrite8(addr, (data & 0xEF));  }  /** @@ -317,30 +317,30 @@ static int reset_stopbit(uint16_t addr)   */  static int find_free_channel(void)  { -       int ret; -       int i; -       uint8_t data; +	int ret; +	int i; +	uint8_t data; -       /* check whether ADC is enabled */ -       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data); -       if (ret) -               return ret; +	/* check whether ADC is enabled */ +	ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data); +	if (ret) +		return ret; -       if ((data & MSIC_ADC_ENBL) == 0) -               return 0; +	if ((data & MSIC_ADC_ENBL) == 0) +		return 0; -       /* ADC is already enabled; Looking for an empty channel */ -       for (i = 0; i < ADC_CHANLS_MAX; i++) { -               ret = intel_scu_ipc_ioread8(ADC_CHNL_START_ADDR + i, &data); -               if (ret) -                       return ret; +	/* ADC is already enabled; Looking for an empty channel */ +	for (i = 0; i < ADC_CHANLS_MAX; i++) { +		ret = intel_scu_ipc_ioread8(ADC_CHNL_START_ADDR + i, &data); +		if (ret) +			return ret; -               if (data & MSIC_STOPBIT_MASK) { -                       ret = i; -                       break; -               } -       } -       return (ret > ADC_LOOP_MAX) ? (-EINVAL) : ret; +		if (data & MSIC_STOPBIT_MASK) { +			ret = i; +			break; +		} +	} +	return (ret > ADC_LOOP_MAX) ? (-EINVAL) : ret;  }  /** @@ -351,48 +351,48 @@ static int find_free_channel(void)   */  static int mid_initialize_adc(struct device *dev)  { -       u8  data; -       u16 base_addr; -       int ret; +	u8  data; +	u16 base_addr; +	int ret; -       /* -        * Ensure that adctherm is disabled before we -        * initialize the ADC -        */ -       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL3, &data); -       if (ret) -               return ret; +	/* +	 * Ensure that adctherm is disabled before we +	 * initialize the ADC +	 */ +	ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL3, &data); +	if (ret) +		return ret; -       if (data & MSIC_ADCTHERM_MASK) -               dev_warn(dev, "ADCTHERM already set"); +	if (data & MSIC_ADCTHERM_MASK) +		dev_warn(dev, "ADCTHERM already set"); -       /* Index of the first channel in which the stop bit is set */ -       channel_index = find_free_channel(); -       if (channel_index < 0) { -               dev_err(dev, "No free ADC channels"); -               return channel_index; -       } +	/* Index of the first channel in which the stop bit is set */ +	channel_index = find_free_channel(); +	if (channel_index < 0) { +		dev_err(dev, "No free ADC channels"); +		return channel_index; +	} -       base_addr = ADC_CHNL_START_ADDR + channel_index; +	base_addr = ADC_CHNL_START_ADDR + channel_index; -       if (!(channel_index == 0 || channel_index == ADC_LOOP_MAX)) { -               /* Reset stop bit for channels other than 0 and 12 */ -               ret = reset_stopbit(base_addr); -               if (ret) -                       return ret; +	if (!(channel_index == 0 || channel_index == ADC_LOOP_MAX)) { +		/* Reset stop bit for channels other than 0 and 12 */ +		ret = reset_stopbit(base_addr); +		if (ret) +			return ret; -               /* Index of the first free channel */ -               base_addr++; -               channel_index++; -       } +		/* Index of the first free channel */ +		base_addr++; +		channel_index++; +	} -       ret = set_up_therm_channel(base_addr); -       if (ret) { -               dev_err(dev, "unable to enable ADC"); -               return ret; -       } -       dev_dbg(dev, "ADC initialization successful"); -       return ret; +	ret = set_up_therm_channel(base_addr); +	if (ret) { +		dev_err(dev, "unable to enable ADC"); +		return ret; +	} +	dev_dbg(dev, "ADC initialization successful"); +	return ret;  }  /** @@ -403,18 +403,18 @@ static int mid_initialize_adc(struct device *dev)   */  static struct thermal_device_info *initialize_sensor(int index)  { -       struct thermal_device_info *td_info = -               kzalloc(sizeof(struct thermal_device_info), GFP_KERNEL); +	struct thermal_device_info *td_info = +		kzalloc(sizeof(struct thermal_device_info), GFP_KERNEL); -       if (!td_info) -               return NULL; +	if (!td_info) +		return NULL; -       /* Set the base addr of the channel for this sensor */ -       td_info->chnl_addr = ADC_DATA_START_ADDR + 2 * (channel_index + index); -       /* Sensor 3 is direct conversion */ -       if (index == 3) -               td_info->direct = 1; -       return td_info; +	/* Set the base addr of the channel for this sensor */ +	td_info->chnl_addr = ADC_DATA_START_ADDR + 2 * (channel_index + index); +	/* Sensor 3 is direct conversion */ +	if (index == 3) +		td_info->direct = 1; +	return td_info;  }  /** @@ -425,7 +425,7 @@ static struct thermal_device_info *initialize_sensor(int index)   */  static int mid_thermal_resume(struct platform_device *pdev)  { -       return mid_initialize_adc(&pdev->dev); +	return mid_initialize_adc(&pdev->dev);  }  /** @@ -437,12 +437,12 @@ static int mid_thermal_resume(struct platform_device *pdev)   */  static int mid_thermal_suspend(struct platform_device *pdev, pm_message_t mesg)  { -       /* -        * This just stops the ADC and does not disable it. -        * temporary workaround until we have a generic ADC driver. -        * If 0 is passed, it disables the ADC. -        */ -       return configure_adc(0); +	/* +	 * This just stops the ADC and does not disable it. +	 * temporary workaround until we have a generic ADC driver. +	 * If 0 is passed, it disables the ADC. +	 */ +	return configure_adc(0);  }  /** @@ -453,16 +453,15 @@ static int mid_thermal_suspend(struct platform_device *pdev, pm_message_t mesg)   */  static int read_curr_temp(struct thermal_zone_device *tzd, unsigned long *temp)  { -       WARN_ON(tzd == NULL); -       return mid_read_temp(tzd, temp); +	WARN_ON(tzd == NULL); +	return mid_read_temp(tzd, temp);  }  /* Can't be const */  static struct thermal_zone_device_ops tzd_ops = { -       .get_temp = read_curr_temp, +	.get_temp = read_curr_temp,  }; -  /**   * mid_thermal_probe - mfld thermal initialize   * @pdev: platform device structure @@ -472,46 +471,45 @@ static struct thermal_zone_device_ops tzd_ops = {   */  static int mid_thermal_probe(struct platform_device *pdev)  { -       static char *name[MSIC_THERMAL_SENSORS] = { -               "skin0", "skin1", "sys", "msicdie" -       }; +	static char *name[MSIC_THERMAL_SENSORS] = { +		"skin0", "skin1", "sys", "msicdie" +	}; -       int ret; -       int i; -       struct platform_info *pinfo; +	int ret; +	int i; +	struct platform_info *pinfo; -       pinfo = kzalloc(sizeof(struct platform_info), GFP_KERNEL); -       if (!pinfo) -               return -ENOMEM; +	pinfo = kzalloc(sizeof(struct platform_info), GFP_KERNEL); +	if (!pinfo) +		return -ENOMEM; -       /* Initializing the hardware */ -       ret = mid_initialize_adc(&pdev->dev); -       if (ret) { -               dev_err(&pdev->dev, "ADC init failed"); -               kfree(pinfo); -               return ret; -       } +	/* Initializing the hardware */ +	ret = mid_initialize_adc(&pdev->dev); +	if (ret) { +		dev_err(&pdev->dev, "ADC init failed"); +		kfree(pinfo); +		return ret; +	} -       /* Register each sensor with the generic thermal framework*/ -       for (i = 0; i < MSIC_THERMAL_SENSORS; i++) { -               pinfo->tzd[i] = thermal_zone_device_register(name[i], -                                       0, initialize_sensor(i), -                                       &tzd_ops, 0, 0, 0, 0); -               if (IS_ERR(pinfo->tzd[i])) -                       goto reg_fail; -       } +	/* Register each sensor with the generic thermal framework*/ +	for (i = 0; i < MSIC_THERMAL_SENSORS; i++) { +		pinfo->tzd[i] = thermal_zone_device_register(name[i], +				0, initialize_sensor(i), &tzd_ops, 0, 0, 0, 0); +		if (IS_ERR(pinfo->tzd[i])) +			goto reg_fail; +	} -       pinfo->pdev = pdev; -       platform_set_drvdata(pdev, pinfo); -       return 0; +	pinfo->pdev = pdev; +	platform_set_drvdata(pdev, pinfo); +	return 0;  reg_fail: -       ret = PTR_ERR(pinfo->tzd[i]); -       while (--i >= 0) -               thermal_zone_device_unregister(pinfo->tzd[i]); -       configure_adc(0); -       kfree(pinfo); -       return ret; +	ret = PTR_ERR(pinfo->tzd[i]); +	while (--i >= 0) +		thermal_zone_device_unregister(pinfo->tzd[i]); +	configure_adc(0); +	kfree(pinfo); +	return ret;  }  /** @@ -523,49 +521,46 @@ reg_fail:   */  static int mid_thermal_remove(struct platform_device *pdev)  { -       int i; -       struct platform_info *pinfo = platform_get_drvdata(pdev); +	int i; +	struct platform_info *pinfo = platform_get_drvdata(pdev); -       for (i = 0; i < MSIC_THERMAL_SENSORS; i++) -               thermal_zone_device_unregister(pinfo->tzd[i]); +	for (i = 0; i < MSIC_THERMAL_SENSORS; i++) +		thermal_zone_device_unregister(pinfo->tzd[i]); -       platform_set_drvdata(pdev, NULL); +	kfree(pinfo); +	platform_set_drvdata(pdev, NULL); -       /* Stop the ADC */ -       return configure_adc(0); +	/* Stop the ADC */ +	return configure_adc(0);  } -/********************************************************************* - *             Driver initialisation and finalization - *********************************************************************/ -  #define DRIVER_NAME "msic_sensor"  static const struct platform_device_id therm_id_table[] = { -       { DRIVER_NAME, 1 }, -       { } +	{ DRIVER_NAME, 1 }, +	{ }  };  static struct platform_driver mid_thermal_driver = { -       .driver = { -               .name = DRIVER_NAME, -               .owner = THIS_MODULE, -       }, -       .probe = mid_thermal_probe, -       .suspend = mid_thermal_suspend, -       .resume = mid_thermal_resume, -       .remove = __devexit_p(mid_thermal_remove), -       .id_table = therm_id_table, +	.driver = { +		.name = DRIVER_NAME, +		.owner = THIS_MODULE, +	}, +	.probe = mid_thermal_probe, +	.suspend = mid_thermal_suspend, +	.resume = mid_thermal_resume, +	.remove = __devexit_p(mid_thermal_remove), +	.id_table = therm_id_table,  };  static int __init mid_thermal_module_init(void)  { -       return platform_driver_register(&mid_thermal_driver); +	return platform_driver_register(&mid_thermal_driver);  }  static void __exit mid_thermal_module_exit(void)  { -       platform_driver_unregister(&mid_thermal_driver); +	platform_driver_unregister(&mid_thermal_driver);  }  module_init(mid_thermal_module_init); diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c new file mode 100644 index 00000000000..e936364a609 --- /dev/null +++ b/drivers/platform/x86/intel_oaktrail.c @@ -0,0 +1,396 @@ +/* + * intel_oaktrail.c - Intel OakTrail Platform support. + * + * Copyright (C) 2010-2011 Intel Corporation + * Author: Yin Kangkai (kangkai.yin@intel.com) + * + * based on Compal driver, Copyright (C) 2008 Cezary Jackiewicz + * <cezary.jackiewicz (at) gmail.com>, based on MSI driver + * Copyright (C) 2006 Lennart Poettering <mzxreary (at) 0pointer (dot) de> + * + *  This program is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  This program is distributed in the hope that it will be useful, but + *  WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + *  General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + *  02110-1301, USA. + * + * This driver does below things: + * 1. registers itself in the Linux backlight control in + *    /sys/class/backlight/intel_oaktrail/ + * + * 2. registers in the rfkill subsystem here: /sys/class/rfkill/rfkillX/ + *    for these components: wifi, bluetooth, wwan (3g), gps + * + * This driver might work on other products based on Oaktrail. If you + * want to try it you can pass force=1 as argument to the module which + * will force it to load even when the DMI data doesn't identify the + * product as compatible. + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/acpi.h> +#include <linux/fb.h> +#include <linux/mutex.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/backlight.h> +#include <linux/platform_device.h> +#include <linux/dmi.h> +#include <linux/rfkill.h> +#include <acpi/acpi_bus.h> +#include <acpi/acpi_drivers.h> + + +#define DRIVER_NAME	"intel_oaktrail" +#define DRIVER_VERSION	"0.4ac1" + +/* + * This is the devices status address in EC space, and the control bits + * definition: + * + * (1 << 0):	Camera enable/disable, RW. + * (1 << 1):	Bluetooth enable/disable, RW. + * (1 << 2):	GPS enable/disable, RW. + * (1 << 3):	WiFi enable/disable, RW. + * (1 << 4):	WWAN (3G) enable/disalbe, RW. + * (1 << 5):	Touchscreen enable/disable, Read Only. + */ +#define OT_EC_DEVICE_STATE_ADDRESS	0xD6 + +#define OT_EC_CAMERA_MASK	(1 << 0) +#define OT_EC_BT_MASK		(1 << 1) +#define OT_EC_GPS_MASK		(1 << 2) +#define OT_EC_WIFI_MASK		(1 << 3) +#define OT_EC_WWAN_MASK		(1 << 4) +#define OT_EC_TS_MASK		(1 << 5) + +/* + * This is the address in EC space and commands used to control LCD backlight: + * + * Two steps needed to change the LCD backlight: + *   1. write the backlight percentage into OT_EC_BL_BRIGHTNESS_ADDRESS; + *   2. write OT_EC_BL_CONTROL_ON_DATA into OT_EC_BL_CONTROL_ADDRESS. + * + * To read the LCD back light, just read out the value from + * OT_EC_BL_BRIGHTNESS_ADDRESS. + * + * LCD backlight brightness range: 0 - 100 (OT_EC_BL_BRIGHTNESS_MAX) + */ +#define OT_EC_BL_BRIGHTNESS_ADDRESS	0x44 +#define OT_EC_BL_BRIGHTNESS_MAX		100 +#define OT_EC_BL_CONTROL_ADDRESS	0x3A +#define OT_EC_BL_CONTROL_ON_DATA	0x1A + + +static int force; +module_param(force, bool, 0); +MODULE_PARM_DESC(force, "Force driver load, ignore DMI data"); + +static struct platform_device *oaktrail_device; +static struct backlight_device *oaktrail_bl_device; +static struct rfkill *bt_rfkill; +static struct rfkill *gps_rfkill; +static struct rfkill *wifi_rfkill; +static struct rfkill *wwan_rfkill; + + +/* rfkill */ +static int oaktrail_rfkill_set(void *data, bool blocked) +{ +	u8 value; +	u8 result; +	unsigned long radio = (unsigned long) data; + +	ec_read(OT_EC_DEVICE_STATE_ADDRESS, &result); + +	if (!blocked) +		value = (u8) (result | radio); +	else +		value = (u8) (result & ~radio); + +	ec_write(OT_EC_DEVICE_STATE_ADDRESS, value); + +	return 0; +} + +static const struct rfkill_ops oaktrail_rfkill_ops = { +	.set_block = oaktrail_rfkill_set, +}; + +static struct rfkill *oaktrail_rfkill_new(char *name, enum rfkill_type type, +					  unsigned long mask) +{ +	struct rfkill *rfkill_dev; +	u8 value; +	int err; + +	rfkill_dev = rfkill_alloc(name, &oaktrail_device->dev, type, +				  &oaktrail_rfkill_ops, (void *)mask); +	if (!rfkill_dev) +		return ERR_PTR(-ENOMEM); + +	ec_read(OT_EC_DEVICE_STATE_ADDRESS, &value); +	rfkill_init_sw_state(rfkill_dev, (value & mask) != 1); + +	err = rfkill_register(rfkill_dev); +	if (err) { +		rfkill_destroy(rfkill_dev); +		return ERR_PTR(err); +	} + +	return rfkill_dev; +} + +static inline void __oaktrail_rfkill_cleanup(struct rfkill *rf) +{ +	if (rf) { +		rfkill_unregister(rf); +		rfkill_destroy(rf); +	} +} + +static void oaktrail_rfkill_cleanup(void) +{ +	__oaktrail_rfkill_cleanup(wifi_rfkill); +	__oaktrail_rfkill_cleanup(bt_rfkill); +	__oaktrail_rfkill_cleanup(gps_rfkill); +	__oaktrail_rfkill_cleanup(wwan_rfkill); +} + +static int oaktrail_rfkill_init(void) +{ +	int ret; + +	wifi_rfkill = oaktrail_rfkill_new("oaktrail-wifi", +					  RFKILL_TYPE_WLAN, +					  OT_EC_WIFI_MASK); +	if (IS_ERR(wifi_rfkill)) { +		ret = PTR_ERR(wifi_rfkill); +		wifi_rfkill = NULL; +		goto cleanup; +	} + +	bt_rfkill = oaktrail_rfkill_new("oaktrail-bluetooth", +					RFKILL_TYPE_BLUETOOTH, +					OT_EC_BT_MASK); +	if (IS_ERR(bt_rfkill)) { +		ret = PTR_ERR(bt_rfkill); +		bt_rfkill = NULL; +		goto cleanup; +	} + +	gps_rfkill = oaktrail_rfkill_new("oaktrail-gps", +					 RFKILL_TYPE_GPS, +					 OT_EC_GPS_MASK); +	if (IS_ERR(gps_rfkill)) { +		ret = PTR_ERR(gps_rfkill); +		gps_rfkill = NULL; +		goto cleanup; +	} + +	wwan_rfkill = oaktrail_rfkill_new("oaktrail-wwan", +					  RFKILL_TYPE_WWAN, +					  OT_EC_WWAN_MASK); +	if (IS_ERR(wwan_rfkill)) { +		ret = PTR_ERR(wwan_rfkill); +		wwan_rfkill = NULL; +		goto cleanup; +	} + +	return 0; + +cleanup: +	oaktrail_rfkill_cleanup(); +	return ret; +} + + +/* backlight */ +static int get_backlight_brightness(struct backlight_device *b) +{ +	u8 value; +	ec_read(OT_EC_BL_BRIGHTNESS_ADDRESS, &value); + +	return value; +} + +static int set_backlight_brightness(struct backlight_device *b) +{ +	u8 percent = (u8) b->props.brightness; +	if (percent < 0 || percent > OT_EC_BL_BRIGHTNESS_MAX) +		return -EINVAL; + +	ec_write(OT_EC_BL_BRIGHTNESS_ADDRESS, percent); +	ec_write(OT_EC_BL_CONTROL_ADDRESS, OT_EC_BL_CONTROL_ON_DATA); + +	return 0; +} + +static const struct backlight_ops oaktrail_bl_ops = { +	.get_brightness = get_backlight_brightness, +	.update_status	= set_backlight_brightness, +}; + +static int oaktrail_backlight_init(void) +{ +	struct backlight_device *bd; +	struct backlight_properties props; + +	memset(&props, 0, sizeof(struct backlight_properties)); +	props.max_brightness = OT_EC_BL_BRIGHTNESS_MAX; +	bd = backlight_device_register(DRIVER_NAME, +				       &oaktrail_device->dev, NULL, +				       &oaktrail_bl_ops, +				       &props); + +	if (IS_ERR(bd)) { +		oaktrail_bl_device = NULL; +		pr_warning("Unable to register backlight device\n"); +		return PTR_ERR(bd); +	} + +	oaktrail_bl_device = bd; + +	bd->props.brightness = get_backlight_brightness(bd); +	bd->props.power = FB_BLANK_UNBLANK; +	backlight_update_status(bd); + +	return 0; +} + +static void oaktrail_backlight_exit(void) +{ +	if (oaktrail_bl_device) +		backlight_device_unregister(oaktrail_bl_device); +} + +static int __devinit oaktrail_probe(struct platform_device *pdev) +{ +	return 0; +} + +static int __devexit oaktrail_remove(struct platform_device *pdev) +{ +	return 0; +} + +static struct platform_driver oaktrail_driver = { +	.driver = { +		.name = DRIVER_NAME, +		.owner = THIS_MODULE, +	}, +	.probe	= oaktrail_probe, +	.remove	= __devexit_p(oaktrail_remove) +}; + +static int dmi_check_cb(const struct dmi_system_id *id) +{ +	pr_info("Identified model '%s'\n", id->ident); +	return 0; +} + +static struct dmi_system_id __initdata oaktrail_dmi_table[] = { +	{ +		.ident = "OakTrail platform", +		.matches = { +			DMI_MATCH(DMI_PRODUCT_NAME, "OakTrail platform"), +		}, +		.callback = dmi_check_cb +	}, +	{ } +}; + +static int __init oaktrail_init(void) +{ +	int ret; + +	if (acpi_disabled) { +		pr_err("ACPI needs to be enabled for this driver to work!\n"); +		return -ENODEV; +	} + +	if (!force && !dmi_check_system(oaktrail_dmi_table)) { +		pr_err("Platform not recognized (You could try the module's force-parameter)"); +		return -ENODEV; +	} + +	ret = platform_driver_register(&oaktrail_driver); +	if (ret) { +		pr_warning("Unable to register platform driver\n"); +		goto err_driver_reg; +	} + +	oaktrail_device = platform_device_alloc(DRIVER_NAME, -1); +	if (!oaktrail_device) { +		pr_warning("Unable to allocate platform device\n"); +		ret = -ENOMEM; +		goto err_device_alloc; +	} + +	ret = platform_device_add(oaktrail_device); +	if (ret) { +		pr_warning("Unable to add platform device\n"); +		goto err_device_add; +	} + +	if (!acpi_video_backlight_support()) { +		ret = oaktrail_backlight_init(); +		if (ret) +			goto err_backlight; + +	} else +		pr_info("Backlight controlled by ACPI video driver\n"); + +	ret = oaktrail_rfkill_init(); +	if (ret) { +		pr_warning("Setup rfkill failed\n"); +		goto err_rfkill; +	} + +	pr_info("Driver "DRIVER_VERSION" successfully loaded\n"); +	return 0; + +err_rfkill: +	oaktrail_backlight_exit(); +err_backlight: +	platform_device_del(oaktrail_device); +err_device_add: +	platform_device_put(oaktrail_device); +err_device_alloc: +	platform_driver_unregister(&oaktrail_driver); +err_driver_reg: + +	return ret; +} + +static void __exit oaktrail_cleanup(void) +{ +	oaktrail_backlight_exit(); +	oaktrail_rfkill_cleanup(); +	platform_device_unregister(oaktrail_device); +	platform_driver_unregister(&oaktrail_driver); + +	pr_info("Driver unloaded\n"); +} + +module_init(oaktrail_init); +module_exit(oaktrail_cleanup); + +MODULE_AUTHOR("Yin Kangkai (kangkai.yin@intel.com)"); +MODULE_DESCRIPTION("Intel Oaktrail Platform ACPI Extras"); +MODULE_VERSION(DRIVER_VERSION); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("dmi:*:svnIntelCorporation:pnOakTrailplatform:*"); diff --git a/drivers/platform/x86/intel_pmic_gpio.c b/drivers/platform/x86/intel_pmic_gpio.c index 464bb3fc4d8..1686c1e07d5 100644 --- a/drivers/platform/x86/intel_pmic_gpio.c +++ b/drivers/platform/x86/intel_pmic_gpio.c @@ -19,6 +19,8 @@   * Moorestown platform PMIC chip   */ +#define pr_fmt(fmt) "%s: " fmt, __func__ +  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/interrupt.h> @@ -90,8 +92,7 @@ static void pmic_program_irqtype(int gpio, int type)  static int pmic_gpio_direction_input(struct gpio_chip *chip, unsigned offset)  {  	if (offset > 8) { -		printk(KERN_ERR -			"%s: only pin 0-7 support input\n", __func__); +		pr_err("only pin 0-7 support input\n");  		return -1;/* we only have 8 GPIO can use as input */  	}  	return intel_scu_ipc_update_register(GPIO0 + offset, @@ -116,8 +117,7 @@ static int pmic_gpio_direction_output(struct gpio_chip *chip,  				value ? 1 << (offset - 16) : 0,  				1 << (offset - 16));  	else { -		printk(KERN_ERR -			"%s: invalid PMIC GPIO pin %d!\n", __func__, offset); +		pr_err("invalid PMIC GPIO pin %d!\n", offset);  		WARN_ON(1);  	} @@ -260,7 +260,7 @@ static int __devinit platform_pmic_gpio_probe(struct platform_device *pdev)  	/* setting up SRAM mapping for GPIOINT register */  	pg->gpiointr = ioremap_nocache(pdata->gpiointr, 8);  	if (!pg->gpiointr) { -		printk(KERN_ERR "%s: Can not map GPIOINT.\n", __func__); +		pr_err("Can not map GPIOINT\n");  		retval = -EINVAL;  		goto err2;  	} @@ -281,13 +281,13 @@ static int __devinit platform_pmic_gpio_probe(struct platform_device *pdev)  	pg->chip.dev = dev;  	retval = gpiochip_add(&pg->chip);  	if (retval) { -		printk(KERN_ERR "%s: Can not add pmic gpio chip.\n", __func__); +		pr_err("Can not add pmic gpio chip\n");  		goto err;  	}  	retval = request_irq(pg->irq, pmic_irq_handler, 0, "pmic", pg);  	if (retval) { -		printk(KERN_WARNING "pmic: Interrupt request failed\n"); +		pr_warn("Interrupt request failed\n");  		goto err;  	} diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c index 821ad7bc1e2..3ff629df9f0 100644 --- a/drivers/platform/x86/msi-laptop.c +++ b/drivers/platform/x86/msi-laptop.c @@ -447,7 +447,7 @@ static struct platform_device *msipf_device;  static int dmi_check_cb(const struct dmi_system_id *id)  { -	pr_info("Identified laptop model '%s'.\n", id->ident); +	pr_info("Identified laptop model '%s'\n", id->ident);  	return 1;  } @@ -800,7 +800,7 @@ static void msi_laptop_input_destroy(void)  	input_unregister_device(msi_laptop_input_dev);  } -static int load_scm_model_init(struct platform_device *sdev) +static int __init load_scm_model_init(struct platform_device *sdev)  {  	u8 data;  	int result; @@ -875,8 +875,7 @@ static int __init msi_init(void)  	/* Register backlight stuff */  	if (acpi_video_backlight_support()) { -		pr_info("Brightness ignored, must be controlled " -		       "by ACPI video driver\n"); +		pr_info("Brightness ignored, must be controlled by ACPI video driver\n");  	} else {  		struct backlight_properties props;  		memset(&props, 0, sizeof(struct backlight_properties)); @@ -930,7 +929,7 @@ static int __init msi_init(void)  	if (auto_brightness != 2)  		set_auto_brightness(auto_brightness); -	pr_info("driver "MSI_DRIVER_VERSION" successfully loaded.\n"); +	pr_info("driver " MSI_DRIVER_VERSION " successfully loaded\n");  	return 0; @@ -978,7 +977,7 @@ static void __exit msi_cleanup(void)  	if (auto_brightness != 2)  		set_auto_brightness(1); -	pr_info("driver unloaded.\n"); +	pr_info("driver unloaded\n");  }  module_init(msi_init); diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c index d5419c9ec07..c832e3356cd 100644 --- a/drivers/platform/x86/msi-wmi.c +++ b/drivers/platform/x86/msi-wmi.c @@ -20,6 +20,7 @@   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt  #include <linux/kernel.h>  #include <linux/input.h> @@ -36,13 +37,10 @@ MODULE_ALIAS("wmi:551A1F84-FBDD-4125-91DB-3EA8F44F1D45");  MODULE_ALIAS("wmi:B6F3EEF2-3D2F-49DC-9DE3-85BCE18C62F2");  #define DRV_NAME "msi-wmi" -#define DRV_PFX DRV_NAME ": "  #define MSIWMI_BIOS_GUID "551A1F84-FBDD-4125-91DB-3EA8F44F1D45"  #define MSIWMI_EVENT_GUID "B6F3EEF2-3D2F-49DC-9DE3-85BCE18C62F2" -#define dprintk(msg...) pr_debug(DRV_PFX msg) -  #define SCANCODE_BASE 0xD0  #define MSI_WMI_BRIGHTNESSUP   SCANCODE_BASE  #define MSI_WMI_BRIGHTNESSDOWN (SCANCODE_BASE + 1) @@ -78,7 +76,7 @@ static int msi_wmi_query_block(int instance, int *ret)  	if (!obj || obj->type != ACPI_TYPE_INTEGER) {  		if (obj) { -			printk(KERN_ERR DRV_PFX "query block returned object " +			pr_err("query block returned object "  			       "type: %d - buffer length:%d\n", obj->type,  			       obj->type == ACPI_TYPE_BUFFER ?  			       obj->buffer.length : 0); @@ -97,8 +95,8 @@ static int msi_wmi_set_block(int instance, int value)  	struct acpi_buffer input = { sizeof(int), &value }; -	dprintk("Going to set block of instance: %d - value: %d\n", -		instance, value); +	pr_debug("Going to set block of instance: %d - value: %d\n", +		 instance, value);  	status = wmi_set_block(MSIWMI_BIOS_GUID, instance, &input); @@ -112,20 +110,19 @@ static int bl_get(struct backlight_device *bd)  	/* Instance 1 is "get backlight", cmp with DSDT */  	err = msi_wmi_query_block(1, &ret);  	if (err) { -		printk(KERN_ERR DRV_PFX "Could not query backlight: %d\n", err); +		pr_err("Could not query backlight: %d\n", err);  		return -EINVAL;  	} -	dprintk("Get: Query block returned: %d\n", ret); +	pr_debug("Get: Query block returned: %d\n", ret);  	for (level = 0; level < ARRAY_SIZE(backlight_map); level++) {  		if (backlight_map[level] == ret) { -			dprintk("Current backlight level: 0x%X - index: %d\n", -				backlight_map[level], level); +			pr_debug("Current backlight level: 0x%X - index: %d\n", +				 backlight_map[level], level);  			break;  		}  	}  	if (level == ARRAY_SIZE(backlight_map)) { -		printk(KERN_ERR DRV_PFX "get: Invalid brightness value: 0x%X\n", -		       ret); +		pr_err("get: Invalid brightness value: 0x%X\n", ret);  		return -EINVAL;  	}  	return level; @@ -156,7 +153,7 @@ static void msi_wmi_notify(u32 value, void *context)  	status = wmi_get_event_data(value, &response);  	if (status != AE_OK) { -		printk(KERN_INFO DRV_PFX "bad event status 0x%x\n", status); +		pr_info("bad event status 0x%x\n", status);  		return;  	} @@ -164,7 +161,7 @@ static void msi_wmi_notify(u32 value, void *context)  	if (obj && obj->type == ACPI_TYPE_INTEGER) {  		int eventcode = obj->integer.value; -		dprintk("Eventcode: 0x%x\n", eventcode); +		pr_debug("Eventcode: 0x%x\n", eventcode);  		key = sparse_keymap_entry_from_scancode(msi_wmi_input_dev,  				eventcode);  		if (key) { @@ -175,8 +172,8 @@ static void msi_wmi_notify(u32 value, void *context)  			/* Ignore event if the same event happened in a 50 ms  			   timeframe -> Key press may result in 10-20 GPEs */  			if (ktime_to_us(diff) < 1000 * 50) { -				dprintk("Suppressed key event 0x%X - " -					"Last press was %lld us ago\n", +				pr_debug("Suppressed key event 0x%X - " +					 "Last press was %lld us ago\n",  					 key->code, ktime_to_us(diff));  				return;  			} @@ -187,17 +184,16 @@ static void msi_wmi_notify(u32 value, void *context)  			(!acpi_video_backlight_support() ||  			(key->code != MSI_WMI_BRIGHTNESSUP &&  			key->code != MSI_WMI_BRIGHTNESSDOWN))) { -				dprintk("Send key: 0x%X - " -					"Input layer keycode: %d\n", key->code, -					 key->keycode); +				pr_debug("Send key: 0x%X - " +					 "Input layer keycode: %d\n", +					 key->code, key->keycode);  				sparse_keymap_report_entry(msi_wmi_input_dev,  						key, 1, true);  			}  		} else -			printk(KERN_INFO "Unknown key pressed - %x\n", -			       eventcode); +			pr_info("Unknown key pressed - %x\n", eventcode);  	} else -		printk(KERN_INFO DRV_PFX "Unknown event received\n"); +		pr_info("Unknown event received\n");  	kfree(response.pointer);  } @@ -238,8 +234,7 @@ static int __init msi_wmi_init(void)  	int err;  	if (!wmi_has_guid(MSIWMI_EVENT_GUID)) { -		printk(KERN_ERR -		       "This machine doesn't have MSI-hotkeys through WMI\n"); +		pr_err("This machine doesn't have MSI-hotkeys through WMI\n");  		return -ENODEV;  	}  	err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, @@ -270,7 +265,7 @@ static int __init msi_wmi_init(void)  		backlight->props.brightness = err;  	} -	dprintk("Event handler installed\n"); +	pr_debug("Event handler installed\n");  	return 0; diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 6fe8cd6e23b..bbd182e178c 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -42,6 +42,8 @@   *   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/moduleparam.h> @@ -70,10 +72,10 @@  #include <linux/miscdevice.h>  #endif -#define DRV_PFX			"sony-laptop: " -#define dprintk(msg...)		do {	\ -	if (debug)			\ -		pr_warn(DRV_PFX msg);	\ +#define dprintk(fmt, ...)			\ +do {						\ +	if (debug)				\ +		pr_warn(fmt, ##__VA_ARGS__);	\  } while (0)  #define SONY_LAPTOP_DRIVER_VERSION	"0.6" @@ -418,7 +420,7 @@ static int sony_laptop_setup_input(struct acpi_device *acpi_device)  	error = kfifo_alloc(&sony_laptop_input.fifo,  			    SONY_LAPTOP_BUF_SIZE, GFP_KERNEL);  	if (error) { -		pr_err(DRV_PFX "kfifo_alloc failed\n"); +		pr_err("kfifo_alloc failed\n");  		goto err_dec_users;  	} @@ -702,7 +704,7 @@ static int acpi_callgetfunc(acpi_handle handle, char *name, int *result)  		return 0;  	} -	pr_warn(DRV_PFX "acpi_callreadfunc failed\n"); +	pr_warn("acpi_callreadfunc failed\n");  	return -1;  } @@ -728,8 +730,7 @@ static int acpi_callsetfunc(acpi_handle handle, char *name, int value,  	if (status == AE_OK) {  		if (result != NULL) {  			if (out_obj.type != ACPI_TYPE_INTEGER) { -				pr_warn(DRV_PFX "acpi_evaluate_object bad " -				       "return type\n"); +				pr_warn("acpi_evaluate_object bad return type\n");  				return -1;  			}  			*result = out_obj.integer.value; @@ -737,7 +738,7 @@ static int acpi_callsetfunc(acpi_handle handle, char *name, int value,  		return 0;  	} -	pr_warn(DRV_PFX "acpi_evaluate_object failed\n"); +	pr_warn("acpi_evaluate_object failed\n");  	return -1;  } @@ -961,7 +962,6 @@ static int sony_backlight_get_brightness(struct backlight_device *bd)  static int sony_nc_get_brightness_ng(struct backlight_device *bd)  {  	int result; -	int *handle = (int *)bl_get_data(bd);  	struct sony_backlight_props *sdev =  		(struct sony_backlight_props *)bl_get_data(bd); @@ -973,7 +973,6 @@ static int sony_nc_get_brightness_ng(struct backlight_device *bd)  static int sony_nc_update_status_ng(struct backlight_device *bd)  {  	int value, result; -	int *handle = (int *)bl_get_data(bd);  	struct sony_backlight_props *sdev =  		(struct sony_backlight_props *)bl_get_data(bd); @@ -1104,10 +1103,8 @@ static void sony_nc_notify(struct acpi_device *device, u32 event)  				}  				if (!key_event->data) -					pr_info(DRV_PFX -							"Unknown event: 0x%x 0x%x\n", -							key_handle, -							ev); +					pr_info("Unknown event: 0x%x 0x%x\n", +						key_handle, ev);  				else  					sony_laptop_report_input_event(ev);  			} @@ -1128,7 +1125,7 @@ static acpi_status sony_walk_callback(acpi_handle handle, u32 level,  	struct acpi_device_info *info;  	if (ACPI_SUCCESS(acpi_get_object_info(handle, &info))) { -		pr_warn(DRV_PFX "method: name: %4.4s, args %X\n", +		pr_warn("method: name: %4.4s, args %X\n",  			(char *)&info->name, info->param_count);  		kfree(info); @@ -1169,7 +1166,7 @@ static int sony_nc_resume(struct acpi_device *device)  		ret = acpi_callsetfunc(sony_nc_acpi_handle, *item->acpiset,  				       item->value, NULL);  		if (ret < 0) { -			pr_err(DRV_PFX "%s: %d\n", __func__, ret); +			pr_err("%s: %d\n", __func__, ret);  			break;  		}  	} @@ -1336,12 +1333,12 @@ static void sony_nc_rfkill_setup(struct acpi_device *device)  	device_enum = (union acpi_object *) buffer.pointer;  	if (!device_enum) { -		pr_err(DRV_PFX "No SN06 return object."); +		pr_err("No SN06 return object\n");  		goto out_no_enum;  	}  	if (device_enum->type != ACPI_TYPE_BUFFER) { -		pr_err(DRV_PFX "Invalid SN06 return object 0x%.2x\n", -				device_enum->type); +		pr_err("Invalid SN06 return object 0x%.2x\n", +		       device_enum->type);  		goto out_no_enum;  	} @@ -1662,7 +1659,7 @@ static void sony_nc_backlight_setup(void)  						      ops, &props);  	if (IS_ERR(sony_bl_props.dev)) { -		pr_warn(DRV_PFX "unable to register backlight device\n"); +		pr_warn("unable to register backlight device\n");  		sony_bl_props.dev = NULL;  	} else  		sony_bl_props.dev->props.brightness = @@ -1682,8 +1679,7 @@ static int sony_nc_add(struct acpi_device *device)  	acpi_handle handle;  	struct sony_nc_value *item; -	pr_info(DRV_PFX "%s v%s.\n", SONY_NC_DRIVER_NAME, -			SONY_LAPTOP_DRIVER_VERSION); +	pr_info("%s v%s\n", SONY_NC_DRIVER_NAME, SONY_LAPTOP_DRIVER_VERSION);  	sony_nc_acpi_device = device;  	strcpy(acpi_device_class(device), "sony/hotkey"); @@ -1708,7 +1704,7 @@ static int sony_nc_add(struct acpi_device *device)  				sony_nc_acpi_handle, 1, sony_walk_callback,  				NULL, NULL, NULL);  		if (ACPI_FAILURE(status)) { -			pr_warn(DRV_PFX "unable to walk acpi resources\n"); +			pr_warn("unable to walk acpi resources\n");  			result = -ENODEV;  			goto outpresent;  		} @@ -1736,13 +1732,12 @@ static int sony_nc_add(struct acpi_device *device)  	/* setup input devices and helper fifo */  	result = sony_laptop_setup_input(device);  	if (result) { -		pr_err(DRV_PFX "Unable to create input devices.\n"); +		pr_err("Unable to create input devices\n");  		goto outkbdbacklight;  	}  	if (acpi_video_backlight_support()) { -		pr_info(DRV_PFX "brightness ignored, must be " -		       "controlled by ACPI video driver\n"); +		pr_info("brightness ignored, must be controlled by ACPI video driver\n");  	} else {  		sony_nc_backlight_setup();  	} @@ -2265,9 +2260,9 @@ out:  	if (pcidev)  		pci_dev_put(pcidev); -	pr_info(DRV_PFX "detected Type%d model\n", -			dev->model == SONYPI_DEVICE_TYPE1 ? 1 : -			dev->model == SONYPI_DEVICE_TYPE2 ? 2 : 3); +	pr_info("detected Type%d model\n", +		dev->model == SONYPI_DEVICE_TYPE1 ? 1 : +		dev->model == SONYPI_DEVICE_TYPE2 ? 2 : 3);  }  /* camera tests and poweron/poweroff */ @@ -2313,7 +2308,7 @@ static int __sony_pic_camera_ready(void)  static int __sony_pic_camera_off(void)  {  	if (!camera) { -		pr_warn(DRV_PFX "camera control not enabled\n"); +		pr_warn("camera control not enabled\n");  		return -ENODEV;  	} @@ -2333,7 +2328,7 @@ static int __sony_pic_camera_on(void)  	int i, j, x;  	if (!camera) { -		pr_warn(DRV_PFX "camera control not enabled\n"); +		pr_warn("camera control not enabled\n");  		return -ENODEV;  	} @@ -2356,7 +2351,7 @@ static int __sony_pic_camera_on(void)  	}  	if (j == 0) { -		pr_warn(DRV_PFX "failed to power on camera\n"); +		pr_warn("failed to power on camera\n");  		return -ENODEV;  	} @@ -2412,8 +2407,7 @@ int sony_pic_camera_command(int command, u8 value)  				ITERATIONS_SHORT);  		break;  	default: -		pr_err(DRV_PFX "sony_pic_camera_command invalid: %d\n", -		       command); +		pr_err("sony_pic_camera_command invalid: %d\n", command);  		break;  	}  	mutex_unlock(&spic_dev.lock); @@ -2819,7 +2813,7 @@ static int sonypi_compat_init(void)  	error =  	 kfifo_alloc(&sonypi_compat.fifo, SONY_LAPTOP_BUF_SIZE, GFP_KERNEL);  	if (error) { -		pr_err(DRV_PFX "kfifo_alloc failed\n"); +		pr_err("kfifo_alloc failed\n");  		return error;  	} @@ -2829,12 +2823,12 @@ static int sonypi_compat_init(void)  		sonypi_misc_device.minor = minor;  	error = misc_register(&sonypi_misc_device);  	if (error) { -		pr_err(DRV_PFX "misc_register failed\n"); +		pr_err("misc_register failed\n");  		goto err_free_kfifo;  	}  	if (minor == -1) -		pr_info(DRV_PFX "device allocated minor is %d\n", -		       sonypi_misc_device.minor); +		pr_info("device allocated minor is %d\n", +			sonypi_misc_device.minor);  	return 0; @@ -2893,8 +2887,8 @@ sony_pic_read_possible_resource(struct acpi_resource *resource, void *context)  			}  			for (i = 0; i < p->interrupt_count; i++) {  				if (!p->interrupts[i]) { -					pr_warn(DRV_PFX "Invalid IRQ %d\n", -							p->interrupts[i]); +					pr_warn("Invalid IRQ %d\n", +						p->interrupts[i]);  					continue;  				}  				interrupt = kzalloc(sizeof(*interrupt), @@ -2932,14 +2926,14 @@ sony_pic_read_possible_resource(struct acpi_resource *resource, void *context)  						ioport->io2.address_length);  			}  			else { -				pr_err(DRV_PFX "Unknown SPIC Type, more than 2 IO Ports\n"); +				pr_err("Unknown SPIC Type, more than 2 IO Ports\n");  				return AE_ERROR;  			}  			return AE_OK;  		}  	default:  		dprintk("Resource %d isn't an IRQ nor an IO port\n", -				resource->type); +			resource->type);  	case ACPI_RESOURCE_TYPE_END_TAG:  		return AE_OK; @@ -2960,7 +2954,7 @@ static int sony_pic_possible_resources(struct acpi_device *device)  	dprintk("Evaluating _STA\n");  	result = acpi_bus_get_status(device);  	if (result) { -		pr_warn(DRV_PFX "Unable to read status\n"); +		pr_warn("Unable to read status\n");  		goto end;  	} @@ -2976,8 +2970,7 @@ static int sony_pic_possible_resources(struct acpi_device *device)  	status = acpi_walk_resources(device->handle, METHOD_NAME__PRS,  			sony_pic_read_possible_resource, &spic_dev);  	if (ACPI_FAILURE(status)) { -		pr_warn(DRV_PFX "Failure evaluating %s\n", -				METHOD_NAME__PRS); +		pr_warn("Failure evaluating %s\n", METHOD_NAME__PRS);  		result = -ENODEV;  	}  end: @@ -3090,7 +3083,7 @@ static int sony_pic_enable(struct acpi_device *device,  	/* check for total failure */  	if (ACPI_FAILURE(status)) { -		pr_err(DRV_PFX "Error evaluating _SRS\n"); +		pr_err("Error evaluating _SRS\n");  		result = -ENODEV;  		goto end;  	} @@ -3182,7 +3175,7 @@ static int sony_pic_remove(struct acpi_device *device, int type)  	struct sony_pic_irq *irq, *tmp_irq;  	if (sony_pic_disable(device)) { -		pr_err(DRV_PFX "Couldn't disable device.\n"); +		pr_err("Couldn't disable device\n");  		return -ENXIO;  	} @@ -3222,8 +3215,7 @@ static int sony_pic_add(struct acpi_device *device)  	struct sony_pic_ioport *io, *tmp_io;  	struct sony_pic_irq *irq, *tmp_irq; -	pr_info(DRV_PFX "%s v%s.\n", SONY_PIC_DRIVER_NAME, -			SONY_LAPTOP_DRIVER_VERSION); +	pr_info("%s v%s\n", SONY_PIC_DRIVER_NAME, SONY_LAPTOP_DRIVER_VERSION);  	spic_dev.acpi_dev = device;  	strcpy(acpi_device_class(device), "sony/hotkey"); @@ -3233,14 +3225,14 @@ static int sony_pic_add(struct acpi_device *device)  	/* read _PRS resources */  	result = sony_pic_possible_resources(device);  	if (result) { -		pr_err(DRV_PFX "Unable to read possible resources.\n"); +		pr_err("Unable to read possible resources\n");  		goto err_free_resources;  	}  	/* setup input devices and helper fifo */  	result = sony_laptop_setup_input(device);  	if (result) { -		pr_err(DRV_PFX "Unable to create input devices.\n"); +		pr_err("Unable to create input devices\n");  		goto err_free_resources;  	} @@ -3281,7 +3273,7 @@ static int sony_pic_add(struct acpi_device *device)  		}  	}  	if (!spic_dev.cur_ioport) { -		pr_err(DRV_PFX "Failed to request_region.\n"); +		pr_err("Failed to request_region\n");  		result = -ENODEV;  		goto err_remove_compat;  	} @@ -3301,7 +3293,7 @@ static int sony_pic_add(struct acpi_device *device)  		}  	}  	if (!spic_dev.cur_irq) { -		pr_err(DRV_PFX "Failed to request_irq.\n"); +		pr_err("Failed to request_irq\n");  		result = -ENODEV;  		goto err_release_region;  	} @@ -3309,7 +3301,7 @@ static int sony_pic_add(struct acpi_device *device)  	/* set resource status _SRS */  	result = sony_pic_enable(device, spic_dev.cur_ioport, spic_dev.cur_irq);  	if (result) { -		pr_err(DRV_PFX "Couldn't enable device.\n"); +		pr_err("Couldn't enable device\n");  		goto err_free_irq;  	} @@ -3418,7 +3410,7 @@ static int __init sony_laptop_init(void)  	if (!no_spic && dmi_check_system(sonypi_dmi_table)) {  		result = acpi_bus_register_driver(&sony_pic_driver);  		if (result) { -			pr_err(DRV_PFX "Unable to register SPIC driver."); +			pr_err("Unable to register SPIC driver\n");  			goto out;  		}  		spic_drv_registered = 1; @@ -3426,7 +3418,7 @@ static int __init sony_laptop_init(void)  	result = acpi_bus_register_driver(&sony_nc_driver);  	if (result) { -		pr_err(DRV_PFX "Unable to register SNC driver."); +		pr_err("Unable to register SNC driver\n");  		goto out_unregister_pic;  	} diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c index 865ef78d6f1..e24f5ae475a 100644 --- a/drivers/platform/x86/tc1100-wmi.c +++ b/drivers/platform/x86/tc1100-wmi.c @@ -25,6 +25,8 @@   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/slab.h> @@ -40,9 +42,6 @@  #define TC1100_INSTANCE_WIRELESS		1  #define TC1100_INSTANCE_JOGDIAL		2 -#define TC1100_LOGPREFIX "tc1100-wmi: " -#define TC1100_INFO KERN_INFO TC1100_LOGPREFIX -  MODULE_AUTHOR("Jamey Hicks, Carlos Corbacho");  MODULE_DESCRIPTION("HP Compaq TC1100 Tablet WMI Extras");  MODULE_LICENSE("GPL"); @@ -264,7 +263,7 @@ static int __init tc1100_init(void)  	if (error)  		goto err_device_del; -	printk(TC1100_INFO "HP Compaq TC1100 Tablet WMI Extras loaded\n"); +	pr_info("HP Compaq TC1100 Tablet WMI Extras loaded\n");  	return 0;   err_device_del: diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 562fcf0dd2b..77f6e707a2a 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c @@ -21,6 +21,8 @@   *  02110-1301, USA.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #define TPACPI_VERSION "0.24"  #define TPACPI_SYSFS_VERSION 0x020700 @@ -224,17 +226,6 @@ enum tpacpi_hkey_event_t {  #define TPACPI_MAX_ACPI_ARGS 3 -/* printk headers */ -#define TPACPI_LOG TPACPI_FILE ": " -#define TPACPI_EMERG	KERN_EMERG	TPACPI_LOG -#define TPACPI_ALERT	KERN_ALERT	TPACPI_LOG -#define TPACPI_CRIT	KERN_CRIT	TPACPI_LOG -#define TPACPI_ERR	KERN_ERR	TPACPI_LOG -#define TPACPI_WARN	KERN_WARNING	TPACPI_LOG -#define TPACPI_NOTICE	KERN_NOTICE	TPACPI_LOG -#define TPACPI_INFO	KERN_INFO	TPACPI_LOG -#define TPACPI_DEBUG	KERN_DEBUG	TPACPI_LOG -  /* Debugging printk groups */  #define TPACPI_DBG_ALL		0xffff  #define TPACPI_DBG_DISCLOSETASK	0x8000 @@ -389,34 +380,36 @@ static int tpacpi_uwb_emulstate;   *  Debugging helpers   */ -#define dbg_printk(a_dbg_level, format, arg...) \ -	do { if (dbg_level & (a_dbg_level)) \ -		printk(TPACPI_DEBUG "%s: " format, __func__ , ## arg); \ -	} while (0) +#define dbg_printk(a_dbg_level, format, arg...)				\ +do {									\ +	if (dbg_level & (a_dbg_level))					\ +		printk(KERN_DEBUG pr_fmt("%s: " format),		\ +		       __func__, ##arg);				\ +} while (0)  #ifdef CONFIG_THINKPAD_ACPI_DEBUG  #define vdbg_printk dbg_printk  static const char *str_supported(int is_supported);  #else -#define vdbg_printk(a_dbg_level, format, arg...) \ -	do { } while (0) +static inline const char *str_supported(int is_supported) { return ""; } +#define vdbg_printk(a_dbg_level, format, arg...)	\ +	no_printk(format, ##arg)  #endif  static void tpacpi_log_usertask(const char * const what)  { -	printk(TPACPI_DEBUG "%s: access by process with PID %d\n", -		what, task_tgid_vnr(current)); +	printk(KERN_DEBUG pr_fmt("%s: access by process with PID %d\n"), +	       what, task_tgid_vnr(current));  } -#define tpacpi_disclose_usertask(what, format, arg...) \ -	do { \ -		if (unlikely( \ -		    (dbg_level & TPACPI_DBG_DISCLOSETASK) && \ -		    (tpacpi_lifecycle == TPACPI_LIFE_RUNNING))) { \ -			printk(TPACPI_DEBUG "%s: PID %d: " format, \ -				what, task_tgid_vnr(current), ## arg); \ -		} \ -	} while (0) +#define tpacpi_disclose_usertask(what, format, arg...)			\ +do {									\ +	if (unlikely((dbg_level & TPACPI_DBG_DISCLOSETASK) &&		\ +		     (tpacpi_lifecycle == TPACPI_LIFE_RUNNING))) {	\ +		printk(KERN_DEBUG pr_fmt("%s: PID %d: " format),	\ +		       what, task_tgid_vnr(current), ## arg);		\ +	}								\ +} while (0)  /*   * Quirk handling helpers @@ -535,15 +528,6 @@ TPACPI_HANDLE(hkey, ec, "\\_SB.HKEY",	/* 600e/x, 770e, 770x */  	   "HKEY",		/* all others */  	   );			/* 570 */ -TPACPI_HANDLE(vid, root, "\\_SB.PCI.AGP.VGA",	/* 570 */ -	   "\\_SB.PCI0.AGP0.VID0",	/* 600e/x, 770x */ -	   "\\_SB.PCI0.VID0",	/* 770e */ -	   "\\_SB.PCI0.VID",	/* A21e, G4x, R50e, X30, X40 */ -	   "\\_SB.PCI0.AGP.VGA",	/* X100e and a few others */ -	   "\\_SB.PCI0.AGP.VID",	/* all others */ -	   );				/* R30, R31 */ - -  /*************************************************************************   * ACPI helpers   */ @@ -563,7 +547,7 @@ static int acpi_evalf(acpi_handle handle,  	int quiet;  	if (!*fmt) { -		printk(TPACPI_ERR "acpi_evalf() called with empty format\n"); +		pr_err("acpi_evalf() called with empty format\n");  		return 0;  	} @@ -588,7 +572,7 @@ static int acpi_evalf(acpi_handle handle,  			break;  			/* add more types as needed */  		default: -			printk(TPACPI_ERR "acpi_evalf() called " +			pr_err("acpi_evalf() called "  			       "with invalid format character '%c'\n", c);  			va_end(ap);  			return 0; @@ -617,13 +601,13 @@ static int acpi_evalf(acpi_handle handle,  		break;  		/* add more types as needed */  	default: -		printk(TPACPI_ERR "acpi_evalf() called " +		pr_err("acpi_evalf() called "  		       "with invalid format character '%c'\n", res_type);  		return 0;  	}  	if (!success && !quiet) -		printk(TPACPI_ERR "acpi_evalf(%s, %s, ...) failed: %s\n", +		pr_err("acpi_evalf(%s, %s, ...) failed: %s\n",  		       method, fmt0, acpi_format_exception(status));  	return success; @@ -767,8 +751,7 @@ static int __init setup_acpi_notify(struct ibm_struct *ibm)  	rc = acpi_bus_get_device(*ibm->acpi->handle, &ibm->acpi->device);  	if (rc < 0) { -		printk(TPACPI_ERR "acpi_bus_get_device(%s) failed: %d\n", -			ibm->name, rc); +		pr_err("acpi_bus_get_device(%s) failed: %d\n", ibm->name, rc);  		return -ENODEV;  	} @@ -781,12 +764,10 @@ static int __init setup_acpi_notify(struct ibm_struct *ibm)  			ibm->acpi->type, dispatch_acpi_notify, ibm);  	if (ACPI_FAILURE(status)) {  		if (status == AE_ALREADY_EXISTS) { -			printk(TPACPI_NOTICE -			       "another device driver is already " -			       "handling %s events\n", ibm->name); +			pr_notice("another device driver is already " +				  "handling %s events\n", ibm->name);  		} else { -			printk(TPACPI_ERR -			       "acpi_install_notify_handler(%s) failed: %s\n", +			pr_err("acpi_install_notify_handler(%s) failed: %s\n",  			       ibm->name, acpi_format_exception(status));  		}  		return -ENODEV; @@ -811,8 +792,7 @@ static int __init register_tpacpi_subdriver(struct ibm_struct *ibm)  	ibm->acpi->driver = kzalloc(sizeof(struct acpi_driver), GFP_KERNEL);  	if (!ibm->acpi->driver) { -		printk(TPACPI_ERR -		       "failed to allocate memory for ibm->acpi->driver\n"); +		pr_err("failed to allocate memory for ibm->acpi->driver\n");  		return -ENOMEM;  	} @@ -823,7 +803,7 @@ static int __init register_tpacpi_subdriver(struct ibm_struct *ibm)  	rc = acpi_bus_register_driver(ibm->acpi->driver);  	if (rc < 0) { -		printk(TPACPI_ERR "acpi_bus_register_driver(%s) failed: %d\n", +		pr_err("acpi_bus_register_driver(%s) failed: %d\n",  		       ibm->name, rc);  		kfree(ibm->acpi->driver);  		ibm->acpi->driver = NULL; @@ -1081,15 +1061,14 @@ static int parse_strtoul(const char *buf,  static void tpacpi_disable_brightness_delay(void)  {  	if (acpi_evalf(hkey_handle, NULL, "PWMS", "qvd", 0)) -		printk(TPACPI_NOTICE -			"ACPI backlight control delay disabled\n"); +		pr_notice("ACPI backlight control delay disabled\n");  }  static void printk_deprecated_attribute(const char * const what,  					const char * const details)  {  	tpacpi_log_usertask("deprecated sysfs attribute"); -	printk(TPACPI_WARN "WARNING: sysfs attribute %s is deprecated and " +	pr_warn("WARNING: sysfs attribute %s is deprecated and "  		"will be removed. %s\n",  		what, details);  } @@ -1264,8 +1243,7 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,  						&tpacpi_rfk_rfkill_ops,  						atp_rfk);  	if (!atp_rfk || !atp_rfk->rfkill) { -		printk(TPACPI_ERR -			"failed to allocate memory for rfkill class\n"); +		pr_err("failed to allocate memory for rfkill class\n");  		kfree(atp_rfk);  		return -ENOMEM;  	} @@ -1275,9 +1253,8 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,  	sw_status = (tp_rfkops->get_status)();  	if (sw_status < 0) { -		printk(TPACPI_ERR -			"failed to read initial state for %s, error %d\n", -			name, sw_status); +		pr_err("failed to read initial state for %s, error %d\n", +		       name, sw_status);  	} else {  		sw_state = (sw_status == TPACPI_RFK_RADIO_OFF);  		if (set_default) { @@ -1291,9 +1268,7 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,  	res = rfkill_register(atp_rfk->rfkill);  	if (res < 0) { -		printk(TPACPI_ERR -			"failed to register %s rfkill switch: %d\n", -			name, res); +		pr_err("failed to register %s rfkill switch: %d\n", name, res);  		rfkill_destroy(atp_rfk->rfkill);  		kfree(atp_rfk);  		return res; @@ -1301,7 +1276,7 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,  	tpacpi_rfkill_switches[id] = atp_rfk; -	printk(TPACPI_INFO "rfkill switch %s: radio is %sblocked\n", +	pr_info("rfkill switch %s: radio is %sblocked\n",  		name, (sw_state || hw_state) ? "" : "un");  	return 0;  } @@ -1825,10 +1800,8 @@ static void __init tpacpi_check_outdated_fw(void)  		 * broken, or really stable to begin with, so it is  		 * best if the user upgrades the firmware anyway.  		 */ -		printk(TPACPI_WARN -			"WARNING: Outdated ThinkPad BIOS/EC firmware\n"); -		printk(TPACPI_WARN -			"WARNING: This firmware may be missing critical bug " +		pr_warn("WARNING: Outdated ThinkPad BIOS/EC firmware\n"); +		pr_warn("WARNING: This firmware may be missing critical bug "  			"fixes and/or important features\n");  	}  } @@ -2117,9 +2090,7 @@ void static hotkey_mask_warn_incomplete_mask(void)  		(hotkey_all_mask | TPACPI_HKEY_NVRAM_KNOWN_MASK);  	if (wantedmask) -		printk(TPACPI_NOTICE -			"required events 0x%08x not enabled!\n", -			wantedmask); +		pr_notice("required events 0x%08x not enabled!\n", wantedmask);  }  /* @@ -2157,10 +2128,9 @@ static int hotkey_mask_set(u32 mask)  	 * a given event.  	 */  	if (!hotkey_mask_get() && !rc && (fwmask & ~hotkey_acpi_mask)) { -		printk(TPACPI_NOTICE -		       "asked for hotkey mask 0x%08x, but " -		       "firmware forced it to 0x%08x\n", -		       fwmask, hotkey_acpi_mask); +		pr_notice("asked for hotkey mask 0x%08x, but " +			  "firmware forced it to 0x%08x\n", +			  fwmask, hotkey_acpi_mask);  	}  	if (tpacpi_lifecycle != TPACPI_LIFE_EXITING) @@ -2184,13 +2154,11 @@ static int hotkey_user_mask_set(const u32 mask)  	    (mask == 0xffff || mask == 0xffffff ||  	     mask == 0xffffffff)) {  		tp_warned.hotkey_mask_ff = 1; -		printk(TPACPI_NOTICE -		       "setting the hotkey mask to 0x%08x is likely " -		       "not the best way to go about it\n", mask); -		printk(TPACPI_NOTICE -		       "please consider using the driver defaults, " -		       "and refer to up-to-date thinkpad-acpi " -		       "documentation\n"); +		pr_notice("setting the hotkey mask to 0x%08x is likely " +			  "not the best way to go about it\n", mask); +		pr_notice("please consider using the driver defaults, " +			  "and refer to up-to-date thinkpad-acpi " +			  "documentation\n");  	}  	/* Try to enable what the user asked for, plus whatever we need. @@ -2574,8 +2542,7 @@ static void hotkey_poll_setup(const bool may_warn)  					NULL, TPACPI_NVRAM_KTHREAD_NAME);  			if (IS_ERR(tpacpi_hotkey_task)) {  				tpacpi_hotkey_task = NULL; -				printk(TPACPI_ERR -				       "could not create kernel thread " +				pr_err("could not create kernel thread "  				       "for hotkey polling\n");  			}  		} @@ -2583,11 +2550,10 @@ static void hotkey_poll_setup(const bool may_warn)  		hotkey_poll_stop_sync();  		if (may_warn && (poll_driver_mask || poll_user_mask) &&  		    hotkey_poll_freq == 0) { -			printk(TPACPI_NOTICE -				"hot keys 0x%08x and/or events 0x%08x " -				"require polling, which is currently " -				"disabled\n", -				poll_user_mask, poll_driver_mask); +			pr_notice("hot keys 0x%08x and/or events 0x%08x " +				  "require polling, which is currently " +				  "disabled\n", +				  poll_user_mask, poll_driver_mask);  		}  	}  } @@ -2811,13 +2777,13 @@ static ssize_t hotkey_source_mask_store(struct device *dev,  	mutex_unlock(&hotkey_mutex);  	if (rc < 0) -		printk(TPACPI_ERR "hotkey_source_mask: failed to update the" -			"firmware event mask!\n"); +		pr_err("hotkey_source_mask: " +		       "failed to update the firmware event mask!\n");  	if (r_ev) -		printk(TPACPI_NOTICE "hotkey_source_mask: " -			"some important events were disabled: " -			"0x%04x\n", r_ev); +		pr_notice("hotkey_source_mask: " +			  "some important events were disabled: 0x%04x\n", +			  r_ev);  	tpacpi_disclose_usertask("hotkey_source_mask", "set to 0x%08lx\n", t); @@ -3048,8 +3014,7 @@ static void hotkey_exit(void)  	if (((tp_features.hotkey_mask &&  	      hotkey_mask_set(hotkey_orig_mask)) |  	     hotkey_status_set(false)) != 0) -		printk(TPACPI_ERR -		       "failed to restore hot key mask " +		pr_err("failed to restore hot key mask "  		       "to BIOS defaults\n");  } @@ -3288,10 +3253,9 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  	   for HKEY interface version 0x100 */  	if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) {  		if ((hkeyv >> 8) != 1) { -			printk(TPACPI_ERR "unknown version of the " -			       "HKEY interface: 0x%x\n", hkeyv); -			printk(TPACPI_ERR "please report this to %s\n", -			       TPACPI_MAIL); +			pr_err("unknown version of the HKEY interface: 0x%x\n", +			       hkeyv); +			pr_err("please report this to %s\n", TPACPI_MAIL);  		} else {  			/*  			 * MHKV 0x100 in A31, R40, R40e, @@ -3304,8 +3268,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  			/* Paranoia check AND init hotkey_all_mask */  			if (!acpi_evalf(hkey_handle, &hotkey_all_mask,  					"MHKA", "qd")) { -				printk(TPACPI_ERR -				       "missing MHKA handler, " +				pr_err("missing MHKA handler, "  				       "please report this to %s\n",  				       TPACPI_MAIL);  				/* Fallback: pre-init for FN+F3,F4,F12 */ @@ -3343,16 +3306,14 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  	if (dbg_wlswemul) {  		tp_features.hotkey_wlsw = 1;  		radiosw_state = !!tpacpi_wlsw_emulstate; -		printk(TPACPI_INFO -			"radio switch emulation enabled\n"); +		pr_info("radio switch emulation enabled\n");  	} else  #endif  	/* Not all thinkpads have a hardware radio switch */  	if (acpi_evalf(hkey_handle, &status, "WLSW", "qd")) {  		tp_features.hotkey_wlsw = 1;  		radiosw_state = !!status; -		printk(TPACPI_INFO -			"radio switch found; radios are %s\n", +		pr_info("radio switch found; radios are %s\n",  			enabled(status, 0));  	}  	if (tp_features.hotkey_wlsw) @@ -3363,8 +3324,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  	if (!res && acpi_evalf(hkey_handle, &status, "MHKG", "qd")) {  		tp_features.hotkey_tablet = 1;  		tabletsw_state = !!(status & TP_HOTKEY_TABLET_MASK); -		printk(TPACPI_INFO -			"possible tablet mode switch found; " +		pr_info("possible tablet mode switch found; "  			"ThinkPad in %s mode\n",  			(tabletsw_state) ? "tablet" : "laptop");  		res = add_to_attr_set(hotkey_dev_attributes, @@ -3382,8 +3342,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  	hotkey_keycode_map = kmalloc(TPACPI_HOTKEY_MAP_SIZE,  					GFP_KERNEL);  	if (!hotkey_keycode_map) { -		printk(TPACPI_ERR -			"failed to allocate memory for key map\n"); +		pr_err("failed to allocate memory for key map\n");  		res = -ENOMEM;  		goto err_exit;  	} @@ -3426,13 +3385,11 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)  	 * userspace. tpacpi_detect_brightness_capabilities() must have  	 * been called before this point  */  	if (tp_features.bright_acpimode && acpi_video_backlight_support()) { -		printk(TPACPI_INFO -		       "This ThinkPad has standard ACPI backlight " -		       "brightness control, supported by the ACPI " -		       "video driver\n"); -		printk(TPACPI_NOTICE -		       "Disabling thinkpad-acpi brightness events " -		       "by default...\n"); +		pr_info("This ThinkPad has standard ACPI backlight " +			"brightness control, supported by the ACPI " +			"video driver\n"); +		pr_notice("Disabling thinkpad-acpi brightness events " +			  "by default...\n");  		/* Disable brightness up/down on Lenovo thinkpads when  		 * ACPI is handling them, otherwise it is plain impossible @@ -3539,8 +3496,7 @@ static bool hotkey_notify_wakeup(const u32 hkey,  	case TP_HKEY_EV_WKUP_S3_BATLOW: /* Battery on critical low level/S3 */  	case TP_HKEY_EV_WKUP_S4_BATLOW: /* Battery on critical low level/S4 */ -		printk(TPACPI_ALERT -			"EMERGENCY WAKEUP: battery almost empty\n"); +		pr_alert("EMERGENCY WAKEUP: battery almost empty\n");  		/* how to auto-heal: */  		/* 2313: woke up from S3, go to S4/S5 */  		/* 2413: woke up from S4, go to S5 */ @@ -3551,9 +3507,7 @@ static bool hotkey_notify_wakeup(const u32 hkey,  	}  	if (hotkey_wakeup_reason != TP_ACPI_WAKEUP_NONE) { -		printk(TPACPI_INFO -		       "woke up due to a hot-unplug " -		       "request...\n"); +		pr_info("woke up due to a hot-unplug request...\n");  		hotkey_wakeup_reason_notify_change();  	}  	return true; @@ -3605,37 +3559,31 @@ static bool hotkey_notify_thermal(const u32 hkey,  	switch (hkey) {  	case TP_HKEY_EV_THM_TABLE_CHANGED: -		printk(TPACPI_INFO -			"EC reports that Thermal Table has changed\n"); +		pr_info("EC reports that Thermal Table has changed\n");  		/* recommended action: do nothing, we don't have  		 * Lenovo ATM information */  		return true;  	case TP_HKEY_EV_ALARM_BAT_HOT: -		printk(TPACPI_CRIT -			"THERMAL ALARM: battery is too hot!\n"); +		pr_crit("THERMAL ALARM: battery is too hot!\n");  		/* recommended action: warn user through gui */  		break;  	case TP_HKEY_EV_ALARM_BAT_XHOT: -		printk(TPACPI_ALERT -			"THERMAL EMERGENCY: battery is extremely hot!\n"); +		pr_alert("THERMAL EMERGENCY: battery is extremely hot!\n");  		/* recommended action: immediate sleep/hibernate */  		break;  	case TP_HKEY_EV_ALARM_SENSOR_HOT: -		printk(TPACPI_CRIT -			"THERMAL ALARM: " +		pr_crit("THERMAL ALARM: "  			"a sensor reports something is too hot!\n");  		/* recommended action: warn user through gui, that */  		/* some internal component is too hot */  		break;  	case TP_HKEY_EV_ALARM_SENSOR_XHOT: -		printk(TPACPI_ALERT -			"THERMAL EMERGENCY: " -			"a sensor reports something is extremely hot!\n"); +		pr_alert("THERMAL EMERGENCY: " +			 "a sensor reports something is extremely hot!\n");  		/* recommended action: immediate sleep/hibernate */  		break;  	default: -		printk(TPACPI_ALERT -			 "THERMAL ALERT: unknown thermal alarm received\n"); +		pr_alert("THERMAL ALERT: unknown thermal alarm received\n");  		known = false;  	} @@ -3652,8 +3600,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)  	bool known_ev;  	if (event != 0x80) { -		printk(TPACPI_ERR -		       "unknown HKEY notification event %d\n", event); +		pr_err("unknown HKEY notification event %d\n", event);  		/* forward it to userspace, maybe it knows how to handle it */  		acpi_bus_generate_netlink_event(  					ibm->acpi->device->pnp.device_class, @@ -3664,7 +3611,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)  	while (1) {  		if (!acpi_evalf(hkey_handle, &hkey, "MHKP", "d")) { -			printk(TPACPI_ERR "failed to retrieve HKEY event\n"); +			pr_err("failed to retrieve HKEY event\n");  			return;  		} @@ -3692,8 +3639,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)  			switch (hkey) {  			case TP_HKEY_EV_BAYEJ_ACK:  				hotkey_autosleep_ack = 1; -				printk(TPACPI_INFO -				       "bay ejected\n"); +				pr_info("bay ejected\n");  				hotkey_wakeup_hotunplug_complete_notify_change();  				known_ev = true;  				break; @@ -3709,8 +3655,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)  			/* 0x4000-0x4FFF: dock-related wakeups */  			if (hkey == TP_HKEY_EV_UNDOCK_ACK) {  				hotkey_autosleep_ack = 1; -				printk(TPACPI_INFO -				       "undocked\n"); +				pr_info("undocked\n");  				hotkey_wakeup_hotunplug_complete_notify_change();  				known_ev = true;  			} else { @@ -3741,11 +3686,9 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)  			known_ev = false;  		}  		if (!known_ev) { -			printk(TPACPI_NOTICE -			       "unhandled HKEY event 0x%04x\n", hkey); -			printk(TPACPI_NOTICE -			       "please report the conditions when this " -			       "event happened to %s\n", TPACPI_MAIL); +			pr_notice("unhandled HKEY event 0x%04x\n", hkey); +			pr_notice("please report the conditions when this " +				  "event happened to %s\n", TPACPI_MAIL);  		}  		/* Legacy events */ @@ -3778,8 +3721,7 @@ static void hotkey_resume(void)  	if (hotkey_status_set(true) < 0 ||  	    hotkey_mask_set(hotkey_acpi_mask) < 0) -		printk(TPACPI_ERR -		       "error while attempting to reset the event " +		pr_err("error while attempting to reset the event "  		       "firmware interface\n");  	tpacpi_send_radiosw_update(); @@ -3824,14 +3766,12 @@ static void hotkey_enabledisable_warn(bool enable)  {  	tpacpi_log_usertask("procfs hotkey enable/disable");  	if (!WARN((tpacpi_lifecycle == TPACPI_LIFE_RUNNING || !enable), -			TPACPI_WARN -			"hotkey enable/disable functionality has been " -			"removed from the driver.  Hotkeys are always " -			"enabled\n")) -		printk(TPACPI_ERR -			"Please remove the hotkey=enable module " -			"parameter, it is deprecated.  Hotkeys are always " -			"enabled\n"); +		  pr_fmt("hotkey enable/disable functionality has been " +			 "removed from the driver.  " +			 "Hotkeys are always enabled.\n"))) +		pr_err("Please remove the hotkey=enable module " +		       "parameter, it is deprecated.  " +		       "Hotkeys are always enabled.\n");  }  static int hotkey_write(char *buf) @@ -4011,8 +3951,7 @@ static void bluetooth_shutdown(void)  	/* Order firmware to save current state to NVRAM */  	if (!acpi_evalf(NULL, NULL, "\\BLTH", "vd",  			TP_ACPI_BLTH_SAVE_STATE)) -		printk(TPACPI_NOTICE -			"failed to save bluetooth state to NVRAM\n"); +		pr_notice("failed to save bluetooth state to NVRAM\n");  	else  		vdbg_printk(TPACPI_DBG_RFKILL,  			"bluestooth state saved to NVRAM\n"); @@ -4051,8 +3990,7 @@ static int __init bluetooth_init(struct ibm_init_struct *iibm)  #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES  	if (dbg_bluetoothemul) {  		tp_features.bluetooth = 1; -		printk(TPACPI_INFO -			"bluetooth switch emulation enabled\n"); +		pr_info("bluetooth switch emulation enabled\n");  	} else  #endif  	if (tp_features.bluetooth && @@ -4203,8 +4141,7 @@ static void wan_shutdown(void)  	/* Order firmware to save current state to NVRAM */  	if (!acpi_evalf(NULL, NULL, "\\WGSV", "vd",  			TP_ACPI_WGSV_SAVE_STATE)) -		printk(TPACPI_NOTICE -			"failed to save WWAN state to NVRAM\n"); +		pr_notice("failed to save WWAN state to NVRAM\n");  	else  		vdbg_printk(TPACPI_DBG_RFKILL,  			"WWAN state saved to NVRAM\n"); @@ -4241,8 +4178,7 @@ static int __init wan_init(struct ibm_init_struct *iibm)  #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES  	if (dbg_wwanemul) {  		tp_features.wan = 1; -		printk(TPACPI_INFO -			"wwan switch emulation enabled\n"); +		pr_info("wwan switch emulation enabled\n");  	} else  #endif  	if (tp_features.wan && @@ -4382,8 +4318,7 @@ static int __init uwb_init(struct ibm_init_struct *iibm)  #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES  	if (dbg_uwbemul) {  		tp_features.uwb = 1; -		printk(TPACPI_INFO -			"uwb switch emulation enabled\n"); +		pr_info("uwb switch emulation enabled\n");  	} else  #endif  	if (tp_features.uwb && @@ -4444,6 +4379,15 @@ static int video_orig_autosw;  static int video_autosw_get(void);  static int video_autosw_set(int enable); +TPACPI_HANDLE(vid, root, +	      "\\_SB.PCI.AGP.VGA",	/* 570 */ +	      "\\_SB.PCI0.AGP0.VID0",	/* 600e/x, 770x */ +	      "\\_SB.PCI0.VID0",	/* 770e */ +	      "\\_SB.PCI0.VID",		/* A21e, G4x, R50e, X30, X40 */ +	      "\\_SB.PCI0.AGP.VGA",	/* X100e and a few others */ +	      "\\_SB.PCI0.AGP.VID",	/* all others */ +	);				/* R30, R31 */ +  TPACPI_HANDLE(vid2, root, "\\_SB.PCI0.AGPB.VID");	/* G41 */  static int __init video_init(struct ibm_init_struct *iibm) @@ -4487,7 +4431,7 @@ static void video_exit(void)  	dbg_printk(TPACPI_DBG_EXIT,  		   "restoring original video autoswitch mode\n");  	if (video_autosw_set(video_orig_autosw)) -		printk(TPACPI_ERR "error while trying to restore original " +		pr_err("error while trying to restore original "  			"video autoswitch mode\n");  } @@ -4560,8 +4504,7 @@ static int video_outputsw_set(int status)  		res = acpi_evalf(vid_handle, NULL,  				 "ASWT", "vdd", status * 0x100, 0);  		if (!autosw && video_autosw_set(autosw)) { -			printk(TPACPI_ERR -			       "video auto-switch left enabled due to error\n"); +			pr_err("video auto-switch left enabled due to error\n");  			return -EIO;  		}  		break; @@ -4630,8 +4573,7 @@ static int video_outputsw_cycle(void)  		return -ENOSYS;  	}  	if (!autosw && video_autosw_set(autosw)) { -		printk(TPACPI_ERR -		       "video auto-switch left enabled due to error\n"); +		pr_err("video auto-switch left enabled due to error\n");  		return -EIO;  	} @@ -5348,7 +5290,7 @@ static int __init led_init(struct ibm_init_struct *iibm)  	tpacpi_leds = kzalloc(sizeof(*tpacpi_leds) * TPACPI_LED_NUMLEDS,  			      GFP_KERNEL);  	if (!tpacpi_leds) { -		printk(TPACPI_ERR "Out of memory for LED data\n"); +		pr_err("Out of memory for LED data\n");  		return -ENOMEM;  	} @@ -5367,9 +5309,8 @@ static int __init led_init(struct ibm_init_struct *iibm)  	}  #ifdef CONFIG_THINKPAD_ACPI_UNSAFE_LEDS -	printk(TPACPI_NOTICE -		"warning: userspace override of important " -		"firmware LEDs is enabled\n"); +	pr_notice("warning: userspace override of important " +		  "firmware LEDs is enabled\n");  #endif  	return 0;  } @@ -5639,17 +5580,16 @@ static void thermal_dump_all_sensors(void)  	if (n <= 0)  		return; -	printk(TPACPI_NOTICE -		"temperatures (Celsius):"); +	pr_notice("temperatures (Celsius):");  	for (i = 0; i < n; i++) {  		if (t.temp[i] != TPACPI_THERMAL_SENSOR_NA) -			printk(KERN_CONT " %d", (int)(t.temp[i] / 1000)); +			pr_cont(" %d", (int)(t.temp[i] / 1000));  		else -			printk(KERN_CONT " N/A"); +			pr_cont(" N/A");  	} -	printk(KERN_CONT "\n"); +	pr_cont("\n");  }  /* sysfs temp##_input -------------------------------------------------- */ @@ -5769,14 +5709,12 @@ static int __init thermal_init(struct ibm_init_struct *iibm)  		if (ta1 == 0) {  			/* This is sheer paranoia, but we handle it anyway */  			if (acpi_tmp7) { -				printk(TPACPI_ERR -				       "ThinkPad ACPI EC access misbehaving, " +				pr_err("ThinkPad ACPI EC access misbehaving, "  				       "falling back to ACPI TMPx access "  				       "mode\n");  				thermal_read_mode = TPACPI_THERMAL_ACPI_TMP07;  			} else { -				printk(TPACPI_ERR -				       "ThinkPad ACPI EC access misbehaving, " +				pr_err("ThinkPad ACPI EC access misbehaving, "  				       "disabling thermal sensors access\n");  				thermal_read_mode = TPACPI_THERMAL_NONE;  			} @@ -6129,8 +6067,8 @@ static int __init tpacpi_query_bcl_levels(acpi_handle handle)  	if (ACPI_SUCCESS(acpi_evaluate_object(handle, "_BCL", NULL, &buffer))) {  		obj = (union acpi_object *)buffer.pointer;  		if (!obj || (obj->type != ACPI_TYPE_PACKAGE)) { -			printk(TPACPI_ERR "Unknown _BCL data, " -			       "please report this to %s\n", TPACPI_MAIL); +			pr_err("Unknown _BCL data, please report this to %s\n", +			       TPACPI_MAIL);  			rc = 0;  		} else {  			rc = obj->package.count; @@ -6214,18 +6152,15 @@ static void __init tpacpi_detect_brightness_capabilities(void)  	switch (b) {  	case 16:  		bright_maxlvl = 15; -		printk(TPACPI_INFO -		       "detected a 16-level brightness capable ThinkPad\n"); +		pr_info("detected a 16-level brightness capable ThinkPad\n");  		break;  	case 8:  	case 0:  		bright_maxlvl = 7; -		printk(TPACPI_INFO -		       "detected a 8-level brightness capable ThinkPad\n"); +		pr_info("detected a 8-level brightness capable ThinkPad\n");  		break;  	default: -		printk(TPACPI_ERR -		       "Unsupported brightness interface, " +		pr_err("Unsupported brightness interface, "  		       "please contact %s\n", TPACPI_MAIL);  		tp_features.bright_unkfw = 1;  		bright_maxlvl = b - 1; @@ -6260,22 +6195,19 @@ static int __init brightness_init(struct ibm_init_struct *iibm)  	if (acpi_video_backlight_support()) {  		if (brightness_enable > 1) { -			printk(TPACPI_INFO -			       "Standard ACPI backlight interface " -			       "available, not loading native one.\n"); +			pr_info("Standard ACPI backlight interface " +				"available, not loading native one\n");  			return 1;  		} else if (brightness_enable == 1) { -			printk(TPACPI_WARN -				"Cannot enable backlight brightness support, " +			pr_warn("Cannot enable backlight brightness support, "  				"ACPI is already handling it.  Refer to the " -				"acpi_backlight kernel parameter\n"); +				"acpi_backlight kernel parameter.\n");  			return 1;  		}  	} else if (tp_features.bright_acpimode && brightness_enable > 1) { -		printk(TPACPI_NOTICE -			"Standard ACPI backlight interface not " -			"available, thinkpad_acpi native " -			"brightness control enabled\n"); +		pr_notice("Standard ACPI backlight interface not " +			  "available, thinkpad_acpi native " +			  "brightness control enabled\n");  	}  	/* @@ -6319,19 +6251,17 @@ static int __init brightness_init(struct ibm_init_struct *iibm)  	if (IS_ERR(ibm_backlight_device)) {  		int rc = PTR_ERR(ibm_backlight_device);  		ibm_backlight_device = NULL; -		printk(TPACPI_ERR "Could not register backlight device\n"); +		pr_err("Could not register backlight device\n");  		return rc;  	}  	vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_BRGHT,  			"brightness is supported\n");  	if (quirks & TPACPI_BRGHT_Q_ASK) { -		printk(TPACPI_NOTICE -			"brightness: will use unverified default: " -			"brightness_mode=%d\n", brightness_mode); -		printk(TPACPI_NOTICE -			"brightness: please report to %s whether it works well " -			"or not on your ThinkPad\n", TPACPI_MAIL); +		pr_notice("brightness: will use unverified default: " +			  "brightness_mode=%d\n", brightness_mode); +		pr_notice("brightness: please report to %s whether it works well " +			  "or not on your ThinkPad\n", TPACPI_MAIL);  	}  	/* Added by mistake in early 2007.  Probably useless, but it could @@ -6804,8 +6734,7 @@ static int __init volume_create_alsa_mixer(void)  	rc = snd_card_create(alsa_index, alsa_id, THIS_MODULE,  			    sizeof(struct tpacpi_alsa_data), &card);  	if (rc < 0 || !card) { -		printk(TPACPI_ERR -			"Failed to create ALSA card structures: %d\n", rc); +		pr_err("Failed to create ALSA card structures: %d\n", rc);  		return 1;  	} @@ -6839,9 +6768,8 @@ static int __init volume_create_alsa_mixer(void)  		ctl_vol = snd_ctl_new1(&volume_alsa_control_vol, NULL);  		rc = snd_ctl_add(card, ctl_vol);  		if (rc < 0) { -			printk(TPACPI_ERR -				"Failed to create ALSA volume control: %d\n", -				rc); +			pr_err("Failed to create ALSA volume control: %d\n", +			       rc);  			goto err_exit;  		}  		data->ctl_vol_id = &ctl_vol->id; @@ -6850,8 +6778,7 @@ static int __init volume_create_alsa_mixer(void)  	ctl_mute = snd_ctl_new1(&volume_alsa_control_mute, NULL);  	rc = snd_ctl_add(card, ctl_mute);  	if (rc < 0) { -		printk(TPACPI_ERR "Failed to create ALSA mute control: %d\n", -			rc); +		pr_err("Failed to create ALSA mute control: %d\n", rc);  		goto err_exit;  	}  	data->ctl_mute_id = &ctl_mute->id; @@ -6859,7 +6786,7 @@ static int __init volume_create_alsa_mixer(void)  	snd_card_set_dev(card, &tpacpi_pdev->dev);  	rc = snd_card_register(card);  	if (rc < 0) { -		printk(TPACPI_ERR "Failed to register ALSA card: %d\n", rc); +		pr_err("Failed to register ALSA card: %d\n", rc);  		goto err_exit;  	} @@ -6915,9 +6842,8 @@ static int __init volume_init(struct ibm_init_struct *iibm)  		return -EINVAL;  	if (volume_mode == TPACPI_VOL_MODE_UCMS_STEP) { -		printk(TPACPI_ERR -			"UCMS step volume mode not implemented, " -			"please contact %s\n", TPACPI_MAIL); +		pr_err("UCMS step volume mode not implemented, " +		       "please contact %s\n", TPACPI_MAIL);  		return 1;  	} @@ -6981,13 +6907,11 @@ static int __init volume_init(struct ibm_init_struct *iibm)  	rc = volume_create_alsa_mixer();  	if (rc) { -		printk(TPACPI_ERR -			"Could not create the ALSA mixer interface\n"); +		pr_err("Could not create the ALSA mixer interface\n");  		return rc;  	} -	printk(TPACPI_INFO -		"Console audio control enabled, mode: %s\n", +	pr_info("Console audio control enabled, mode: %s\n",  		(volume_control_allowed) ?  			"override (read/write)" :  			"monitor (read only)"); @@ -7049,12 +6973,10 @@ static int volume_write(char *buf)  	if (!volume_control_allowed && tpacpi_lifecycle != TPACPI_LIFE_INIT) {  		if (unlikely(!tp_warned.volume_ctrl_forbidden)) {  			tp_warned.volume_ctrl_forbidden = 1; -			printk(TPACPI_NOTICE -				"Console audio control in monitor mode, " -				"changes are not allowed.\n"); -			printk(TPACPI_NOTICE -				"Use the volume_control=1 module parameter " -				"to enable volume control\n"); +			pr_notice("Console audio control in monitor mode, " +				  "changes are not allowed\n"); +			pr_notice("Use the volume_control=1 module parameter " +				  "to enable volume control\n");  		}  		return -EPERM;  	} @@ -7129,8 +7051,7 @@ static void inline volume_alsa_notify_change(void)  static int __init volume_init(struct ibm_init_struct *iibm)  { -	printk(TPACPI_INFO -		"volume: disabled as there is no ALSA support in this kernel\n"); +	pr_info("volume: disabled as there is no ALSA support in this kernel\n");  	return 1;  } @@ -7337,9 +7258,8 @@ TPACPI_HANDLE(sfan, ec, "SFAN",	/* 570 */  static void fan_quirk1_setup(void)  {  	if (fan_control_initial_status == 0x07) { -		printk(TPACPI_NOTICE -		       "fan_init: initial fan status is unknown, " -		       "assuming it is in auto mode\n"); +		pr_notice("fan_init: initial fan status is unknown, " +			  "assuming it is in auto mode\n");  		tp_features.fan_ctrl_status_undef = 1;  	}  } @@ -7726,8 +7646,7 @@ static void fan_watchdog_reset(void)  		if (!queue_delayed_work(tpacpi_wq, &fan_watchdog_task,  				msecs_to_jiffies(fan_watchdog_maxinterval  						 * 1000))) { -			printk(TPACPI_ERR -			       "failed to queue the fan watchdog, " +			pr_err("failed to queue the fan watchdog, "  			       "watchdog will not trigger\n");  		}  	} else @@ -7741,11 +7660,11 @@ static void fan_watchdog_fire(struct work_struct *ignored)  	if (tpacpi_lifecycle != TPACPI_LIFE_RUNNING)  		return; -	printk(TPACPI_NOTICE "fan watchdog: enabling fan\n"); +	pr_notice("fan watchdog: enabling fan\n");  	rc = fan_set_enable();  	if (rc < 0) { -		printk(TPACPI_ERR "fan watchdog: error %d while enabling fan, " -			"will try again later...\n", -rc); +		pr_err("fan watchdog: error %d while enabling fan, " +		       "will try again later...\n", -rc);  		/* reschedule for later */  		fan_watchdog_reset();  	} @@ -8049,8 +7968,7 @@ static int __init fan_init(struct ibm_init_struct *iibm)  					"secondary fan support enabled\n");  			}  		} else { -			printk(TPACPI_ERR -			       "ThinkPad ACPI EC access misbehaving, " +			pr_err("ThinkPad ACPI EC access misbehaving, "  			       "fan status and control unavailable\n");  			return 1;  		} @@ -8150,9 +8068,8 @@ static void fan_suspend(pm_message_t state)  	fan_control_resume_level = 0;  	rc = fan_get_status_safe(&fan_control_resume_level);  	if (rc < 0) -		printk(TPACPI_NOTICE -			"failed to read fan level for later " -			"restore during resume: %d\n", rc); +		pr_notice("failed to read fan level for later " +			  "restore during resume: %d\n", rc);  	/* if it is undefined, don't attempt to restore it.  	 * KEEP THIS LAST */ @@ -8207,13 +8124,11 @@ static void fan_resume(void)  		return;  	}  	if (do_set) { -		printk(TPACPI_NOTICE -			"restoring fan level to 0x%02x\n", -			fan_control_resume_level); +		pr_notice("restoring fan level to 0x%02x\n", +			  fan_control_resume_level);  		rc = fan_set_level_safe(fan_control_resume_level);  		if (rc < 0) -			printk(TPACPI_NOTICE -				"failed to restore fan level: %d\n", rc); +			pr_notice("failed to restore fan level: %d\n", rc);  	}  } @@ -8305,8 +8220,8 @@ static int fan_write_cmd_level(const char *cmd, int *rc)  	*rc = fan_set_level_safe(level);  	if (*rc == -ENXIO) -		printk(TPACPI_ERR "level command accepted for unsupported " -		       "access mode %d", fan_control_access_mode); +		pr_err("level command accepted for unsupported access mode %d\n", +		       fan_control_access_mode);  	else if (!*rc)  		tpacpi_disclose_usertask("procfs fan",  			"set level to %d\n", level); @@ -8321,8 +8236,8 @@ static int fan_write_cmd_enable(const char *cmd, int *rc)  	*rc = fan_set_enable();  	if (*rc == -ENXIO) -		printk(TPACPI_ERR "enable command accepted for unsupported " -		       "access mode %d", fan_control_access_mode); +		pr_err("enable command accepted for unsupported access mode %d\n", +		       fan_control_access_mode);  	else if (!*rc)  		tpacpi_disclose_usertask("procfs fan", "enable\n"); @@ -8336,8 +8251,8 @@ static int fan_write_cmd_disable(const char *cmd, int *rc)  	*rc = fan_set_disable();  	if (*rc == -ENXIO) -		printk(TPACPI_ERR "disable command accepted for unsupported " -		       "access mode %d", fan_control_access_mode); +		pr_err("disable command accepted for unsupported access mode %d\n", +		       fan_control_access_mode);  	else if (!*rc)  		tpacpi_disclose_usertask("procfs fan", "disable\n"); @@ -8356,8 +8271,8 @@ static int fan_write_cmd_speed(const char *cmd, int *rc)  	*rc = fan_set_speed(speed);  	if (*rc == -ENXIO) -		printk(TPACPI_ERR "speed command accepted for unsupported " -		       "access mode %d", fan_control_access_mode); +		pr_err("speed command accepted for unsupported access mode %d\n", +		       fan_control_access_mode);  	else if (!*rc)  		tpacpi_disclose_usertask("procfs fan",  			"set speed to %d\n", speed); @@ -8560,8 +8475,8 @@ static int __init ibm_init(struct ibm_init_struct *iibm)  		if (ibm->acpi->notify) {  			ret = setup_acpi_notify(ibm);  			if (ret == -ENODEV) { -				printk(TPACPI_NOTICE "disabling subdriver %s\n", -					ibm->name); +				pr_notice("disabling subdriver %s\n", +					  ibm->name);  				ret = 0;  				goto err_out;  			} @@ -8583,8 +8498,7 @@ static int __init ibm_init(struct ibm_init_struct *iibm)  		entry = proc_create_data(ibm->name, mode, proc_dir,  					 &dispatch_proc_fops, ibm);  		if (!entry) { -			printk(TPACPI_ERR "unable to create proc entry %s\n", -			       ibm->name); +			pr_err("unable to create proc entry %s\n", ibm->name);  			ret = -ENODEV;  			goto err_out;  		} @@ -8683,13 +8597,11 @@ static int __must_check __init get_thinkpad_model_data(  				tp->ec_release = (ec_fw_string[4] << 8)  						| ec_fw_string[5];  			} else { -				printk(TPACPI_NOTICE -					"ThinkPad firmware release %s " -					"doesn't match the known patterns\n", -					ec_fw_string); -				printk(TPACPI_NOTICE -					"please report this to %s\n", -					TPACPI_MAIL); +				pr_notice("ThinkPad firmware release %s " +					  "doesn't match the known patterns\n", +					  ec_fw_string); +				pr_notice("please report this to %s\n", +					  TPACPI_MAIL);  			}  			break;  		} @@ -8733,8 +8645,7 @@ static int __init probe_for_thinkpad(void)  	tpacpi_acpi_handle_locate("ec", TPACPI_ACPI_EC_HID, &ec_handle);  	if (!ec_handle) {  		if (is_thinkpad) -			printk(TPACPI_ERR -				"Not yet supported ThinkPad detected!\n"); +			pr_err("Not yet supported ThinkPad detected!\n");  		return -ENODEV;  	} @@ -8746,10 +8657,10 @@ static int __init probe_for_thinkpad(void)  static void __init thinkpad_acpi_init_banner(void)  { -	printk(TPACPI_INFO "%s v%s\n", TPACPI_DESC, TPACPI_VERSION); -	printk(TPACPI_INFO "%s\n", TPACPI_URL); +	pr_info("%s v%s\n", TPACPI_DESC, TPACPI_VERSION); +	pr_info("%s\n", TPACPI_URL); -	printk(TPACPI_INFO "ThinkPad BIOS %s, EC %s\n", +	pr_info("ThinkPad BIOS %s, EC %s\n",  		(thinkpad_id.bios_version_str) ?  			thinkpad_id.bios_version_str : "unknown",  		(thinkpad_id.ec_version_str) ? @@ -8758,7 +8669,7 @@ static void __init thinkpad_acpi_init_banner(void)  	BUG_ON(!thinkpad_id.vendor);  	if (thinkpad_id.model_str) -		printk(TPACPI_INFO "%s %s, model %s\n", +		pr_info("%s %s, model %s\n",  			(thinkpad_id.vendor == PCI_VENDOR_ID_IBM) ?  				"IBM" : ((thinkpad_id.vendor ==  						PCI_VENDOR_ID_LENOVO) ? @@ -9024,8 +8935,7 @@ static int __init thinkpad_acpi_module_init(void)  	ret = get_thinkpad_model_data(&thinkpad_id);  	if (ret) { -		printk(TPACPI_ERR -			"unable to get DMI data: %d\n", ret); +		pr_err("unable to get DMI data: %d\n", ret);  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9051,16 +8961,14 @@ static int __init thinkpad_acpi_module_init(void)  	proc_dir = proc_mkdir(TPACPI_PROC_DIR, acpi_root_dir);  	if (!proc_dir) { -		printk(TPACPI_ERR -		       "unable to create proc dir " TPACPI_PROC_DIR); +		pr_err("unable to create proc dir " TPACPI_PROC_DIR "\n");  		thinkpad_acpi_module_exit();  		return -ENODEV;  	}  	ret = platform_driver_register(&tpacpi_pdriver);  	if (ret) { -		printk(TPACPI_ERR -		       "unable to register main platform driver\n"); +		pr_err("unable to register main platform driver\n");  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9068,8 +8976,7 @@ static int __init thinkpad_acpi_module_init(void)  	ret = platform_driver_register(&tpacpi_hwmon_pdriver);  	if (ret) { -		printk(TPACPI_ERR -		       "unable to register hwmon platform driver\n"); +		pr_err("unable to register hwmon platform driver\n");  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9082,8 +8989,7 @@ static int __init thinkpad_acpi_module_init(void)  					&tpacpi_hwmon_pdriver.driver);  	}  	if (ret) { -		printk(TPACPI_ERR -		       "unable to create sysfs driver attributes\n"); +		pr_err("unable to create sysfs driver attributes\n");  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9096,7 +9002,7 @@ static int __init thinkpad_acpi_module_init(void)  	if (IS_ERR(tpacpi_pdev)) {  		ret = PTR_ERR(tpacpi_pdev);  		tpacpi_pdev = NULL; -		printk(TPACPI_ERR "unable to register platform device\n"); +		pr_err("unable to register platform device\n");  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9106,16 +9012,14 @@ static int __init thinkpad_acpi_module_init(void)  	if (IS_ERR(tpacpi_sensors_pdev)) {  		ret = PTR_ERR(tpacpi_sensors_pdev);  		tpacpi_sensors_pdev = NULL; -		printk(TPACPI_ERR -		       "unable to register hwmon platform device\n"); +		pr_err("unable to register hwmon platform device\n");  		thinkpad_acpi_module_exit();  		return ret;  	}  	ret = device_create_file(&tpacpi_sensors_pdev->dev,  				 &dev_attr_thinkpad_acpi_pdev_name);  	if (ret) { -		printk(TPACPI_ERR -		       "unable to create sysfs hwmon device attributes\n"); +		pr_err("unable to create sysfs hwmon device attributes\n");  		thinkpad_acpi_module_exit();  		return ret;  	} @@ -9124,14 +9028,14 @@ static int __init thinkpad_acpi_module_init(void)  	if (IS_ERR(tpacpi_hwmon)) {  		ret = PTR_ERR(tpacpi_hwmon);  		tpacpi_hwmon = NULL; -		printk(TPACPI_ERR "unable to register hwmon device\n"); +		pr_err("unable to register hwmon device\n");  		thinkpad_acpi_module_exit();  		return ret;  	}  	mutex_init(&tpacpi_inputdev_send_mutex);  	tpacpi_inputdev = input_allocate_device();  	if (!tpacpi_inputdev) { -		printk(TPACPI_ERR "unable to allocate input device\n"); +		pr_err("unable to allocate input device\n");  		thinkpad_acpi_module_exit();  		return -ENOMEM;  	} else { @@ -9163,7 +9067,7 @@ static int __init thinkpad_acpi_module_init(void)  	ret = input_register_device(tpacpi_inputdev);  	if (ret < 0) { -		printk(TPACPI_ERR "unable to register input device\n"); +		pr_err("unable to register input device\n");  		thinkpad_acpi_module_exit();  		return ret;  	} else { diff --git a/drivers/platform/x86/topstar-laptop.c b/drivers/platform/x86/topstar-laptop.c index 1d07d6d09f2..4c20447ddbb 100644 --- a/drivers/platform/x86/topstar-laptop.c +++ b/drivers/platform/x86/topstar-laptop.c @@ -194,7 +194,7 @@ static int __init topstar_laptop_init(void)  	if (ret < 0)  		return ret; -	printk(KERN_INFO "Topstar Laptop ACPI extras driver loaded\n"); +	pr_info("ACPI extras driver loaded\n");  	return 0;  } diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c index 63f42a22e10..cb009b2629e 100644 --- a/drivers/platform/x86/toshiba_acpi.c +++ b/drivers/platform/x86/toshiba_acpi.c @@ -35,6 +35,8 @@   *   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #define TOSHIBA_ACPI_VERSION	"0.19"  #define PROC_INTERFACE_VERSION	1 @@ -60,11 +62,6 @@ MODULE_AUTHOR("John Belmonte");  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");  MODULE_LICENSE("GPL"); -#define MY_LOGPREFIX "toshiba_acpi: " -#define MY_ERR KERN_ERR MY_LOGPREFIX -#define MY_NOTICE KERN_NOTICE MY_LOGPREFIX -#define MY_INFO KERN_INFO MY_LOGPREFIX -  /* Toshiba ACPI method paths */  #define METHOD_LCD_BRIGHTNESS	"\\_SB_.PCI0.VGA_.LCD_._BCM"  #define TOSH_INTERFACE_1	"\\_SB_.VALD" @@ -301,7 +298,7 @@ static int toshiba_illumination_available(void)  	in[0] = 0xf100;  	status = hci_raw(in, out);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Illumination device not available\n"); +		pr_info("Illumination device not available\n");  		return 0;  	}  	in[0] = 0xf400; @@ -320,7 +317,7 @@ static void toshiba_illumination_set(struct led_classdev *cdev,  	in[0] = 0xf100;  	status = hci_raw(in, out);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Illumination device not available\n"); +		pr_info("Illumination device not available\n");  		return;  	} @@ -331,7 +328,7 @@ static void toshiba_illumination_set(struct led_classdev *cdev,  		in[2] = 1;  		status = hci_raw(in, out);  		if (ACPI_FAILURE(status)) { -			printk(MY_INFO "ACPI call for illumination failed.\n"); +			pr_info("ACPI call for illumination failed\n");  			return;  		}  	} else { @@ -341,7 +338,7 @@ static void toshiba_illumination_set(struct led_classdev *cdev,  		in[2] = 0;  		status = hci_raw(in, out);  		if (ACPI_FAILURE(status)) { -			printk(MY_INFO "ACPI call for illumination failed.\n"); +			pr_info("ACPI call for illumination failed.\n");  			return;  		}  	} @@ -364,7 +361,7 @@ static enum led_brightness toshiba_illumination_get(struct led_classdev *cdev)  	in[0] = 0xf100;  	status = hci_raw(in, out);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Illumination device not available\n"); +		pr_info("Illumination device not available\n");  		return LED_OFF;  	} @@ -373,7 +370,7 @@ static enum led_brightness toshiba_illumination_get(struct led_classdev *cdev)  	in[1] = 0x14e;  	status = hci_raw(in, out);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "ACPI call for illumination failed.\n"); +		pr_info("ACPI call for illumination failed.\n");  		return LED_OFF;  	} @@ -517,7 +514,7 @@ static int lcd_proc_show(struct seq_file *m, void *v)  		seq_printf(m, "brightness_levels:       %d\n",  			     HCI_LCD_BRIGHTNESS_LEVELS);  	} else { -		printk(MY_ERR "Error reading LCD brightness\n"); +		pr_err("Error reading LCD brightness\n");  	}  	return 0; @@ -592,7 +589,7 @@ static int video_proc_show(struct seq_file *m, void *v)  		seq_printf(m, "crt_out:                 %d\n", is_crt);  		seq_printf(m, "tv_out:                  %d\n", is_tv);  	} else { -		printk(MY_ERR "Error reading video out status\n"); +		pr_err("Error reading video out status\n");  	}  	return 0; @@ -686,7 +683,7 @@ static int fan_proc_show(struct seq_file *m, void *v)  		seq_printf(m, "running:                 %d\n", (value > 0));  		seq_printf(m, "force_on:                %d\n", force_fan);  	} else { -		printk(MY_ERR "Error reading fan status\n"); +		pr_err("Error reading fan status\n");  	}  	return 0; @@ -750,9 +747,9 @@ static int keys_proc_show(struct seq_file *m, void *v)  			 * some machines where system events sporadically  			 * become disabled. */  			hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result); -			printk(MY_NOTICE "Re-enabled hotkeys\n"); +			pr_notice("Re-enabled hotkeys\n");  		} else { -			printk(MY_ERR "Error reading hotkey status\n"); +			pr_err("Error reading hotkey status\n");  			goto end;  		}  	} @@ -863,7 +860,7 @@ static void toshiba_acpi_notify(acpi_handle handle, u32 event, void *context)  			if (!sparse_keymap_report_event(toshiba_acpi.hotkey_dev,  							value, 1, true)) { -				printk(MY_INFO "Unknown key %x\n", +				pr_info("Unknown key %x\n",  				       value);  			}  		} else if (hci_result == HCI_NOT_SUPPORTED) { @@ -871,7 +868,7 @@ static void toshiba_acpi_notify(acpi_handle handle, u32 event, void *context)  			 * some machines where system events sporadically  			 * become disabled. */  			hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result); -			printk(MY_NOTICE "Re-enabled hotkeys\n"); +			pr_notice("Re-enabled hotkeys\n");  		}  	} while (hci_result != HCI_EMPTY);  } @@ -883,13 +880,13 @@ static int __init toshiba_acpi_setup_keyboard(char *device)  	status = acpi_get_handle(NULL, device, &toshiba_acpi.handle);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Unable to get notification device\n"); +		pr_info("Unable to get notification device\n");  		return -ENODEV;  	}  	toshiba_acpi.hotkey_dev = input_allocate_device();  	if (!toshiba_acpi.hotkey_dev) { -		printk(MY_INFO "Unable to register input device\n"); +		pr_info("Unable to register input device\n");  		return -ENOMEM;  	} @@ -905,21 +902,21 @@ static int __init toshiba_acpi_setup_keyboard(char *device)  	status = acpi_install_notify_handler(toshiba_acpi.handle,  				ACPI_DEVICE_NOTIFY, toshiba_acpi_notify, NULL);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Unable to install hotkey notification\n"); +		pr_info("Unable to install hotkey notification\n");  		error = -ENODEV;  		goto err_free_keymap;  	}  	status = acpi_evaluate_object(toshiba_acpi.handle, "ENAB", NULL, NULL);  	if (ACPI_FAILURE(status)) { -		printk(MY_INFO "Unable to enable hotkeys\n"); +		pr_info("Unable to enable hotkeys\n");  		error = -ENODEV;  		goto err_remove_notify;  	}  	error = input_register_device(toshiba_acpi.hotkey_dev);  	if (error) { -		printk(MY_INFO "Unable to register input device\n"); +		pr_info("Unable to register input device\n");  		goto err_remove_notify;  	} @@ -980,17 +977,17 @@ static int __init toshiba_acpi_init(void)  	if (is_valid_acpi_path(TOSH_INTERFACE_1 GHCI_METHOD)) {  		method_hci = TOSH_INTERFACE_1 GHCI_METHOD;  		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_1)) -			printk(MY_INFO "Unable to activate hotkeys\n"); +			pr_info("Unable to activate hotkeys\n");  	} else if (is_valid_acpi_path(TOSH_INTERFACE_2 GHCI_METHOD)) {  		method_hci = TOSH_INTERFACE_2 GHCI_METHOD;  		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2)) -			printk(MY_INFO "Unable to activate hotkeys\n"); +			pr_info("Unable to activate hotkeys\n");  	} else  		return -ENODEV; -	printk(MY_INFO "Toshiba Laptop ACPI Extras version %s\n", +	pr_info("Toshiba Laptop ACPI Extras version %s\n",  	       TOSHIBA_ACPI_VERSION); -	printk(MY_INFO "    HCI method: %s\n", method_hci); +	pr_info("    HCI method: %s\n", method_hci);  	mutex_init(&toshiba_acpi.mutex); @@ -998,7 +995,7 @@ static int __init toshiba_acpi_init(void)  							      -1, NULL, 0);  	if (IS_ERR(toshiba_acpi.p_dev)) {  		ret = PTR_ERR(toshiba_acpi.p_dev); -		printk(MY_ERR "unable to register platform device\n"); +		pr_err("unable to register platform device\n");  		toshiba_acpi.p_dev = NULL;  		toshiba_acpi_exit();  		return ret; @@ -1028,7 +1025,7 @@ static int __init toshiba_acpi_init(void)          if (IS_ERR(toshiba_backlight_device)) {  		ret = PTR_ERR(toshiba_backlight_device); -		printk(KERN_ERR "Could not register toshiba backlight device\n"); +		pr_err("Could not register toshiba backlight device\n");  		toshiba_backlight_device = NULL;  		toshiba_acpi_exit();  		return ret; @@ -1042,14 +1039,14 @@ static int __init toshiba_acpi_init(void)  						   &toshiba_rfk_ops,  						   &toshiba_acpi);  		if (!toshiba_acpi.bt_rfk) { -			printk(MY_ERR "unable to allocate rfkill device\n"); +			pr_err("unable to allocate rfkill device\n");  			toshiba_acpi_exit();  			return -ENOMEM;  		}  		ret = rfkill_register(toshiba_acpi.bt_rfk);  		if (ret) { -			printk(MY_ERR "unable to register rfkill device\n"); +			pr_err("unable to register rfkill device\n");  			rfkill_destroy(toshiba_acpi.bt_rfk);  			toshiba_acpi_exit();  			return ret; diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c index 94406861191..5fb7186694d 100644 --- a/drivers/platform/x86/toshiba_bluetooth.c +++ b/drivers/platform/x86/toshiba_bluetooth.c @@ -17,6 +17,8 @@   * delivered.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> @@ -70,14 +72,13 @@ static int toshiba_bluetooth_enable(acpi_handle handle)  	if (!(result & 0x01))  		return 0; -	printk(KERN_INFO "toshiba_bluetooth: Re-enabling Toshiba Bluetooth\n"); +	pr_info("Re-enabling Toshiba Bluetooth\n");  	res1 = acpi_evaluate_object(handle, "AUSB", NULL, NULL);  	res2 = acpi_evaluate_object(handle, "BTPO", NULL, NULL);  	if (!ACPI_FAILURE(res1) || !ACPI_FAILURE(res2))  		return 0; -	printk(KERN_WARNING "toshiba_bluetooth: Failed to re-enable " -	       "Toshiba Bluetooth\n"); +	pr_warn("Failed to re-enable Toshiba Bluetooth\n");  	return -ENODEV;  } @@ -107,8 +108,8 @@ static int toshiba_bt_rfkill_add(struct acpi_device *device)  				       &bt_present);  	if (!ACPI_FAILURE(status) && bt_present) { -		printk(KERN_INFO "Detected Toshiba ACPI Bluetooth device - " -		      "installing RFKill handler\n"); +		pr_info("Detected Toshiba ACPI Bluetooth device - " +			"installing RFKill handler\n");  		result = toshiba_bluetooth_enable(device->handle);  	} diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 05cc79672a8..f23d5a84e7b 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -486,16 +486,16 @@ static void wmi_dump_wdg(const struct guid_block *g)  	pr_info("\tnotify_id: %02X\n", g->notify_id);  	pr_info("\treserved: %02X\n", g->reserved);  	pr_info("\tinstance_count: %d\n", g->instance_count); -	pr_info("\tflags: %#x ", g->flags); +	pr_info("\tflags: %#x", g->flags);  	if (g->flags) {  		if (g->flags & ACPI_WMI_EXPENSIVE) -			pr_cont("ACPI_WMI_EXPENSIVE "); +			pr_cont(" ACPI_WMI_EXPENSIVE");  		if (g->flags & ACPI_WMI_METHOD) -			pr_cont("ACPI_WMI_METHOD "); +			pr_cont(" ACPI_WMI_METHOD");  		if (g->flags & ACPI_WMI_STRING) -			pr_cont("ACPI_WMI_STRING "); +			pr_cont(" ACPI_WMI_STRING");  		if (g->flags & ACPI_WMI_EVENT) -			pr_cont("ACPI_WMI_EVENT "); +			pr_cont(" ACPI_WMI_EVENT");  	}  	pr_cont("\n"); diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c index c1372ed9d2e..fad153dc035 100644 --- a/drivers/platform/x86/xo15-ebook.c +++ b/drivers/platform/x86/xo15-ebook.c @@ -11,6 +11,8 @@   *  your option) any later version.   */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> @@ -20,7 +22,6 @@  #include <acpi/acpi_drivers.h>  #define MODULE_NAME "xo15-ebook" -#define PREFIX MODULE_NAME ": "  #define XO15_EBOOK_CLASS		MODULE_NAME  #define XO15_EBOOK_TYPE_UNKNOWN	0x00 @@ -105,7 +106,7 @@ static int ebook_switch_add(struct acpi_device *device)  	class = acpi_device_class(device);  	if (strcmp(hid, XO15_EBOOK_HID)) { -		printk(KERN_ERR PREFIX "Unsupported hid [%s]\n", hid); +		pr_err("Unsupported hid [%s]\n", hid);  		error = -ENODEV;  		goto err_free_input;  	}  |