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

Commit ad792f4f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (37 commits)
  V4L/DVB (6382): saa7134: fix NULL dereference at suspend time for cards without IR receiver
  V4L/DVB (6380): ivtvfb: Removal of the 'osd_compat' module option
  V4L/DVB (6379): patch which improves GotView Saa7135 remote control
  V4L/DVB (6378b): Updates info about the removal of V4L1 at feature-removal-schedule.txt
  V4L/DVB (6378a): Removal of VIDIOC_[G|S]_MPEGCOMP from feature-removal-schedule.txt
  V4L/DVB (6378): DiB0700-device: Using 1.10 firmware
  V4L/DVB (6357): pvrusb2: Improve encoder chip health tracking
  V4L/DVB (6356): "while (!ca->wakeup)" breaks the CAM initialisation
  V4L/DVB (6352): ir-kbd-i2c: Missing break statement
  V4L/DVB (6350): V4L: possible leak in em28xx_init_isoc
  V4L/DVB (6348): ivtv: undo video mute when closing the radio
  V4L/DVB (6347): ivtv: fix video mute when radio is used
  V4L/DVB (6346): ivtvfb: YUV output size fix when ivtvfb is not loaded
  V4L/DVB (6345): ivtvfb: YUV handling of an image which is not visible in the display area
  V4L/DVB (6343): ivtvfb: check return value of unregister_framebuffer
  V4L/DVB (6342): ivtv: fix circular locking (bug 9037)
  V4L/DVB (6341): ivtv: fix resizing MPEG1 streams
  V4L/DVB (6340): ivtvfb: screen mode change sometimes goes wrong
  V4L/DVB (6339): ivtv: set the video color to black instead of green when capturing from the radio
  V4L/DVB (6338): ivtv: fix incorrect EBUSY return
  ...
parents 3650b0a3 f40aa808
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -14,18 +14,6 @@ Who: Jiri Slaby <jirislaby@gmail.com>

---------------------------

What:	V4L2 VIDIOC_G_MPEGCOMP and VIDIOC_S_MPEGCOMP
When:	October 2007
Why:	Broken attempt to set MPEG compression parameters. These ioctls are
	not able to implement the wide variety of parameters that can be set
	by hardware MPEG encoders. A new MPEG control mechanism was created
	in kernel 2.6.18 that replaces these ioctls. See the V4L2 specification
	(section 1.9: Extended controls) for more information on this topic.
Who:	Hans Verkuil <hverkuil@xs4all.nl> and
	Mauro Carvalho Chehab <mchehab@infradead.org>

---------------------------

What:	dev->power.power_state
When:	July 2007
Why:	Broken design for runtime control over driver power states, confusing
@@ -49,10 +37,10 @@ Who: David Miller <davem@davemloft.net>
---------------------------

What:	Video4Linux API 1 ioctls and video_decoder.h from Video devices.
When:	December 2006
Files:	include/linux/video_decoder.h
Check:	include/linux/video_decoder.h
Why:	V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
When:	December 2008
Files:	include/linux/video_decoder.h include/linux/videodev.h
Check:	include/linux/video_decoder.h include/linux/videodev.h
Why:	V4L1 AP1 was replaced by V4L2 API during migration from 2.4 to 2.6
	series. The old API have lots of drawbacks and don't provide enough
	means to work with all video and audio standards. The newer API is
	already available on the main drivers and should be used instead.
@@ -61,7 +49,9 @@ Why: V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
	Decoder iocts are using internally to allow video drivers to
	communicate with video decoders. This should also be improved to allow
	V4L2 calls being translated into compatible internal ioctls.
Who:	Mauro Carvalho Chehab <mchehab@brturbo.com.br>
	Compatibility ioctls will be provided, for a while, via 
	v4l1-compat module. 
Who:	Mauro Carvalho Chehab <mchehab@infradead.org>

---------------------------

