Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1bc81a0 authored by David S. Miller's avatar David S. Miller
Browse files
parents a93958ac 0c0c9e70
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -437,3 +437,10 @@ Why: Superseded by tdfxfb. I2C/DDC support used to live in a separate
	driver but this caused driver conflicts.
Who:	Jean Delvare <khali@linux-fr.org>
	Krzysztof Helt <krzysztof.h1@wp.pl>

---------------------------

What:	CONFIG_RFKILL_INPUT
When:	2.6.33
Why:	Should be implemented in userspace, policy daemon.
Who:	Johannes Berg <johannes@sipsolutions.net>
+84 −519

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3
Original line number Diff line number Diff line
@@ -4753,9 +4753,9 @@ S: Supported
F:	fs/reiserfs/

RFKILL
P:	Ivo van Doorn
M:	IvDoorn@gmail.com
L:	netdev@vger.kernel.org
P:	Johannes Berg
M:	johannes@sipsolutions.net
L:	linux-wireless@vger.kernel.org
S:	Maintained
F	Documentation/rfkill.txt
F:	net/rfkill/
+15 −15
Original line number Diff line number Diff line
@@ -35,21 +35,25 @@ static void tosa_bt_off(struct tosa_bt_data *data)
	gpio_set_value(data->gpio_reset, 0);
}

static int tosa_bt_toggle_radio(void *data, enum rfkill_state state)
static int tosa_bt_set_block(void *data, bool blocked)
{
	pr_info("BT_RADIO going: %s\n",
			state == RFKILL_STATE_UNBLOCKED ? "on" : "off");
	pr_info("BT_RADIO going: %s\n", blocked ? "off" : "on");

	if (state == RFKILL_STATE_UNBLOCKED) {
	if (!blocked) {
		pr_info("TOSA_BT: going ON\n");
		tosa_bt_on(data);
	} else {
		pr_info("TOSA_BT: going OFF\n");
		tosa_bt_off(data);
	}

	return 0;
}

static const struct rfkill_ops tosa_bt_rfkill_ops = {
	.set_block = tosa_bt_set_block,
};

static int tosa_bt_probe(struct platform_device *dev)
{
	int rc;
@@ -70,18 +74,14 @@ static int tosa_bt_probe(struct platform_device *dev)
	if (rc)
		goto err_pwr_dir;

	rfk = rfkill_allocate(&dev->dev, RFKILL_TYPE_BLUETOOTH);
	rfk = rfkill_alloc("tosa-bt", &dev->dev, RFKILL_TYPE_BLUETOOTH,
			   &tosa_bt_rfkill_ops, data);
	if (!rfk) {
		rc = -ENOMEM;
		goto err_rfk_alloc;
	}

	rfk->name = "tosa-bt";
	rfk->toggle_radio = tosa_bt_toggle_radio;
	rfk->data = data;
#ifdef CONFIG_RFKILL_LEDS
	rfk->led_trigger.name = "tosa-bt";
#endif
	rfkill_set_led_trigger_name(rfk, "tosa-bt");

	rc = rfkill_register(rfk);
	if (rc)
@@ -92,9 +92,7 @@ static int tosa_bt_probe(struct platform_device *dev)
	return 0;

err_rfkill:
	if (rfk)
		rfkill_free(rfk);
	rfk = NULL;
	rfkill_destroy(rfk);
err_rfk_alloc:
	tosa_bt_off(data);
err_pwr_dir:
@@ -113,8 +111,10 @@ static int __devexit tosa_bt_remove(struct platform_device *dev)

	platform_set_drvdata(dev, NULL);

	if (rfk)
	if (rfk) {
		rfkill_unregister(rfk);
		rfkill_destroy(rfk);
	}
	rfk = NULL;

	tosa_bt_off(data);
+0 −1
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@
#include <linux/input.h>
#include <linux/gpio.h>
#include <linux/pda_power.h>
#include <linux/rfkill.h>
#include <linux/spi/spi.h>

#include <asm/setup.h>
Loading