All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
To: Zhangfei Gao <zhangfei.gao@linaro.org>
Cc: devicetree@vger.kernel.org, arnd@arndb.de,
	haifeng.yan@linaro.org, "David Härdeman" <david@hardeman.nu>,
	jchxue@gmail.com, linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH v2 3/3] [media] rc: remove change_protocol in rc-ir-raw.c
Date: Thu, 21 Aug 2014 06:50:06 -0500	[thread overview]
Message-ID: <20140821065006.6d831ec4@concha.lan> (raw)
In-Reply-To: <1408613086-12538-4-git-send-email-zhangfei.gao@linaro.org>

Em Thu, 21 Aug 2014 17:24:45 +0800
Zhangfei Gao <zhangfei.gao@linaro.org> escreveu:

> With commit 4924a311a62f ("[media] rc-core: rename ir-raw.c"),
> empty change_protocol was introduced.

No. This was introduced on this changeset:

commit da6e162d6a4607362f8478c715c797d84d449f8b
Author: David Härdeman <david@hardeman.nu>
Date:   Thu Apr 3 20:32:16 2014 -0300

    [media] rc-core: simplify sysfs code

> As a result, rc_register_device will set dev->enabled_protocols
> addording to rc_map->rc_type, which prevent using all protocols.

I strongly suspect that this patch will break some things, as
the new code seems to expect that this is always be set. 

See the code at store_protocols(): if this callback is not set,
then it won't allow to disable a protocol.

Also, this doesn't prevent using all protocols. You can still use
"ir-keytable -p all" to enable all protocols (the "all" protocol
type were introduced recently at the userspace tool).

>From the way I see, setting the protocol when a table is loaded
is not a bad thing, as:
- if RC tables are loaded, the needed protocol to decode it is
  already known;
- by running just one IR decoder, the IR handling routine will
  be faster and will consume less power;
- on a real case scenario, it is a way more likely that just one
  decoder will ever be needed by the end user.

So, I think that this is just annoying for developers when are checking
if all decoders are working, by sending keycodes from different IR types
at the same time.

> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  drivers/media/rc/rc-ir-raw.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
> index e8fff2a..a118539 100644
> --- a/drivers/media/rc/rc-ir-raw.c
> +++ b/drivers/media/rc/rc-ir-raw.c
> @@ -240,12 +240,6 @@ ir_raw_get_allowed_protocols(void)
>  	return protocols;
>  }
>  
> -static int change_protocol(struct rc_dev *dev, u64 *rc_type)
> -{
> -	/* the caller will update dev->enabled_protocols */
> -	return 0;
> -}
> -
>  /*
>   * Used to (un)register raw event clients
>   */
> @@ -263,7 +257,6 @@ int ir_raw_event_register(struct rc_dev *dev)
>  
>  	dev->raw->dev = dev;
>  	dev->enabled_protocols = ~0;
> -	dev->change_protocol = change_protocol;
>  	rc = kfifo_alloc(&dev->raw->kfifo,
>  			 sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
>  			 GFP_KERNEL);


-- 

Cheers,
Mauro

WARNING: multiple messages have this Message-ID (diff)
From: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
To: Zhangfei Gao <zhangfei.gao@linaro.org>
Cc: "David Härdeman" <david@hardeman.nu>,
	arnd@arndb.de, haifeng.yan@linaro.org, jchxue@gmail.com,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH v2 3/3] [media] rc: remove change_protocol in rc-ir-raw.c
Date: Thu, 21 Aug 2014 06:50:06 -0500	[thread overview]
Message-ID: <20140821065006.6d831ec4@concha.lan> (raw)
In-Reply-To: <1408613086-12538-4-git-send-email-zhangfei.gao@linaro.org>

Em Thu, 21 Aug 2014 17:24:45 +0800
Zhangfei Gao <zhangfei.gao@linaro.org> escreveu:

> With commit 4924a311a62f ("[media] rc-core: rename ir-raw.c"),
> empty change_protocol was introduced.

No. This was introduced on this changeset:

commit da6e162d6a4607362f8478c715c797d84d449f8b
Author: David Härdeman <david@hardeman.nu>
Date:   Thu Apr 3 20:32:16 2014 -0300

    [media] rc-core: simplify sysfs code

> As a result, rc_register_device will set dev->enabled_protocols
> addording to rc_map->rc_type, which prevent using all protocols.

I strongly suspect that this patch will break some things, as
the new code seems to expect that this is always be set. 

See the code at store_protocols(): if this callback is not set,
then it won't allow to disable a protocol.

Also, this doesn't prevent using all protocols. You can still use
"ir-keytable -p all" to enable all protocols (the "all" protocol
type were introduced recently at the userspace tool).

>From the way I see, setting the protocol when a table is loaded
is not a bad thing, as:
- if RC tables are loaded, the needed protocol to decode it is
  already known;
- by running just one IR decoder, the IR handling routine will
  be faster and will consume less power;
- on a real case scenario, it is a way more likely that just one
  decoder will ever be needed by the end user.

So, I think that this is just annoying for developers when are checking
if all decoders are working, by sending keycodes from different IR types
at the same time.

> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  drivers/media/rc/rc-ir-raw.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
> index e8fff2a..a118539 100644
> --- a/drivers/media/rc/rc-ir-raw.c
> +++ b/drivers/media/rc/rc-ir-raw.c
> @@ -240,12 +240,6 @@ ir_raw_get_allowed_protocols(void)
>  	return protocols;
>  }
>  
> -static int change_protocol(struct rc_dev *dev, u64 *rc_type)
> -{
> -	/* the caller will update dev->enabled_protocols */
> -	return 0;
> -}
> -
>  /*
>   * Used to (un)register raw event clients
>   */
> @@ -263,7 +257,6 @@ int ir_raw_event_register(struct rc_dev *dev)
>  
>  	dev->raw->dev = dev;
>  	dev->enabled_protocols = ~0;
> -	dev->change_protocol = change_protocol;
>  	rc = kfifo_alloc(&dev->raw->kfifo,
>  			 sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
>  			 GFP_KERNEL);


