* [PATCH 1/4] msi-laptop: Add N014 N051 dmi information to scm models table
[not found] <20100512141149.GB20564@kroah.com>
@ 2010-05-12 16:58 ` Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 2/4] msi-laptop: Add MSI CR620 notebook " Greg Kroah-Hartman
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2010-05-12 16:58 UTC (permalink / raw)
To: mjg
Cc: mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86, greg,
Greg Kroah-Hartman
From: Lee, Chun-Yi <jlee@novell.com>
Add new MSI netbook N014 and N051 dmi information to scm models table.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/platform/x86/msi-laptop.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index 996223a..bcd9c0d 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -469,6 +469,26 @@ static struct dmi_system_id __initdata msi_dmi_table[] = {
},
.callback = dmi_check_cb
},
+ {
+ .ident = "MSI N051",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR,
+ "MICRO-STAR INTERNATIONAL CO., LTD"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MS-N051"),
+ DMI_MATCH(DMI_CHASSIS_VENDOR,
+ "MICRO-STAR INTERNATIONAL CO., LTD")
+ },
+ .callback = dmi_check_cb
+ },
+ {
+ .ident = "MSI N014",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR,
+ "MICRO-STAR INTERNATIONAL CO., LTD"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MS-N014"),
+ },
+ .callback = dmi_check_cb
+ },
{ }
};
@@ -788,3 +808,5 @@ MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1058:pvr0581:rvnMSI:rnMS-105
MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1412:*:rvnMSI:rnMS-1412:*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
MODULE_ALIAS("dmi:*:svnNOTEBOOK:pnSAM2000:pvr0131*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N034:*");
+MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N051:*");
+MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N014:*");
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] msi-laptop: Add MSI CR620 notebook dmi information to scm models table
[not found] <20100512141149.GB20564@kroah.com>
2010-05-12 16:58 ` [PATCH 1/4] msi-laptop: Add N014 N051 dmi information to scm models table Greg Kroah-Hartman
@ 2010-05-12 16:58 ` Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 3/4] msi-laptop: Set rfkill init state when msi-laptop intiial Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed Greg Kroah-Hartman
3 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2010-05-12 16:58 UTC (permalink / raw)
To: mjg
Cc: mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86, greg,
Greg Kroah-Hartman
From: Lee, Chun-Yi <jlee@novell.com>
Add new MSI notebook CR620 dmi information to scm models table.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/platform/x86/msi-laptop.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index bcd9c0d..45197d7 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -489,6 +489,15 @@ static struct dmi_system_id __initdata msi_dmi_table[] = {
},
.callback = dmi_check_cb
},
+ {
+ .ident = "MSI CR620",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR,
+ "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "CR620"),
+ },
+ .callback = dmi_check_cb
+ },
{ }
};
@@ -810,3 +819,4 @@ MODULE_ALIAS("dmi:*:svnNOTEBOOK:pnSAM2000:pvr0131*:cvnMICRO-STARINT'LCO.,LTD:ct1
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N034:*");
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N051:*");
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N014:*");
+MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnCR620:*");
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] msi-laptop: Set rfkill init state when msi-laptop intiial
[not found] <20100512141149.GB20564@kroah.com>
2010-05-12 16:58 ` [PATCH 1/4] msi-laptop: Add N014 N051 dmi information to scm models table Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 2/4] msi-laptop: Add MSI CR620 notebook " Greg Kroah-Hartman
@ 2010-05-12 16:58 ` Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed Greg Kroah-Hartman
3 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2010-05-12 16:58 UTC (permalink / raw)
To: mjg
Cc: mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86, greg,
Greg Kroah-Hartman
From: Lee, Chun-Yi <jlee@novell.com>
Setup Wlan/Bluetooth/3G rfkill initial state to sync with the hardware
state from EC 0x2e address.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/platform/x86/msi-laptop.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index 45197d7..34bec2e 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -581,11 +581,31 @@ static void rfkill_cleanup(void)
}
}
+static void msi_init_rfkill(struct work_struct *ignored)
+{
+ if (rfk_wlan) {
+ rfkill_set_sw_state(rfk_wlan, !wlan_s);
+ rfkill_wlan_set(NULL, !wlan_s);
+ }
+ if (rfk_bluetooth) {
+ rfkill_set_sw_state(rfk_bluetooth, !bluetooth_s);
+ rfkill_bluetooth_set(NULL, !bluetooth_s);
+ }
+ if (rfk_threeg) {
+ rfkill_set_sw_state(rfk_threeg, !threeg_s);
+ rfkill_threeg_set(NULL, !threeg_s);
+ }
+}
+static DECLARE_DELAYED_WORK(msi_rfkill_init, msi_init_rfkill);
+
static int rfkill_init(struct platform_device *sdev)
{
/* add rfkill */
int retval;
+ /* keep the hardware wireless state */
+ get_wireless_state_ec_standard();
+
rfk_bluetooth = rfkill_alloc("msi-bluetooth", &sdev->dev,
RFKILL_TYPE_BLUETOOTH,
&rfkill_bluetooth_ops, NULL);
@@ -619,6 +639,10 @@ static int rfkill_init(struct platform_device *sdev)
goto err_threeg;
}
+ /* schedule to run rfkill state initial */
+ schedule_delayed_work(&msi_rfkill_init,
+ round_jiffies_relative(1 * HZ));
+
return 0;
err_threeg:
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed
[not found] <20100512141149.GB20564@kroah.com>
` (2 preceding siblings ...)
2010-05-12 16:58 ` [PATCH 3/4] msi-laptop: Set rfkill init state when msi-laptop intiial Greg Kroah-Hartman
@ 2010-05-12 16:58 ` Greg Kroah-Hartman
2010-05-12 17:33 ` Dmitry Torokhov
3 siblings, 1 reply; 8+ messages in thread
From: Greg Kroah-Hartman @ 2010-05-12 16:58 UTC (permalink / raw)
To: mjg
Cc: mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86, greg,
Greg Kroah-Hartman
From: Lee, Chun-Yi <jlee@novell.com>
There have some MSI netbook change devices state by EC when user press
wlan/bluetooth/wwan function keys. So, add a i8042 filter to sync sw
state with BIOS when function keys pressed.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/platform/x86/msi-laptop.c | 59 ++++++++++++++++++++++++++++++++++++-
1 files changed, 58 insertions(+), 1 deletions(-)
diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index 34bec2e..3c6e160 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -59,6 +59,7 @@
#include <linux/backlight.h>
#include <linux/platform_device.h>
#include <linux/rfkill.h>
+#include <linux/i8042.h>
#define MSI_DRIVER_VERSION "0.5"
@@ -581,6 +582,46 @@ static void rfkill_cleanup(void)
}
}
+static void msi_update_rfkill(struct work_struct *ignored)
+{
+ get_wireless_state_ec_standard();
+
+ if (rfk_wlan)
+ rfkill_set_sw_state(rfk_wlan, !wlan_s);
+ if (rfk_bluetooth)
+ rfkill_set_sw_state(rfk_bluetooth, !bluetooth_s);
+ if (rfk_threeg)
+ rfkill_set_sw_state(rfk_threeg, !threeg_s);
+}
+static DECLARE_DELAYED_WORK(msi_rfkill_work, msi_update_rfkill);
+
+bool msi_laptop_i8042_filter(unsigned char data, unsigned char str,
+ struct serio *port)
+{
+ static bool extended;
+
+ if (str & 0x20)
+ return false;
+
+ /* 0x54 wwan, 0x62 bluetooth, 0x76 wlan*/
+ if (unlikely(data == 0xe0)) {
+ extended = true;
+ return false;
+ } else if (unlikely(extended)) {
+ switch (data) {
+ case 0x54:
+ case 0x62:
+ case 0x76:
+ schedule_delayed_work(&msi_rfkill_work,
+ round_jiffies_relative(0.5 * HZ));
+ break;
+ }
+ extended = false;
+ }
+
+ return false;
+}
+
static void msi_init_rfkill(struct work_struct *ignored)
{
if (rfk_wlan) {
@@ -706,9 +747,24 @@ static int load_scm_model_init(struct platform_device *sdev)
/* initial rfkill */
result = rfkill_init(sdev);
if (result < 0)
- return result;
+ goto fail_rfkill;
+
+ result = i8042_install_filter(msi_laptop_i8042_filter);
+ if (result) {
+ printk(KERN_WARNING
+ "msi-laptop: Unable to install key filter\n");
+ goto fail_filter;
+ }
return 0;
+
+fail_filter:
+ rfkill_cleanup();
+
+fail_rfkill:
+
+ return result;
+
}
static int __init msi_init(void)
@@ -819,6 +875,7 @@ static void __exit msi_cleanup(void)
platform_driver_unregister(&msipf_driver);
backlight_device_unregister(msibl_device);
+ i8042_remove_filter(msi_laptop_i8042_filter);
rfkill_cleanup();
/* Enable automatic brightness control again */
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed
2010-05-12 16:58 ` [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed Greg Kroah-Hartman
@ 2010-05-12 17:33 ` Dmitry Torokhov
2010-05-12 18:55 ` Greg KH
2010-05-12 18:56 ` Greg KH
0 siblings, 2 replies; 8+ messages in thread
From: Dmitry Torokhov @ 2010-05-12 17:33 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: mjg, mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86,
greg
On Wed, May 12, 2010 at 09:58:10AM -0700, Greg Kroah-Hartman wrote:
> From: Lee, Chun-Yi <jlee@novell.com>
>
> There have some MSI netbook change devices state by EC when user press
> wlan/bluetooth/wwan function keys. So, add a i8042 filter to sync sw
> state with BIOS when function keys pressed.
>
> Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> ---
> drivers/platform/x86/msi-laptop.c | 59 ++++++++++++++++++++++++++++++++++++-
> 1 files changed, 58 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
> index 34bec2e..3c6e160 100644
> --- a/drivers/platform/x86/msi-laptop.c
> +++ b/drivers/platform/x86/msi-laptop.c
> @@ -59,6 +59,7 @@
> #include <linux/backlight.h>
> #include <linux/platform_device.h>
> #include <linux/rfkill.h>
> +#include <linux/i8042.h>
>
> #define MSI_DRIVER_VERSION "0.5"
>
> @@ -581,6 +582,46 @@ static void rfkill_cleanup(void)
> }
> }
>
> +static void msi_update_rfkill(struct work_struct *ignored)
> +{
> + get_wireless_state_ec_standard();
> +
> + if (rfk_wlan)
> + rfkill_set_sw_state(rfk_wlan, !wlan_s);
> + if (rfk_bluetooth)
> + rfkill_set_sw_state(rfk_bluetooth, !bluetooth_s);
> + if (rfk_threeg)
> + rfkill_set_sw_state(rfk_threeg, !threeg_s);
> +}
> +static DECLARE_DELAYED_WORK(msi_rfkill_work, msi_update_rfkill);
> +
> +bool msi_laptop_i8042_filter(unsigned char data, unsigned char str,
> + struct serio *port)
Make it static bool...
> +{
> + static bool extended;
> +
> + if (str & 0x20)
> + return false;
> +
> + /* 0x54 wwan, 0x62 bluetooth, 0x76 wlan*/
> + if (unlikely(data == 0xe0)) {
> + extended = true;
> + return false;
> + } else if (unlikely(extended)) {
> + switch (data) {
> + case 0x54:
> + case 0x62:
> + case 0x76:
> + schedule_delayed_work(&msi_rfkill_work,
> + round_jiffies_relative(0.5 * HZ));
> + break;
> + }
> + extended = false;
> + }
> +
> + return false;
> +}
> +
> static void msi_init_rfkill(struct work_struct *ignored)
> {
> if (rfk_wlan) {
> @@ -706,9 +747,24 @@ static int load_scm_model_init(struct platform_device *sdev)
> /* initial rfkill */
> result = rfkill_init(sdev);
> if (result < 0)
> - return result;
> + goto fail_rfkill;
> +
> + result = i8042_install_filter(msi_laptop_i8042_filter);
> + if (result) {
> + printk(KERN_WARNING
Since we fail driver load this should be error, not warning message.
> + "msi-laptop: Unable to install key filter\n");
> + goto fail_filter;
> + }
>
> return 0;
> +
> +fail_filter:
> + rfkill_cleanup();
> +
> +fail_rfkill:
> +
> + return result;
> +
> }
>
> static int __init msi_init(void)
> @@ -819,6 +875,7 @@ static void __exit msi_cleanup(void)
> platform_driver_unregister(&msipf_driver);
> backlight_device_unregister(msibl_device);
>
> + i8042_remove_filter(msi_laptop_i8042_filter);
> rfkill_cleanup();
>
> /* Enable automatic brightness control again */
--
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed
2010-05-12 17:33 ` Dmitry Torokhov
@ 2010-05-12 18:55 ` Greg KH
2010-05-12 18:56 ` Greg KH
1 sibling, 0 replies; 8+ messages in thread
From: Greg KH @ 2010-05-12 18:55 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: mjg, mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86,
greg
On Wed, May 12, 2010 at 10:33:59AM -0700, Dmitry Torokhov wrote:
> On Wed, May 12, 2010 at 09:58:10AM -0700, Greg Kroah-Hartman wrote:
> > From: Lee, Chun-Yi <jlee@novell.com>
> >
> > There have some MSI netbook change devices state by EC when user press
> > wlan/bluetooth/wwan function keys. So, add a i8042 filter to sync sw
> > state with BIOS when function keys pressed.
> >
> > Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> > ---
> > drivers/platform/x86/msi-laptop.c | 59 ++++++++++++++++++++++++++++++++++++-
> > 1 files changed, 58 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
> > index 34bec2e..3c6e160 100644
> > --- a/drivers/platform/x86/msi-laptop.c
> > +++ b/drivers/platform/x86/msi-laptop.c
> > @@ -59,6 +59,7 @@
> > #include <linux/backlight.h>
> > #include <linux/platform_device.h>
> > #include <linux/rfkill.h>
> > +#include <linux/i8042.h>
> >
> > #define MSI_DRIVER_VERSION "0.5"
> >
> > @@ -581,6 +582,46 @@ static void rfkill_cleanup(void)
> > }
> > }
> >
> > +static void msi_update_rfkill(struct work_struct *ignored)
> > +{
> > + get_wireless_state_ec_standard();
> > +
> > + if (rfk_wlan)
> > + rfkill_set_sw_state(rfk_wlan, !wlan_s);
> > + if (rfk_bluetooth)
> > + rfkill_set_sw_state(rfk_bluetooth, !bluetooth_s);
> > + if (rfk_threeg)
> > + rfkill_set_sw_state(rfk_threeg, !threeg_s);
> > +}
> > +static DECLARE_DELAYED_WORK(msi_rfkill_work, msi_update_rfkill);
> > +
> > +bool msi_laptop_i8042_filter(unsigned char data, unsigned char str,
> > + struct serio *port)
>
> Make it static bool...
Will do.
> > static void msi_init_rfkill(struct work_struct *ignored)
> > {
> > if (rfk_wlan) {
> > @@ -706,9 +747,24 @@ static int load_scm_model_init(struct platform_device *sdev)
> > /* initial rfkill */
> > result = rfkill_init(sdev);
> > if (result < 0)
> > - return result;
> > + goto fail_rfkill;
> > +
> > + result = i8042_install_filter(msi_laptop_i8042_filter);
> > + if (result) {
> > + printk(KERN_WARNING
>
> Since we fail driver load this should be error, not warning message.
Good point, I'll fix that up as well.
I'll respin this now.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed
2010-05-12 17:33 ` Dmitry Torokhov
2010-05-12 18:55 ` Greg KH
@ 2010-05-12 18:56 ` Greg KH
2010-05-13 7:52 ` Dmitry Torokhov
1 sibling, 1 reply; 8+ messages in thread
From: Greg KH @ 2010-05-12 18:56 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: mjg, mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86,
greg
From: Lee, Chun-Yi <jlee@novell.com>
There have some MSI netbook change devices state by EC when user press
wlan/bluetooth/wwan function keys. So, add a i8042 filter to sync sw
state with BIOS when function keys pressed.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
v2 - fixed some things Dmitry pointed out - gregkh
drivers/platform/x86/msi-laptop.c | 59 ++++++++++++++++++++++++++++++++++++-
1 files changed, 58 insertions(+), 1 deletions(-)
diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index 34bec2e..0b17590 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -59,6 +59,7 @@
#include <linux/backlight.h>
#include <linux/platform_device.h>
#include <linux/rfkill.h>
+#include <linux/i8042.h>
#define MSI_DRIVER_VERSION "0.5"
@@ -581,6 +582,46 @@ static void rfkill_cleanup(void)
}
}
+static void msi_update_rfkill(struct work_struct *ignored)
+{
+ get_wireless_state_ec_standard();
+
+ if (rfk_wlan)
+ rfkill_set_sw_state(rfk_wlan, !wlan_s);
+ if (rfk_bluetooth)
+ rfkill_set_sw_state(rfk_bluetooth, !bluetooth_s);
+ if (rfk_threeg)
+ rfkill_set_sw_state(rfk_threeg, !threeg_s);
+}
+static DECLARE_DELAYED_WORK(msi_rfkill_work, msi_update_rfkill);
+
+static bool msi_laptop_i8042_filter(unsigned char data, unsigned char str,
+ struct serio *port)
+{
+ static bool extended;
+
+ if (str & 0x20)
+ return false;
+
+ /* 0x54 wwan, 0x62 bluetooth, 0x76 wlan*/
+ if (unlikely(data == 0xe0)) {
+ extended = true;
+ return false;
+ } else if (unlikely(extended)) {
+ switch (data) {
+ case 0x54:
+ case 0x62:
+ case 0x76:
+ schedule_delayed_work(&msi_rfkill_work,
+ round_jiffies_relative(0.5 * HZ));
+ break;
+ }
+ extended = false;
+ }
+
+ return false;
+}
+
static void msi_init_rfkill(struct work_struct *ignored)
{
if (rfk_wlan) {
@@ -706,9 +747,24 @@ static int load_scm_model_init(struct platform_device *sdev)
/* initial rfkill */
result = rfkill_init(sdev);
if (result < 0)
- return result;
+ goto fail_rfkill;
+
+ result = i8042_install_filter(msi_laptop_i8042_filter);
+ if (result) {
+ printk(KERN_ERR
+ "msi-laptop: Unable to install key filter\n");
+ goto fail_filter;
+ }
return 0;
+
+fail_filter:
+ rfkill_cleanup();
+
+fail_rfkill:
+
+ return result;
+
}
static int __init msi_init(void)
@@ -819,6 +875,7 @@ static void __exit msi_cleanup(void)
platform_driver_unregister(&msipf_driver);
backlight_device_unregister(msibl_device);
+ i8042_remove_filter(msi_laptop_i8042_filter);
rfkill_cleanup();
/* Enable automatic brightness control again */
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed
2010-05-12 18:56 ` Greg KH
@ 2010-05-13 7:52 ` Dmitry Torokhov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Torokhov @ 2010-05-13 7:52 UTC (permalink / raw)
To: Greg KH
Cc: mjg, mzxreary, rpurdie, jlee, linux-kernel, platform-driver-x86,
greg
On Wed, May 12, 2010 at 11:56:47AM -0700, Greg KH wrote:
> static int __init msi_init(void)
> @@ -819,6 +875,7 @@ static void __exit msi_cleanup(void)
> platform_driver_unregister(&msipf_driver);
> backlight_device_unregister(msibl_device);
>
> + i8042_remove_filter(msi_laptop_i8042_filter);
You also need cancel_delayed_work_sync() here. Sorry for not noticing
this before.
> rfkill_cleanup();
>
> /* Enable automatic brightness control again */
--
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-05-13 7:52 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20100512141149.GB20564@kroah.com>
2010-05-12 16:58 ` [PATCH 1/4] msi-laptop: Add N014 N051 dmi information to scm models table Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 2/4] msi-laptop: Add MSI CR620 notebook " Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 3/4] msi-laptop: Set rfkill init state when msi-laptop intiial Greg Kroah-Hartman
2010-05-12 16:58 ` [PATCH 4/4] msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed Greg Kroah-Hartman
2010-05-12 17:33 ` Dmitry Torokhov
2010-05-12 18:55 ` Greg KH
2010-05-12 18:56 ` Greg KH
2010-05-13 7:52 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).