Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab:
"Another set of fixes for Kernel 3.10.

This series contain:
- two Kbuild fixes for randconfig
- a buffer overflow when using rtl28xuu with r820t tuner
- one clk fixup on exynos4-is driver"

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
[media] Fix build when drivers are builtin and frontend modules
[media] s5p makefiles: don't override other selections on obj-[ym]
[media] exynos4-is: Fix FIMC-IS clocks initialization
[media] rtl28xxu: fix buffer overflow when probing Rafael Micro r820t tuner

+22 -47
+9 -3
drivers/media/Kconfig
··· 136 136 137 137 # This Kconfig option is used by both PCI and USB drivers 138 138 config TTPCI_EEPROM 139 - tristate 140 - depends on I2C 141 - default n 139 + tristate 140 + depends on I2C 141 + default n 142 142 143 143 source "drivers/media/dvb-core/Kconfig" 144 144 ··· 188 188 the needed demodulators). 189 189 190 190 If unsure say Y. 191 + 192 + config MEDIA_ATTACH 193 + bool 194 + depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 195 + depends on MODULES 196 + default MODULES 191 197 192 198 source "drivers/media/i2c/Kconfig" 193 199 source "drivers/media/tuners/Kconfig"
+8 -18
drivers/media/platform/exynos4-is/fimc-is.c
··· 834 834 goto err_clk; 835 835 } 836 836 pm_runtime_enable(dev); 837 - /* 838 - * Enable only the ISP power domain, keep FIMC-IS clocks off until 839 - * the whole clock tree is configured. The ISP power domain needs 840 - * be active in order to acces any CMU_ISP clock registers. 841 - */ 837 + 842 838 ret = pm_runtime_get_sync(dev); 843 839 if (ret < 0) 844 840 goto err_irq; 845 - 846 - ret = fimc_is_setup_clocks(is); 847 - pm_runtime_put_sync(dev); 848 - 849 - if (ret < 0) 850 - goto err_irq; 851 - 852 - is->clk_init = true; 853 841 854 842 is->alloc_ctx = vb2_dma_contig_init_ctx(dev); 855 843 if (IS_ERR(is->alloc_ctx)) { ··· 860 872 if (ret < 0) 861 873 goto err_dfs; 862 874 875 + pm_runtime_put_sync(dev); 876 + 863 877 dev_dbg(dev, "FIMC-IS registered successfully\n"); 864 878 return 0; 865 879 ··· 881 891 static int fimc_is_runtime_resume(struct device *dev) 882 892 { 883 893 struct fimc_is *is = dev_get_drvdata(dev); 894 + int ret; 884 895 885 - if (!is->clk_init) 886 - return 0; 896 + ret = fimc_is_setup_clocks(is); 897 + if (ret) 898 + return ret; 887 899 888 900 return fimc_is_enable_clocks(is); 889 901 } ··· 894 902 { 895 903 struct fimc_is *is = dev_get_drvdata(dev); 896 904 897 - if (is->clk_init) 898 - fimc_is_disable_clocks(is); 899 - 905 + fimc_is_disable_clocks(is); 900 906 return 0; 901 907 } 902 908
-1
drivers/media/platform/exynos4-is/fimc-is.h
··· 264 264 spinlock_t slock; 265 265 266 266 struct clk *clocks[ISS_CLKS_MAX]; 267 - bool clk_init; 268 267 void __iomem *regs; 269 268 void __iomem *pmu_regs; 270 269 int irq;
+1 -1
drivers/media/platform/s5p-jpeg/Makefile
··· 1 1 s5p-jpeg-objs := jpeg-core.o 2 - obj-$(CONFIG_VIDEO_SAMSUNG_S5P_JPEG) := s5p-jpeg.o 2 + obj-$(CONFIG_VIDEO_SAMSUNG_S5P_JPEG) += s5p-jpeg.o
+1 -1
drivers/media/platform/s5p-mfc/Makefile
··· 1 - obj-$(CONFIG_VIDEO_SAMSUNG_S5P_MFC) := s5p-mfc.o 1 + obj-$(CONFIG_VIDEO_SAMSUNG_S5P_MFC) += s5p-mfc.o 2 2 s5p-mfc-y += s5p_mfc.o s5p_mfc_intr.o 3 3 s5p-mfc-y += s5p_mfc_dec.o s5p_mfc_enc.o 4 4 s5p-mfc-y += s5p_mfc_ctrl.o s5p_mfc_pm.o
-20
drivers/media/tuners/Kconfig
··· 1 - config MEDIA_ATTACH 2 - bool "Load and attach frontend and tuner driver modules as needed" 3 - depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 4 - depends on MODULES 5 - default y if !EXPERT 6 - help 7 - Remove the static dependency of DVB card drivers on all 8 - frontend modules for all possible card variants. Instead, 9 - allow the card drivers to only load the frontend modules 10 - they require. 11 - 12 - Also, tuner module will automatically load a tuner driver 13 - when needed, for analog mode. 14 - 15 - This saves several KBytes of memory. 16 - 17 - Note: You will need module-init-tools v3.2 or later for this feature. 18 - 19 - If unsure say Y. 20 - 21 1 # Analog TV tuners, auto-loaded via tuner.ko 22 2 config MEDIA_TUNER 23 3 tristate
+3 -3
drivers/media/usb/dvb-usb-v2/rtl28xxu.c
··· 376 376 struct rtl28xxu_req req_mxl5007t = {0xd9c0, CMD_I2C_RD, 1, buf}; 377 377 struct rtl28xxu_req req_e4000 = {0x02c8, CMD_I2C_RD, 1, buf}; 378 378 struct rtl28xxu_req req_tda18272 = {0x00c0, CMD_I2C_RD, 2, buf}; 379 - struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 5, buf}; 379 + struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 1, buf}; 380 380 381 381 dev_dbg(&d->udev->dev, "%s:\n", __func__); 382 382 ··· 481 481 goto found; 482 482 } 483 483 484 - /* check R820T by reading tuner stats at I2C addr 0x1a */ 484 + /* check R820T ID register; reg=00 val=69 */ 485 485 ret = rtl28xxu_ctrl_msg(d, &req_r820t); 486 - if (ret == 0) { 486 + if (ret == 0 && buf[0] == 0x69) { 487 487 priv->tuner = TUNER_RTL2832_R820T; 488 488 priv->tuner_name = "R820T"; 489 489 goto found;