diff options
| -rw-r--r-- | MAINTAINERS | 7 | ||||
| -rw-r--r-- | drivers/media/common/ir-functions.c | 2 | ||||
| -rw-r--r-- | drivers/media/dvb/dvb-usb/cxusb.c | 10 | ||||
| -rw-r--r-- | drivers/media/dvb/siano/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/media/radio/radio-gemtek-pci.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/davinci/vpif_display.c | 1 | ||||
| -rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/mx1_camera.c | 1 | ||||
| -rw-r--r-- | drivers/media/video/mx3_camera.c | 1 | ||||
| -rw-r--r-- | drivers/media/video/sh_mobile_ceu_camera.c | 7 | ||||
| -rw-r--r-- | drivers/media/video/soc_camera.c | 17 | ||||
| -rw-r--r-- | drivers/media/video/videobuf-dma-contig.c | 1 | ||||
| -rw-r--r-- | drivers/staging/go7007/s2250-board.c | 4 | ||||
| -rw-r--r-- | drivers/staging/go7007/s2250-loader.h | 24 |
14 files changed, 65 insertions, 16 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 5726ffc8c43d..23d09d78a7b9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -2312,6 +2312,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git | |||
| 2312 | S: Maintained | 2312 | S: Maintained |
| 2313 | F: drivers/media/video/gspca/finepix.c | 2313 | F: drivers/media/video/gspca/finepix.c |
| 2314 | 2314 | ||
| 2315 | GSPCA GL860 SUBDRIVER | ||
| 2316 | M: Olivier Lorin <o.lorin@laposte.net> | ||
| 2317 | L: linux-media@vger.kernel.org | ||
| 2318 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git | ||
| 2319 | S: Maintained | ||
| 2320 | F: drivers/media/video/gspca/gl860/ | ||
| 2321 | |||
| 2315 | GSPCA M5602 SUBDRIVER | 2322 | GSPCA M5602 SUBDRIVER |
| 2316 | M: Erik Andren <erik.andren@gmail.com> | 2323 | M: Erik Andren <erik.andren@gmail.com> |
| 2317 | L: linux-media@vger.kernel.org | 2324 | L: linux-media@vger.kernel.org |
diff --git a/drivers/media/common/ir-functions.c b/drivers/media/common/ir-functions.c index 655474b29e21..abd4791acb0e 100644 --- a/drivers/media/common/ir-functions.c +++ b/drivers/media/common/ir-functions.c | |||
| @@ -64,7 +64,7 @@ void ir_input_init(struct input_dev *dev, struct ir_input_state *ir, | |||
| 64 | 64 | ||
| 65 | ir->ir_type = ir_type; | 65 | ir->ir_type = ir_type; |
| 66 | 66 | ||
| 67 | memset(ir->ir_codes, sizeof(ir->ir_codes), 0); | 67 | memset(ir->ir_codes, 0, sizeof(ir->ir_codes)); |
| 68 | 68 | ||
| 69 | /* | 69 | /* |
| 70 | * FIXME: This is a temporary workaround to use the new IR tables | 70 | * FIXME: This is a temporary workaround to use the new IR tables |
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index f65591fb7cec..2a53dd096eef 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
| @@ -663,6 +663,14 @@ static struct zl10353_config cxusb_zl10353_xc3028_config = { | |||
| 663 | .parallel_ts = 1, | 663 | .parallel_ts = 1, |
| 664 | }; | 664 | }; |
| 665 | 665 | ||
| 666 | static struct zl10353_config cxusb_zl10353_xc3028_config_no_i2c_gate = { | ||
| 667 | .demod_address = 0x0f, | ||
| 668 | .if2 = 45600, | ||
| 669 | .no_tuner = 1, | ||
| 670 | .parallel_ts = 1, | ||
| 671 | .disable_i2c_gate_ctrl = 1, | ||
| 672 | }; | ||
| 673 | |||
| 666 | static struct mt352_config cxusb_mt352_xc3028_config = { | 674 | static struct mt352_config cxusb_mt352_xc3028_config = { |
| 667 | .demod_address = 0x0f, | 675 | .demod_address = 0x0f, |
| 668 | .if2 = 4560, | 676 | .if2 = 4560, |
| @@ -894,7 +902,7 @@ static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap) | |||
| 894 | cxusb_bluebird_gpio_pulse(adap->dev, 0x02, 1); | 902 | cxusb_bluebird_gpio_pulse(adap->dev, 0x02, 1); |
| 895 | 903 | ||
| 896 | if ((adap->fe = dvb_attach(zl10353_attach, | 904 | if ((adap->fe = dvb_attach(zl10353_attach, |
| 897 | &cxusb_zl10353_xc3028_config, | 905 | &cxusb_zl10353_xc3028_config_no_i2c_gate, |
| 898 | &adap->dev->i2c_adap)) == NULL) | 906 | &adap->dev->i2c_adap)) == NULL) |
| 899 | return -EIO; | 907 | return -EIO; |
| 900 | 908 | ||
diff --git a/drivers/media/dvb/siano/Kconfig b/drivers/media/dvb/siano/Kconfig index 8c1aed77ea30..85a222c4eaa0 100644 --- a/drivers/media/dvb/siano/Kconfig +++ b/drivers/media/dvb/siano/Kconfig | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | config SMS_SIANO_MDTV | 5 | config SMS_SIANO_MDTV |
| 6 | tristate "Siano SMS1xxx based MDTV receiver" | 6 | tristate "Siano SMS1xxx based MDTV receiver" |
| 7 | depends on DVB_CORE && INPUT | 7 | depends on DVB_CORE && INPUT && HAS_DMA |
| 8 | ---help--- | 8 | ---help--- |
| 9 | Choose Y or M here if you have MDTV receiver with a Siano chipset. | 9 | Choose Y or M here if you have MDTV receiver with a Siano chipset. |
| 10 | 10 | ||
diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c index c3f579de6e71..c6cf11661868 100644 --- a/drivers/media/radio/radio-gemtek-pci.c +++ b/drivers/media/radio/radio-gemtek-pci.c | |||
| @@ -181,12 +181,10 @@ static void gemtek_pci_mute(struct gemtek_pci *card) | |||
| 181 | 181 | ||
| 182 | static void gemtek_pci_unmute(struct gemtek_pci *card) | 182 | static void gemtek_pci_unmute(struct gemtek_pci *card) |
| 183 | { | 183 | { |
| 184 | mutex_lock(&card->lock); | ||
| 185 | if (card->mute) { | 184 | if (card->mute) { |
| 186 | gemtek_pci_setfrequency(card, card->current_frequency); | 185 | gemtek_pci_setfrequency(card, card->current_frequency); |
| 187 | card->mute = false; | 186 | card->mute = false; |
| 188 | } | 187 | } |
| 189 | mutex_unlock(&card->lock); | ||
| 190 | } | 188 | } |
| 191 | 189 | ||
| 192 | static int gemtek_pci_getsignal(struct gemtek_pci *card) | 190 | static int gemtek_pci_getsignal(struct gemtek_pci *card) |
diff --git a/drivers/media/video/davinci/vpif_display.c b/drivers/media/video/davinci/vpif_display.c index c015da813dda..d14cfb200ed0 100644 --- a/drivers/media/video/davinci/vpif_display.c +++ b/drivers/media/video/davinci/vpif_display.c | |||
| @@ -1426,7 +1426,6 @@ static __init int vpif_probe(struct platform_device *pdev) | |||
| 1426 | struct vpif_display_config *config; | 1426 | struct vpif_display_config *config; |
| 1427 | int i, j = 0, k, q, m, err = 0; | 1427 | int i, j = 0, k, q, m, err = 0; |
| 1428 | struct i2c_adapter *i2c_adap; | 1428 | struct i2c_adapter *i2c_adap; |
| 1429 | struct vpif_config *config; | ||
| 1430 | struct common_obj *common; | 1429 | struct common_obj *common; |
| 1431 | struct channel_obj *ch; | 1430 | struct channel_obj *ch; |
| 1432 | struct video_device *vfd; | 1431 | struct video_device *vfd; |
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index bdb249bd9d5d..c0fd5c6feeac 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
| @@ -1584,8 +1584,8 @@ struct em28xx_board em28xx_boards[] = { | |||
| 1584 | [EM2870_BOARD_REDDO_DVB_C_USB_BOX] = { | 1584 | [EM2870_BOARD_REDDO_DVB_C_USB_BOX] = { |
| 1585 | .name = "Reddo DVB-C USB TV Box", | 1585 | .name = "Reddo DVB-C USB TV Box", |
| 1586 | .tuner_type = TUNER_ABSENT, | 1586 | .tuner_type = TUNER_ABSENT, |
| 1587 | .tuner_gpio = reddo_dvb_c_usb_box, | ||
| 1587 | .has_dvb = 1, | 1588 | .has_dvb = 1, |
| 1588 | .dvb_gpio = reddo_dvb_c_usb_box, | ||
| 1589 | }, | 1589 | }, |
| 1590 | }; | 1590 | }; |
| 1591 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); | 1591 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); |
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c index 5f37952c75cf..72802291e812 100644 --- a/drivers/media/video/mx1_camera.c +++ b/drivers/media/video/mx1_camera.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #include <linux/moduleparam.h> | 28 | #include <linux/moduleparam.h> |
| 29 | #include <linux/mutex.h> | 29 | #include <linux/mutex.h> |
| 30 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
| 31 | #include <linux/sched.h> | ||
| 31 | #include <linux/time.h> | 32 | #include <linux/time.h> |
| 32 | #include <linux/version.h> | 33 | #include <linux/version.h> |
| 33 | #include <linux/videodev2.h> | 34 | #include <linux/videodev2.h> |
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c index dff2e5e2d8c6..7db82bdf6f31 100644 --- a/drivers/media/video/mx3_camera.c +++ b/drivers/media/video/mx3_camera.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/clk.h> | 17 | #include <linux/clk.h> |
| 18 | #include <linux/vmalloc.h> | 18 | #include <linux/vmalloc.h> |
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/sched.h> | ||
| 20 | 21 | ||
| 21 | #include <media/v4l2-common.h> | 22 | #include <media/v4l2-common.h> |
| 22 | #include <media/v4l2-dev.h> | 23 | #include <media/v4l2-dev.h> |
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index 2f78b4f263f5..9c8b7c7b89ee 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
| 32 | #include <linux/videodev2.h> | 32 | #include <linux/videodev2.h> |
| 33 | #include <linux/pm_runtime.h> | 33 | #include <linux/pm_runtime.h> |
| 34 | #include <linux/sched.h> | ||
| 34 | 35 | ||
| 35 | #include <media/v4l2-common.h> | 36 | #include <media/v4l2-common.h> |
| 36 | #include <media/v4l2-dev.h> | 37 | #include <media/v4l2-dev.h> |
| @@ -1723,11 +1724,12 @@ static int __devinit sh_mobile_ceu_probe(struct platform_device *pdev) | |||
| 1723 | 1724 | ||
| 1724 | err = soc_camera_host_register(&pcdev->ici); | 1725 | err = soc_camera_host_register(&pcdev->ici); |
| 1725 | if (err) | 1726 | if (err) |
| 1726 | goto exit_free_irq; | 1727 | goto exit_free_clk; |
| 1727 | 1728 | ||
| 1728 | return 0; | 1729 | return 0; |
| 1729 | 1730 | ||
| 1730 | exit_free_irq: | 1731 | exit_free_clk: |
| 1732 | pm_runtime_disable(&pdev->dev); | ||
| 1731 | free_irq(pcdev->irq, pcdev); | 1733 | free_irq(pcdev->irq, pcdev); |
| 1732 | exit_release_mem: | 1734 | exit_release_mem: |
| 1733 | if (platform_get_resource(pdev, IORESOURCE_MEM, 1)) | 1735 | if (platform_get_resource(pdev, IORESOURCE_MEM, 1)) |
| @@ -1747,6 +1749,7 @@ static int __devexit sh_mobile_ceu_remove(struct platform_device *pdev) | |||
| 1747 | struct sh_mobile_ceu_dev, ici); | 1749 | struct sh_mobile_ceu_dev, ici); |
| 1748 | 1750 | ||
| 1749 | soc_camera_host_unregister(soc_host); | 1751 | soc_camera_host_unregister(soc_host); |
| 1752 | pm_runtime_disable(&pdev->dev); | ||
| 1750 | free_irq(pcdev->irq, pcdev); | 1753 | free_irq(pcdev->irq, pcdev); |
| 1751 | if (platform_get_resource(pdev, IORESOURCE_MEM, 1)) | 1754 | if (platform_get_resource(pdev, IORESOURCE_MEM, 1)) |
| 1752 | dma_release_declared_memory(&pdev->dev); | 1755 | dma_release_declared_memory(&pdev->dev); |
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c index 36e617bd13c7..95fdeb23c2c1 100644 --- a/drivers/media/video/soc_camera.c +++ b/drivers/media/video/soc_camera.c | |||
| @@ -1097,6 +1097,13 @@ static int default_s_crop(struct soc_camera_device *icd, struct v4l2_crop *a) | |||
| 1097 | return v4l2_subdev_call(sd, video, s_crop, a); | 1097 | return v4l2_subdev_call(sd, video, s_crop, a); |
| 1098 | } | 1098 | } |
| 1099 | 1099 | ||
| 1100 | static void soc_camera_device_init(struct device *dev, void *pdata) | ||
| 1101 | { | ||
| 1102 | dev->platform_data = pdata; | ||
| 1103 | dev->bus = &soc_camera_bus_type; | ||
| 1104 | dev->release = dummy_release; | ||
| 1105 | } | ||
| 1106 | |||
| 1100 | int soc_camera_host_register(struct soc_camera_host *ici) | 1107 | int soc_camera_host_register(struct soc_camera_host *ici) |
| 1101 | { | 1108 | { |
| 1102 | struct soc_camera_host *ix; | 1109 | struct soc_camera_host *ix; |
| @@ -1158,6 +1165,7 @@ void soc_camera_host_unregister(struct soc_camera_host *ici) | |||
| 1158 | 1165 | ||
| 1159 | list_for_each_entry(icd, &devices, list) { | 1166 | list_for_each_entry(icd, &devices, list) { |
| 1160 | if (icd->iface == ici->nr) { | 1167 | if (icd->iface == ici->nr) { |
| 1168 | void *pdata = icd->dev.platform_data; | ||
| 1161 | /* The bus->remove will be called */ | 1169 | /* The bus->remove will be called */ |
| 1162 | device_unregister(&icd->dev); | 1170 | device_unregister(&icd->dev); |
| 1163 | /* | 1171 | /* |
| @@ -1169,6 +1177,7 @@ void soc_camera_host_unregister(struct soc_camera_host *ici) | |||
| 1169 | * device private data. | 1177 | * device private data. |
| 1170 | */ | 1178 | */ |
| 1171 | memset(&icd->dev, 0, sizeof(icd->dev)); | 1179 | memset(&icd->dev, 0, sizeof(icd->dev)); |
| 1180 | soc_camera_device_init(&icd->dev, pdata); | ||
| 1172 | } | 1181 | } |
| 1173 | } | 1182 | } |
| 1174 | 1183 | ||
| @@ -1200,10 +1209,7 @@ static int soc_camera_device_register(struct soc_camera_device *icd) | |||
| 1200 | * man, stay reasonable... */ | 1209 | * man, stay reasonable... */ |
| 1201 | return -ENOMEM; | 1210 | return -ENOMEM; |
| 1202 | 1211 | ||
| 1203 | icd->devnum = num; | 1212 | icd->devnum = num; |
| 1204 | icd->dev.bus = &soc_camera_bus_type; | ||
| 1205 | |||
| 1206 | icd->dev.release = dummy_release; | ||
| 1207 | icd->use_count = 0; | 1213 | icd->use_count = 0; |
| 1208 | icd->host_priv = NULL; | 1214 | icd->host_priv = NULL; |
| 1209 | mutex_init(&icd->video_lock); | 1215 | mutex_init(&icd->video_lock); |
| @@ -1311,12 +1317,13 @@ static int __devinit soc_camera_pdrv_probe(struct platform_device *pdev) | |||
| 1311 | icd->iface = icl->bus_id; | 1317 | icd->iface = icl->bus_id; |
| 1312 | icd->pdev = &pdev->dev; | 1318 | icd->pdev = &pdev->dev; |
| 1313 | platform_set_drvdata(pdev, icd); | 1319 | platform_set_drvdata(pdev, icd); |
| 1314 | icd->dev.platform_data = icl; | ||
| 1315 | 1320 | ||
| 1316 | ret = soc_camera_device_register(icd); | 1321 | ret = soc_camera_device_register(icd); |
| 1317 | if (ret < 0) | 1322 | if (ret < 0) |
| 1318 | goto escdevreg; | 1323 | goto escdevreg; |
| 1319 | 1324 | ||
| 1325 | soc_camera_device_init(&icd->dev, icl); | ||
| 1326 | |||
| 1320 | icd->user_width = DEFAULT_WIDTH; | 1327 | icd->user_width = DEFAULT_WIDTH; |
| 1321 | icd->user_height = DEFAULT_HEIGHT; | 1328 | icd->user_height = DEFAULT_HEIGHT; |
| 1322 | 1329 | ||
diff --git a/drivers/media/video/videobuf-dma-contig.c b/drivers/media/video/videobuf-dma-contig.c index 635ffc7b0391..c3065c4bcba9 100644 --- a/drivers/media/video/videobuf-dma-contig.c +++ b/drivers/media/video/videobuf-dma-contig.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
| 20 | #include <linux/pagemap.h> | 20 | #include <linux/pagemap.h> |
| 21 | #include <linux/dma-mapping.h> | 21 | #include <linux/dma-mapping.h> |
| 22 | #include <linux/sched.h> | ||
| 22 | #include <media/videobuf-dma-contig.h> | 23 | #include <media/videobuf-dma-contig.h> |
| 23 | 24 | ||
| 24 | struct videobuf_dma_contig_memory { | 25 | struct videobuf_dma_contig_memory { |
diff --git a/drivers/staging/go7007/s2250-board.c b/drivers/staging/go7007/s2250-board.c index 8c85a9c3665a..f4a6541c3e60 100644 --- a/drivers/staging/go7007/s2250-board.c +++ b/drivers/staging/go7007/s2250-board.c | |||
| @@ -261,7 +261,7 @@ static int read_reg_fp(struct i2c_client *client, u16 addr, u16 *val) | |||
| 261 | 261 | ||
| 262 | memset(buf, 0xcd, 6); | 262 | memset(buf, 0xcd, 6); |
| 263 | usb = go->hpi_context; | 263 | usb = go->hpi_context; |
| 264 | if (down_interruptible(&usb->i2c_lock) != 0) { | 264 | if (mutex_lock_interruptible(&usb->i2c_lock) != 0) { |
| 265 | printk(KERN_INFO "i2c lock failed\n"); | 265 | printk(KERN_INFO "i2c lock failed\n"); |
| 266 | kfree(buf); | 266 | kfree(buf); |
| 267 | return -EINTR; | 267 | return -EINTR; |
| @@ -270,7 +270,7 @@ static int read_reg_fp(struct i2c_client *client, u16 addr, u16 *val) | |||
| 270 | kfree(buf); | 270 | kfree(buf); |
| 271 | return -EFAULT; | 271 | return -EFAULT; |
| 272 | } | 272 | } |
| 273 | up(&usb->i2c_lock); | 273 | mutex_unlock(&usb->i2c_lock); |
| 274 | 274 | ||
| 275 | *val = (buf[0] << 8) | buf[1]; | 275 | *val = (buf[0] << 8) | buf[1]; |
| 276 | kfree(buf); | 276 | kfree(buf); |
diff --git a/drivers/staging/go7007/s2250-loader.h b/drivers/staging/go7007/s2250-loader.h new file mode 100644 index 000000000000..b7c301af16cc --- /dev/null +++ b/drivers/staging/go7007/s2250-loader.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2005-2006 Micronas USA Inc. | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License (Version 2) as | ||
| 6 | * published by the Free Software Foundation. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program; if not, write to the Free Software Foundation, | ||
| 15 | * Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef _S2250_LOADER_H_ | ||
| 19 | #define _S2250_LOADER_H_ | ||
| 20 | |||
| 21 | extern int s2250loader_init(void); | ||
| 22 | extern void s2250loader_cleanup(void); | ||
| 23 | |||
| 24 | #endif | ||
