Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Browse files Browse the repository at this point in the history
* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (59 commits)
  V4L/DVB (7219): zoran: Fix namespace conflicts with Zoran 'GPIO_MAX' enum
  V4L/DVB (7205): tuner-xc2028 depends on FW_LOADER
  V4L/DVB (7201): cx88-mpeg: Fix race condition in variable access
  V4L/DVB (7200): Fix FM firmware loading
  V4L/DVB (7198): V4L, include ioctl.h in videodev headers
  V4L/DVB (7197): bttv: Fix overlay divide error
  V4L/DVB (7195): xc5000: fix build error when built as module
  V4L/DVB (7194): cx88-mpeg: Allow concurrent access to cx88-mpeg devices
  V4L/DVB (7193): tveeprom: Add proper tuner mapping for hauppauge eeprom id 133
  V4L/DVB (7192): Adds support for Genius TVGo A11MCE
  V4L/DVB (7189): autosuspend support
  V4L/DVB (7188): radio-si470x version 1.0.6
  V4L/DVB (7186): tda10086: make the 22kHz tone for DISEQC a config option
  V4L/DVB (7183): radio-si470x: fix build warning
  V4L/DVB (7180): em28xx: add URB_NO_TRANSFER_DMA_MAP, since urb->transfer_dma is set
  V4L/DVB (7179): Allow more than one em28xx board
  V4L/DVB (7164): em28xx-alsa: Add a missing mutex
  V4L/DVB (7163): em28xx: makes audio settings more stable
  V4L/DVB (7162): em28xx: Fix endian and returns the correct values
  V4L/DVB (7161): em28xx: Fix printing debug values higher than 127
  ...
  • Loading branch information
Linus Torvalds committed Feb 18, 2008
2 parents 9960c90 + 6165894 commit 20ef0f1
Show file tree
Hide file tree
Showing 61 changed files with 1,456 additions and 926 deletions.
2 changes: 1 addition & 1 deletion Documentation/video4linux/CARDLIST.em28xx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
7 -> Leadtek Winfast USB II (em2800)
8 -> Kworld USB2800 (em2800)
9 -> Pinnacle Dazzle DVC 90/DVC 100 (em2820/em2840) [2304:0207,2304:021a]
10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]
10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500,2040:6502]
11 -> Terratec Hybrid XS (em2880) [0ccd:0042]
12 -> Kworld PVR TV 2800 RF (em2820/em2840)
13 -> Terratec Prodigy XS (em2880) [0ccd:0047]
Expand Down
6 changes: 4 additions & 2 deletions Documentation/video4linux/CARDLIST.saa7134
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@
91 -> AVerMedia A169 B [1461:7360]
92 -> AVerMedia A169 B1 [1461:6360]
93 -> Medion 7134 Bridge #2 [16be:0005]
94 -> LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB [5168:3306,5168:3502,4e42:3502]
94 -> LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB [5168:3306,5168:3502,5168:3307,4e42:3502]
95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138]
96 -> Medion Md8800 Quadro [16be:0007,16be:0008]
96 -> Medion Md8800 Quadro [16be:0007,16be:0008,16be:000d]
97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300]
98 -> Proteus Pro 2309 [0919:2003]
99 -> AVerMedia TV Hybrid A16AR [1461:2c00]
Expand Down Expand Up @@ -129,3 +129,5 @@
128 -> Beholder BeholdTV Columbus TVFM [0000:5201]
129 -> Beholder BeholdTV 607 / BeholdTV 609 [5ace:6070,5ace:6071,5ace:6072,5ace:6073,5ace:6090,5ace:6091,5ace:6092,5ace:6093]
130 -> Beholder BeholdTV M6 / BeholdTV M6 Extra [5ace:6190,5ace:6193]
131 -> Twinhan Hybrid DTV-DVB 3056 PCI [1822:0022]
132 -> Genius TVGO AM11MCE
4 changes: 3 additions & 1 deletion Documentation/video4linux/zr364xx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ modprobe zr364xx debug=X mode=Y
- debug : set to 1 to enable verbose debug messages
- mode : 0 = 320x240, 1 = 160x120, 2 = 640x480
You can then use the camera with V4L2 compatible applications, for example Ekiga.
To capture a single image, try this: dd if=/dev/video0 of=test.jpg bs=1 count=1
To capture a single image, try this: dd if=/dev/video0 of=test.jpg bs=1M count=1

links :
http://mxhaard.free.fr/ (support for many others cams including some Aiptek PocketDV)
Expand Down Expand Up @@ -63,3 +63,5 @@ Vendor Product Distributor Model
0x06d6 0x0034 Trust Powerc@m 750
0x0a17 0x0062 Pentax Optio 50L
0x06d6 0x003b Trust Powerc@m 970Z
0x0a17 0x004e Pentax Optio 50
0x041e 0x405d Creative DiVi CAM 516
18 changes: 11 additions & 7 deletions drivers/media/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,16 @@ config VIDEO_DEV
To compile this driver as a module, choose M here: the
module will be called videodev.

