Re: [patch 0/1] Adding radio type FM

From: Marcel Holtmann
Date: Thu Nov 12 2009 - 22:23:03 EST


Hi Janakiram,

> From 1b1493392faeb6702ff364447b135e481930b397 Mon Sep 17 00:00:00 2001
> From: Janakiram Sistla <janakiram.sistla@xxxxxxxxx>
> Date: Fri, 13 Nov 2009 08:16:26 +0530
> Subject: [PATCH 1/1] Adding radio type FM
>
> Adding radio type FM in RFKILL_TYPE_.FM also belongs to
> same class of with both TX/RX capability.
> Also Added input type for the above same.
>
> Signed-off-by: Janakiram Sistla <janakiram.sistla@xxxxxxxxx>
> ---
> include/linux/input.h | 1 +
> include/linux/rfkill.h | 1 +
> net/rfkill/core.c | 2 ++
> net/rfkill/input.c | 9 +++++++++
> 4 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/input.h b/include/linux/input.h
> index 0ccfc30..f03ae90 100644
> --- a/include/linux/input.h
> +++ b/include/linux/input.h
> @@ -376,6 +376,7 @@ struct input_absinfo {
> #define KEY_DISPLAY_OFF 245 /* display device to off state */
>
> #define KEY_WIMAX 246
> +#define KEY_FM 247
>
> /* Range 248 - 255 is reserved for special needs of AT keyboard driver */
>
> diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
> index 3392c59..03f5598 100644
> --- a/include/linux/rfkill.h
> +++ b/include/linux/rfkill.h
> @@ -45,6 +45,7 @@ enum rfkill_type {
> RFKILL_TYPE_WIMAX,
> RFKILL_TYPE_WWAN,
> RFKILL_TYPE_GPS,
> + RFKILL_TYPE_FM,
> NUM_RFKILL_TYPES,
> };
>
> diff --git a/net/rfkill/core.c b/net/rfkill/core.c
> index ba2efb9..b8ac206 100644
> --- a/net/rfkill/core.c
> +++ b/net/rfkill/core.c
> @@ -592,6 +592,8 @@ static const char *rfkill_get_type_str(enum
> rfkill_type type)
> return "wwan";
> case RFKILL_TYPE_GPS:
> return "gps";
> + case RRFKILL_TYPE_FM:
> + return "fm";
> default:
> BUG();
> }

this part is fine with me.

> diff --git a/net/rfkill/input.c b/net/rfkill/input.c
> index a7295ad..f51b16d 100644
> --- a/net/rfkill/input.c
> +++ b/net/rfkill/input.c
> @@ -212,6 +212,9 @@ static void rfkill_event(struct input_handle
> *handle, unsigned int type,
> case KEY_WIMAX:
> rfkill_schedule_toggle(RFKILL_TYPE_WIMAX);
> break;
> + case KEY_FM:
> + rfkill_schedule_toggle(RFKILL_TYPE_FM);
> + break;
> }
> } else if (type == EV_SW && code == SW_RFKILL_ALL)
> rfkill_schedule_evsw_rfkillall(data);
> @@ -290,6 +293,12 @@ static const struct input_device_id rfkill_ids[] = {
> .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_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) },

So besides the pointed of the copy-and-paste mistake, I don't think we
should be doing this. Unless you point me to hardware that actually has
a physical RFKILL button for FM. We also didn't add key define for GPS
since there is no hardware that has this.

If you think you need this for some weird handling then go one step back
and read the re-written RFKILL subsystem design.

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/