diff mbox

[9/9] ideapad: Add param: no_bt_rfkill

Message ID 1285918822-13116-1-git-send-email-ike.pan@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ike Panhc Oct. 1, 2010, 7:40 a.m. UTC
None
diff mbox

Patch

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 78ac02a..6a4396e 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -52,6 +52,10 @@  static struct {
 	{ "ideapad_killsw",	0,  0,    RFKILL_TYPE_WLAN }
 };
 
+static bool no_bt_rfkill;
+module_param(no_bt_rfkill, bool, 0444);
+MODULE_PARM_DESC(no_bt_rfkill, "No rfkill for bluetooth.");
+
 /*
  * ACPI Helpers
  */
@@ -232,6 +236,14 @@  static int ideapad_register_rfkill(struct acpi_device *adevice, int dev)
 	int ret;
 	unsigned long sw_blocked;
 
+	if (no_bt_rfkill &&
+	    (ideapad_rfk_data[dev].type == RFKILL_TYPE_BLUETOOTH)) {
+		/* Force to enable bluetooth when no_bt_rfkill=1 */
+		write_ec_cmd(ideapad_priv->handle,
+			     ideapad_rfk_data[dev].opcode, 1);
+		return 0;
+	}
+
 	priv->rfk[dev] = rfkill_alloc(ideapad_rfk_data[dev].name, &adevice->dev,
 				      ideapad_rfk_data[dev].type, &ideapad_rfk_ops,
 				      (void *)(long)dev);