Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Srinivas KANDAGATLA
On 29/08/13 13:01, Sean Young wrote:
> On Thu, Aug 29, 2013 at 12:29:00PM +0100, Srinivas KANDAGATLA wrote:
>> On 29/08/13 10:11, Sean Young wrote:
>>> On Wed, Aug 28, 2013 at 04:33:50PM +0100, Srinivas KANDAGATLA wrote:
 From: Srinivas Kandagatla 
 +config RC_ST
 +  tristate "ST remote control receiver"
 +  depends on ARCH_STI && LIRC && OF
>>>
>>> Minor nitpick, this should not depend on LIRC, it depends on RC_CORE.
>> Yes, I will make it depend on RC_CORE, remove OF as suggested by Mauro
>> CC and select LIRC to something like.
>>
>> depends on ARCH_STI && RC_CORE
>> select LIRC
> 
> The driver is usable with the kernel ir decoders, there is no need to 
> select LIRC or use lirc at all.
> 
> You can either define a remote in drivers/media/rc/keymaps and set 
> the rcdev->map_name, or it can be loaded at runtime using ir-keytable(1);
> either way you don't need to use a lirc userspace daemon.
Yep.. got it.
I will remove LIRC selection.

Thanks,
srini
> 
> 
> Sean
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Sean Young
On Thu, Aug 29, 2013 at 12:29:00PM +0100, Srinivas KANDAGATLA wrote:
> On 29/08/13 10:11, Sean Young wrote:
> > On Wed, Aug 28, 2013 at 04:33:50PM +0100, Srinivas KANDAGATLA wrote:
> >> From: Srinivas Kandagatla 
> >> +config RC_ST
> >> +  tristate "ST remote control receiver"
> >> +  depends on ARCH_STI && LIRC && OF
> > 
> > Minor nitpick, this should not depend on LIRC, it depends on RC_CORE.
> Yes, I will make it depend on RC_CORE, remove OF as suggested by Mauro
> CC and select LIRC to something like.
> 
> depends on ARCH_STI && RC_CORE
> select LIRC

The driver is usable with the kernel ir decoders, there is no need to 
select LIRC or use lirc at all.

You can either define a remote in drivers/media/rc/keymaps and set 
the rcdev->map_name, or it can be loaded at runtime using ir-keytable(1);
either way you don't need to use a lirc userspace daemon.


Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Srinivas KANDAGATLA
On 29/08/13 11:49, Mauro Carvalho Chehab wrote:
>>> +MODULE_AUTHOR("STMicroelectronics (R&D) Ltd");
>>> > > +MODULE_LICENSE("GPL");
>>> > > -- 
>>> > > 1.7.6.5
> Except for the few points that Sean commented, the patch seems ok on my eyes.

Thankyou for reviewing. I will send v3 with the fixes.

thanks,
srini


> 
> Regards,
> Mauro
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Srinivas KANDAGATLA
On 29/08/13 10:11, Sean Young wrote:
> On Wed, Aug 28, 2013 at 04:33:50PM +0100, Srinivas KANDAGATLA wrote:
>> From: Srinivas Kandagatla 
>>
>> This patch adds support to ST RC driver, which is basically a IR/UHF
>> receiver and transmitter. This IP (IRB) is common across all the ST
>> parts for settop box platforms. IRB is embedded in ST COMMS IP block.
>> It supports both Rx & Tx functionality.
>>
>> In this driver adds only Rx functionality via LIRC codec.
>>
>> Signed-off-by: Srinivas Kandagatla 
>> ---
>> Hi Chehab,
>>
>> This is a very simple rc driver for IRB controller found in STi ARM CA9 SOCs.
>> STi ARM SOC support went in 3.11 recently.
>> This driver is a raw driver which feeds data to lirc codec for the user lircd
>> to decode the keys.
>>
>> This patch is based on git://linuxtv.org/media_tree.git master branch.
>>
>> Changes since v1:
>>  - Device tree bindings cleaned up as suggested by Mark and Pawel
>>  - use ir_raw_event_reset under overflow conditions as suggested by Sean.
>>  - call ir_raw_event_handle in interrupt handler as suggested by Sean.
>>  - correct allowed_protos flag with RC_BIT_ types as suggested by Sean.
>>  - timeout and rx resolution added as suggested by Sean.
> 
> Acked-by: Sean Young 

