[kernel/f14/master] Restructure v4l/dvb backport patches a bit so I quit forgetting necessary backport changes

Jarod Wilson jwilson at fedoraproject.org
Tue Jan 25 16:30:53 UTC 2011


commit 639fa258dc55145c7cb2fd2204f459fedca82ae4
Author: Jarod Wilson <jarod at redhat.com>
Date:   Tue Jan 25 11:30:39 2011 -0500

    Restructure v4l/dvb backport patches a bit so I quit forgetting necessary backport changes
    
    Signed-off-by: Jarod Wilson <jarod at redhat.com>

 kernel.spec                              |    8 +-
 linux-2.6-v4l-dvb-backport-reverts.patch |  306 ++++++++++++++++++++++++++++++
 2 files changed, 313 insertions(+), 1 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 1a148b7..5c119dc 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -727,6 +727,7 @@ Patch2900: linux-2.6-v4l-dvb-fixes.patch
 Patch2901: linux-2.6-v4l-dvb-experimental.patch
 Patch2918: imon-default-proto-modparam.patch
 Patch2919: linux-2.6-v4l-dvb-build-lirc.patch
+Patch2920: linux-2.6-v4l-dvb-backport-reverts.patch
 
 Patch2950: linux-2.6-via-velocity-dma-fix.patch
 
@@ -1454,6 +1455,11 @@ ApplyPatch imon-default-proto-modparam.patch
 # because I keep forgetting to manually add the bits back
 ApplyPatch linux-2.6-v4l-dvb-build-lirc.patch
 
+# A few bits have to be reverted so things actually build,
+# and in order to quit forgetting them, split them into their
+# own patch
+ApplyPatch linux-2.6-v4l-dvb-backport-reverts.patch
+
 # bz #575873
 ApplyPatch flexcop-fix-xlate_proc_name-warning.patch
 
@@ -2148,7 +2154,7 @@ fi
 # and build.
 
 %changelog
-* Mon Jan 24 2011 Jarod Wilson <jarod at redhat.com> 2.6.35.10-81
+* Tue Jan 25 2011 Jarod Wilson <jarod at redhat.com> 2.6.35.10-81
 - Further improvements to ir-kbd-i2c when used with zilog chips
 - Finally hopefully fix annoying mceusb keybounce issue
 