config VIDEO_V4L2_COMMON
tristate
depends on (I2C || I2C=n) && VIDEO_DEV
default (I2C || I2C=n) && VIDEO_DEV

config VIDEO_V4L1
bool "Enable Video For Linux API 1 (DEPRECATED)"
depends on VIDEO_DEV
depends on VIDEO_DEV && VIDEO_V4L2_COMMON
default VIDEO_DEV && VIDEO_V4L2_COMMON
select VIDEO_V4L1_COMPAT
default y
---help---
Enables a compatibility API used by most V4L2 devices to allow
its usage with legacy applications that supports only V4L1 api.
Expand All @@ -39,7 +44,7 @@ config VIDEO_V4L1
config VIDEO_V4L1_COMPAT
bool "Enable Video For Linux API 1 compatible Layer"
depends on VIDEO_DEV
default y
default VIDEO_DEV
---help---
This api were developed to be used at Kernel 2.2 and 2.4, but
lacks support for several video standards. There are several
Expand All @@ -55,8 +60,8 @@ config VIDEO_V4L1_COMPAT

config VIDEO_V4L2
bool
depends on VIDEO_DEV
default y
depends on VIDEO_DEV && VIDEO_V4L2_COMMON
default VIDEO_DEV && VIDEO_V4L2_COMMON

source "drivers/media/video/Kconfig"

Expand Down Expand Up @@ -93,7 +98,7 @@ if VIDEO_TUNER_CUSTOMIZE

config TUNER_XC2028
tristate "XCeive xc2028/xc3028 tuners"
depends on I2C
depends on I2C && FW_LOADER
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the xc2028/xc3028 tuners.
Expand Down Expand Up @@ -180,7 +185,6 @@ config VIDEO_TVEEPROM

config DAB
boolean "DAB adapters"
default y
---help---
Allow selecting support for for Digital Audio Broadcasting (DAB)
Receiver adapters.
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/common/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ config VIDEO_SAA7146

config VIDEO_SAA7146_VV
tristate
depends on VIDEO_DEV
depends on VIDEO_V4L2
select VIDEOBUF_DMA_SG
select VIDEO_SAA7146
46 changes: 46 additions & 0 deletions drivers/media/common/ir-keymaps.c
Original file line number Diff line number Diff line change
Expand Up @@ -1987,3 +1987,49 @@ IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = {
};

EXPORT_SYMBOL_GPL(ir_codes_behold);

/*
* Remote control for the Genius TVGO A11MCE
* Adrian Pardini <pardo.bsso@gmail.com>
*/
IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE] = {
/* Keys 0 to 9 */
[0x48] = KEY_0,
[0x09] = KEY_1,
[0x1d] = KEY_2,
[0x1f] = KEY_3,
[0x19] = KEY_4,
[0x1b] = KEY_5,
[0x11] = KEY_6,
[0x17] = KEY_7,
[0x12] = KEY_8,
[0x16] = KEY_9,

[0x54] = KEY_RECORD, /* recording */
[0x06] = KEY_MUTE, /* mute */
[0x10] = KEY_POWER,
[0x40] = KEY_LAST, /* recall */
[0x4c] = KEY_CHANNELUP, /* channel / program + */
[0x00] = KEY_CHANNELDOWN, /* channel / program - */
[0x0d] = KEY_VOLUMEUP,
[0x15] = KEY_VOLUMEDOWN,
[0x4d] = KEY_OK, /* also labeled as Pause */
[0x1c] = KEY_ZOOM, /* full screen and Stop*/
[0x02] = KEY_MODE, /* AV Source or Rewind*/
[0x04] = KEY_LIST, /* -/-- */
/* small arrows above numbers */
[0x1a] = KEY_NEXT, /* also Fast Forward */
[0x0e] = KEY_PREVIOUS, /* also Rewind */
/* these are in a rather non standard layout and have
an alternate name written */
[0x1e] = KEY_UP, /* Video Setting */
[0x0a] = KEY_DOWN, /* Video Default */
[0x05] = KEY_LEFT, /* Snapshot */
[0x0c] = KEY_RIGHT, /* Hide Panel */
/* Four buttons without label */
[0x49] = KEY_RED,
[0x0b] = KEY_GREEN,
[0x13] = KEY_YELLOW,
[0x50] = KEY_BLUE,
};
EXPORT_SYMBOL_GPL(ir_codes_genius_tvgo_a11mce);
1 change: 0 additions & 1 deletion drivers/media/common/saa7146_vbi.c
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,6 @@ static int vbi_open(struct saa7146_dev *dev, struct file *file)
V4L2_FIELD_SEQ_TB, // FIXME: does this really work?
sizeof(struct saa7146_buf),
file);
mutex_init(&fh->vbi_q.lock);

