Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb

* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (7798): tuners/Kconfig: Change config name and help to reflect dynamic load for tuners
  V4L/DVB (7794): cx88: Fix a warning
  V4L/DVB (7792): ivtv: correct misspelled "HIMEM4G" to "HIGHMEM4G" in error message
  V4L/DVB (7791): ivtv: POLLHUP must be returned on eof
  V4L/DVB (7789b): Fix merge conflicts
This commit is contained in:
Linus Torvalds 2008-04-29 20:37:59 -07:00
commit 0ff5ce7f30
7 changed files with 16 additions and 10 deletions

View file

@ -1,12 +1,17 @@
config MEDIA_ATTACH config MEDIA_ATTACH
bool "Load and attach frontend driver modules as needed" bool "Load and attach frontend and tuner driver modules as needed"
depends on DVB_CORE depends on DVB_CORE
depends on MODULES depends on MODULES
help help
Remove the static dependency of DVB card drivers on all Remove the static dependency of DVB card drivers on all
frontend modules for all possible card variants. Instead, frontend modules for all possible card variants. Instead,
allow the card drivers to only load the frontend modules allow the card drivers to only load the frontend modules
they require. This saves several KBytes of memory. 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. Note: You will need module-init-tools v3.2 or later for this feature.

View file

@ -4,7 +4,7 @@ config VIDEO_CX18
select I2C_ALGOBIT select I2C_ALGOBIT
select FW_LOADER select FW_LOADER
select VIDEO_IR select VIDEO_IR
select VIDEO_TUNER select MEDIA_TUNER
select VIDEO_TVEEPROM select VIDEO_TVEEPROM
select VIDEO_CX2341X select VIDEO_CX2341X
select VIDEO_CS5345 select VIDEO_CS5345

View file

@ -567,7 +567,7 @@ static void cx18_load_and_init_modules(struct cx18 *cx)
int i; int i;
/* load modules */ /* load modules */
#ifndef CONFIG_VIDEO_TUNER #ifndef CONFIG_MEDIA_TUNER
hw = cx18_request_module(cx, hw, "tuner", CX18_HW_TUNER); hw = cx18_request_module(cx, hw, "tuner", CX18_HW_TUNER);
#endif #endif
#ifndef CONFIG_VIDEO_CS5345 #ifndef CONFIG_VIDEO_CS5345

View file

@ -99,7 +99,6 @@ static int cx8800_bit_getsda(void *data)
static int attach_inform(struct i2c_client *client) static int attach_inform(struct i2c_client *client)
{ {
struct tuner_setup tun_setup;
struct cx88_core *core = i2c_get_adapdata(client->adapter); struct cx88_core *core = i2c_get_adapdata(client->adapter);
dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n", dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n",

View file

@ -1049,7 +1049,7 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
IVTV_ENCODER_SIZE); IVTV_ENCODER_SIZE);
if (!itv->enc_mem) { if (!itv->enc_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIMEM4G into the kernel would help\n"); IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
retval = -ENOMEM; retval = -ENOMEM;
goto free_mem; goto free_mem;
} }
@ -1061,7 +1061,7 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
IVTV_DECODER_SIZE); IVTV_DECODER_SIZE);
if (!itv->dec_mem) { if (!itv->dec_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIMEM4G into the kernel would help\n"); IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
retval = -ENOMEM; retval = -ENOMEM;
goto free_mem; goto free_mem;
} }
@ -1077,7 +1077,7 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
ioremap_nocache(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE); ioremap_nocache(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE);
if (!itv->reg_mem) { if (!itv->reg_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIMEM4G into the kernel would help\n"); IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
retval = -ENOMEM; retval = -ENOMEM;
goto free_io; goto free_io;
} }

View file

@ -755,8 +755,10 @@ unsigned int ivtv_v4l2_enc_poll(struct file *filp, poll_table * wait)
IVTV_DEBUG_HI_FILE("Encoder poll\n"); IVTV_DEBUG_HI_FILE("Encoder poll\n");
poll_wait(filp, &s->waitq, wait); poll_wait(filp, &s->waitq, wait);
if (eof || s->q_full.length || s->q_io.length) if (s->q_full.length || s->q_io.length)
return POLLIN | POLLRDNORM; return POLLIN | POLLRDNORM;
if (eof)
return POLLHUP;
return 0; return 0;
} }

View file

@ -34,7 +34,7 @@
#define PREFIX t->i2c->driver->driver.name #define PREFIX t->i2c->driver->driver.name
/** This macro allows us to probe dynamically, avoiding static links */ /** This macro allows us to probe dynamically, avoiding static links */
#ifdef CONFIG_DVB_CORE_ATTACH #ifdef CONFIG_MEDIA_ATTACH
#define tuner_symbol_probe(FUNCTION, ARGS...) ({ \ #define tuner_symbol_probe(FUNCTION, ARGS...) ({ \
int __r = -EINVAL; \ int __r = -EINVAL; \
typeof(&FUNCTION) __a = symbol_request(FUNCTION); \ typeof(&FUNCTION) __a = symbol_request(FUNCTION); \