diff --git a/linux-2.6-v4l-dvb-backport-reverts.patch b/linux-2.6-v4l-dvb-backport-reverts.patch
new file mode 100644
index 0000000..03705bf
--- /dev/null
+++ b/linux-2.6-v4l-dvb-backport-reverts.patch
@@ -0,0 +1,306 @@
+diff -Naurp linux-2.6.35/drivers/media/dvb/dvb-core/dvb_net.c linux-2.6.35.media/drivers/media/dvb/dvb-core/dvb_net.c
+--- linux-2.6.35/drivers/media/dvb/dvb-core/dvb_net.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/dvb/dvb-core/dvb_net.c	2011-01-25 10:14:06.000000000 -0500
+@@ -1329,8 +1329,7 @@ static int dvb_net_remove_if(struct dvb_
+ 		return -EBUSY;
+ 
+ 	dvb_net_stop(net);
+-	flush_work_sync(&priv->set_multicast_list_wq);
+-	flush_work_sync(&priv->restart_net_feed_wq);
++	flush_scheduled_work();
+ 	printk("dvb_net: removed network interface %s\n", net->name);
+ 	unregister_netdev(net);
+ 	dvbnet->state[num]=0;
+diff -Naurp linux-2.6.35/drivers/media/dvb/dvb-usb/dvb-usb-remote.c linux-2.6.35.media/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
+--- linux-2.6.35/drivers/media/dvb/dvb-usb/dvb-usb-remote.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/dvb/dvb-usb/dvb-usb-remote.c	2011-01-25 10:14:06.000000000 -0500
+@@ -314,6 +314,7 @@ int dvb_usb_remote_exit(struct dvb_usb_d
+ {
+ 	if (d->state & DVB_USB_STATE_REMOTE) {
+ 		cancel_delayed_work_sync(&d->rc_query_work);
++		flush_scheduled_work();
+ 		if (d->props.rc.mode == DVB_RC_LEGACY)
+ 			input_unregister_device(d->input_dev);
+ 		else
+diff -Naurp linux-2.6.35/drivers/media/dvb/mantis/mantis_evm.c linux-2.6.35.media/drivers/media/dvb/mantis/mantis_evm.c
+--- linux-2.6.35/drivers/media/dvb/mantis/mantis_evm.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/dvb/mantis/mantis_evm.c	2011-01-25 10:14:06.000000000 -0500
+@@ -111,7 +111,7 @@ void mantis_evmgr_exit(struct mantis_ca 
+ 	struct mantis_pci *mantis = ca->ca_priv;
+ 
+ 	dprintk(MANTIS_DEBUG, 1, "Mantis Host I/F Event manager exiting");
+-	flush_work_sync(&ca->hif_evm_work);
++	flush_scheduled_work();
+ 	mantis_hif_exit(ca);
+ 	mantis_pcmcia_exit(ca);
+ }
+diff -Naurp linux-2.6.35/drivers/media/dvb/mantis/mantis_uart.c linux-2.6.35.media/drivers/media/dvb/mantis/mantis_uart.c
+--- linux-2.6.35/drivers/media/dvb/mantis/mantis_uart.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/dvb/mantis/mantis_uart.c	2011-01-25 10:14:06.000000000 -0500
+@@ -182,6 +182,5 @@ void mantis_uart_exit(struct mantis_pci 
+ {
+ 	/* disable interrupt */
+ 	mmwrite(mmread(MANTIS_UART_CTL) & 0xffef, MANTIS_UART_CTL);
+-	flush_work_sync(&mantis->uart_work);
+ }
+ EXPORT_SYMBOL_GPL(mantis_uart_exit);
+diff -Naurp linux-2.6.35/drivers/media/rc/keymaps/rc-tbs-nec.c linux-2.6.35.media/drivers/media/rc/keymaps/rc-tbs-nec.c
+--- linux-2.6.35/drivers/media/rc/keymaps/rc-tbs-nec.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/rc/keymaps/rc-tbs-nec.c	2011-01-25 11:10:04.000000000 -0500
+@@ -12,6 +12,9 @@
+ 
+ #include <media/rc-map.h>
+ 
++#define KEY_10CHANNELSUP	0x1b8
++#define KEY_10CHANNELSDOWN	0x1b9
++
+ static struct rc_map_table tbs_nec[] = {
+ 	{ 0x84, KEY_POWER2},		/* power */
+ 	{ 0x94, KEY_MUTE},		/* mute */
+diff -Naurp linux-2.6.35/drivers/media/video/bt8xx/bttv-driver.c linux-2.6.35.media/drivers/media/video/bt8xx/bttv-driver.c
+--- linux-2.6.35/drivers/media/video/bt8xx/bttv-driver.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/bt8xx/bttv-driver.c	2011-01-25 10:32:49.000000000 -0500
+@@ -189,14 +189,8 @@ static void request_modules(struct bttv 
+ 	INIT_WORK(&dev->request_module_wk, request_module_async);
+ 	schedule_work(&dev->request_module_wk);
+ }
+-
+-static void flush_request_modules(struct bttv *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+ #else
+ #define request_modules(dev)
+-#define flush_request_modules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ 
+@@ -4435,9 +4429,6 @@ static void __devexit bttv_remove(struct
+ 	if (bttv_verbose)
+ 		printk("bttv%d: unloading\n",btv->c.nr);
+ 
+-	if (bttv_tvcards[btv->c.type].has_dvb)
+-		flush_request_modules(btv);
+-
+ 	/* shutdown everything (DMA+IRQs) */
+ 	btand(~15, BT848_GPIO_DMA_CTL);
+ 	btwrite(0, BT848_INT_MASK);
+diff -Naurp linux-2.6.35/drivers/media/video/cx18/cx18-driver.c linux-2.6.35.media/drivers/media/video/cx18/cx18-driver.c
+--- linux-2.6.35/drivers/media/video/cx18/cx18-driver.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/cx18/cx18-driver.c	2011-01-25 10:32:49.000000000 -0500
+@@ -268,14 +268,8 @@ static void request_modules(struct cx18 
+ 	INIT_WORK(&dev->request_module_wk, request_module_async);
+ 	schedule_work(&dev->request_module_wk);
+ }
+-
+-static void flush_request_modules(struct cx18 *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+ #else
+ #define request_modules(dev)
+-#define flush_request_modules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ /* Generic utility functions */
+@@ -1245,8 +1239,6 @@ static void cx18_remove(struct pci_dev *
+ 
+ 	CX18_DEBUG_INFO("Removing Card\n");
+ 
+-	flush_request_modules(cx);
+-
+ 	/* Stop all captures */
+ 	CX18_DEBUG_INFO("Stopping all streams\n");
+ 	if (atomic_read(&cx->tot_capturing) > 0)
+diff -Naurp linux-2.6.35/drivers/media/video/cx231xx/cx231xx-cards.c linux-2.6.35.media/drivers/media/video/cx231xx/cx231xx-cards.c
+--- linux-2.6.35/drivers/media/video/cx231xx/cx231xx-cards.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/cx231xx/cx231xx-cards.c	2011-01-25 10:32:49.000000000 -0500
+@@ -813,14 +813,8 @@ static void request_modules(struct cx231
+ 	INIT_WORK(&dev->request_module_wk, request_module_async);
+ 	schedule_work(&dev->request_module_wk);
+ }
+-
+-static void flush_request_modules(struct cx231xx *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+ #else
+ #define request_modules(dev)
+-#define flush_request_modules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ /*
+@@ -1153,8 +1147,6 @@ static void cx231xx_usb_disconnect(struc
+ 	if (!dev->udev)
+ 		return;
+ 
+-	flush_request_modules(dev);
+-
+ 	/* delete v4l2 device */
+ 	v4l2_device_unregister(&dev->v4l2_dev);
+ 
+diff -Naurp linux-2.6.35/drivers/media/video/cx23885/cx23885-input.c linux-2.6.35.media/drivers/media/video/cx23885/cx23885-input.c
+--- linux-2.6.35/drivers/media/video/cx23885/cx23885-input.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/cx23885/cx23885-input.c	2011-01-25 10:14:06.000000000 -0500
+@@ -229,6 +229,8 @@ static void cx23885_input_ir_stop(struct
+ 		v4l2_subdev_call(dev->sd_ir, ir, rx_s_parameters, &params);
+ 		v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
+ 	}
++
++	flush_scheduled_work();
+ }
+ 
+ static void cx23885_input_ir_close(struct rc_dev *rc)
+diff -Naurp linux-2.6.35/drivers/media/video/cx88/cx88-mpeg.c linux-2.6.35.media/drivers/media/video/cx88/cx88-mpeg.c
+--- linux-2.6.35/drivers/media/video/cx88/cx88-mpeg.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/cx88/cx88-mpeg.c	2011-01-25 10:32:49.000000000 -0500
+@@ -66,14 +66,8 @@ static void request_modules(struct cx880
+ 	INIT_WORK(&dev->request_module_wk, request_module_async);
+ 	schedule_work(&dev->request_module_wk);
+ }
+-
+-static void flush_request_modules(struct cx8802_dev *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+ #else
+ #define request_modules(dev)
+-#define flush_request_modules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ 
+@@ -825,8 +819,6 @@ static void __devexit cx8802_remove(stru
+ 
+ 	dprintk( 1, "%s\n", __func__);
+ 
+-	flush_request_modules(dev);
+-
+ 	if (!list_empty(&dev->drvlist)) {
+ 		struct cx8802_driver *drv, *tmp;
+ 		int err;
+diff -Naurp linux-2.6.35/drivers/media/video/em28xx/em28xx-cards.c linux-2.6.35.media/drivers/media/video/em28xx/em28xx-cards.c
+--- linux-2.6.35/drivers/media/video/em28xx/em28xx-cards.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/em28xx/em28xx-cards.c	2011-01-25 10:32:49.000000000 -0500
+@@ -2693,14 +2693,8 @@ static void request_modules(struct em28x
+ 	INIT_WORK(&dev->request_module_wk, request_module_async);
+ 	schedule_work(&dev->request_module_wk);
+ }
+-
+-static void flush_request_modules(struct em28xx *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+ #else
+ #define request_modules(dev)
+-#define flush_request_modules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ /*
+@@ -3127,8 +3121,6 @@ static void em28xx_usb_disconnect(struct
+ 
+ 	em28xx_info("disconnecting %s\n", dev->vdev->name);
+ 
+-	flush_request_modules(dev);
+-
+ 	/* wait until all current v4l2 io is finished then deallocate
+ 	   resources */
+ 	mutex_lock(&dev->lock);
+diff -Naurp linux-2.6.35/drivers/media/video/omap24xxcam.c linux-2.6.35.media/drivers/media/video/omap24xxcam.c
+--- linux-2.6.35/drivers/media/video/omap24xxcam.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/omap24xxcam.c	2011-01-25 10:14:06.000000000 -0500
+@@ -1198,7 +1198,7 @@ static int vidioc_streamoff(struct file 
+ 
+ 	atomic_inc(&cam->reset_disable);
+ 
+-	flush_work_sync(&cam->sensor_reset_work);
++	flush_scheduled_work();
+ 
+ 	rval = videobuf_streamoff(q);
+ 	if (!rval) {
+@@ -1512,7 +1512,7 @@ static int omap24xxcam_release(struct fi
+ 
+ 	atomic_inc(&cam->reset_disable);
+ 
+-	flush_work_sync(&cam->sensor_reset_work);
++	flush_scheduled_work();
+ 
+ 	/* stop streaming capture */
+ 	videobuf_streamoff(&fh->vbq);
+@@ -1536,7 +1536,7 @@ static int omap24xxcam_release(struct fi
+ 	 * not be scheduled anymore since streaming is already
+ 	 * disabled.)
+ 	 */
+-	flush_work_sync(&cam->sensor_reset_work);
++	flush_scheduled_work();
+ 
+ 	mutex_lock(&cam->mutex);
+ 	if (atomic_dec_return(&cam->users) == 0) {
+diff -Naurp linux-2.6.35/drivers/media/video/saa7134/saa7134-core.c linux-2.6.35.media/drivers/media/video/saa7134/saa7134-core.c
+--- linux-2.6.35/drivers/media/video/saa7134/saa7134-core.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/saa7134/saa7134-core.c	2011-01-25 10:32:49.000000000 -0500
+@@ -166,14 +166,8 @@ static void request_submodules(struct sa
+ 	schedule_work(&dev->request_module_wk);
+ }
+ 
+-static void flush_request_submodules(struct saa7134_dev *dev)
+-{
+-	flush_work_sync(&dev->request_module_wk);
+-}
+-
+ #else
+ #define request_submodules(dev)
+-#define flush_request_submodules(dev)
+ #endif /* CONFIG_MODULES */
+ 
+ /* ------------------------------------------------------------------ */
+@@ -1027,6 +1021,8 @@ static int __devinit saa7134_initdev(str
+ 		}
+ 	}
+ 
++	request_submodules(dev);
++
+ 	v4l2_prio_init(&dev->prio);
+ 
+ 	mutex_lock(&saa7134_devlist_lock);
+@@ -1081,7 +1077,6 @@ static int __devinit saa7134_initdev(str
+ 	if (saa7134_dmasound_init && !dev->dmasound.priv_data)
+ 		saa7134_dmasound_init(dev);
+ 
+-	request_submodules(dev);
+ 	return 0;
+ 
+  fail4:
+@@ -1107,8 +1102,6 @@ static void __devexit saa7134_finidev(st
+ 	struct saa7134_dev *dev = container_of(v4l2_dev, struct saa7134_dev, v4l2_dev);
+ 	struct saa7134_mpeg_ops *mops;
+ 
+-	flush_request_submodules(dev);
+-
+ 	/* Release DMA sound modules if present */
+ 	if (saa7134_dmasound_exit && dev->dmasound.priv_data) {
+ 		saa7134_dmasound_exit(dev);
+diff -Naurp linux-2.6.35/drivers/media/video/saa7134/saa7134-empress.c linux-2.6.35.media/drivers/media/video/saa7134/saa7134-empress.c
+--- linux-2.6.35/drivers/media/video/saa7134/saa7134-empress.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/saa7134/saa7134-empress.c	2011-01-25 10:14:06.000000000 -0500
+@@ -553,7 +553,7 @@ static int empress_fini(struct saa7134_d
+ 
+ 	if (NULL == dev->empress_dev)
+ 		return 0;
+-	flush_work_sync(&dev->empress_workqueue);
++	flush_scheduled_work();
+ 	video_unregister_device(dev->empress_dev);
+ 	dev->empress_dev = NULL;
+ 	return 0;
+diff -Naurp linux-2.6.35/drivers/media/video/tlg2300/pd-main.c linux-2.6.35.media/drivers/media/video/tlg2300/pd-main.c
+--- linux-2.6.35/drivers/media/video/tlg2300/pd-main.c	2011-01-25 10:10:44.000000000 -0500
++++ linux-2.6.35.media/drivers/media/video/tlg2300/pd-main.c	2011-01-25 11:08:48.000000000 -0500
+@@ -452,8 +452,7 @@ static int poseidon_probe(struct usb_int
+ 
+ 	device_init_wakeup(&udev->dev, 1);
+ #ifdef CONFIG_PM
+-	pm_runtime_set_autosuspend_delay(&pd->udev->dev,
+-			1000 * PM_SUSPEND_DELAY);
++	pd->udev->autosuspend_delay = HZ * PM_SUSPEND_DELAY;
+ 	usb_enable_autosuspend(pd->udev);
+ 
+ 	if (in_hibernation(pd)) {


More information about the scm-commits mailing list