aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c18
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.h8
-rw-r--r--drivers/media/video/ivtv/ivtv-streams.c14
3 files changed, 21 insertions, 19 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index 8086c62e7545..3591518ed358 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -208,7 +208,7 @@ MODULE_PARM_DESC(enc_vbi_buffers,
208 "Encoder VBI Buffers (in MB)\n" 208 "Encoder VBI Buffers (in MB)\n"
209 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_ENC_VBI_BUFFERS)); 209 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_ENC_VBI_BUFFERS));
210MODULE_PARM_DESC(enc_pcm_buffers, 210MODULE_PARM_DESC(enc_pcm_buffers,
211 "Encoder PCM buffers (in MB)\n" 211 "Encoder PCM buffers (in kB)\n"
212 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_ENC_PCM_BUFFERS)); 212 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_ENC_PCM_BUFFERS));
213MODULE_PARM_DESC(dec_mpg_buffers, 213MODULE_PARM_DESC(dec_mpg_buffers,
214 "Decoder MPG buffers (in MB)\n" 214 "Decoder MPG buffers (in MB)\n"
@@ -217,7 +217,7 @@ MODULE_PARM_DESC(dec_yuv_buffers,
217 "Decoder YUV buffers (in MB)\n" 217 "Decoder YUV buffers (in MB)\n"
218 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_DEC_YUV_BUFFERS)); 218 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_DEC_YUV_BUFFERS));
219MODULE_PARM_DESC(dec_vbi_buffers, 219MODULE_PARM_DESC(dec_vbi_buffers,
220 "Decoder VBI buffers (in MB)\n" 220 "Decoder VBI buffers (in kB)\n"
221 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_DEC_VBI_BUFFERS)); 221 "\t\t\tDefault: " __stringify(IVTV_DEFAULT_DEC_VBI_BUFFERS));
222MODULE_PARM_DESC(newi2c, 222MODULE_PARM_DESC(newi2c,
223 "Use new I2C implementation\n" 223 "Use new I2C implementation\n"
@@ -547,13 +547,13 @@ static void ivtv_process_options(struct ivtv *itv)
547 const char *chipname; 547 const char *chipname;
548 int i, j; 548 int i, j;
549 549
550 itv->options.megabytes[IVTV_ENC_STREAM_TYPE_MPG] = enc_mpg_buffers; 550 itv->options.kilobytes[IVTV_ENC_STREAM_TYPE_MPG] = enc_mpg_buffers * 1024;
551 itv->options.megabytes[IVTV_ENC_STREAM_TYPE_YUV] = enc_yuv_buffers; 551 itv->options.kilobytes[IVTV_ENC_STREAM_TYPE_YUV] = enc_yuv_buffers * 1024;
552 itv->options.megabytes[IVTV_ENC_STREAM_TYPE_VBI] = enc_vbi_buffers; 552 itv->options.kilobytes[IVTV_ENC_STREAM_TYPE_VBI] = enc_vbi_buffers * 1024;
553 itv->options.megabytes[IVTV_ENC_STREAM_TYPE_PCM] = enc_pcm_buffers; 553 itv->options.kilobytes[IVTV_ENC_STREAM_TYPE_PCM] = enc_pcm_buffers;
554 itv->options.megabytes[IVTV_DEC_STREAM_TYPE_MPG] = dec_mpg_buffers; 554 itv->options.kilobytes[IVTV_DEC_STREAM_TYPE_MPG] = dec_mpg_buffers * 1024;
555 itv->options.megabytes[IVTV_DEC_STREAM_TYPE_YUV] = dec_yuv_buffers; 555 itv->options.kilobytes[IVTV_DEC_STREAM_TYPE_YUV] = dec_yuv_buffers * 1024;
556 itv->options.megabytes[IVTV_DEC_STREAM_TYPE_VBI] = dec_vbi_buffers; 556 itv->options.kilobytes[IVTV_DEC_STREAM_TYPE_VBI] = dec_vbi_buffers;
557 itv->options.cardtype = cardtype[itv->num]; 557 itv->options.cardtype = cardtype[itv->num];
558 itv->options.tuner = tuner[itv->num]; 558 itv->options.tuner = tuner[itv->num];
559 itv->options.radio = radio[itv->num]; 559 itv->options.radio = radio[itv->num];
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h
index e80f9f65a905..783fb4449b0e 100644
--- a/drivers/media/video/ivtv/ivtv-driver.h
+++ b/drivers/media/video/ivtv/ivtv-driver.h
@@ -186,10 +186,12 @@ extern const u32 yuv_offset[4];
186#define IVTV_DEFAULT_ENC_MPG_BUFFERS 4 186#define IVTV_DEFAULT_ENC_MPG_BUFFERS 4
187#define IVTV_DEFAULT_ENC_YUV_BUFFERS 2 187#define IVTV_DEFAULT_ENC_YUV_BUFFERS 2
188#define IVTV_DEFAULT_ENC_VBI_BUFFERS 1 188#define IVTV_DEFAULT_ENC_VBI_BUFFERS 1
189#define IVTV_DEFAULT_ENC_PCM_BUFFERS 1 189/* Exception: size in kB for this stream (MB is overkill) */
190#define IVTV_DEFAULT_ENC_PCM_BUFFERS 320
190#define IVTV_DEFAULT_DEC_MPG_BUFFERS 1 191#define IVTV_DEFAULT_DEC_MPG_BUFFERS 1
191#define IVTV_DEFAULT_DEC_YUV_BUFFERS 1 192#define IVTV_DEFAULT_DEC_YUV_BUFFERS 1
192#define IVTV_DEFAULT_DEC_VBI_BUFFERS 1 193/* Exception: size in kB for this stream (MB is way overkill) */
194#define IVTV_DEFAULT_DEC_VBI_BUFFERS 64
193 195
194/* ======================================================================== */ 196/* ======================================================================== */
195/* ========================== END USER SETTABLE DMA VARIABLES ============= */ 197/* ========================== END USER SETTABLE DMA VARIABLES ============= */
@@ -321,7 +323,7 @@ extern int ivtv_debug;
321 323
322 324
323struct ivtv_options { 325struct ivtv_options {
324 int megabytes[IVTV_MAX_STREAMS]; /* Size in megabytes of each stream */ 326 int kilobytes[IVTV_MAX_STREAMS]; /* Size in kilobytes of each stream */
325 int cardtype; /* force card type on load */ 327 int cardtype; /* force card type on load */
326 int tuner; /* set tuner on load */ 328 int tuner; /* set tuner on load */
327 int radio; /* enable/disable radio */ 329 int radio; /* enable/disable radio */
diff --git a/drivers/media/video/ivtv/ivtv-streams.c b/drivers/media/video/ivtv/ivtv-streams.c
index 2e632014c90d..fab5c51b1519 100644
--- a/drivers/media/video/ivtv/ivtv-streams.c
+++ b/drivers/media/video/ivtv/ivtv-streams.c
@@ -150,7 +150,7 @@ static void ivtv_stream_init(struct ivtv *itv, int type)
150 s->dma = ivtv_stream_info[type].dma; 150 s->dma = ivtv_stream_info[type].dma;
151 s->buf_size = itv->stream_buf_size[type]; 151 s->buf_size = itv->stream_buf_size[type];
152 if (s->buf_size) 152 if (s->buf_size)
153 s->buffers = itv->options.megabytes[type] * 1024 * 1024 / s->buf_size; 153 s->buffers = (itv->options.kilobytes[type] * 1024 + s->buf_size - 1) / s->buf_size;
154 spin_lock_init(&s->qlock); 154 spin_lock_init(&s->qlock);
155 init_waitqueue_head(&s->waitq); 155 init_waitqueue_head(&s->waitq);
156 s->id = -1; 156 s->id = -1;
@@ -192,7 +192,7 @@ static int ivtv_reg_dev(struct ivtv *itv, int type)
192 /* User explicitly selected 0 buffers for these streams, so don't 192 /* User explicitly selected 0 buffers for these streams, so don't
193 create them. */ 193 create them. */
194 if (minor >= 0 && ivtv_stream_info[type].dma != PCI_DMA_NONE && 194 if (minor >= 0 && ivtv_stream_info[type].dma != PCI_DMA_NONE &&
195 itv->options.megabytes[type] == 0) { 195 itv->options.kilobytes[type] == 0) {
196 IVTV_INFO("Disabled %s device\n", ivtv_stream_info[type].name); 196 IVTV_INFO("Disabled %s device\n", ivtv_stream_info[type].name);
197 return 0; 197 return 0;
198 } 198 }
@@ -238,18 +238,18 @@ static int ivtv_reg_dev(struct ivtv *itv, int type)
238 238
239 switch (vfl_type) { 239 switch (vfl_type) {
240 case VFL_TYPE_GRABBER: 240 case VFL_TYPE_GRABBER:
241 IVTV_INFO("Registered device video%d for %s (%d MB)\n", 241 IVTV_INFO("Registered device video%d for %s (%d kB)\n",
242 s->v4l2dev->minor, s->name, itv->options.megabytes[type]); 242 s->v4l2dev->minor, s->name, itv->options.kilobytes[type]);
243 break; 243 break;
244 case VFL_TYPE_RADIO: 244 case VFL_TYPE_RADIO:
245 IVTV_INFO("Registered device radio%d for %s\n", 245 IVTV_INFO("Registered device radio%d for %s\n",
246 s->v4l2dev->minor - MINOR_VFL_TYPE_RADIO_MIN, s->name); 246 s->v4l2dev->minor - MINOR_VFL_TYPE_RADIO_MIN, s->name);
247 break; 247 break;
248 case VFL_TYPE_VBI: 248 case VFL_TYPE_VBI:
249 if (itv->options.megabytes[type]) 249 if (itv->options.kilobytes[type])
250 IVTV_INFO("Registered device vbi%d for %s (%d MB)\n", 250 IVTV_INFO("Registered device vbi%d for %s (%d kB)\n",
251 s->v4l2dev->minor - MINOR_VFL_TYPE_VBI_MIN, 251 s->v4l2dev->minor - MINOR_VFL_TYPE_VBI_MIN,
252 s->name, itv->options.megabytes[type]); 252 s->name, itv->options.kilobytes[type]);
253 else 253 else
254 IVTV_INFO("Registered device vbi%d for %s\n", 254 IVTV_INFO("Registered device vbi%d for %s\n",
255 s->v4l2dev->minor - MINOR_VFL_TYPE_VBI_MIN, s->name); 255 s->v4l2dev->minor - MINOR_VFL_TYPE_VBI_MIN, s->name);