2001-12-24 17:18:11

by Ishan O. Jayawardena

[permalink] [raw]
Subject: [PATCH] A slightly smarter dmi_scan.c

--- linux/arch/i386/kernel/dmi_scan.c Mon Dec 24 22:50:41 2001
+++ linux/arch/i386/kernel/dmi_scan.c.c Mon Dec 24 22:53:21 2001
@@ -255,26 +255,29 @@

static __init int set_realmode_power_off(struct dmi_blacklist *d)
{
+#if defined (CONFIG_APM) || defined (CONFIG_APM_MODULE)
if (apm_info.realmode_power_off == 0)
{
apm_info.realmode_power_off = 1;
printk(KERN_INFO "%s bios detected. Using realmode poweroff only.\n", d->ident);
}
+#endif
return 0;
}

-
/*
* Some laptops require interrupts to be enabled during APM calls
*/

static __init int set_apm_ints(struct dmi_blacklist *d)
{
+#if defined (CONFIG_APM) || defined (CONFIG_APM_MODULE)
if (apm_info.allow_ints == 0)
{
apm_info.allow_ints = 1;
printk(KERN_INFO "%s machine detected. Enabling interrupts during APM calls.\n", d->ident);
}
+#endif
return 0;
}

@@ -284,15 +287,16 @@

static __init int apm_is_horked(struct dmi_blacklist *d)
{
+#if defined (CONFIG_APM) || defined (CONFIG_APM_MODULE)
if (apm_info.disabled == 0)
{
apm_info.disabled = 1;
printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident);
}
+#endif
return 0;
}

-
/*
* Check for clue free BIOS implementations who use
* the following QA technique
@@ -311,10 +315,12 @@

static __init int broken_apm_power(struct dmi_blacklist *d)
{
+#if defined (CONFIG_APM) || defined (CONFIG_APM_MODULE)
apm_info.get_power_status_broken = 1;
printk(KERN_WARNING "BIOS strings suggest APM bugs, disabling power status reporting.\n");
+#endif
return 0;
-}
+}

/*
* Check for a Sony Vaio system
@@ -341,8 +347,10 @@

static __init int swab_apm_power_in_minutes(struct dmi_blacklist *d)
{
+#if defined (CONFIG_APM) || defined (CONFIG_APM_MODULE)
apm_info.get_power_status_swabinminutes = 1;
printk(KERN_WARNING "BIOS strings suggest APM reports battery life in minutes and wrong byte order.\n");
+#endif
return 0;
}


Attachments:
dmi.patch (1.94 kB)

2001-12-24 18:08:22

by Alan

[permalink] [raw]
Subject: Re: [PATCH] A slightly smarter dmi_scan.c

> > APM can also be compiled as a module.
>
> Right. Thanks. I blatantly ignored that APM can be built as modules ;(
> The fixed patch is here.

I think I prefer it without all the ifdefs being in the code like that. It is
cleaner to read before the change. I agree the messages being printed might
be confusing in some cases but I don't like the cure.

2001-12-26 04:19:59

by Ishan O. Jayawardena

[permalink] [raw]
Subject: Re: [PATCH] A slightly smarter dmi_scan.c

> > > APM can also be compiled as a module.
> >
> > Right. Thanks. I blatantly ignored that APM can be built as modules ;(
> > The fixed patch is here.

> I think I prefer it without all the ifdefs being in the code like that. It is
> cleaner to read before the change. I agree the messages being printed might
> be confusing in some cases but I don't like the cure.

I agree. The code in dmi_scan.c runs very elegantly now, and changing
that flow, although might be more efficient by something like 0.001%,
isn't worth the touble.
Sorry about adding to the ambient background radiation :)

- ioj

~~~~
Ask not of race, but ask of conduct:
From the stick is born the sacred fire:
The wise ascetic, though lowly born,
Is noble in his modest self-control.
- Gotama Buddha
.