Re: [PATCH] Repost: asus strict model checking
On Wed, 2006-08-02 at 22:49 +0400, Alexey Starikovskiy wrote: I was referring to this peace of artwork(asus_info is pointer to DSDT header): -- if (hotk-model == END_MODEL) { /* match failed */ if (asus_info strncmp(asus_info-oem_table_id, ODEM, 4) == 0) { hotk-model = P30; Oh yes, you are right this is awful. Thomas - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Repost: asus strict model checking
On Tue, 2006-08-01 at 21:44 +0400, Alexey Starikovskiy wrote: Thomas Renninger wrote: On Tue, 2006-08-01 at 20:11 +0400, Alexey Starikovskiy wrote: Checks for Samsung P30/P35 are real hacks IMHO. Why? Because this DSDT signature could appear on any machine, and has nothing to do with ASUS or Samsung. The string seems to define how the ATKD ACPI device has to be used. If this Device pops up on other machines than Asus it's fine. AFAIK the mappings from the string returned by ATKD.INIT and how the device has to be used then works fine. It's probably much better than the way done on Thinkpads: If we have ACPI func xy we assume to have an A21 or similar and use this set of function/variables. I consider this an ugly hack: IBM_HANDLE(ec, root, \\_SB.PCI0.ISA.EC0, /* 240, 240x */ \\_SB.PCI.ISA.EC, /* 570 */ \\_SB.PCI0.ISA0.EC0, /* 600e/x, 770e, 770x */ \\_SB.PCI0.ISA.EC, /* A21e, A2xm/p, T20-22, X20-21 */ \\_SB.PCI0.AD4S.EC0, /* i1400, R30 */ \\_SB.PCI0.ICH3.EC0, /* R31 */ \\_SB.PCI0.LPC.EC, /* all others */ On Asus we should be happy ATKD.INIT is returning something useful and one can guess (be sure?) which ACPI functions to use for what. Checking for that string and making use of different ACPI variable/method names seems to be intended and looks like the defined way this should be used. As long as this is not officially specified (by ACPI consortium and/or vendors) and such special Devices exist, it is the best we can do. Thomas - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Repost: asus strict model checking
I was referring to this peace of artwork(asus_info is pointer to DSDT header): -- if (hotk-model == END_MODEL) { /* match failed */ if (asus_info strncmp(asus_info-oem_table_id, ODEM, 4) == 0) { hotk-model = P30; printk(KERN_NOTICE Samsung P30 detected, supported\n); } 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); } hotk-methods = model_conf[hotk-model]; return AE_OK; } -- Thomas Renninger wrote: On Tue, 2006-08-01 at 21:44 +0400, Alexey Starikovskiy wrote: Thomas Renninger wrote: On Tue, 2006-08-01 at 20:11 +0400, Alexey Starikovskiy wrote: Checks for Samsung P30/P35 are real hacks IMHO. Why? Because this DSDT signature could appear on any machine, and has nothing to do with ASUS or Samsung. The string seems to define how the ATKD ACPI device has to be used. If this Device pops up on other machines than Asus it's fine. AFAIK the mappings from the string returned by ATKD.INIT and how the device has to be used then works fine. It's probably much better than the way done on Thinkpads: If we have ACPI func xy we assume to have an A21 or similar and use this set of function/variables. I consider this an ugly hack: IBM_HANDLE(ec, root, \\_SB.PCI0.ISA.EC0,/* 240, 240x */ \\_SB.PCI.ISA.EC, /* 570 */ \\_SB.PCI0.ISA0.EC0, /* 600e/x, 770e, 770x */ \\_SB.PCI0.ISA.EC, /* A21e, A2xm/p, T20-22, X20-21 */ \\_SB.PCI0.AD4S.EC0, /* i1400, R30 */ \\_SB.PCI0.ICH3.EC0, /* R31 */ \\_SB.PCI0.LPC.EC, /* all others */ On Asus we should be happy ATKD.INIT is returning something useful and one can guess (be sure?) which ACPI functions to use for what. Checking for that string and making use of different ACPI variable/method names seems to be intended and looks like the defined way this should be used. As long as this is not officially specified (by ACPI consortium and/or vendors) and such special Devices exist, it is the best we can do. Thomas - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH] Repost: asus strict model checking
As long as this is not officially specified (by ACPI consortium and/or vendors) and such special Devices exist, it is the best we can do. Platform specific methods will never be in the APCI spec -- by the virtue that they are non-standard and platform specific by definition. The vendors should be using vendor-specific PNP ID's. eg, IBM0068 when they put vendor specific devices in the DSDT. When that is not available, Linux is going very far out on a limb when it mines the name space to match specific internal variables, as there is no reason they could not match some totally different machine. Certainly the platform specific drivers that the vendors ship on Windows does not do this. I don't know what they do -- maybe DMI? -Len - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] Repost: asus strict model checking
These are some minor patches I already posted... All are patched against 2.6.18-rc2. Do only load asus acpi module when model is listed Description: There are machines that have a device with HID: ATK0100 (Asus) and a device with HID SNY5001 (Sony). Bad things happen if sony and asus driver are loaded there. Reference: https://bugzilla.novell.org/show_bug.cgi?id=166920 Signed-off-by: Timo Hoenig [EMAIL PROTECTED] Signed-off-by: Thomas Renninger[EMAIL PROTECTED] drivers/acpi/asus_acpi.c | 25 - 1 files changed, 20 insertions(+), 5 deletions(-) Index: linux-2.6.18-rc2/drivers/acpi/asus_acpi.c === --- linux-2.6.18-rc2.orig/drivers/acpi/asus_acpi.c +++ linux-2.6.18-rc2/drivers/acpi/asus_acpi.c @@ -77,10 +77,14 @@ MODULE_LICENSE(GPL); static uid_t asus_uid; static gid_t asus_gid; +static int force; module_param(asus_uid, uint, 0); MODULE_PARM_DESC(asus_uid, UID for entries in /proc/acpi/asus.\n); module_param(asus_gid, uint, 0); MODULE_PARM_DESC(asus_gid, GID for entries in /proc/acpi/asus.\n); +module_param(force, int, 0); +MODULE_PARM_DESC(force, Force loading of the module even if the laptop +model is not listed.\n); /* For each model, all features implemented, * those marked with R are relative to HOTK, A for absolute */ @@ -1171,11 +1175,22 @@ static int asus_hotk_get_info(void) printk(KERN_NOTICE Samsung P30 detected, supported\n); } 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); + if (force){ + 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); + } + else{ + printk(KERN_NOTICE %s unsupported model %s, + aborting.\nForce loading with force=1 + parameter\n, + ACPI_HOTK_NAME, string); + return -ENODEV; + } } hotk-methods = model_conf[hotk-model]; return AE_OK; Do only load asus acpi module when model is listed Reference: https://bugzilla.novell.org/show_bug.cgi?id=166920 Signed-off-by: Timo Hoenig [EMAIL PROTECTED] Signed-off-by: Thomas Renninger[EMAIL PROTECTED] drivers/acpi/asus_acpi.c | 25 - 1 files changed, 20 insertions(+), 5 deletions(-) Index: linux-2.6.18-rc2/drivers/acpi/asus_acpi.c === --- linux-2.6.18-rc2.orig/drivers/acpi/asus_acpi.c +++ linux-2.6.18-rc2/drivers/acpi/asus_acpi.c @@ -77,10 +77,14 @@ MODULE_LICENSE(GPL); static uid_t asus_uid; static gid_t asus_gid; +static int force; module_param(asus_uid, uint, 0); MODULE_PARM_DESC(asus_uid, UID for entries in /proc/acpi/asus.\n); module_param(asus_gid, uint, 0); MODULE_PARM_DESC(asus_gid, GID for entries in /proc/acpi/asus.\n); +module_param(force, int, 0); +MODULE_PARM_DESC(force, Force loading of the module even if the laptop + model is not listed.\n); /* For each model, all features implemented, * those marked with R are relative to HOTK, A for absolute */ @@ -1171,11 +1175,22 @@ static int asus_hotk_get_info(void) printk(KERN_NOTICE Samsung P30 detected, supported\n); } 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); + if (force){ +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); + } + else{ +printk(KERN_NOTICE %s unsupported model %s, +aborting.\nForce loading with force=1 +parameter\n, + ACPI_HOTK_NAME, string); +return -ENODEV; + } } hotk-methods = model_conf[hotk-model]; return AE_OK;
Re: [PATCH] Repost: asus strict model checking
On Tue, 2006-08-01 at 17:58 +0400, Alexey Starikovskiy wrote: Thomas, Is it possible to use DMI interface for this kind of system identification? IMO it should be sufficient to use the already provided Asus hotkey model identification. Using dmidecode to check for Asus and then fallback to the default model if the model is unknown (which does not work for a lot new Asus anyway?) sounds like the wrong way for me. Better to have a not supported system (it's easy to white list an additional model) than to fall back to default and have a broken system (reading/writing to wrong EC registers,..). Thomas Regards, Alex. Thomas Renninger wrote: These are some minor patches I already posted... All are patched against 2.6.18-rc2. Do only load asus acpi module when model is listed Description: There are machines that have a device with HID: ATK0100 (Asus) and a device with HID SNY5001 (Sony). Bad things happen if sony and asus driver are loaded there. Reference: https://bugzilla.novell.org/show_bug.cgi?id=166920 Signed-off-by: Timo Hoenig [EMAIL PROTECTED] Signed-off-by: Thomas Renninger[EMAIL PROTECTED] drivers/acpi/asus_acpi.c | 25 - 1 files changed, 20 insertions(+), 5 deletions(-) Index: linux-2.6.18-rc2/drivers/acpi/asus_acpi.c === --- linux-2.6.18-rc2.orig/drivers/acpi/asus_acpi.c +++ linux-2.6.18-rc2/drivers/acpi/asus_acpi.c @@ -77,10 +77,14 @@ MODULE_LICENSE(GPL); static uid_t asus_uid; static gid_t asus_gid; +static int force; module_param(asus_uid, uint, 0); MODULE_PARM_DESC(asus_uid, UID for entries in /proc/acpi/asus.\n); module_param(asus_gid, uint, 0); MODULE_PARM_DESC(asus_gid, GID for entries in /proc/acpi/asus.\n); +module_param(force, int, 0); +MODULE_PARM_DESC(force, Force loading of the module even if the laptop +model is not listed.\n); /* For each model, all features implemented, * those marked with R are relative to HOTK, A for absolute */ @@ -1171,11 +1175,22 @@ static int asus_hotk_get_info(void) printk(KERN_NOTICE Samsung P30 detected, supported\n); } 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); + if (force){ + 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); + } + else{ + printk(KERN_NOTICE %s unsupported model %s, + aborting.\nForce loading with force=1 + parameter\n, + ACPI_HOTK_NAME, string); + return -ENODEV; + } } hotk-methods = model_conf[hotk-model]; return AE_OK; - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Repost: asus strict model checking
On Tue, 2006-08-01 at 20:11 +0400, Alexey Starikovskiy wrote: Checks for Samsung P30/P35 are real hacks IMHO. Why? Thomas Thomas Renninger wrote: On Tue, 2006-08-01 at 17:58 +0400, Alexey Starikovskiy wrote: Thomas, Is it possible to use DMI interface for this kind of system identification? IMO it should be sufficient to use the already provided Asus hotkey model identification. Using dmidecode to check for Asus and then fallback to the default model if the model is unknown (which does not work for a lot new Asus anyway?) sounds like the wrong way for me. Better to have a not supported system (it's easy to white list an additional model) than to fall back to default and have a broken system (reading/writing to wrong EC registers,..). Thomas Regards, Alex. Thomas Renninger wrote: These are some minor patches I already posted... All are patched against 2.6.18-rc2. Do only load asus acpi module when model is listed Description: There are machines that have a device with HID: ATK0100 (Asus) and a device with HID SNY5001 (Sony). Bad things happen if sony and asus driver are loaded there. Reference: https://bugzilla.novell.org/show_bug.cgi?id=166920 Signed-off-by: Timo Hoenig [EMAIL PROTECTED] Signed-off-by: Thomas Renninger[EMAIL PROTECTED] drivers/acpi/asus_acpi.c | 25 - 1 files changed, 20 insertions(+), 5 deletions(-) Index: linux-2.6.18-rc2/drivers/acpi/asus_acpi.c === --- linux-2.6.18-rc2.orig/drivers/acpi/asus_acpi.c +++ linux-2.6.18-rc2/drivers/acpi/asus_acpi.c @@ -77,10 +77,14 @@ MODULE_LICENSE(GPL); static uid_t asus_uid; static gid_t asus_gid; +static int force; module_param(asus_uid, uint, 0); MODULE_PARM_DESC(asus_uid, UID for entries in /proc/acpi/asus.\n); module_param(asus_gid, uint, 0); MODULE_PARM_DESC(asus_gid, GID for entries in /proc/acpi/asus.\n); +module_param(force, int, 0); +MODULE_PARM_DESC(force, Force loading of the module even if the laptop + model is not listed.\n); /* For each model, all features implemented, * those marked with R are relative to HOTK, A for absolute */ @@ -1171,11 +1175,22 @@ static int asus_hotk_get_info(void) printk(KERN_NOTICE Samsung P30 detected, supported\n); } 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); + if (force){ + 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); + } + else{ + printk(KERN_NOTICE %s unsupported model %s, + aborting.\nForce loading with force=1 + parameter\n, +ACPI_HOTK_NAME, string); + return -ENODEV; + } } hotk-methods = model_conf[hotk-model]; return AE_OK; - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line unsubscribe linux-acpi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html