+35 −35
Original line number Diff line number Diff line
@@ -1074,41 +1074,41 @@ EXPORT_SYMBOL_GPL(ir_codes_manli);
/* Mike Baikov <mike@baikov.com> */
IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {

	[ 0x21 ] = KEY_POWER,
	[ 0x69 ] = KEY_TV,
	[ 0x33 ] = KEY_0,
	[ 0x51 ] = KEY_1,
	[ 0x31 ] = KEY_2,
	[ 0x71 ] = KEY_3,
	[ 0x3b ] = KEY_4,
	[ 0x58 ] = KEY_5,
	[ 0x41 ] = KEY_6,
	[ 0x48 ] = KEY_7,
	[ 0x30 ] = KEY_8,
	[ 0x53 ] = KEY_9,
	[ 0x73 ] = KEY_AGAIN, /* LOOP */
	[ 0x0a ] = KEY_AUDIO,
	[ 0x61 ] = KEY_PRINT, /* PREVIEW */
	[ 0x7a ] = KEY_VIDEO,
	[ 0x20 ] = KEY_CHANNELUP,
	[ 0x40 ] = KEY_CHANNELDOWN,
	[ 0x18 ] = KEY_VOLUMEDOWN,
	[ 0x50 ] = KEY_VOLUMEUP,
	[ 0x10 ] = KEY_MUTE,
	[ 0x4a ] = KEY_SEARCH,
	[ 0x7b ] = KEY_SHUFFLE, /* SNAPSHOT */
	[ 0x22 ] = KEY_RECORD,
	[ 0x62 ] = KEY_STOP,
	[ 0x78 ] = KEY_PLAY,
	[ 0x39 ] = KEY_REWIND,
	[ 0x59 ] = KEY_PAUSE,
	[ 0x19 ] = KEY_FORWARD,
	[ 0x09 ] = KEY_ZOOM,

	[ 0x52 ] = KEY_F21, /* LIVE TIMESHIFT */
	[ 0x1a ] = KEY_F22, /* MIN TIMESHIFT */
	[ 0x3a ] = KEY_F23, /* TIMESHIFT */
	[ 0x70 ] = KEY_F24, /* NORMAL TIMESHIFT */
	[ 0x11 ] = KEY_POWER,
	[ 0x35 ] = KEY_TV,
	[ 0x1b ] = KEY_0,
	[ 0x29 ] = KEY_1,
	[ 0x19 ] = KEY_2,
	[ 0x39 ] = KEY_3,
	[ 0x1f ] = KEY_4,
	[ 0x2c ] = KEY_5,
	[ 0x21 ] = KEY_6,
	[ 0x24 ] = KEY_7,
	[ 0x18 ] = KEY_8,
	[ 0x2b ] = KEY_9,
	[ 0x3b ] = KEY_AGAIN, /* LOOP */
	[ 0x06 ] = KEY_AUDIO,
	[ 0x31 ] = KEY_PRINT, /* PREVIEW */
	[ 0x3e ] = KEY_VIDEO,
	[ 0x10 ] = KEY_CHANNELUP,
	[ 0x20 ] = KEY_CHANNELDOWN,
	[ 0x0c ] = KEY_VOLUMEDOWN,
	[ 0x28 ] = KEY_VOLUMEUP,
	[ 0x08 ] = KEY_MUTE,
	[ 0x26 ] = KEY_SEARCH, /*SCAN*/
	[ 0x3f ] = KEY_SHUFFLE, /* SNAPSHOT */
	[ 0x12 ] = KEY_RECORD,
	[ 0x32 ] = KEY_STOP,
	[ 0x3c ] = KEY_PLAY,
	[ 0x1d ] = KEY_REWIND,
	[ 0x2d ] = KEY_PAUSE,
	[ 0x0d ] = KEY_FORWARD,
	[ 0x05 ] = KEY_ZOOM,  /*FULL*/

	[ 0x2a ] = KEY_F21, /* LIVE TIMESHIFT */
	[ 0x0e ] = KEY_F22, /* MIN TIMESHIFT */
	[ 0x1e ] = KEY_F23, /* TIMESHIFT */
	[ 0x38 ] = KEY_F24, /* NORMAL TIMESHIFT */
};

EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
+29 −13
Original line number Diff line number Diff line
@@ -345,7 +345,9 @@ static int cinergyt2_start_feed(struct dvb_demux_feed *dvbdmxfeed)
	struct dvb_demux *demux = dvbdmxfeed->demux;
	struct cinergyt2 *cinergyt2 = demux->priv;

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem))
	if (cinergyt2->disconnect_pending)
		return -EAGAIN;
	if (mutex_lock_interruptible(&cinergyt2->sem))
		return -ERESTARTSYS;

	if (cinergyt2->streaming == 0)
