Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 202070
b: refs/heads/master
c: eeefae5
h: refs/heads/master
v: v3
  • Loading branch information
Andy Walls authored and Mauro Carvalho Chehab committed Aug 2, 2010
1 parent 8f8123a commit 825d020
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b192ca983746585e807259414f8d6f58cb28311f
refs/heads/master: eeefae532e723e8ce62664cb1d299a0baad50f35
22 changes: 13 additions & 9 deletions trunk/drivers/media/video/cx23885/cx23885-input.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ static inline unsigned int rc5_command(u32 rc5_baseband)

static void cx23885_input_process_raw_rc5(struct cx23885_dev *dev)
{
struct card_ir *ir_input = dev->ir_input;
struct cx23885_ir_input *ir_input = dev->ir_input;
unsigned int code, command;
u32 rc5;

Expand Down Expand Up @@ -110,7 +110,7 @@ static void cx23885_input_next_pulse_width_rc5(struct cx23885_dev *dev,
u32 ns_pulse)
{
const int rc5_quarterbit_ns = 444444; /* 32 cycles/36 kHz/2 = 444 us */
struct card_ir *ir_input = dev->ir_input;
struct cx23885_ir_input *ir_input = dev->ir_input;
int i, level, quarterbits, halfbits;

if (!ir_input->active) {
Expand Down Expand Up @@ -166,7 +166,7 @@ static void cx23885_input_next_pulse_width_rc5(struct cx23885_dev *dev,
static void cx23885_input_process_pulse_widths_rc5(struct cx23885_dev *dev,
bool add_eom)
{
struct card_ir *ir_input = dev->ir_input;
struct cx23885_ir_input *ir_input = dev->ir_input;
struct ir_input_state *ir_input_state = &ir_input->ir;

u32 ns_pulse[RC5_HALF_BITS+1];
Expand Down Expand Up @@ -243,7 +243,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)

static void cx23885_input_ir_start(struct cx23885_dev *dev)
{
struct card_ir *ir_input = dev->ir_input;
struct cx23885_ir_input *ir_input = dev->ir_input;
struct ir_input_state *ir_input_state = &ir_input->ir;
struct v4l2_subdev_ir_parameters params;

Expand Down Expand Up @@ -303,7 +303,7 @@ static void cx23885_input_ir_start(struct cx23885_dev *dev)

static void cx23885_input_ir_stop(struct cx23885_dev *dev)
{
struct card_ir *ir_input = dev->ir_input;
struct cx23885_ir_input *ir_input = dev->ir_input;
struct v4l2_subdev_ir_parameters params;

if (dev->sd_ir == NULL)
Expand Down Expand Up @@ -338,7 +338,7 @@ static void cx23885_input_ir_stop(struct cx23885_dev *dev)

int cx23885_input_init(struct cx23885_dev *dev)
{
struct card_ir *ir;
struct cx23885_ir_input *ir;
struct input_dev *input_dev;
char *ir_codes = NULL;
int ir_type, ir_addr, ir_start;
Expand Down Expand Up @@ -376,9 +376,9 @@ int cx23885_input_init(struct cx23885_dev *dev)
ir->start = ir_start;

/* init input device */
snprintf(ir->name, sizeof(ir->name), "cx23885 IR (%s)",
cx23885_boards[dev->board].name);
snprintf(ir->phys, sizeof(ir->phys), "pci-%s/ir0", pci_name(dev->pci));
ir->name = kasprintf(GFP_KERNEL, "cx23885 IR (%s)",
cx23885_boards[dev->board].name);
ir->phys = kasprintf(GFP_KERNEL, "pci-%s/ir0", pci_name(dev->pci));

ret = ir_input_init(input_dev, &ir->ir, ir_type);
if (ret < 0)
Expand Down Expand Up @@ -410,6 +410,8 @@ int cx23885_input_init(struct cx23885_dev *dev)
cx23885_input_ir_stop(dev);
dev->ir_input = NULL;
err_out_free:
kfree(ir->phys);
kfree(ir->name);
kfree(ir);
return ret;
}
Expand All @@ -422,6 +424,8 @@ void cx23885_input_fini(struct cx23885_dev *dev)
if (dev->ir_input == NULL)
return;
ir_input_unregister(dev->ir_input->dev);
kfree(dev->ir_input->phys);
kfree(dev->ir_input->name);
kfree(dev->ir_input);
dev->ir_input = NULL;
}
19 changes: 18 additions & 1 deletion trunk/drivers/media/video/cx23885/cx23885.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <media/tveeprom.h>
#include <media/videobuf-dma-sg.h>
#include <media/videobuf-dvb.h>
#include <media/ir-common.h>

#include "btcx-risc.h"
#include "cx23885-reg.h"
Expand Down Expand Up @@ -304,6 +305,22 @@ struct cx23885_tsport {
void *port_priv;
};

struct cx23885_ir_input {
struct input_dev *dev;
struct ir_input_state ir;
char *name;
char *phys;

int start;
int addr;
int rc5_key_timeout;
struct timer_list timer_keyup;
u32 last_rc5;
u32 last_bit;
u32 code;
int active;
};

struct cx23885_dev {
atomic_t refcount;
struct v4l2_device v4l2_dev;
Expand Down Expand Up @@ -363,7 +380,7 @@ struct cx23885_dev {
struct work_struct ir_tx_work;
unsigned long ir_tx_notifications;

struct card_ir *ir_input;
struct cx23885_ir_input *ir_input;
atomic_t ir_input_stopping;

/* V4l */
Expand Down

0 comments on commit 825d020

Please sign in to comment.