2008-01-23 21:24:47

by Inaky Perez-Gonzalez

[permalink] [raw]
Subject: [PATCH] rfkill: add the WiMAX radio type

rfkill: add the WiMAX radio type

Teach rfkill about wimax radios.

Had to define a KEY_WIMAX as a 'key for disabling only wimax radios',
as other radio technologies have. This makes sense as hardware has
specific keys for disabling specific radios.

The RFKILL enabling part is, otherwise, a copy and paste of any other
radio technology.

Signed-off-by: Inaky Perez-Gonzalez <[email protected]>

---

diff -r a52d5e9e9c91 include/linux/input.h
--- a/include/linux/input.h Mon Jan 14 16:13:06 2008 -0800
+++ b/include/linux/input.h Mon Jan 14 16:23:40 2008 -0800
@@ -362,6 +362,8 @@ struct input_absinfo {
#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
#define KEY_DISPLAY_OFF 245 /* display device to off state */
+
+#define KEY_WIMAX 246

#define BTN_MISC 0x100
#define BTN_0 0x100
diff -r a52d5e9e9c91 include/linux/rfkill.h
--- a/include/linux/rfkill.h Mon Jan 14 16:13:06 2008 -0800
+++ b/include/linux/rfkill.h Mon Jan 14 16:23:40 2008 -0800
@@ -33,11 +33,13 @@
* RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
* RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
* RFKILL_TYPE_UWB: switch is on a ultra wideband device.
+ * RFKILL_TYPE_WIMAX: switch is on a WiMAX device.
*/
enum rfkill_type {
RFKILL_TYPE_WLAN ,
RFKILL_TYPE_BLUETOOTH,
RFKILL_TYPE_UWB,
+ RFKILL_TYPE_WIMAX,
RFKILL_TYPE_MAX,
};

diff -r a52d5e9e9c91 net/rfkill/rfkill-input.c
--- a/net/rfkill/rfkill-input.c Mon Jan 14 16:13:06 2008 -0800
+++ b/net/rfkill/rfkill-input.c Mon Jan 14 16:23:40 2008 -0800
@@ -84,6 +84,7 @@ static DEFINE_RFKILL_TASK(rfkill_wlan, R
static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN);
static DEFINE_RFKILL_TASK(rfkill_bt, RFKILL_TYPE_BLUETOOTH);
static DEFINE_RFKILL_TASK(rfkill_uwb, RFKILL_TYPE_UWB);
+static DEFINE_RFKILL_TASK(rfkill_wimax, RFKILL_TYPE_WIMAX);

static void rfkill_event(struct input_handle *handle, unsigned int type,
unsigned int code, int down)
@@ -98,6 +99,9 @@ static void rfkill_event(struct input_ha
break;
case KEY_UWB:
rfkill_schedule_toggle(&rfkill_uwb);
+ break;
+ case KEY_WIMAX:
+ rfkill_schedule_toggle(&rfkill_wimax);
break;
default:
break;
@@ -150,7 +154,7 @@ static const struct input_device_id rfki
.keybit = { [BIT_WORD(KEY_WLAN)] = BIT_MASK(KEY_WLAN) },
},
{
- .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
+ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(KEY_BLUETOOTH)] = BIT_MASK(KEY_BLUETOOTH) },
},
@@ -158,6 +162,11 @@ static const struct input_device_id rfki
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(KEY_UWB)] = BIT_MASK(KEY_UWB) },
+ },
+ {
+ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
+ .evbit = { BIT_MASK(EV_KEY) },
+ .keybit = { [BIT_WORD(KEY_WIMAX)] = BIT_MASK(KEY_WIMAX) },
},
{ }
};
diff -r a52d5e9e9c91 net/rfkill/rfkill.c
--- a/net/rfkill/rfkill.c Mon Jan 14 16:13:06 2008 -0800
+++ b/net/rfkill/rfkill.c Mon Jan 14 16:23:40 2008 -0800
@@ -126,6 +126,9 @@ static ssize_t rfkill_type_show(struct d
case RFKILL_TYPE_UWB:
type = "ultrawideband";
break;
+ case RFKILL_TYPE_WIMAX:
+ type = "wimax";
+ break;
default:
BUG();
}


2008-01-23 21:40:27

by Perez-Gonzalez, Inaky

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