Thankyou Sean for the Ack.
> 
> Note minor nitpicks below.
>>
>> Thanks,
>> srini
>>
>>  Documentation/devicetree/bindings/media/st-rc.txt |   24 ++
>>  drivers/media/rc/Kconfig  |   10 +
>>  drivers/media/rc/Makefile |1 +
>>  drivers/media/rc/st_rc.c  |  392 
>> +
>>  4 files changed, 427 insertions(+), 0 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/media/st-rc.txt
>>  create mode 100644 drivers/media/rc/st_rc.c
>>

>> diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
>> index 11e84bc..bf301ed 100644
>> --- a/drivers/media/rc/Kconfig
>> +++ b/drivers/media/rc/Kconfig
>> @@ -322,4 +322,14 @@ config IR_GPIO_CIR
>> To compile this driver as a module, choose M here: the module will
>> be called gpio-ir-recv.
>>  
>> +config RC_ST
>> +tristate "ST remote control receiver"
>> +depends on ARCH_STI && LIRC && OF
> 
> Minor nitpick, this should not depend on LIRC, it depends on RC_CORE.
Yes, I will make it depend on RC_CORE, remove OF as suggested by Mauro
CC and select LIRC to something like.

depends on ARCH_STI && RC_CORE
select LIRC

>> +static int st_rc_probe(struct platform_device *pdev)
>> +{
>> +int ret = -EINVAL;
>> +struct rc_dev *rdev;
>> +struct device *dev = &pdev->dev;
>> +struct resource *res;
>> +struct st_rc_device *rc_dev;
>> +struct device_node *np = pdev->dev.of_node;
>> +const char *rx_mode;
>> +
>> +rc_dev = devm_kzalloc(dev, sizeof(struct st_rc_device), GFP_KERNEL);
>> +rdev = rc_allocate_device();
>> +
>> +if (!rc_dev || !rdev)
>> +return -ENOMEM;
> 
> If one fails and the other succeeds you have a leak.

Yes... I will fix it in v3.
> 
>> +
>> +if (np && !of_property_read_string(np, "rx-mode", &rx_mode)) {
>> +

[...]

>> +static SIMPLE_DEV_PM_OPS(st_rc_pm_ops, st_rc_suspend, st_rc_resume);
>> +#endif
>> +
>> +#ifdef CONFIG_OF
> 
> Since this depends on OF it will always be defined.
Removed OF dependency in Kconfig.
>> +module_platform_driver(st_rc_driver);
>> +
>> +MODULE_DESCRIPTION("RC Transceiver driver for STMicroelectronics 
>> platforms");
>> +MODULE_AUTHOR("STMicroelectronics (R&D) Ltd");
>> +MODULE_LICENSE("GPL");
>> -- 
>> 1.7.6.5
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Mauro Carvalho Chehab
Em Thu, 29 Aug 2013 10:11:56 +0100
Sean Young  escreveu:

> On Wed, Aug 28, 2013 at 04:33:50PM +0100, Srinivas KANDAGATLA wrote:
> > From: Srinivas Kandagatla 
> > 
> > This patch adds support to ST RC driver, which is basically a IR/UHF
> > receiver and transmitter. This IP (IRB) is common across all the ST
> > parts for settop box platforms. IRB is embedded in ST COMMS IP block.
> > It supports both Rx & Tx functionality.
> > 
> > In this driver adds only Rx functionality via LIRC codec.
> > 
> > Signed-off-by: Srinivas Kandagatla 
> > ---
> > Hi Chehab,
> > 
> > This is a very simple rc driver for IRB controller found in STi ARM CA9 
> > SOCs.
> > STi ARM SOC support went in 3.11 recently.
> > This driver is a raw driver which feeds data to lirc codec for the user 
> > lircd
> > to decode the keys.
> > 
> > This patch is based on git://linuxtv.org/media_tree.git master branch.
> > 
> > Changes since v1:
> > - Device tree bindings cleaned up as suggested by Mark and Pawel
> > - use ir_raw_event_reset under overflow conditions as suggested by Sean.
> > - call ir_raw_event_handle in interrupt handler as suggested by Sean.
> > - correct allowed_protos flag with RC_BIT_ types as suggested by Sean.
> > - timeout and rx resolution added as suggested by Sean.
> 
> Acked-by: Sean Young 
> 
> Note minor nitpicks below.
> > 
> > Thanks,
> > srini
> > 
> >  Documentation/devicetree/bindings/media/st-rc.txt |   24 ++
> >  drivers/media/rc/Kconfig  |   10 +
> >  drivers/media/rc/Makefile |1 +
> >  drivers/media/rc/st_rc.c  |  392 
> > +
> >  4 files changed, 427 insertions(+), 0 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/media/st-rc.txt
> >  create mode 100644 drivers/media/rc/st_rc.c
> > 
> > diff --git a/Documentation/devicetree/bindings/media/st-rc.txt 
> > b/Documentation/devicetree/bindings/media/st-rc.txt
> > new file mode 100644
> > index 000..20fe264
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/st-rc.txt
> > @@ -0,0 +1,24 @@
> > +Device-Tree bindings for ST IRB IP
> > +
> > +Required properties:
> > +   - compatible: should be "st,comms-irb".
> > +   - reg: base physical address of the controller and length of memory
> > +   mapped  region.
> > +   - interrupts: interrupt number to the cpu. The interrupt specifier
> > +   format depends on the interrupt controller parent.
> > +
> > +Optional properties:
> > +   - rx-mode: can be "infrared" or "uhf".
> > +   - tx-mode: should be "infrared".
> > +   - pinctrl-names, pinctrl-0: the pincontrol settings to configure
> > +   muxing properly for IRB pins.
> > +   - clocks : phandle of clock.
> > +
> > +Example node:
> > +
> > +   rc: rc@fe518000 {
> > +   compatible  = "st,comms-irb";
> > +   reg = <0xfe518000 0x234>;
> > +   interrupts  =  <0 203 0>;
> > +   rx-mode = "infrared";
> > +   };
> > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> > index 11e84bc..bf301ed 100644
> > --- a/drivers/media/rc/Kconfig
> > +++ b/drivers/media/rc/Kconfig
> > @@ -322,4 +322,14 @@ config IR_GPIO_CIR
> >To compile this driver as a module, choose M here: the module will
> >be called gpio-ir-recv.
> >  
> > +config RC_ST
> > +   tristate "ST remote control receiver"
> > +   depends on ARCH_STI && LIRC && OF
> 
> Minor nitpick, this should not depend on LIRC, it depends on RC_CORE.
> 
> > +   help
> > +Say Y here if you want support for ST remote control driver
> > +which allows both IR and UHF RX.
> > +The driver passes raw pluse and space information to the LIRC decoder.
> > +
> > +If you're not sure, select N here.
> > +
> >  endif #RC_DEVICES
> > diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
> > index 56bacf0..f4eb32c 100644
> > --- a/drivers/media/rc/Makefile
> > +++ b/drivers/media/rc/Makefile
> > @@ -30,3 +30,4 @@ obj-$(CONFIG_RC_LOOPBACK) += rc-loopback.o
> >  obj-$(CONFIG_IR_GPIO_CIR) += gpio-ir-recv.o
> >  obj-$(CONFIG_IR_IGUANA) += iguanair.o
> >  obj-$(CONFIG_IR_TTUSBIR) += ttusbir.o
> > +obj-$(CONFIG_RC_ST) += st_rc.o
> > diff --git a/drivers/media/rc/st_rc.c b/drivers/media/rc/st_rc.c
> > new file mode 100644
> > index 000..5caa6c5
> > --- /dev/null
> > +++ b/drivers/media/rc/st_rc.c
> > @@ -0,0 +1,392 @@
> > +/*
> > + * Copyright (C) 2013 STMicroelectronics Limited
> > + * Author: Srinivas Kandagatla 
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +
> > +struct st_rc_device {
> > +   struct device

Re: [PATCH v2] media: st-rc: Add ST remote control driver

2013-08-29 Thread Sean Young
On Wed, Aug 28, 2013 at 04:33:50PM +0100, Srinivas KANDAGATLA wrote:
> From: Srinivas Kandagatla 
> 
> This patch adds support to ST RC driver, which is basically a IR/UHF
> receiver and transmitter. This IP (IRB) is common across all the ST
> parts for settop box platforms. IRB is embedded in ST COMMS IP block.
> It supports both Rx & Tx functionality.
> 
> In this driver adds only Rx functionality via LIRC codec.
> 
> Signed-off-by: Srinivas Kandagatla 
> ---
> Hi Chehab,
> 
> This is a very simple rc driver for IRB controller found in STi ARM CA9 SOCs.
> STi ARM SOC support went in 3.11 recently.
> This driver is a raw driver which feeds data to lirc codec for the user lircd
> to decode the keys.
> 
> This patch is based on git://linuxtv.org/media_tree.git master branch.
> 
> Changes since v1:
>   - Device tree bindings cleaned up as suggested by Mark and Pawel
>   - use ir_raw_event_reset under overflow conditions as suggested by Sean.
>   - call ir_raw_event_handle in interrupt handler as suggested by Sean.
>   - correct allowed_protos flag with RC_BIT_ types as suggested by Sean.
>   - timeout and rx resolution added as suggested by Sean.

Acked-by: Sean Young 

Note minor nitpicks below.
> 
> Thanks,
> srini
> 
>  Documentation/devicetree/bindings/media/st-rc.txt |   24 ++
>  drivers/media/rc/Kconfig  |   10 +
>  drivers/media/rc/Makefile |1 +
>  drivers/media/rc/st_rc.c  |  392 
> +
>  4 files changed, 427 insertions(+), 0 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/media/st-rc.txt
>  create mode 100644 drivers/media/rc/st_rc.c
> 
> diff --git a/Documentation/devicetree/bindings/media/st-rc.txt 
> b/Documentation/devicetree/bindings/media/st-rc.txt
> new file mode 100644
> index 000..20fe264
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/st-rc.txt
> @@ -0,0 +1,24 @@
> +Device-Tree bindings for ST IRB IP
> +
> +Required properties:
> + - compatible: should be "st,comms-irb".
> + - reg: base physical address of the controller and length of memory
> + mapped  region.
> + - interrupts: interrupt number to the cpu. The interrupt specifier
> + format depends on the interrupt controller parent.
> +
> +Optional properties:
> + - rx-mode: can be "infrared" or "uhf".
> + - tx-mode: should be "infrared".
> + - pinctrl-names, pinctrl-0: the pincontrol settings to configure
> + muxing properly for IRB pins.
> + - clocks : phandle of clock.
> +
> +Example node:
> +
> + rc: rc@fe518000 {
> + compatible  = "st,comms-irb";
> + reg = <0xfe518000 0x234>;
> + interrupts  =  <0 203 0>;
> + rx-mode = "infrared";
> + };
> diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> index 11e84bc..bf301ed 100644
> --- a/drivers/media/rc/Kconfig
> +++ b/drivers/media/rc/Kconfig
> @@ -322,4 +322,14 @@ config IR_GPIO_CIR
>  To compile this driver as a module, choose M here: the module will
>  be called gpio-ir-recv.
>  
> +config RC_ST
> + tristate "ST remote control receiver"
> + depends on ARCH_STI && LIRC && OF

Minor nitpick, this should not depend on LIRC, it depends on RC_CORE.

> + help
> +  Say Y here if you want support for ST remote control driver
> +  which allows both IR and UHF RX.
> +  The driver passes raw pluse and space information to the LIRC decoder.
> +
> +  If you're not sure, select N here.
> +
>  endif #RC_DEVICES
> diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
> index 56bacf0..f4eb32c 100644
> --- a/drivers/media/rc/Makefile
> +++ b/drivers/media/rc/Makefile
> @@ -30,3 +30,4 @@ obj-$(CONFIG_RC_LOOPBACK) += rc-loopback.o
>  obj-$(CONFIG_IR_GPIO_CIR) += gpio-ir-recv.o
>  obj-$(CONFIG_IR_IGUANA) += iguanair.o
>  obj-$(CONFIG_IR_TTUSBIR) += ttusbir.o
> +obj-$(CONFIG_RC_ST) += st_rc.o
> diff --git a/drivers/media/rc/st_rc.c b/drivers/media/rc/st_rc.c
> new file mode 100644
> index 000..5caa6c5
> --- /dev/null
> +++ b/drivers/media/rc/st_rc.c
> @@ -0,0 +1,392 @@
> +/*
> + * Copyright (C) 2013 STMicroelectronics Limited
> + * Author: Srinivas Kandagatla 
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +struct st_rc_device {
> + struct device   *dev;
> + int irq;
> + int irq_wake;
> + struct clk  *sys_clock;
> + void*base;  /* Register base address */
> + void