@@ -361,7 +363,9 @@ static int cinergyt2_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
	struct dvb_demux *demux = dvbdmxfeed->demux;
	struct cinergyt2 *cinergyt2 = demux->priv;

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem))
	if (cinergyt2->disconnect_pending)
		return -EAGAIN;
	if (mutex_lock_interruptible(&cinergyt2->sem))
		return -ERESTARTSYS;

	if (--cinergyt2->streaming == 0)
@@ -481,12 +485,16 @@ static int cinergyt2_open (struct inode *inode, struct file *file)
{
	struct dvb_device *dvbdev = file->private_data;
	struct cinergyt2 *cinergyt2 = dvbdev->priv;
	int err = -ERESTARTSYS;
	int err = -EAGAIN;

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->wq_sem))
	if (cinergyt2->disconnect_pending)
		goto out;
	err = mutex_lock_interruptible(&cinergyt2->wq_sem);
	if (err)
		goto out;

	if (mutex_lock_interruptible(&cinergyt2->sem))
	err = mutex_lock_interruptible(&cinergyt2->sem);
	if (err)
		goto out_unlock1;

	if ((err = dvb_generic_open(inode, file)))
@@ -550,7 +558,9 @@ static unsigned int cinergyt2_poll (struct file *file, struct poll_table_struct
	struct cinergyt2 *cinergyt2 = dvbdev->priv;
	unsigned int mask = 0;

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem))
	if (cinergyt2->disconnect_pending)
		return -EAGAIN;
	if (mutex_lock_interruptible(&cinergyt2->sem))
		return -ERESTARTSYS;

	poll_wait(file, &cinergyt2->poll_wq, wait);
@@ -625,7 +635,9 @@ static int cinergyt2_ioctl (struct inode *inode, struct file *file,
		if (copy_from_user(&p, (void  __user*) arg, sizeof(p)))
			return -EFAULT;

		if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem))
		if (cinergyt2->disconnect_pending)
			return -EAGAIN;
		if (mutex_lock_interruptible(&cinergyt2->sem))
			return -ERESTARTSYS;

		param->cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
@@ -996,7 +1008,9 @@ static int cinergyt2_suspend (struct usb_interface *intf, pm_message_t state)
{
	struct cinergyt2 *cinergyt2 = usb_get_intfdata (intf);

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->wq_sem))
	if (cinergyt2->disconnect_pending)
		return -EAGAIN;
	if (mutex_lock_interruptible(&cinergyt2->wq_sem))
		return -ERESTARTSYS;

	cinergyt2_suspend_rc(cinergyt2);
@@ -1017,16 +1031,18 @@ static int cinergyt2_resume (struct usb_interface *intf)
{
	struct cinergyt2 *cinergyt2 = usb_get_intfdata (intf);
	struct dvbt_set_parameters_msg *param = &cinergyt2->param;
	int err = -ERESTARTSYS;
	int err = -EAGAIN;

	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->wq_sem))
	if (cinergyt2->disconnect_pending)
		goto out;
	err = mutex_lock_interruptible(&cinergyt2->wq_sem);
	if (err)
		goto out;

	if (mutex_lock_interruptible(&cinergyt2->sem))
	err = mutex_lock_interruptible(&cinergyt2->sem);
	if (err)
		goto out_unlock1;

	err = 0;

	if (!cinergyt2->sleeping) {
		cinergyt2_sleep(cinergyt2, 0);
		cinergyt2_command(cinergyt2, (char *) param, sizeof(*param), NULL, 0);
+1 −1
Original line number Diff line number Diff line
@@ -972,7 +972,7 @@ static int dvb_ca_en50221_thread(void *data)
	/* main loop */
	while (!kthread_should_stop()) {
		/* sleep for a bit */
		while (!ca->wakeup) {
		if (!ca->wakeup) {
			set_current_state(TASK_INTERRUPTIBLE);
			schedule_timeout(ca->delay);
			if (kthread_should_stop())
+1 −1
Original line number Diff line number Diff line
@@ -828,7 +828,7 @@ MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
#define DIB0700_DEFAULT_DEVICE_PROPERTIES \
	.caps              = DVB_USB_IS_AN_I2C_ADAPTER, \
	.usb_ctrl          = DEVICE_SPECIFIC, \
	.firmware          = "dvb-usb-dib0700-03-pre1.fw", \
	.firmware          = "dvb-usb-dib0700-1.10.fw", \
	.download_firmware = dib0700_download_firmware, \
	.no_reconnect      = 1, \
	.size_of_priv      = sizeof(struct dib0700_state), \
Loading