On Wednesday 23 January 2008, Michael Buesch wrote:
> On Wednesday 23 January 2008 22:24:38 Inaky Perez-Gonzalez wrote:
> > @@ -150,7 +154,7 @@ static const struct input_device_id rfki
> > .keybit = { [BIT_WORD(KEY_WLAN)] = BIT_MASK(KEY_WLAN) },
> > },
> > {
> > - .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> > + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
>
> Why are you adding a bogus whitespace to the start of the line here?

My mistake, fixed. Thanks! -- updated patch follows

---
rfkill: add the WiMAX radio type

Teach rfkill about wimax radios.

Had to define a KEY_WIMAX as a 'key for disabling only wimax radios',
as other radio technologies have. This makes sense as hardware has
specific keys for disabling specific radios.

The RFKILL enabling part is, otherwise, a copy and paste of any other
radio technology.

Signed-off-by: Inaky Perez-Gonzalez <[email protected]>

---

diff -r a52d5e9e9c91 include/linux/input.h
--- a/include/linux/input.h Mon Jan 14 16:13:06 2008 -0800
+++ b/include/linux/input.h Mon Jan 14 16:23:40 2008 -0800
@@ -362,6 +362,8 @@ struct input_absinfo {
#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
#define KEY_DISPLAY_OFF 245 /* display device to off state */
+
+#define KEY_WIMAX 246

#define BTN_MISC 0x100
#define BTN_0 0x100
diff -r a52d5e9e9c91 include/linux/rfkill.h
--- a/include/linux/rfkill.h Mon Jan 14 16:13:06 2008 -0800
+++ b/include/linux/rfkill.h Mon Jan 14 16:23:40 2008 -0800
@@ -33,11 +33,13 @@
* RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
* RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
* RFKILL_TYPE_UWB: switch is on a ultra wideband device.
+ * RFKILL_TYPE_WIMAX: switch is on a WiMAX device.
*/
enum rfkill_type {
RFKILL_TYPE_WLAN ,
RFKILL_TYPE_BLUETOOTH,
RFKILL_TYPE_UWB,
+ RFKILL_TYPE_WIMAX,
RFKILL_TYPE_MAX,
};

diff -r a52d5e9e9c91 net/rfkill/rfkill-input.c
--- a/net/rfkill/rfkill-input.c Mon Jan 14 16:13:06 2008 -0800
+++ b/net/rfkill/rfkill-input.c Mon Jan 14 16:23:40 2008 -0800
@@ -84,6 +84,7 @@ static DEFINE_RFKILL_TASK(rfkill_wlan, R
static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN);
static DEFINE_RFKILL_TASK(rfkill_bt, RFKILL_TYPE_BLUETOOTH);
static DEFINE_RFKILL_TASK(rfkill_uwb, RFKILL_TYPE_UWB);
+static DEFINE_RFKILL_TASK(rfkill_wimax, RFKILL_TYPE_WIMAX);

static void rfkill_event(struct input_handle *handle, unsigned int type,
unsigned int code, int down)
@@ -98,6 +99,9 @@ static void rfkill_event(struct input_ha
break;
case KEY_UWB:
rfkill_schedule_toggle(&rfkill_uwb);
+ break;
+ case KEY_WIMAX:
+ rfkill_schedule_toggle(&rfkill_wimax);
break;
default:
break;
@@ -158,6 +162,11 @@ static const struct input_device_id rfki
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(KEY_UWB)] = BIT_MASK(KEY_UWB) },
+ },
+ {
+ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
+ .evbit = { BIT_MASK(EV_KEY) },
+ .keybit = { [BIT_WORD(KEY_WIMAX)] = BIT_MASK(KEY_WIMAX) },
},
{ }
};
diff -r a52d5e9e9c91 net/rfkill/rfkill.c
--- a/net/rfkill/rfkill.c Mon Jan 14 16:13:06 2008 -0800
+++ b/net/rfkill/rfkill.c Mon Jan 14 16:23:40 2008 -0800
@@ -126,6 +126,9 @@ static ssize_t rfkill_type_show(struct d
case RFKILL_TYPE_UWB:
type = "ultrawideband";
break;
+ case RFKILL_TYPE_WIMAX:
+ type = "wimax";
+ break;
default:
BUG();
}

2008-01-29 19:02:15

by Inaky Perez-Gonzalez

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

