/*
* Samsung Laptop driver
*
- * Copyright (C) 2009 Greg Kroah-Hartman (gregkh@suse.de)
- * Copyright (C) 2009 Novell Inc.
+ * Copyright (C) 2009,2011 Greg Kroah-Hartman (gregkh@suse.de)
+ * Copyright (C) 2009,2011 Novell Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
{
int retval = 0;
u16 port = readw(sabi + sabi_config->header_offsets.port);
+ u8 complete, iface_data;
mutex_lock(&sabi_mutex);
outb(readb(sabi + sabi_config->header_offsets.re_mem), port);
/* see if the command actually succeeded */
- if (readb(sabi_iface + SABI_IFACE_COMPLETE) == 0xaa &&
- readb(sabi_iface + SABI_IFACE_DATA) != 0xff) {
- /*
- * It did!
- * Save off the data into a structure so the caller use it.
- * Right now we only care about the first 4 bytes,
- * I suppose there are commands that need more, but I don't
- * know about them.
- */
- sretval->retval[0] = readb(sabi_iface + SABI_IFACE_DATA);
- sretval->retval[1] = readb(sabi_iface + SABI_IFACE_DATA + 1);
- sretval->retval[2] = readb(sabi_iface + SABI_IFACE_DATA + 2);
- sretval->retval[3] = readb(sabi_iface + SABI_IFACE_DATA + 3);
+ complete = readb(sabi_iface + SABI_IFACE_COMPLETE);
+ iface_data = readb(sabi_iface + SABI_IFACE_DATA);
+ if (complete != 0xaa || iface_data == 0xff) {
+ pr_warn("SABI get command 0x%02x failed with completion flag 0x%02x and data 0x%02x\n",
+ command, complete, iface_data);
+ retval = -EINVAL;
goto exit;
}
+ /*
+ * Save off the data into a structure so the caller use it.
+ * Right now we only want the first 4 bytes,
+ * There are commands that need more, but not for the ones we
+ * currently care about.
+ */
+ sretval->retval[0] = readb(sabi_iface + SABI_IFACE_DATA);
+ sretval->retval[1] = readb(sabi_iface + SABI_IFACE_DATA + 1);
+ sretval->retval[2] = readb(sabi_iface + SABI_IFACE_DATA + 2);
+ sretval->retval[3] = readb(sabi_iface + SABI_IFACE_DATA + 3);
- /* Something bad happened, so report it and error out */
- printk(KERN_WARNING "SABI command 0x%02x failed with completion flag 0x%02x and output 0x%02x\n",
- command, readb(sabi_iface + SABI_IFACE_COMPLETE),
- readb(sabi_iface + SABI_IFACE_DATA));
- retval = -EINVAL;
exit:
mutex_unlock(&sabi_mutex);
return retval;
{
int retval = 0;
u16 port = readw(sabi + sabi_config->header_offsets.port);
+ u8 complete, iface_data;
mutex_lock(&sabi_mutex);
outb(readb(sabi + sabi_config->header_offsets.re_mem), port);
/* see if the command actually succeeded */
- if (readb(sabi_iface + SABI_IFACE_COMPLETE) == 0xaa &&
- readb(sabi_iface + SABI_IFACE_DATA) != 0xff) {
- /* it did! */
- goto exit;
+ complete = readb(sabi_iface + SABI_IFACE_COMPLETE);
+ iface_data = readb(sabi_iface + SABI_IFACE_DATA);
+ if (complete != 0xaa || iface_data == 0xff) {
+ pr_warn("SABI set command 0x%02x failed with completion flag 0x%02x and data 0x%02x\n",
+ command, complete, iface_data);
+ retval = -EINVAL;
}
- /* Something bad happened, so report it and error out */
- printk(KERN_WARNING "SABI command 0x%02x failed with completion flag 0x%02x and output 0x%02x\n",
- command, readb(sabi_iface + SABI_IFACE_COMPLETE),
- readb(sabi_iface + SABI_IFACE_DATA));
- retval = -EINVAL;
-exit:
mutex_unlock(&sabi_mutex);
return retval;
}
static int __init dmi_check_cb(const struct dmi_system_id *id)
{
- printk(KERN_INFO KBUILD_MODNAME ": found laptop model '%s'\n",
+ pr_info("found laptop model '%s'\n",
id->ident);
return 0;
}
f0000_segment = ioremap(0xf0000, 0xffff);
if (!f0000_segment) {
- printk(KERN_ERR "Can't map the segment at 0xf0000\n");
+ pr_err("Can't map the segment at 0xf0000\n");
return -EINVAL;
}
}
if (loca == 0xffff) {
- printk(KERN_ERR "This computer does not support SABI\n");
+ pr_err("This computer does not support SABI\n");
goto error_no_signature;
}
ifaceP += readw(sabi + sabi_config->header_offsets.data_offset) & 0x0ffff;
sabi_iface = ioremap(ifaceP, 16);
if (!sabi_iface) {
- printk(KERN_ERR "Can't remap %x\n", ifaceP);
+ pr_err("Can't remap %x\n", ifaceP);
goto exit;
}
if (debug) {
retval = sabi_set_command(sabi_config->commands.set_linux,
0x81);
if (retval) {
- printk(KERN_ERR KBUILD_MODNAME ": Linux mode was not set!\n");
+ pr_warn("Linux mode was not set!\n");
goto error_no_platform;
}
}