summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/platform/x86/samsung-laptop.c77
1 files changed, 8 insertions, 69 deletions
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
index d15b6874b1b2..b39fa53baa22 100644
--- a/drivers/platform/x86/samsung-laptop.c
+++ b/drivers/platform/x86/samsung-laptop.c
@@ -362,52 +362,6 @@ static int sabi_set_commandb(struct samsung_laptop *samsung,
return sabi_command(samsung, command, &in, NULL);
}
-static void test_backlight(struct samsung_laptop *samsung)
-{
- const struct sabi_commands *commands = &samsung->config->commands;
- struct sabi_data sretval;
-
- sabi_command(samsung, commands->get_backlight, NULL, &sretval);
- printk(KERN_DEBUG "backlight = 0x%02x\n", sretval.data[0]);
-
- sabi_set_commandb(samsung, commands->set_backlight, 0);
- printk(KERN_DEBUG "backlight should be off\n");
-
- sabi_command(samsung, commands->get_backlight, NULL, &sretval);
- printk(KERN_DEBUG "backlight = 0x%02x\n", sretval.data[0]);
-
- msleep(1000);
-
- sabi_set_commandb(samsung, commands->set_backlight, 1);
- printk(KERN_DEBUG "backlight should be on\n");
-
- sabi_command(samsung, commands->get_backlight, NULL, &sretval);
- printk(KERN_DEBUG "backlight = 0x%02x\n", sretval.data[0]);
-}
-
-static void test_wireless(struct samsung_laptop *samsung)
-{
- const struct sabi_commands *commands = &samsung->config->commands;
- struct sabi_data sretval;
-
- sabi_command(samsung, commands->get_wireless_button, NULL, &sretval);
- printk(KERN_DEBUG "wireless led = 0x%02x\n", sretval.data[0]);
-
- sabi_set_commandb(samsung, commands->set_wireless_button, 0);
- printk(KERN_DEBUG "wireless led should be off\n");
-
- sabi_command(samsung, commands->get_wireless_button, NULL, &sretval);
- printk(KERN_DEBUG "wireless led = 0x%02x\n", sretval.data[0]);
-
- msleep(1000);
-
- sabi_set_commandb(samsung, commands->set_wireless_button, 1);
- printk(KERN_DEBUG "wireless led should be on\n");
-
- sabi_command(samsung, commands->get_wireless_button, NULL, &sretval);
- printk(KERN_DEBUG "wireless led = 0x%02x\n", sretval.data[0]);
-}
-
static int read_brightness(struct samsung_laptop *samsung)
{
const struct sabi_config *config = samsung->config;
@@ -840,12 +794,14 @@ static void samsung_sabi_exit(struct samsung_laptop *samsung)
samsung->config = NULL;
}
-static __init void samsung_sabi_infos(struct samsung_laptop *samsung, int loca)
+static __init void samsung_sabi_infos(struct samsung_laptop *samsung, int loca,
+ unsigned int ifaceP)
{
const struct sabi_config *config = samsung->config;
printk(KERN_DEBUG "This computer supports SABI==%x\n",
loca + 0xf0000 - 6);
+
printk(KERN_DEBUG "SABI header:\n");
printk(KERN_DEBUG " SMI Port Number = 0x%04x\n",
readw(samsung->sabi + config->header_offsets.port));
@@ -859,23 +815,8 @@ static __init void samsung_sabi_infos(struct samsung_laptop *samsung, int loca)
readw(samsung->sabi + config->header_offsets.data_offset));
printk(KERN_DEBUG " SABI data segment = 0x%04x\n",
readw(samsung->sabi + config->header_offsets.data_segment));
-}
-
-static void __init samsung_sabi_selftest(struct samsung_laptop *samsung,
- unsigned int ifaceP)
-{
- const struct sabi_config *config = samsung->config;
- struct sabi_data sretval;
-
- printk(KERN_DEBUG "ifaceP = 0x%08x\n", ifaceP);
- printk(KERN_DEBUG "sabi_iface = %p\n", samsung->sabi_iface);
- if (samsung->handle_backlight)
- test_backlight(samsung);
- test_wireless(samsung);
-
- sabi_command(samsung, config->commands.get_brightness, NULL, &sretval);
- printk(KERN_DEBUG "brightness = 0x%02x\n", sretval.data[0]);
+ printk(KERN_DEBUG " SABI pointer = 0x%08x\n", ifaceP);
}
static int __init samsung_sabi_init(struct samsung_laptop *samsung)
@@ -916,12 +857,13 @@ static int __init samsung_sabi_init(struct samsung_laptop *samsung)
loca += 1;
samsung->sabi = (samsung->f0000_segment + loca);
- if (debug)
- samsung_sabi_infos(samsung, loca);
-
/* Get a pointer to the SABI Interface */
ifaceP = (readw(samsung->sabi + config->header_offsets.data_segment) & 0x0ffff) << 4;
ifaceP += readw(samsung->sabi + config->header_offsets.data_offset) & 0x0ffff;
+
+ if (debug)
+ samsung_sabi_infos(samsung, loca, ifaceP);
+
samsung->sabi_iface = ioremap_nocache(ifaceP, 16);
if (!samsung->sabi_iface) {
pr_err("Can't remap %x\n", ifaceP);
@@ -929,9 +871,6 @@ static int __init samsung_sabi_init(struct samsung_laptop *samsung)
goto exit;
}
- if (debug)
- samsung_sabi_selftest(samsung, ifaceP);
-
/* Turn on "Linux" mode in the BIOS */
if (commands->set_linux != 0xff) {
int retval = sabi_set_commandb(samsung,
OpenPOWER on IntegriCloud