Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4099ae7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (37 commits)
  V4L/DVB: v4l: radio: si470x: fix unneeded free_irq() call
  V4L/DVB: v4l: videobuf: prevent passing a NULL to dma_free_coherent()
  V4L/DVB: ir-core: Fix null dereferences in the protocols sysfs interface
  V4L/DVB: v4l: s5p-fimc: Fix 3-planar formats handling and pixel offset error on S5PV210 SoCs
  V4L/DVB: v4l: s5p-fimc: Fix return value on probe() failure
  V4L/DVB: uvcvideo: Restrict frame rates for Chicony CNF7129 webcam
  V4L/DVB: uvcvideo: Fix support for Medion Akoya All-in-one PC integrated webcam
  V4L/DVB: ivtvfb: prevent reading uninitialized stack memory
  V4L/DVB: cx25840: Fix typo in volume control initialization: 65335 vs. 65535
  V4L/DVB: v4l: mem2mem_testdev: add missing release for video_device
  V4L/DVB: v4l: mem2mem_testdev: fix errorenous comparison
  V4L/DVB: mt9v022.c: Fixed compilation warning
  V4L/DVB: mt9m111: added current colorspace at g_fmt
  V4L/DVB: mt9m111: cropcap and s_crop check if type is VIDEO_CAPTURE
  V4L/DVB: mx2_camera: fix a race causing NULL dereference
  V4L/DVB: tm6000: bugfix data handling
  V4L/DVB: gspca - sn9c20x: Bad transfer size of Bayer images
  V4L/DVB: videobuf-dma-sg: set correct size in last sg element
  V4L/DVB: cx231xx: Avoid an OOPS when card is unknown (card=0)
  V4L/DVB: dvb: fix smscore_getbuffer() logic
  ...
parents 5672bc81 cc6e853c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -319,7 +319,7 @@ static void ir_timer_keyup(unsigned long cookie)
	 * a keyup event might follow immediately after the keydown.
	 */
	spin_lock_irqsave(&ir->keylock, flags);
	if (time_is_after_eq_jiffies(ir->keyup_jiffies))
	if (time_is_before_eq_jiffies(ir->keyup_jiffies))
		ir_keyup(ir);
	spin_unlock_irqrestore(&ir->keylock, flags);
}
@@ -510,6 +510,13 @@ int __ir_input_register(struct input_dev *input_dev,
		   (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_IR_RAW) ?
			" in raw mode" : "");

	/*
	 * Default delay of 250ms is too short for some protocols, expecially
	 * since the timeout is currently set to 250ms. Increase it to 500ms,
	 * to avoid wrong repetition of the keycodes.
	 */
	input_dev->rep[REP_DELAY] = 500;

	return 0;

out_event:
+1 −1
Original line number Diff line number Diff line
@@ -267,7 +267,7 @@ static int ir_lirc_register(struct input_dev *input_dev)
			features |= LIRC_CAN_SET_SEND_CARRIER;

		if (ir_dev->props->s_tx_duty_cycle)
			features |= LIRC_CAN_SET_REC_DUTY_CYCLE;
			features |= LIRC_CAN_SET_SEND_DUTY_CYCLE;
	}

	if (ir_dev->props->s_rx_carrier_range)
+3 −1
Original line number Diff line number Diff line
@@ -279,9 +279,11 @@ int ir_raw_event_register(struct input_dev *input_dev)
			"rc%u",  (unsigned int)ir->devno);

	if (IS_ERR(ir->raw->thread)) {
		int ret = PTR_ERR(ir->raw->thread);

		kfree(ir->raw);
		ir->raw = NULL;
		return PTR_ERR(ir->raw->thread);
		return ret;
	}

	mutex_lock(&ir_raw_handler_lock);
+11 −6
Original line number Diff line number Diff line
@@ -67,13 +67,14 @@ static ssize_t show_protocols(struct device *d,
	char *tmp = buf;
	int i;

	if (ir_dev->props->driver_type == RC_DRIVER_SCANCODE) {
	if (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_SCANCODE) {
		enabled = ir_dev->rc_tab.ir_type;
		allowed = ir_dev->props->allowed_protos;
	} else {
	} else if (ir_dev->raw) {
		enabled = ir_dev->raw->enabled_protocols;
		allowed = ir_raw_get_allowed_protocols();
	}
	} else
		return sprintf(tmp, "[builtin]\n");

	IR_dprintk(1, "allowed - 0x%llx, enabled - 0x%llx\n",
		   (long long)allowed,
@@ -121,10 +122,14 @@ static ssize_t store_protocols(struct device *d,
	int rc, i, count = 0;
	unsigned long flags;

	if (ir_dev->props->driver_type == RC_DRIVER_SCANCODE)
	if (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_SCANCODE)
		type = ir_dev->rc_tab.ir_type;
	else
	else if (ir_dev->raw)
		type = ir_dev->raw->enabled_protocols;
	else {
		IR_dprintk(1, "Protocol switching not supported\n");
		return -EINVAL;
	}

	while ((tmp = strsep((char **) &data, " \n")) != NULL) {
		if (!*tmp)
@@ -185,7 +190,7 @@ static ssize_t store_protocols(struct device *d,
		}
	}

	if (ir_dev->props->driver_type == RC_DRIVER_SCANCODE) {
	if (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_SCANCODE) {
		spin_lock_irqsave(&ir_dev->rc_tab.lock, flags);
		ir_dev->rc_tab.ir_type = type;
		spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags);
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ static struct ir_scancode rc6_mce[] = {

	{ 0x800f0416, KEY_PLAY },
	{ 0x800f0418, KEY_PAUSE },
	{ 0x800f046e, KEY_PLAYPAUSE },
	{ 0x800f0419, KEY_STOP },
	{ 0x800f0417, KEY_RECORD },

@@ -37,6 +38,8 @@ static struct ir_scancode rc6_mce[] = {
	{ 0x800f0411, KEY_VOLUMEDOWN },
	{ 0x800f0412, KEY_CHANNELUP },
	{ 0x800f0413, KEY_CHANNELDOWN },
	{ 0x800f043a, KEY_BRIGHTNESSUP },
	{ 0x800f0480, KEY_BRIGHTNESSDOWN },

	{ 0x800f0401, KEY_NUMERIC_1 },
	{ 0x800f0402, KEY_NUMERIC_2 },
Loading