On Monday 28 January 2008, John W. Linville wrote:
> On Mon, Jan 28, 2008 at 08:56:03AM -0500, Dmitry Torokhov wrote:
>
> > Yes, that should work, thank you. This will go through the network
> > tree, right?
>
> Yes, I've got it.

Thank you all :)


2008-01-23 21:36:43

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

On Wednesday 23 January 2008 22:24:38 Inaky Perez-Gonzalez wrote:
> @@ -150,7 +154,7 @@ static const struct input_device_id rfki
> .keybit = { [BIT_WORD(KEY_WLAN)] = BIT_MASK(KEY_WLAN) },
> },
> {
> - .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,

Why are you adding a bogus whitespace to the start of the line here?

> .evbit = { BIT_MASK(EV_KEY) },
> .keybit = { [BIT_WORD(KEY_BLUETOOTH)] = BIT_MASK(KEY_BLUETOOTH) },
> },

--
Greetings Michael.

2008-01-28 15:32:17

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

On Mon, Jan 28, 2008 at 08:56:03AM -0500, Dmitry Torokhov wrote:

> Yes, that should work, thank you. This will go through the network
> tree, right?

Yes, I've got it.

Thanks,

John
--
John W. Linville
[email protected]

2008-01-28 13:56:09

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

Hi Inaky,

On Wed, Jan 23, 2008 at 01:38:53PM -0800, Inaky Perez-Gonzalez wrote:
>
> Dimitry, are you ok with the include/linux/input.h part \
> of the patch below (chopped); full version at
>
> http://marc.info/?l=linux-wireless&m=120112423923171&w=2
>
> >
> > > ---
> > >
> > > diff -r a52d5e9e9c91 include/linux/input.h
> > > --- a/include/linux/input.h Mon Jan 14 16:13:06 2008 -0800
> > > +++ b/include/linux/input.h Mon Jan 14 16:23:40 2008 -0800
> > > @@ -362,6 +362,8 @@ struct input_absinfo {
> > > #define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
> > > #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
> > > #define KEY_DISPLAY_OFF 245 /* display device to off state */
> > > +
> > > +#define KEY_WIMAX 246
> > >
> > > #define BTN_MISC 0x100
> > > #define BTN_0 0x100
> > > diff -r a52d5e9e9c91 include/linux/rfkill.h

Yes, that should work, thank you. This will go through the network
tree, right?

--
Dmitry

2008-01-23 21:30:50

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type

On Wednesday 23 January 2008, Inaky Perez-Gonzalez wrote:
> rfkill: add the WiMAX radio type
>
> Teach rfkill about wimax radios.
>
> Had to define a KEY_WIMAX as a 'key for disabling only wimax radios',
> as other radio technologies have. This makes sense as hardware has
> specific keys for disabling specific radios.
>
> The RFKILL enabling part is, otherwise, a copy and paste of any other
> radio technology.
>
> Signed-off-by: Inaky Perez-Gonzalez <[email protected]>

For the rfkill part of the patch:
Signed-off-by: Ivo van Doorn <[email protected]>

> ---
>
> diff -r a52d5e9e9c91 include/linux/input.h
> --- a/include/linux/input.h Mon Jan 14 16:13:06 2008 -0800
> +++ b/include/linux/input.h Mon Jan 14 16:23:40 2008 -0800
> @@ -362,6 +362,8 @@ struct input_absinfo {
> #define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
> #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
> #define KEY_DISPLAY_OFF 245 /* display device to off state */
> +
> +#define KEY_WIMAX 246
>
> #define BTN_MISC 0x100
> #define BTN_0 0x100
> diff -r a52d5e9e9c91 include/linux/rfkill.h
> --- a/include/linux/rfkill.h Mon Jan 14 16:13:06 2008 -0800
> +++ b/include/linux/rfkill.h Mon Jan 14 16:23:40 2008 -0800
> @@ -33,11 +33,13 @@
> * RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
> * RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
> * RFKILL_TYPE_UWB: switch is on a ultra wideband device.
> + * RFKILL_TYPE_WIMAX: switch is on a WiMAX device.
> */
> enum rfkill_type {
> RFKILL_TYPE_WLAN ,
> RFKILL_TYPE_BLUETOOTH,
> RFKILL_TYPE_UWB,
> + RFKILL_TYPE_WIMAX,
> RFKILL_TYPE_MAX,
> };
>
> diff -r a52d5e9e9c91 net/rfkill/rfkill-input.c
> --- a/net/rfkill/rfkill-input.c Mon Jan 14 16:13:06 2008 -0800
> +++ b/net/rfkill/rfkill-input.c Mon Jan 14 16:23:40 2008 -0800
> @@ -84,6 +84,7 @@ static DEFINE_RFKILL_TASK(rfkill_wlan, R
> static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN);
> static DEFINE_RFKILL_TASK(rfkill_bt, RFKILL_TYPE_BLUETOOTH);
> static DEFINE_RFKILL_TASK(rfkill_uwb, RFKILL_TYPE_UWB);
> +static DEFINE_RFKILL_TASK(rfkill_wimax, RFKILL_TYPE_WIMAX);
>
> static void rfkill_event(struct input_handle *handle, unsigned int type,
> unsigned int code, int down)
> @@ -98,6 +99,9 @@ static void rfkill_event(struct input_ha
> break;
> case KEY_UWB:
> rfkill_schedule_toggle(&rfkill_uwb);
> + break;
> + case KEY_WIMAX:
> + rfkill_schedule_toggle(&rfkill_wimax);
> break;
> default:
> break;
> @@ -150,7 +154,7 @@ static const struct input_device_id rfki
> .keybit = { [BIT_WORD(KEY_WLAN)] = BIT_MASK(KEY_WLAN) },
> },
> {
> - .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> .evbit = { BIT_MASK(EV_KEY) },
> .keybit = { [BIT_WORD(KEY_BLUETOOTH)] = BIT_MASK(KEY_BLUETOOTH) },
> },
> @@ -158,6 +162,11 @@ static const struct input_device_id rfki
> .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> .evbit = { BIT_MASK(EV_KEY) },
> .keybit = { [BIT_WORD(KEY_UWB)] = BIT_MASK(KEY_UWB) },
> + },
> + {
> + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
> + .evbit = { BIT_MASK(EV_KEY) },
> + .keybit = { [BIT_WORD(KEY_WIMAX)] = BIT_MASK(KEY_WIMAX) },
> },
> { }
> };
> diff -r a52d5e9e9c91 net/rfkill/rfkill.c
> --- a/net/rfkill/rfkill.c Mon Jan 14 16:13:06 2008 -0800
> +++ b/net/rfkill/rfkill.c Mon Jan 14 16:23:40 2008 -0800
> @@ -126,6 +126,9 @@ static ssize_t rfkill_type_show(struct d
> case RFKILL_TYPE_UWB:
> type = "ultrawideband";
> break;
> + case RFKILL_TYPE_WIMAX:
> + type = "wimax";
> + break;
> default:
> BUG();
> }
>



