提交 a6e3b81f 编写于 作者: M Mauro Carvalho Chehab

[media] rc: Remove ir-common.h

Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 bce8d0fe
...@@ -147,6 +147,11 @@ static void bttv_input_timer(unsigned long data) ...@@ -147,6 +147,11 @@ static void bttv_input_timer(unsigned long data)
* testing. * testing.
*/ */
#define RC5_START(x) (((x) >> 12) & 3)
#define RC5_TOGGLE(x) (((x) >> 11) & 1)
#define RC5_ADDR(x) (((x) >> 6) & 31)
#define RC5_INSTR(x) ((x) & 63)
/* decode raw bit pattern to RC5 code */ /* decode raw bit pattern to RC5 code */
static u32 bttv_rc5_decode(unsigned int code) static u32 bttv_rc5_decode(unsigned int code)
{ {
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <media/v4l2-device.h> #include <media/v4l2-device.h>
#include <media/ir-common.h>
#include <media/i2c-addr.h> #include <media/i2c-addr.h>
#include <media/tuner.h> #include <media/tuner.h>
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#include <linux/device.h> #include <linux/device.h>
#include <media/videobuf-dma-sg.h> #include <media/videobuf-dma-sg.h>
#include <media/tveeprom.h> #include <media/tveeprom.h>
#include <media/ir-common.h> #include <media/ir-core.h>
#include <media/ir-kbd-i2c.h> #include <media/ir-kbd-i2c.h>
#include "bt848.h" #include "bt848.h"
...@@ -120,6 +120,47 @@ struct bttv_format { ...@@ -120,6 +120,47 @@ struct bttv_format {
int hshift,vshift; /* for planar modes */ int hshift,vshift; /* for planar modes */
}; };
struct card_ir {
struct rc_dev *dev;
char name[32];
char phys[32];
#if 0
int users;
u32 running:1;
#endif
/* Usual gpio signalling */
u32 mask_keycode;
u32 mask_keydown;
u32 mask_keyup;
u32 polling;
u32 last_gpio;
int shift_by;
int start; // What should RC5_START() be
int addr; // What RC5_ADDR() should be.
int rc5_remote_gap;
struct work_struct work;
struct timer_list timer;
/* RC5 gpio */
u32 rc5_gpio;
struct timer_list timer_end; /* timer_end for code completion */
u32 last_bit; /* last raw bit seen */
u32 code; /* raw code under construction */
struct timeval base_time; /* time of last seen code */
int active; /* building raw code */
#if 0
/* NEC decoding */
u32 nec_gpio;
struct tasklet_struct tlet;
/* IR core raw decoding */
u32 raw_decode;
#endif
};
/* ---------------------------------------------------------- */ /* ---------------------------------------------------------- */
struct bttv_geometry { struct bttv_geometry {
......
...@@ -61,7 +61,7 @@ static int saa7134_raw_decode_irq(struct saa7134_dev *dev); ...@@ -61,7 +61,7 @@ static int saa7134_raw_decode_irq(struct saa7134_dev *dev);
static int build_key(struct saa7134_dev *dev) static int build_key(struct saa7134_dev *dev)
{ {
struct card_ir *ir = dev->remote; struct saa7134_card_ir *ir = dev->remote;
u32 gpio, data; u32 gpio, data;
/* here comes the additional handshake steps for some cards */ /* here comes the additional handshake steps for some cards */
...@@ -385,7 +385,7 @@ static int get_key_pinnacle_color(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) ...@@ -385,7 +385,7 @@ static int get_key_pinnacle_color(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
void saa7134_input_irq(struct saa7134_dev *dev) void saa7134_input_irq(struct saa7134_dev *dev)
{ {
struct card_ir *ir; struct saa7134_card_ir *ir;
if (!dev || !dev->remote) if (!dev || !dev->remote)
return; return;
...@@ -404,7 +404,7 @@ void saa7134_input_irq(struct saa7134_dev *dev) ...@@ -404,7 +404,7 @@ void saa7134_input_irq(struct saa7134_dev *dev)
static void saa7134_input_timer(unsigned long data) static void saa7134_input_timer(unsigned long data)
{ {
struct saa7134_dev *dev = (struct saa7134_dev *)data; struct saa7134_dev *dev = (struct saa7134_dev *)data;
struct card_ir *ir = dev->remote; struct saa7134_card_ir *ir = dev->remote;
build_key(dev); build_key(dev);
mod_timer(&ir->timer, jiffies + msecs_to_jiffies(ir->polling)); mod_timer(&ir->timer, jiffies + msecs_to_jiffies(ir->polling));
...@@ -413,17 +413,17 @@ static void saa7134_input_timer(unsigned long data) ...@@ -413,17 +413,17 @@ static void saa7134_input_timer(unsigned long data)
static void ir_raw_decode_timer_end(unsigned long data) static void ir_raw_decode_timer_end(unsigned long data)
{ {
struct saa7134_dev *dev = (struct saa7134_dev *)data; struct saa7134_dev *dev = (struct saa7134_dev *)data;
struct card_ir *ir = dev->remote; struct saa7134_card_ir *ir = dev->remote;
ir_raw_event_handle(dev->remote->dev); ir_raw_event_handle(dev->remote->dev);
ir->active = 0; ir->active = false;
} }
static int __saa7134_ir_start(void *priv) static int __saa7134_ir_start(void *priv)
{ {
struct saa7134_dev *dev = priv; struct saa7134_dev *dev = priv;
struct card_ir *ir; struct saa7134_card_ir *ir;
if (!dev) if (!dev)
return -EINVAL; return -EINVAL;
...@@ -435,7 +435,7 @@ static int __saa7134_ir_start(void *priv) ...@@ -435,7 +435,7 @@ static int __saa7134_ir_start(void *priv)
if (ir->running) if (ir->running)
return 0; return 0;
ir->running = 1; ir->running = true;
if (ir->polling) { if (ir->polling) {
setup_timer(&ir->timer, saa7134_input_timer, setup_timer(&ir->timer, saa7134_input_timer,
(unsigned long)dev); (unsigned long)dev);
...@@ -446,7 +446,7 @@ static int __saa7134_ir_start(void *priv) ...@@ -446,7 +446,7 @@ static int __saa7134_ir_start(void *priv)
init_timer(&ir->timer_end); init_timer(&ir->timer_end);
ir->timer_end.function = ir_raw_decode_timer_end; ir->timer_end.function = ir_raw_decode_timer_end;
ir->timer_end.data = (unsigned long)dev; ir->timer_end.data = (unsigned long)dev;
ir->active = 0; ir->active = false;
} }
return 0; return 0;
...@@ -455,7 +455,7 @@ static int __saa7134_ir_start(void *priv) ...@@ -455,7 +455,7 @@ static int __saa7134_ir_start(void *priv)
static void __saa7134_ir_stop(void *priv) static void __saa7134_ir_stop(void *priv)
{ {
struct saa7134_dev *dev = priv; struct saa7134_dev *dev = priv;
struct card_ir *ir; struct saa7134_card_ir *ir;
if (!dev) if (!dev)
return; return;
...@@ -470,10 +470,10 @@ static void __saa7134_ir_stop(void *priv) ...@@ -470,10 +470,10 @@ static void __saa7134_ir_stop(void *priv)
del_timer_sync(&dev->remote->timer); del_timer_sync(&dev->remote->timer);
else if (ir->raw_decode) { else if (ir->raw_decode) {
del_timer_sync(&ir->timer_end); del_timer_sync(&ir->timer_end);
ir->active = 0; ir->active = false;
} }
ir->running = 0; ir->running = false;
return; return;
} }
...@@ -511,7 +511,7 @@ static void saa7134_ir_close(struct rc_dev *rc) ...@@ -511,7 +511,7 @@ static void saa7134_ir_close(struct rc_dev *rc)
int saa7134_input_init1(struct saa7134_dev *dev) int saa7134_input_init1(struct saa7134_dev *dev)
{ {
struct card_ir *ir; struct saa7134_card_ir *ir;
struct rc_dev *rc; struct rc_dev *rc;
char *ir_codes = NULL; char *ir_codes = NULL;
u32 mask_keycode = 0; u32 mask_keycode = 0;
...@@ -764,7 +764,7 @@ int saa7134_input_init1(struct saa7134_dev *dev) ...@@ -764,7 +764,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
ir->dev = rc; ir->dev = rc;
dev->remote = ir; dev->remote = ir;
ir->running = 0; ir->running = false;
/* init hardware-specific stuff */ /* init hardware-specific stuff */
ir->mask_keycode = mask_keycode; ir->mask_keycode = mask_keycode;
...@@ -934,7 +934,7 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev) ...@@ -934,7 +934,7 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
static int saa7134_raw_decode_irq(struct saa7134_dev *dev) static int saa7134_raw_decode_irq(struct saa7134_dev *dev)
{ {
struct card_ir *ir = dev->remote; struct saa7134_card_ir *ir = dev->remote;
unsigned long timeout; unsigned long timeout;
int space; int space;
...@@ -953,7 +953,7 @@ static int saa7134_raw_decode_irq(struct saa7134_dev *dev) ...@@ -953,7 +953,7 @@ static int saa7134_raw_decode_irq(struct saa7134_dev *dev)
if (!ir->active) { if (!ir->active) {
timeout = jiffies + jiffies_to_msecs(15); timeout = jiffies + jiffies_to_msecs(15);
mod_timer(&ir->timer_end, timeout); mod_timer(&ir->timer_end, timeout);
ir->active = 1; ir->active = true;
} }
return 1; return 1;
......
...@@ -119,6 +119,27 @@ struct saa7134_format { ...@@ -119,6 +119,27 @@ struct saa7134_format {
unsigned int uvswap:1; unsigned int uvswap:1;
}; };
struct saa7134_card_ir {
struct rc_dev *dev;
char name[32];
char phys[32];
int users;
u32 polling;
u32 last_gpio;
u32 mask_keycode, mask_keydown, mask_keyup;
bool running;
bool active;
struct timer_list timer;
struct timer_list timer_end; /* timer_end for code completion */
/* IR core raw decoding */
u32 raw_decode;
};
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/* card configuration */ /* card configuration */
...@@ -530,7 +551,7 @@ struct saa7134_dev { ...@@ -530,7 +551,7 @@ struct saa7134_dev {
/* infrared remote */ /* infrared remote */
int has_remote; int has_remote;
struct card_ir *remote; struct saa7134_card_ir *remote;
/* pci i/o */ /* pci i/o */
char name[32]; char name[32];
......
/*
* some common functions to handle infrared remote protocol decoding for
* drivers which have not yet been (or can't be) converted to use the
* regular protocol decoders...
*
* (c) 2003 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _IR_COMMON
#define _IR_COMMON
#include <linux/input.h>
#include <linux/workqueue.h>
#include <linux/interrupt.h>
#include <media/ir-core.h>
#define RC5_START(x) (((x)>>12)&3)
#define RC5_TOGGLE(x) (((x)>>11)&1)
#define RC5_ADDR(x) (((x)>>6)&31)
#define RC5_INSTR(x) ((x)&63)
/* this was saa7134_ir and bttv_ir, moved here for
* rc5 decoding. */
struct card_ir {
struct rc_dev *dev;
char name[32];
char phys[32];
int users;
u32 running:1;
/* Usual gpio signalling */
u32 mask_keycode;
u32 mask_keydown;
u32 mask_keyup;
u32 polling;
u32 last_gpio;
int shift_by;
int start; // What should RC5_START() be
int addr; // What RC5_ADDR() should be.
int rc5_remote_gap;
struct work_struct work;
struct timer_list timer;
/* RC5 gpio */
u32 rc5_gpio;
struct timer_list timer_end; /* timer_end for code completion */
u32 last_bit; /* last raw bit seen */
u32 code; /* raw code under construction */
struct timeval base_time; /* time of last seen code */
int active; /* building raw code */
/* NEC decoding */
u32 nec_gpio;
struct tasklet_struct tlet;
/* IR core raw decoding */
u32 raw_decode;
};
/* Routines from ir-functions.c */
void ir_rc5_timer_end(unsigned long data);
#endif
#ifndef _IR_I2C #ifndef _IR_I2C
#define _IR_I2C #define _IR_I2C
#include <media/ir-common.h> #include <media/ir-core.h>
#define DEFAULT_POLLING_INTERVAL 100 /* ms */ #define DEFAULT_POLLING_INTERVAL 100 /* ms */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册