-- 

Cheers,
Mauro

WARNING: multiple messages have this Message-ID (diff)
From: mchehab@osg.samsung.com (Mauro Carvalho Chehab)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 3/3] [media] rc: remove change_protocol in rc-ir-raw.c
Date: Thu, 21 Aug 2014 06:50:06 -0500	[thread overview]
Message-ID: <20140821065006.6d831ec4@concha.lan> (raw)
In-Reply-To: <1408613086-12538-4-git-send-email-zhangfei.gao@linaro.org>

Em Thu, 21 Aug 2014 17:24:45 +0800
Zhangfei Gao <zhangfei.gao@linaro.org> escreveu:

> With commit 4924a311a62f ("[media] rc-core: rename ir-raw.c"),
> empty change_protocol was introduced.

No. This was introduced on this changeset:

commit da6e162d6a4607362f8478c715c797d84d449f8b
Author: David H?rdeman <david@hardeman.nu>
Date:   Thu Apr 3 20:32:16 2014 -0300

    [media] rc-core: simplify sysfs code

> As a result, rc_register_device will set dev->enabled_protocols
> addording to rc_map->rc_type, which prevent using all protocols.

I strongly suspect that this patch will break some things, as
the new code seems to expect that this is always be set. 

See the code at store_protocols(): if this callback is not set,
then it won't allow to disable a protocol.

Also, this doesn't prevent using all protocols. You can still use
"ir-keytable -p all" to enable all protocols (the "all" protocol
type were introduced recently at the userspace tool).

>From the way I see, setting the protocol when a table is loaded
is not a bad thing, as:
- if RC tables are loaded, the needed protocol to decode it is
  already known;
- by running just one IR decoder, the IR handling routine will
  be faster and will consume less power;
- on a real case scenario, it is a way more likely that just one
  decoder will ever be needed by the end user.

So, I think that this is just annoying for developers when are checking
if all decoders are working, by sending keycodes from different IR types
at the same time.

> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  drivers/media/rc/rc-ir-raw.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
> index e8fff2a..a118539 100644
> --- a/drivers/media/rc/rc-ir-raw.c
> +++ b/drivers/media/rc/rc-ir-raw.c
> @@ -240,12 +240,6 @@ ir_raw_get_allowed_protocols(void)
>  	return protocols;
>  }
>  
> -static int change_protocol(struct rc_dev *dev, u64 *rc_type)
> -{
> -	/* the caller will update dev->enabled_protocols */
> -	return 0;
> -}
> -
>  /*
>   * Used to (un)register raw event clients
>   */
> @@ -263,7 +257,6 @@ int ir_raw_event_register(struct rc_dev *dev)
>  
>  	dev->raw->dev = dev;
>  	dev->enabled_protocols = ~0;
> -	dev->change_protocol = change_protocol;
>  	rc = kfifo_alloc(&dev->raw->kfifo,
>  			 sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
>  			 GFP_KERNEL);


-- 

Cheers,
Mauro

  reply	other threads:[~2014-08-21 11:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-21  9:24 [PATCH v2 0/3] Introduce hix5hd2 IR transmitter driver Zhangfei Gao
2014-08-21  9:24 ` Zhangfei Gao
2014-08-21  9:24 ` [PATCH v2 1/3] rc: Add DT bindings for hix5hd2 Zhangfei Gao
2014-08-21  9:24   ` Zhangfei Gao
2014-08-21  9:24 ` [PATCH v2 2/3] rc: Introduce hix5hd2 IR transmitter driver Zhangfei Gao
2014-08-21  9:24   ` Zhangfei Gao
2014-08-21 10:07   ` Sean Young
2014-08-21 10:07     ` Sean Young
2014-08-21 10:07     ` Sean Young
2014-08-27  8:49     ` zhangfei
2014-08-27  8:49       ` zhangfei
2014-08-27  9:51       ` Sean Young
2014-08-27  9:51         ` Sean Young
2014-08-27 10:10         ` zhangfei
2014-08-27 10:10           ` zhangfei
2014-08-27 13:15           ` Sean Young
2014-08-27 13:15             ` Sean Young
     [not found] ` <1408613086-12538-1-git-send-email-zhangfei.gao-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-08-21  9:24   ` [PATCH v2 3/3] [media] rc: remove change_protocol in rc-ir-raw.c Zhangfei Gao
2014-08-21  9:24     ` Zhangfei Gao
2014-08-21  9:24     ` Zhangfei Gao
2014-08-21 11:50     ` Mauro Carvalho Chehab [this message]
2014-08-21 11:50       ` Mauro Carvalho Chehab
2014-08-21 11:50       ` Mauro Carvalho Chehab
2014-08-27  8:42       ` zhangfei
2014-08-27  8:42         ` zhangfei
2014-08-27 11:34         ` Mauro Carvalho Chehab
2014-08-27 11:34           ` Mauro Carvalho Chehab
2014-08-28  9:18           ` zhangfei
2014-08-28  9:18             ` zhangfei

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140821065006.6d831ec4@concha.lan \
    --to=mchehab@osg.samsung.com \
    --cc=arnd@arndb.de \
    --cc=david@hardeman.nu \
    --cc=devicetree@vger.kernel.org \
    --cc=haifeng.yan@linaro.org \
    --cc=jchxue@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-media@vger.kernel.org \
    --cc=zhangfei.gao@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.