From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: david@hardeman.nu
Cc: linux-input@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [patch 3/3] Convert drivers/media/dvb/ttpci/budget-ci.c to use ir-core
Date: Thu, 08 Apr 2010 18:59:30 -0300 [thread overview]
Message-ID: <4BBE51C2.8060505@infradead.org> (raw)
In-Reply-To: <20100402190255.774628605@hardeman.nu>
david@hardeman.nu wrote:
> This patch converts drivers/media/dvb/ttpci/budget-ci.c to use ir-core
> rather than rolling its own keydown timeout handler and reporting keys
> via drivers/media/IR/ir-functions.c.
Hmm... had you test this patch? It got me an error here:
drivers/media/dvb/ttpci/budget-ci.c: In function ‘msp430_ir_init’:
drivers/media/dvb/ttpci/budget-ci.c:228: error: implicit declaration of function ‘ir_input_init’
drivers/media/dvb/ttpci/budget-ci.c:228: error: ‘struct budget_ci_ir’ has no member named ‘state’
The fix is trivial. Just drop this line:
ir_input_init(input_dev, &budget_ci->ir.state, IR_TYPE_RC5);
It shouldn't cause any troubles, since the only things this function currently do are:
ir->ir_type = ir_type;
if (repeat)
set_bit(EV_REP, dev->evbit);
As the repeat is inside ir-core, and the ir struct is not used anymore, this removal
should cause no harm.
So, I am dropping the line at the code I'm committing at v4l-dvb.git, to avoid bisect
breakages.
>
> Signed-off-by: David Härdeman <david@hardeman.nu>
>
>
> Index: ir/drivers/media/dvb/ttpci/budget-ci.c
> ===================================================================
> --- ir.orig/drivers/media/dvb/ttpci/budget-ci.c 2010-04-02 16:41:15.524206900 +0200
> +++ ir/drivers/media/dvb/ttpci/budget-ci.c 2010-04-02 16:48:15.668239437 +0200
> @@ -35,7 +35,7 @@
> #include <linux/interrupt.h>
> #include <linux/input.h>
> #include <linux/spinlock.h>
> -#include <media/ir-common.h>
> +#include <media/ir-core.h>
>
> #include "budget.h"
>
> @@ -82,12 +82,6 @@
> #define SLOTSTATUS_READY 8
> #define SLOTSTATUS_OCCUPIED (SLOTSTATUS_PRESENT|SLOTSTATUS_RESET|SLOTSTATUS_READY)
>
> -/*
> - * Milliseconds during which a key is regarded as pressed.
> - * If an identical command arrives within this time, the timer will start over.
> - */
> -#define IR_KEYPRESS_TIMEOUT 250
> -
> /* RC5 device wildcard */
> #define IR_DEVICE_ANY 255
>
> @@ -104,12 +98,9 @@
> struct budget_ci_ir {
> struct input_dev *dev;
> struct tasklet_struct msp430_irq_tasklet;
> - struct timer_list timer_keyup;
> char name[72]; /* 40 + 32 for (struct saa7146_dev).name */
> char phys[32];
> - struct ir_input_state state;
> int rc5_device;
> - u32 last_raw;
> u32 ir_key;
> bool have_command;
> };
> @@ -124,18 +115,11 @@
> u8 tuner_pll_address; /* used for philips_tdm1316l configs */
> };
>
> -static void msp430_ir_keyup(unsigned long data)
> -{
> - struct budget_ci_ir *ir = (struct budget_ci_ir *) data;
> - ir_input_nokey(ir->dev, &ir->state);
> -}
> -
> static void msp430_ir_interrupt(unsigned long data)
> {
> struct budget_ci *budget_ci = (struct budget_ci *) data;
> struct input_dev *dev = budget_ci->ir.dev;
> u32 command = ttpci_budget_debiread(&budget_ci->budget, DEBINOSWAP, DEBIADDR_IR, 2, 1, 0) >> 8;
> - u32 raw;
>
> /*
> * The msp430 chip can generate two different bytes, command and device
> @@ -171,20 +155,12 @@
> return;
> budget_ci->ir.have_command = false;
>
> + /* FIXME: We should generate complete scancodes with device info */
> if (budget_ci->ir.rc5_device != IR_DEVICE_ANY &&
> budget_ci->ir.rc5_device != (command & 0x1f))
> return;
>
> - /* Is this a repeated key sequence? (same device, command, toggle) */
> - raw = budget_ci->ir.ir_key | (command << 8);
> - if (budget_ci->ir.last_raw != raw || !timer_pending(&budget_ci->ir.timer_keyup)) {
> - ir_input_nokey(dev, &budget_ci->ir.state);
> - ir_input_keydown(dev, &budget_ci->ir.state,
> - budget_ci->ir.ir_key);
> - budget_ci->ir.last_raw = raw;
> - }
> -
> - mod_timer(&budget_ci->ir.timer_keyup, jiffies + msecs_to_jiffies(IR_KEYPRESS_TIMEOUT));
> + ir_keydown(dev, budget_ci->ir.ir_key, (command & 0x20) ? 1 : 0);
> }
>
> static int msp430_ir_init(struct budget_ci *budget_ci)
> @@ -251,11 +227,6 @@
>
> ir_input_init(input_dev, &budget_ci->ir.state, IR_TYPE_RC5);
>
> - /* initialise the key-up timeout handler */
> - init_timer(&budget_ci->ir.timer_keyup);
> - budget_ci->ir.timer_keyup.function = msp430_ir_keyup;
> - budget_ci->ir.timer_keyup.data = (unsigned long) &budget_ci->ir;
> - budget_ci->ir.last_raw = 0xffff; /* An impossible value */
> error = ir_input_register(input_dev, ir_codes, NULL, MODULE_NAME);
> if (error) {
> printk(KERN_ERR "budget_ci: could not init driver for IR device (code %d)\n", error);
> @@ -284,9 +255,6 @@
> saa7146_setgpio(saa, 3, SAA7146_GPIO_INPUT);
> tasklet_kill(&budget_ci->ir.msp430_irq_tasklet);
>
> - del_timer_sync(&dev->timer);
> - ir_input_nokey(dev, &budget_ci->ir.state);
> -
> ir_input_unregister(dev);
> }
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Cheers,
Mauro
next prev parent reply other threads:[~2010-04-08 21:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-02 18:58 [patch 0/3] ir-core keytable patches david
2010-04-02 18:58 ` david
2010-04-02 18:58 ` [patch 1/3] [PATCH] drivers/media/IR - improve keytable code david
2010-04-02 18:58 ` david
2010-04-02 18:58 ` [patch 2/3] [PATCH] drivers/media/IR - improve keyup/keydown logic david
2010-04-02 18:58 ` david
2010-04-02 18:58 ` [patch 3/3] Convert drivers/media/dvb/ttpci/budget-ci.c to use ir-core david
2010-04-02 18:58 ` david
2010-04-08 21:59 ` Mauro Carvalho Chehab [this message]
2010-04-08 23:09 ` David Härdeman
2010-04-08 23:09 ` David Härdeman
2010-04-08 23:30 ` Mauro Carvalho Chehab
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=4BBE51C2.8060505@infradead.org \
--to=mchehab@infradead.org \
--cc=david@hardeman.nu \
--cc=linux-input@vger.kernel.org \
--cc=linux-media@vger.kernel.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.