diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2006-06-21 17:04:13 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-06-25 02:05:23 -0300 |
commit | 45ad9f8b44b06bf1e91b4b3c338406c2233f0482 (patch) | |
tree | b2cccb49543bcb7289d084a803c44354fcb64115 | |
parent | 54aa9a21ca03cf41d911ada969e86f27ce58bab9 (diff) | |
download | op-kernel-dev-45ad9f8b44b06bf1e91b4b3c338406c2233f0482.zip op-kernel-dev-45ad9f8b44b06bf1e91b4b3c338406c2233f0482.tar.gz |
V4L/DVB (4202): allow selecting CX2341x port mode
CX2341X port was always set to 'memory', but 'streaming' is also possible
ivtv uses the memory (DMA) interface with the CX2341X, while pvrusb2 and
cx88-blackbird use the streaming interface. This setting is now selectable
by the driver.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/cx2341x/fw-encoder-api.txt | 8 | ||||
-rw-r--r-- | drivers/media/video/cx2341x.c | 3 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-blackbird.c | 1 | ||||
-rw-r--r-- | include/media/cx2341x.h | 7 |
4 files changed, 17 insertions, 2 deletions
diff --git a/Documentation/video4linux/cx2341x/fw-encoder-api.txt b/Documentation/video4linux/cx2341x/fw-encoder-api.txt index f74b0ae..001c686 100644 --- a/Documentation/video4linux/cx2341x/fw-encoder-api.txt +++ b/Documentation/video4linux/cx2341x/fw-encoder-api.txt @@ -270,11 +270,17 @@ Param[0] Name CX2341X_ENC_SET_OUTPUT_PORT Enum 187/0xBB Description - Assign stream output port (not recommended you change setting from default) + Assign stream output port. Normally 0 when the data is copied through + the PCI bus (DMA), and 1 when the data is streamed to another chip + (pvrusb and cx88-blackbird). Param[0] 0=Memory (default) 1=Streaming 2=Serial +Param[1] + Unknown, but leaving this to 0 seems to work best. Indications are that + this might have to do with USB support, although passing anything but 0 + onl breaks things. ------------------------------------------------------------------------------- diff --git a/drivers/media/video/cx2341x.c b/drivers/media/video/cx2341x.c index 7cd1c4c..554813e 100644 --- a/drivers/media/video/cx2341x.c +++ b/drivers/media/video/cx2341x.c @@ -639,6 +639,7 @@ void cx2341x_fill_defaults(struct cx2341x_mpeg_params *p) { static struct cx2341x_mpeg_params default_params = { /* misc */ + .port = CX2341X_PORT_MEMORY, .width = 720, .height = 480, .is_50hz = 0, @@ -714,7 +715,7 @@ int cx2341x_update(void *priv, cx2341x_mbox_func func, int err = 0; - cx2341x_api(priv, func, CX2341X_ENC_SET_OUTPUT_PORT, 1, 0); /* 0 = Memory */ + cx2341x_api(priv, func, CX2341X_ENC_SET_OUTPUT_PORT, 2, new->port, 0); if (old == NULL || old->is_50hz != new->is_50hz) { err = cx2341x_api(priv, func, CX2341X_ENC_SET_FRAME_RATE, 1, new->is_50hz); diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index 6e945de..26aac42 100644 --- a/drivers/media/video/cx88/cx88-blackbird.c +++ b/drivers/media/video/cx88/cx88-blackbird.c @@ -1043,6 +1043,7 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev, dev->width = 720; dev->height = 576; cx2341x_fill_defaults(&dev->params); + dev->params.port = CX2341X_PORT_STREAMING; switch (core->board) { case CX88_BOARD_HAUPPAUGE_ROSLYN: diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h index 0c9292f..fb170d4 100644 --- a/include/media/cx2341x.h +++ b/include/media/cx2341x.h @@ -19,8 +19,15 @@ #ifndef CX2341X_H #define CX2341X_H +enum cx2341x_port { + CX2341X_PORT_MEMORY, + CX2341X_PORT_STREAMING, + CX2341X_PORT_SERIAL +}; + struct cx2341x_mpeg_params { /* misc */ + enum cx2341x_port port; u16 width; u16 height; u16 is_50hz; |