2008-01-23 21:40:27

by Inaky Perez-Gonzalez

[permalink] [raw]
Subject: Re: [PATCH] rfkill: add the WiMAX radio type


Ouch, I forgot to CC Dimitry :( My apologies

On Wednesday 23 January 2008, Ivo van Doorn wrote:
> On Wednesday 23 January 2008, Inaky Perez-Gonzalez wrote:
> > rfkill: add the WiMAX radio type
> >
> > Teach rfkill about wimax radios.
> >
> > Had to define a KEY_WIMAX as a 'key for disabling only wimax radios',
> > as other radio technologies have. This makes sense as hardware has
> > specific keys for disabling specific radios.
> >
> > The RFKILL enabling part is, otherwise, a copy and paste of any other
> > radio technology.
> >
> > Signed-off-by: Inaky Perez-Gonzalez <[email protected]>
>
> For the rfkill part of the patch:
> Signed-off-by: Ivo van Doorn <[email protected]>

Dimitry, are you ok with the include/linux/input.h part \
of the patch below (chopped); full version at

http://marc.info/?l=linux-wireless&m=120112423923171&w=2

>
> > ---
> >
> > diff -r a52d5e9e9c91 include/linux/input.h
> > --- a/include/linux/input.h Mon Jan 14 16:13:06 2008 -0800
> > +++ b/include/linux/input.h Mon Jan 14 16:23:40 2008 -0800
> > @@ -362,6 +362,8 @@ struct input_absinfo {
> > #define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
> > #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
> > #define KEY_DISPLAY_OFF 245 /* display device to off state */
> > +
> > +#define KEY_WIMAX 246
> >
> > #define BTN_MISC 0x100
> > #define BTN_0 0x100
> > diff -r a52d5e9e9c91 include/linux/rfkill.h