media: bttv: remove format field from bttv_buffer
Instead of storing the format (video or vbi) in each bttv buffer separately, just use the global bttv format because the format does not change per buffer. Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
04d5356512
commit
9764252d4b
drivers/media/pci/bt8xx
@ -1553,7 +1553,7 @@ static int bttv_prepare_buffer(struct videobuf_queue *q,struct bttv *btv,
|
||||
/* alloc + fill struct bttv_buffer (if changed) */
|
||||
if (buf->vb.width != width || buf->vb.height != height ||
|
||||
buf->vb.field != field ||
|
||||
buf->tvnorm != norm || buf->fmt != fmt ||
|
||||
buf->tvnorm != norm || btv->fmt != fmt ||
|
||||
buf->crop.top != c.rect.top ||
|
||||
buf->crop.left != c.rect.left ||
|
||||
buf->crop.width != c.rect.width ||
|
||||
@ -1562,7 +1562,6 @@ static int bttv_prepare_buffer(struct videobuf_queue *q,struct bttv *btv,
|
||||
buf->vb.height = height;
|
||||
buf->vb.field = field;
|
||||
buf->tvnorm = norm;
|
||||
buf->fmt = fmt;
|
||||
buf->crop = c.rect;
|
||||
redo_dma_risc = 1;
|
||||
}
|
||||
|
@ -611,11 +611,11 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
|
||||
dprintk("%d: buffer field: %s format: 0x%08x size: %dx%d\n",
|
||||
btv->c.nr, v4l2_field_names[buf->vb.field],
|
||||
buf->fmt->fourcc, buf->vb.width, buf->vb.height);
|
||||
btv->fmt->fourcc, buf->vb.width, buf->vb.height);
|
||||
|
||||
/* packed pixel modes */
|
||||
if (buf->fmt->flags & FORMAT_FLAGS_PACKED) {
|
||||
int bpl = (buf->fmt->depth >> 3) * buf->vb.width;
|
||||
if (btv->fmt->flags & FORMAT_FLAGS_PACKED) {
|
||||
int bpl = (btv->fmt->depth >> 3) * buf->vb.width;
|
||||
int bpf = bpl * (buf->vb.height >> 1);
|
||||
|
||||
bttv_calc_geo(btv,&buf->geo,buf->vb.width,buf->vb.height,
|
||||
@ -651,22 +651,22 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
}
|
||||
|
||||
/* planar modes */
|
||||
if (buf->fmt->flags & FORMAT_FLAGS_PLANAR) {
|
||||
if (btv->fmt->flags & FORMAT_FLAGS_PLANAR) {
|
||||
int uoffset, voffset;
|
||||
int ypadding, cpadding, lines;
|
||||
|
||||
/* calculate chroma offsets */
|
||||
uoffset = buf->vb.width * buf->vb.height;
|
||||
voffset = buf->vb.width * buf->vb.height;
|
||||
if (buf->fmt->flags & FORMAT_FLAGS_CrCb) {
|
||||
if (btv->fmt->flags & FORMAT_FLAGS_CrCb) {
|
||||
/* Y-Cr-Cb plane order */
|
||||
uoffset >>= buf->fmt->hshift;
|
||||
uoffset >>= buf->fmt->vshift;
|
||||
uoffset >>= btv->fmt->hshift;
|
||||
uoffset >>= btv->fmt->vshift;
|
||||
uoffset += voffset;
|
||||
} else {
|
||||
/* Y-Cb-Cr plane order */
|
||||
voffset >>= buf->fmt->hshift;
|
||||
voffset >>= buf->fmt->vshift;
|
||||
voffset >>= btv->fmt->hshift;
|
||||
voffset >>= btv->fmt->vshift;
|
||||
voffset += uoffset;
|
||||
}
|
||||
|
||||
@ -677,8 +677,8 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
tvnorm,&buf->crop);
|
||||
bttv_risc_planar(btv, &buf->top, dma->sglist,
|
||||
0,buf->vb.width,0,buf->vb.height,
|
||||
uoffset,voffset,buf->fmt->hshift,
|
||||
buf->fmt->vshift,0);
|
||||
uoffset, voffset, btv->fmt->hshift,
|
||||
btv->fmt->vshift, 0);
|
||||
break;
|
||||
case V4L2_FIELD_BOTTOM:
|
||||
bttv_calc_geo(btv,&buf->geo,buf->vb.width,
|
||||
@ -686,8 +686,8 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
tvnorm,&buf->crop);
|
||||
bttv_risc_planar(btv, &buf->bottom, dma->sglist,
|
||||
0,buf->vb.width,0,buf->vb.height,
|
||||
uoffset,voffset,buf->fmt->hshift,
|
||||
buf->fmt->vshift,0);
|
||||
uoffset, voffset, btv->fmt->hshift,
|
||||
btv->fmt->vshift, 0);
|
||||
break;
|
||||
case V4L2_FIELD_INTERLACED:
|
||||
bttv_calc_geo(btv,&buf->geo,buf->vb.width,
|
||||
@ -695,21 +695,21 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
tvnorm,&buf->crop);
|
||||
lines = buf->vb.height >> 1;
|
||||
ypadding = buf->vb.width;
|
||||
cpadding = buf->vb.width >> buf->fmt->hshift;
|
||||
cpadding = buf->vb.width >> btv->fmt->hshift;
|
||||
bttv_risc_planar(btv,&buf->top,
|
||||
dma->sglist,
|
||||
0,buf->vb.width,ypadding,lines,
|
||||
uoffset,voffset,
|
||||
buf->fmt->hshift,
|
||||
buf->fmt->vshift,
|
||||
btv->fmt->hshift,
|
||||
btv->fmt->vshift,
|
||||
cpadding);
|
||||
bttv_risc_planar(btv,&buf->bottom,
|
||||
dma->sglist,
|
||||
ypadding,buf->vb.width,ypadding,lines,
|
||||
uoffset+cpadding,
|
||||
voffset+cpadding,
|
||||
buf->fmt->hshift,
|
||||
buf->fmt->vshift,
|
||||
btv->fmt->hshift,
|
||||
btv->fmt->vshift,
|
||||
cpadding);
|
||||
break;
|
||||
case V4L2_FIELD_SEQ_TB:
|
||||
@ -718,22 +718,22 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
tvnorm,&buf->crop);
|
||||
lines = buf->vb.height >> 1;
|
||||
ypadding = buf->vb.width;
|
||||
cpadding = buf->vb.width >> buf->fmt->hshift;
|
||||
cpadding = buf->vb.width >> btv->fmt->hshift;
|
||||
bttv_risc_planar(btv,&buf->top,
|
||||
dma->sglist,
|
||||
0,buf->vb.width,0,lines,
|
||||
uoffset >> 1,
|
||||
voffset >> 1,
|
||||
buf->fmt->hshift,
|
||||
buf->fmt->vshift,
|
||||
btv->fmt->hshift,
|
||||
btv->fmt->vshift,
|
||||
0);
|
||||
bttv_risc_planar(btv,&buf->bottom,
|
||||
dma->sglist,
|
||||
lines * ypadding,buf->vb.width,0,lines,
|
||||
lines * ypadding + (uoffset >> 1),
|
||||
lines * ypadding + (voffset >> 1),
|
||||
buf->fmt->hshift,
|
||||
buf->fmt->vshift,
|
||||
btv->fmt->hshift,
|
||||
btv->fmt->vshift,
|
||||
0);
|
||||
break;
|
||||
default:
|
||||
@ -742,7 +742,7 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
}
|
||||
|
||||
/* raw data */
|
||||
if (buf->fmt->flags & FORMAT_FLAGS_RAW) {
|
||||
if (btv->fmt->flags & FORMAT_FLAGS_RAW) {
|
||||
/* build risc code */
|
||||
buf->vb.field = V4L2_FIELD_SEQ_TB;
|
||||
bttv_calc_geo(btv,&buf->geo,tvnorm->swidth,tvnorm->sheight,
|
||||
@ -755,7 +755,7 @@ bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
|
||||
}
|
||||
|
||||
/* copy format info */
|
||||
buf->btformat = buf->fmt->btformat;
|
||||
buf->btswap = buf->fmt->btswap;
|
||||
buf->btformat = btv->fmt->btformat;
|
||||
buf->btswap = btv->fmt->btswap;
|
||||
return 0;
|
||||
}
|
||||
|
@ -145,7 +145,6 @@ struct bttv_buffer {
|
||||
struct videobuf_buffer vb;
|
||||
|
||||
/* bttv specific */
|
||||
const struct bttv_format *fmt;
|
||||
unsigned int tvnorm;
|
||||
int btformat;
|
||||
int btswap;
|
||||
|
Loading…
x
Reference in New Issue
Block a user