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
This commit is contained in:
Коммит
70a3067d55
|
@ -136,9 +136,9 @@ config DVB_NET
|
|||
|
||||
# This Kconfig option is used by both PCI and USB drivers
|
||||
config TTPCI_EEPROM
|
||||
tristate
|
||||
depends on I2C
|
||||
default n
|
||||
tristate
|
||||
depends on I2C
|
||||
default n
|
||||
|
||||
source "drivers/media/dvb-core/Kconfig"
|
||||
|
||||
|
@ -189,6 +189,12 @@ config MEDIA_SUBDRV_AUTOSELECT
|
|||
|
||||
If unsure say Y.
|
||||
|
||||
config MEDIA_ATTACH
|
||||
bool
|
||||
depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
|
||||
depends on MODULES
|
||||
default MODULES
|
||||
|
||||
source "drivers/media/i2c/Kconfig"
|
||||
source "drivers/media/tuners/Kconfig"
|
||||
source "drivers/media/dvb-frontends/Kconfig"
|
||||
|
|
|
@ -834,23 +834,11 @@ static int fimc_is_probe(struct platform_device *pdev)
|
|||
goto err_clk;
|
||||
}
|
||||
pm_runtime_enable(dev);
|
||||
/*
|
||||
* Enable only the ISP power domain, keep FIMC-IS clocks off until
|
||||
* the whole clock tree is configured. The ISP power domain needs
|
||||
* be active in order to acces any CMU_ISP clock registers.
|
||||
*/
|
||||
|
||||
ret = pm_runtime_get_sync(dev);
|
||||
if (ret < 0)
|
||||
goto err_irq;
|
||||
|
||||
ret = fimc_is_setup_clocks(is);
|
||||
pm_runtime_put_sync(dev);
|
||||
|
||||
if (ret < 0)
|
||||
goto err_irq;
|
||||
|
||||
is->clk_init = true;
|
||||
|
||||
is->alloc_ctx = vb2_dma_contig_init_ctx(dev);
|
||||
if (IS_ERR(is->alloc_ctx)) {
|
||||
ret = PTR_ERR(is->alloc_ctx);
|
||||
|
@ -872,6 +860,8 @@ static int fimc_is_probe(struct platform_device *pdev)
|
|||
if (ret < 0)
|
||||
goto err_dfs;
|
||||
|
||||
pm_runtime_put_sync(dev);
|
||||
|
||||
dev_dbg(dev, "FIMC-IS registered successfully\n");
|
||||
return 0;
|
||||
|
||||
|
@ -891,9 +881,11 @@ err_clk:
|
|||
static int fimc_is_runtime_resume(struct device *dev)
|
||||
{
|
||||
struct fimc_is *is = dev_get_drvdata(dev);
|
||||
int ret;
|
||||
|
||||
if (!is->clk_init)
|
||||
return 0;
|
||||
ret = fimc_is_setup_clocks(is);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return fimc_is_enable_clocks(is);
|
||||
}
|
||||
|
@ -902,9 +894,7 @@ static int fimc_is_runtime_suspend(struct device *dev)
|
|||
{
|
||||
struct fimc_is *is = dev_get_drvdata(dev);
|
||||
|
||||
if (is->clk_init)
|
||||
fimc_is_disable_clocks(is);
|
||||
|
||||
fimc_is_disable_clocks(is);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -264,7 +264,6 @@ struct fimc_is {
|
|||
spinlock_t slock;
|
||||
|
||||
struct clk *clocks[ISS_CLKS_MAX];
|
||||
bool clk_init;
|
||||
void __iomem *regs;
|
||||
void __iomem *pmu_regs;
|
||||
int irq;
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
s5p-jpeg-objs := jpeg-core.o
|
||||
obj-$(CONFIG_VIDEO_SAMSUNG_S5P_JPEG) := s5p-jpeg.o
|
||||
obj-$(CONFIG_VIDEO_SAMSUNG_S5P_JPEG) += s5p-jpeg.o
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
obj-$(CONFIG_VIDEO_SAMSUNG_S5P_MFC) := s5p-mfc.o
|
||||
obj-$(CONFIG_VIDEO_SAMSUNG_S5P_MFC) += s5p-mfc.o
|
||||
s5p-mfc-y += s5p_mfc.o s5p_mfc_intr.o
|
||||
s5p-mfc-y += s5p_mfc_dec.o s5p_mfc_enc.o
|
||||
s5p-mfc-y += s5p_mfc_ctrl.o s5p_mfc_pm.o
|
||||
|
|
|
@ -1,23 +1,3 @@
|
|||
config MEDIA_ATTACH
|
||||
bool "Load and attach frontend and tuner driver modules as needed"
|
||||
depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
|
||||
depends on MODULES
|
||||
default y if !EXPERT
|
||||
help
|
||||
Remove the static dependency of DVB card drivers on all
|
||||
frontend modules for all possible card variants. Instead,
|
||||
allow the card drivers to only load the frontend modules
|
||||
they require.
|
||||
|
||||
Also, tuner module will automatically load a tuner driver
|
||||
when needed, for analog mode.
|
||||
|
||||
This saves several KBytes of memory.
|
||||
|
||||
Note: You will need module-init-tools v3.2 or later for this feature.
|
||||
|
||||
If unsure say Y.
|
||||
|
||||
# Analog TV tuners, auto-loaded via tuner.ko
|
||||
config MEDIA_TUNER
|
||||
tristate
|
||||
|
|
|
@ -376,7 +376,7 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
|
|||
struct rtl28xxu_req req_mxl5007t = {0xd9c0, CMD_I2C_RD, 1, buf};
|
||||
struct rtl28xxu_req req_e4000 = {0x02c8, CMD_I2C_RD, 1, buf};
|
||||
struct rtl28xxu_req req_tda18272 = {0x00c0, CMD_I2C_RD, 2, buf};
|
||||
struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 5, buf};
|
||||
struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 1, buf};
|
||||
|
||||
dev_dbg(&d->udev->dev, "%s:\n", __func__);
|
||||
|
||||
|
@ -481,9 +481,9 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
|
|||
goto found;
|
||||
}
|
||||
|
||||
/* check R820T by reading tuner stats at I2C addr 0x1a */
|
||||
/* check R820T ID register; reg=00 val=69 */
|
||||
ret = rtl28xxu_ctrl_msg(d, &req_r820t);
|
||||
if (ret == 0) {
|
||||
if (ret == 0 && buf[0] == 0x69) {
|
||||
priv->tuner = TUNER_RTL2832_R820T;
|
||||
priv->tuner_name = "R820T";
|
||||
goto found;
|
||||
|
|
Загрузка…
Ссылка в новой задаче