init_timer(&fh->vbi_read_timeout);
fh->vbi_read_timeout.function = vbi_read_timeout;
Expand Down
2 changes: 0 additions & 2 deletions drivers/media/common/saa7146_video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1417,8 +1417,6 @@ static int video_open(struct saa7146_dev *dev, struct file *file)
sizeof(struct saa7146_buf),
file);

mutex_init(&fh->video_q.lock);

return 0;
}

Expand Down
23 changes: 14 additions & 9 deletions drivers/media/dvb/bt8xx/bt878.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ EXPORT_SYMBOL(bt878);
#if defined(dprintk)
#undef dprintk
#endif
#define dprintk if(bt878_debug) printk
#define dprintk(fmt, arg...) \
do { \
if (bt878_debug) \
printk(KERN_DEBUG fmt, ##arg); \
} while (0)

static void bt878_mem_free(struct bt878 *bt)
{
Expand Down Expand Up @@ -154,7 +158,7 @@ static int bt878_make_risc(struct bt878 *bt)
}

if (bt->line_count > 255) {
printk("bt878: buffer size error!\n");
printk(KERN_ERR "bt878: buffer size error!\n");
return -EINVAL;
}
return 0;
Expand Down Expand Up @@ -285,7 +289,8 @@ static irqreturn_t bt878_irq(int irq, void *dev_id)

if (astat & (BT878_ASCERR | BT878_AOCERR)) {
if (bt878_verbose) {
printk("bt878(%d): irq%s%s risc_pc=%08x\n",
printk(KERN_INFO
"bt878(%d): irq%s%s risc_pc=%08x\n",
bt->nr,
(astat & BT878_ASCERR) ? " SCERR" :
"",
Expand All @@ -295,8 +300,8 @@ static irqreturn_t bt878_irq(int irq, void *dev_id)
}
if (astat & (BT878_APABORT | BT878_ARIPERR | BT878_APPERR)) {
if (bt878_verbose) {
printk
("bt878(%d): irq%s%s%s risc_pc=%08x\n",
printk(KERN_INFO
"bt878(%d): irq%s%s%s risc_pc=%08x\n",
bt->nr,
(astat & BT878_APABORT) ? " PABORT" :
"",
Expand All @@ -308,8 +313,8 @@ static irqreturn_t bt878_irq(int irq, void *dev_id)
}
if (astat & (BT878_AFDSR | BT878_AFTRGT | BT878_AFBUS)) {
if (bt878_verbose) {
printk
("bt878(%d): irq%s%s%s risc_pc=%08x\n",
printk(KERN_INFO
"bt878(%d): irq%s%s%s risc_pc=%08x\n",
bt->nr,
(astat & BT878_AFDSR) ? " FDSR" : "",
(astat & BT878_AFTRGT) ? " FTRGT" :
Expand Down Expand Up @@ -510,7 +515,7 @@ static int __devinit bt878_probe(struct pci_dev *dev,
*/

if ((result = bt878_mem_alloc(bt))) {
printk("bt878: failed to allocate memory!\n");
printk(KERN_ERR "bt878: failed to allocate memory!\n");
goto fail2;
}

Expand All @@ -536,7 +541,7 @@ static void __devexit bt878_remove(struct pci_dev *pci_dev)
struct bt878 *bt = pci_get_drvdata(pci_dev);

if (bt878_verbose)
printk("bt878(%d): unloading\n", bt->nr);
printk(KERN_INFO "bt878(%d): unloading\n", bt->nr);

/* turn off all capturing, DMA and IRQs */
btand(~0x13, BT878_AGPIO_DMA_CTL);
Expand Down
1 change: 1 addition & 0 deletions drivers/media/dvb/dvb-usb/ttusb2.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ static int ttusb2_power_ctrl(struct dvb_usb_device *d, int onoff)
static struct tda10086_config tda10086_config = {
.demod_address = 0x0e,
.invert = 0,
.diseqc_tone = 1,
};

static int ttusb2_frontend_attach(struct dvb_usb_adapter *adap)
Expand Down
28 changes: 22 additions & 6 deletions drivers/media/dvb/frontends/tda10086.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,12 @@ static int tda10086_write_mask(struct tda10086_state *state, int reg, int mask,
static int tda10086_init(struct dvb_frontend* fe)
{
struct tda10086_state* state = fe->demodulator_priv;
u8 t22k_off = 0x80;

dprintk ("%s\n", __FUNCTION__);

if (state->config->diseqc_tone)
t22k_off = 0;
// reset
tda10086_write_byte(state, 0x00, 0x00);
msleep(10);
Expand Down Expand Up @@ -158,7 +161,7 @@ static int tda10086_init(struct dvb_frontend* fe)
tda10086_write_byte(state, 0x3d, 0x80);

// setup SEC
tda10086_write_byte(state, 0x36, 0x80); // all SEC off, no 22k tone
tda10086_write_byte(state, 0x36, t22k_off); // all SEC off, 22k tone
tda10086_write_byte(state, 0x34, (((1<<19) * (22000/1000)) / (SACLK/1000))); // } tone frequency
tda10086_write_byte(state, 0x35, (((1<<19) * (22000/1000)) / (SACLK/1000)) >> 8); // }

Expand All @@ -180,16 +183,20 @@ static void tda10086_diseqc_wait(struct tda10086_state *state)
static int tda10086_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
{
struct tda10086_state* state = fe->demodulator_priv;
u8 t22k_off = 0x80;

dprintk ("%s\n", __FUNCTION__);

if (state->config->diseqc_tone)
t22k_off = 0;

switch (tone) {
case SEC_TONE_OFF:
tda10086_write_byte(state, 0x36, 0x80);
tda10086_write_byte(state, 0x36, t22k_off);
break;

case SEC_TONE_ON:
tda10086_write_byte(state, 0x36, 0x81);
tda10086_write_byte(state, 0x36, 0x01 + t22k_off);
break;
}

Expand All @@ -202,17 +209,22 @@ static int tda10086_send_master_cmd (struct dvb_frontend* fe,
struct tda10086_state* state = fe->demodulator_priv;
int i;
u8 oldval;
u8 t22k_off = 0x80;

dprintk ("%s\n", __FUNCTION__);

if (state->config->diseqc_tone)
t22k_off = 0;

if (cmd->msg_len > 6)
return -EINVAL;
oldval = tda10086_read_byte(state, 0x36);

for(i=0; i< cmd->msg_len; i++) {
tda10086_write_byte(state, 0x48+i, cmd->msg[i]);
}
tda10086_write_byte(state, 0x36, 0x88 | ((cmd->msg_len - 1) << 4));
tda10086_write_byte(state, 0x36, (0x08 + t22k_off)
| ((cmd->msg_len - 1) << 4));

tda10086_diseqc_wait(state);

Expand All @@ -225,16 +237,20 @@ static int tda10086_send_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t minic
{
struct tda10086_state* state = fe->demodulator_priv;
u8 oldval = tda10086_read_byte(state, 0x36);
u8 t22k_off = 0x80;

dprintk ("%s\n", __FUNCTION__);

if (state->config->diseqc_tone)
t22k_off = 0;

switch(minicmd) {
case SEC_MINI_A:
tda10086_write_byte(state, 0x36, 0x84);
tda10086_write_byte(state, 0x36, 0x04 + t22k_off);
break;

case SEC_MINI_B:
tda10086_write_byte(state, 0x36, 0x86);
tda10086_write_byte(state, 0x36, 0x06 + t22k_off);
break;
}

Expand Down
3 changes: 3 additions & 0 deletions drivers/media/dvb/frontends/tda10086.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ struct tda10086_config

/* does the "inversion" need inverted? */
u8 invert;

/* do we need the diseqc signal with carrier? */
u8 diseqc_tone;
};

#if defined(CONFIG_DVB_TDA10086) || (defined(CONFIG_DVB_TDA10086_MODULE) && defined(MODULE))
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb/frontends/tda18271-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ int tda18271_read_extended(struct dvb_frontend *fe)
if (ret != 2)
tda_err("ERROR: i2c_transfer returned: %d\n", ret);

for (i = 0; i <= TDA18271_NUM_REGS; i++) {
for (i = 0; i < TDA18271_NUM_REGS; i++) {
/* don't update write-only registers */
if ((i != R_EB9) &&
(i != R_EB16) &&
Expand Down
3 changes: 2 additions & 1 deletion drivers/media/dvb/frontends/xc5000.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ struct xc5000_config {
/* xc5000 callback command */
#define XC5000_TUNER_RESET 0

#if defined(CONFIG_DVB_TUNER_XC5000) || defined(CONFIG_DVB_TUNER_XC5000_MODULE)
#if defined(CONFIG_DVB_TUNER_XC5000) || \
(defined(CONFIG_DVB_TUNER_XC5000_MODULE) && defined(MODULE))
extern struct dvb_frontend* xc5000_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c,
struct xc5000_config *cfg);
Expand Down
Loading

0 comments on commit 20ef0f1

Please sign in to comment.