Dear Corentin, 2012/3/19 Corentin Chary <corentin.chary@xxxxxxxxx>: > On Mon, Mar 19, 2012 at 7:33 AM, AceLan Kao <acelan.kao@xxxxxxxxxxxxx> wrote: >> Some models work better with different values of wapf, so move the >> variable into quriks_entry to make it more easy to give a specific >> value to different models. >> >> Signed-off-by: AceLan Kao <acelan.kao@xxxxxxxxxxxxx> >> --- >> drivers/platform/x86/asus-nb-wmi.c | 2 +- >> drivers/platform/x86/asus-wmi.c | 4 ++-- >> drivers/platform/x86/asus-wmi.h | 2 +- >> drivers/platform/x86/eeepc-wmi.c | 2 +- >> 4 files changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c >> index 396dafc..9dd7b93 100644 >> --- a/drivers/platform/x86/asus-nb-wmi.c >> +++ b/drivers/platform/x86/asus-nb-wmi.c >> @@ -53,7 +53,7 @@ MODULE_PARM_DESC(wapf, "WAPF value"); >> >> static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver) >> { > > Missing "driver->quirks = asus_unknown_quriks" (or similar). quirks is > NULL here, and the module will segfault (unfortunatly I tried without > reading the code and it did :p). So sorry about that, I'm not aware of the loading sequence of the asus-nb-wmi module, I thought it can see drivers->quirks which assigned from eeepc-wmi module. If I allocate a new asus_unknown_quirks here, then it might be overwriten by eeepc-wmi later, if both of the modules will be loaded. Moreover, asus-nb-wmi should have the ability to access the asus_quirks defined in eeepc-wmi, so, the better way to do this is the detect_quirks function pointer should point to the same function in the eeepc-wmi. Do you have any good idea of this? > >> - driver->wapf = wapf; >> + driver->quirks->wapf = wapf; >> } >> >> static const struct key_entry asus_nb_wmi_keymap[] = { >> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c >> index 9cd459a..1d2047d 100644 >> --- a/drivers/platform/x86/asus-wmi.c >> +++ b/drivers/platform/x86/asus-wmi.c >> @@ -1471,9 +1471,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus) >> >> /* CWAP allow to define the behavior of the Fn+F2 key, >> * this method doesn't seems to be present on Eee PCs */ >> - if (asus->driver->wapf >= 0) >> + if (asus->driver->quirks->wapf >= 0) >> asus_wmi_set_devstate(ASUS_WMI_DEVID_CWAP, >> - asus->driver->wapf, NULL); >> + asus->driver->quirks->wapf, NULL); >> >> return asus_wmi_sysfs_init(asus->platform_device); >> } >> diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h >> index 35003e4..d43b667 100644 >> --- a/drivers/platform/x86/asus-wmi.h >> +++ b/drivers/platform/x86/asus-wmi.h >> @@ -39,10 +39,10 @@ struct quirk_entry { >> bool hotplug_wireless; >> bool scalar_panel_brightness; >> bool store_backlight_power; >> + int wapf; >> }; >> >> struct asus_wmi_driver { >> - int wapf; >> int brightness; >> int panel_power; >> >> diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c >> index c1a0ac0..7e15d54 100644 >> --- a/drivers/platform/x86/eeepc-wmi.c >> +++ b/drivers/platform/x86/eeepc-wmi.c >> @@ -207,10 +207,10 @@ static int eeepc_wmi_probe(struct platform_device *pdev) >> static void eeepc_wmi_quirks(struct asus_wmi_driver *driver) >> { >> quirks = driver->quirks; >> - driver->wapf = -1; >> driver->panel_power = FB_BLANK_UNBLANK; >> driver->quirks = &quirk_asus_unknown; >> driver->quirks->hotplug_wireless = hotplug_wireless; >> + driver->quirks->wapf = -1; >> dmi_check_system(asus_quirks); >> } >> >> -- >> 1.7.9.1 >> > > > > -- > Corentin Chary > http://xf.iksaif.net > -- > To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Chia-Lin Kao(AceLan) http://blog.acelan.idv.tw/ E-Mail: acelan.kaoATcanonical.com (s/AT/@/) -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html