From: Dmitry Torokhov <dtor_core@ameritech.net>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Massimo Dal Zotto <dz@debian.org>
Subject: [PATCH 4/5] I8K - switch to module_{init|exit}
Date: Thu, 24 Feb 2005 01:14:02 -0500 [thread overview]
Message-ID: <200502240114.04067.dtor_core@ameritech.net> (raw)
In-Reply-To: <200502240112.56523.dtor_core@ameritech.net>
===================================================================
I8K: use module_{init|exit} instead of old style #ifdef MODULE
code, some formatting changes.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
i8k.c | 149 ++++++++++++++++++++---------------------------------------------
misc.c | 4 -
2 files changed, 47 insertions(+), 106 deletions(-)
Index: dtor/drivers/char/misc.c
===================================================================
--- dtor.orig/drivers/char/misc.c
+++ dtor/drivers/char/misc.c
@@ -67,7 +67,6 @@ extern int rtc_DP8570A_init(void);
extern int rtc_MK48T08_init(void);
extern int pmu_device_init(void);
extern int tosh_init(void);
-extern int i8k_init(void);
#ifdef CONFIG_PROC_FS
static void *misc_seq_start(struct seq_file *seq, loff_t *pos)
@@ -317,9 +316,6 @@ static int __init misc_init(void)
#ifdef CONFIG_TOSHIBA
tosh_init();
#endif
-#ifdef CONFIG_I8K
- i8k_init();
-#endif
if (register_chrdev(MISC_MAJOR,"misc",&misc_fops)) {
printk("unable to get major %d for misc devices\n",
MISC_MAJOR);
Index: dtor/drivers/char/i8k.c
===================================================================
--- dtor.orig/drivers/char/i8k.c
+++ dtor/drivers/char/i8k.c
@@ -87,14 +87,14 @@ static struct file_operations i8k_fops =
.ioctl = i8k_ioctl,
};
-typedef struct {
+struct smm_regs {
unsigned int eax;
unsigned int ebx __attribute__ ((packed));
unsigned int ecx __attribute__ ((packed));
unsigned int edx __attribute__ ((packed));
unsigned int esi __attribute__ ((packed));
unsigned int edi __attribute__ ((packed));
-} SMMRegisters;
+};
static inline char *i8k_get_dmi_data(int field)
{
@@ -104,7 +104,7 @@ static inline char *i8k_get_dmi_data(int
/*
* Call the System Management Mode BIOS. Code provided by Jonathan Buzzard.
*/
-static int i8k_smm(SMMRegisters * regs)
+static int i8k_smm(struct smm_regs *regs)
{
int rc;
int eax = regs->eax;
@@ -134,9 +134,8 @@ static int i8k_smm(SMMRegisters * regs)
: "a"(regs)
: "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory");
- if ((rc != 0) || ((regs->eax & 0xffff) == 0xffff) || (regs->eax == eax)) {
+ if (rc != 0 || (regs->eax & 0xffff) == 0xffff || regs->eax == eax)
return -EINVAL;
- }
return 0;
}
@@ -147,15 +146,9 @@ static int i8k_smm(SMMRegisters * regs)
*/
static int i8k_get_bios_version(void)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
- int rc;
-
- regs.eax = I8K_SMM_BIOS_VERSION;
- if ((rc = i8k_smm(®s)) < 0) {
- return rc;
- }
+ struct smm_regs regs = { .eax = I8K_SMM_BIOS_VERSION, };
- return regs.eax;
+ return i8k_smm(®s) < 0 ? : regs.eax;
}
/*
@@ -163,13 +156,11 @@ static int i8k_get_bios_version(void)
*/
static int i8k_get_fn_status(void)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
+ struct smm_regs regs = { .eax = I8K_SMM_FN_STATUS, };
int rc;
- regs.eax = I8K_SMM_FN_STATUS;
- if ((rc = i8k_smm(®s)) < 0) {
+ if ((rc = i8k_smm(®s)) < 0)
return rc;
- }
switch ((regs.eax >> I8K_FN_SHIFT) & I8K_FN_MASK) {
case I8K_FN_UP:
@@ -188,20 +179,13 @@ static int i8k_get_fn_status(void)
*/
static int i8k_get_power_status(void)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
+ struct smm_regs regs = { .eax = I8K_SMM_POWER_STATUS, };
int rc;
- regs.eax = I8K_SMM_POWER_STATUS;
- if ((rc = i8k_smm(®s)) < 0) {
+ if ((rc = i8k_smm(®s)) < 0)
return rc;
- }
- switch (regs.eax & 0xff) {
- case I8K_POWER_AC:
- return I8K_AC;
- default:
- return I8K_BATTERY;
- }
+ return (regs.eax & 0xff) == I8K_POWER_AC ? I8K_AC : I8K_BATTERY;
}
/*
@@ -209,16 +193,10 @@ static int i8k_get_power_status(void)
*/
static int i8k_get_fan_status(int fan)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
- int rc;
+ struct smm_regs regs = { .eax = I8K_SMM_GET_FAN, };
- regs.eax = I8K_SMM_GET_FAN;
regs.ebx = fan & 0xff;
- if ((rc = i8k_smm(®s)) < 0) {
- return rc;
- }
-
- return (regs.eax & 0xff);
+ return i8k_smm(®s) < 0 ? : regs.eax & 0xff;
}
/*
@@ -226,16 +204,10 @@ static int i8k_get_fan_status(int fan)
*/
static int i8k_get_fan_speed(int fan)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
- int rc;
+ struct smm_regs regs = { .eax = I8K_SMM_GET_SPEED, };
- regs.eax = I8K_SMM_GET_SPEED;
regs.ebx = fan & 0xff;
- if ((rc = i8k_smm(®s)) < 0) {
- return rc;
- }
-
- return (regs.eax & 0xffff) * I8K_FAN_MULT;
+ return i8k_smm(®s) < 0 ? : (regs.eax & 0xffff) * I8K_FAN_MULT;
}
/*
@@ -243,18 +215,12 @@ static int i8k_get_fan_speed(int fan)
*/
static int i8k_set_fan(int fan, int speed)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
- int rc;
+ struct smm_regs regs = { .eax = I8K_SMM_SET_FAN, };
speed = (speed < 0) ? 0 : ((speed > I8K_FAN_MAX) ? I8K_FAN_MAX : speed);
-
- regs.eax = I8K_SMM_SET_FAN;
regs.ebx = (fan & 0xff) | (speed << 8);
- if ((rc = i8k_smm(®s)) < 0) {
- return rc;
- }
- return (i8k_get_fan_status(fan));
+ return i8k_smm(®s) < 0 ? : i8k_get_fan_status(fan);
}
/*
@@ -262,18 +228,17 @@ static int i8k_set_fan(int fan, int spee
*/
static int i8k_get_cpu_temp(void)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
+ struct smm_regs regs = { .eax = I8K_SMM_GET_TEMP, };
int rc;
int temp;
#ifdef I8K_TEMPERATURE_BUG
- static int prev = 0;
+ static int prev;
#endif
- regs.eax = I8K_SMM_GET_TEMP;
- if ((rc = i8k_smm(®s)) < 0) {
+ if ((rc = i8k_smm(®s)) < 0)
return rc;
- }
+
temp = regs.eax & 0xff;
#ifdef I8K_TEMPERATURE_BUG
@@ -297,19 +262,13 @@ static int i8k_get_cpu_temp(void)
static int i8k_get_dell_signature(void)
{
- SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };
+ struct smm_regs regs = { .eax = I8K_SMM_GET_DELL_SIG, };
int rc;
- regs.eax = I8K_SMM_GET_DELL_SIG;
- if ((rc = i8k_smm(®s)) < 0) {
+ if ((rc = i8k_smm(®s)) < 0)
return rc;
- }
- if ((regs.eax == 1145651527) && (regs.edx == 1145392204)) {
- return 0;
- } else {
- return -1;
- }
+ return regs.eax == 1145651527 && regs.edx == 1145392204 ? 0 : -1;
}
static int i8k_ioctl(struct inode *ip, struct file *fp, unsigned int cmd,
@@ -346,29 +305,29 @@ static int i8k_ioctl(struct inode *ip, s
break;
case I8K_GET_SPEED:
- if (copy_from_user(&val, argp, sizeof(int))) {
+ if (copy_from_user(&val, argp, sizeof(int)))
return -EFAULT;
- }
+
val = i8k_get_fan_speed(val);
break;
case I8K_GET_FAN:
- if (copy_from_user(&val, argp, sizeof(int))) {
+ if (copy_from_user(&val, argp, sizeof(int)))
return -EFAULT;
- }
+
val = i8k_get_fan_status(val);
break;
case I8K_SET_FAN:
- if (restricted && !capable(CAP_SYS_ADMIN)) {
+ if (restricted && !capable(CAP_SYS_ADMIN))
return -EPERM;
- }
- if (copy_from_user(&val, argp, sizeof(int))) {
+
+ if (copy_from_user(&val, argp, sizeof(int)))
return -EFAULT;
- }
- if (copy_from_user(&speed, argp + 1, sizeof(int))) {
+
+ if (copy_from_user(&speed, argp + 1, sizeof(int)))
return -EFAULT;
- }
+
val = i8k_set_fan(val, speed);
break;
@@ -376,25 +335,24 @@ static int i8k_ioctl(struct inode *ip, s
return -EINVAL;
}
- if (val < 0) {
+ if (val < 0)
return val;
- }
switch (cmd) {
case I8K_BIOS_VERSION:
- if (copy_to_user(argp, &val, 4)) {
+ if (copy_to_user(argp, &val, 4))
return -EFAULT;
- }
+
break;
case I8K_MACHINE_ID:
- if (copy_to_user(argp, buff, 16)) {
+ if (copy_to_user(argp, buff, 16))
return -EFAULT;
- }
+
break;
default:
- if (copy_to_user(argp, &val, sizeof(int))) {
+ if (copy_to_user(argp, &val, sizeof(int)))
return -EFAULT;
- }
+
break;
}
@@ -415,11 +373,10 @@ static int i8k_proc_show(struct seq_file
left_speed = i8k_get_fan_speed(I8K_FAN_LEFT); /* 580 ??s */
right_speed = i8k_get_fan_speed(I8K_FAN_RIGHT); /* 580 ??s */
fn_key = i8k_get_fn_status(); /* 750 ??s */
- if (power_status) {
+ if (power_status)
ac_power = i8k_get_power_status(); /* 14700 ??s */
- } else {
+ else
ac_power = -1;
- }
/*
* Info:
@@ -530,10 +487,7 @@ static int __init i8k_probe(void)
return 0;
}
-#ifdef MODULE
-static
-#endif
-int __init i8k_init(void)
+static int __init i8k_init(void)
{
struct proc_dir_entry *proc_i8k;
@@ -556,19 +510,10 @@ int __init i8k_init(void)
return 0;
}
-#ifdef MODULE
-int init_module(void)
+static void __exit i8k_exit(void)
{
- return i8k_init();
-}
-
-void cleanup_module(void)
-{
- /* Remove the proc entry */
remove_proc_entry("i8k", NULL);
-
- printk(KERN_INFO "i8k: module unloaded\n");
}
-#endif
-/* end of file */
+module_init(i8k_init);
+module_exit(i8k_exit);
next prev parent reply other threads:[~2005-02-24 6:23 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-24 6:10 [PATCH 0/5] I8K driver facelift Dmitry Torokhov
2005-02-24 6:11 ` [PATCH 1/5] I8K - pass though Lindent Dmitry Torokhov
2005-02-24 6:12 ` [PATCH 2/5] I8K - use standard DMI functions Dmitry Torokhov
2005-02-24 6:12 ` [PATCH 3/5] I8K - switch to seq_file Dmitry Torokhov
2005-02-24 6:14 ` Dmitry Torokhov [this message]
2005-02-24 6:14 ` [PATCH 5/5] I8K - convert to platform device (sysfs) Dmitry Torokhov
2005-03-13 3:41 ` [PATCH 0/5] I8K driver facelift Frank Sorenson
2005-03-13 3:59 ` Dmitry Torokhov
2005-03-15 8:12 ` Valdis.Kletnieks
2005-03-15 10:59 ` Giuseppe Bilotta
2005-03-15 17:30 ` Valdis.Kletnieks
2005-03-15 22:34 ` Frank Sorenson
2005-03-16 21:38 ` Frank Sorenson
2005-03-17 6:40 ` Dmitry Torokhov
2005-03-17 9:37 ` Frank Sorenson
2005-03-17 15:05 ` Dmitry Torokhov
2005-03-17 9:46 ` Frank Sorenson
2005-03-21 5:12 ` Dmitry Torokhov
2005-03-21 22:53 ` Frank Sorenson
2005-03-21 23:55 ` Dmitry Torokhov
2005-03-24 7:25 ` Greg KH
2005-03-24 7:39 ` Dmitry Torokhov
2005-03-24 8:00 ` Greg KH
2005-03-24 14:44 ` Dmitry Torokhov
2005-03-17 8:16 ` Valdis.Kletnieks
2005-03-24 7:24 ` Greg KH
2005-04-13 6:33 ` Dmitry Torokhov
2005-04-13 8:00 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200502240114.04067.dtor_core@ameritech.net \
--to=dtor_core@ameritech.net \
--cc=dz@debian.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.