Commit c9c0df31 authored by Deborah Brouwer's avatar Deborah Brouwer Committed by Mauro Carvalho Chehab
Browse files

media: bttv: move vbi_skip/vbi_count out of buffer



Instead of storing vbi_skip and vbi_count in each bttv buffer separately,
move them to the main bttv struct as they won't change per buffer.

Signed-off-by: default avatarDeborah Brouwer <deborah.brouwer@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 0f5f12e4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3631,6 +3631,8 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
	btv->input = 0;
	btv->tvnorm = 0; /* Index into bttv_tvnorms[] i.e. PAL. */
	bttv_vbi_fmt_reset(&btv->vbi_fmt, btv->tvnorm);
	btv->vbi_count[0] = VBI_DEFLINES;
	btv->vbi_count[1] = VBI_DEFLINES;
	btv->do_crop = 0;

	v4l2_ctrl_new_std(hdl, &bttv_ctrl_ops,
+2 −2
Original line number Diff line number Diff line
@@ -525,12 +525,12 @@ bttv_buffer_activate_vbi(struct bttv *btv,
			btwrite(crop,	BT848_O_CROP);
		}

		if (vbi->vbi_count[0] > 0) {
		if (btv->vbi_count[0] > 0) {
			top = &vbi->top;
			top_irq_flags = 4;
		}

		if (vbi->vbi_count[1] > 0) {
		if (btv->vbi_count[1] > 0) {
			top_irq_flags = 0;
			bottom = &vbi->bottom;
			bottom_irq_flags = 4;
+8 −8
Original line number Diff line number Diff line
@@ -125,14 +125,14 @@ static int vbi_buffer_prepare(struct videobuf_queue *q,

	redo_dma_risc = 0;

	if (buf->vbi_skip[0] != skip_lines0 ||
	    buf->vbi_skip[1] != skip_lines1 ||
	    buf->vbi_count[0] != fh->vbi_fmt.fmt.count[0] ||
	    buf->vbi_count[1] != fh->vbi_fmt.fmt.count[1]) {
		buf->vbi_skip[0] = skip_lines0;
		buf->vbi_skip[1] = skip_lines1;
		buf->vbi_count[0] = fh->vbi_fmt.fmt.count[0];
		buf->vbi_count[1] = fh->vbi_fmt.fmt.count[1];
	if (btv->vbi_skip[0] != skip_lines0 ||
	    btv->vbi_skip[1] != skip_lines1 ||
	    btv->vbi_count[0] != fh->vbi_fmt.fmt.count[0] ||
	    btv->vbi_count[1] != fh->vbi_fmt.fmt.count[1]) {
		btv->vbi_skip[0] = skip_lines0;
		btv->vbi_skip[1] = skip_lines1;
		btv->vbi_count[0] = fh->vbi_fmt.fmt.count[0];
		btv->vbi_count[1] = fh->vbi_fmt.fmt.count[1];
		redo_dma_risc = 1;
	}

+5 −2
Original line number Diff line number Diff line
@@ -150,8 +150,6 @@ struct bttv_buffer {
	struct bttv_geometry       geo;
	struct btcx_riscmem        top;
	struct btcx_riscmem        bottom;
	unsigned int               vbi_skip[2];
	unsigned int               vbi_count[2];
};

struct bttv_buffer_set {
@@ -239,6 +237,8 @@ void bttv_dma_free(struct videobuf_queue *q, struct bttv *btv,
/* ---------------------------------------------------------- */
/* bttv-vbi.c                                                 */

#define VBI_DEFLINES 16

int bttv_try_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f);
int bttv_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f);
int bttv_s_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f);
@@ -447,6 +447,9 @@ struct bttv {
	int width;
	int height;
	struct bttv_vbi_fmt vbi_fmt;
	unsigned int vbi_skip[2];
	unsigned int vbi_count[2];

	/* Application called VIDIOC_S_SELECTION. */
	int do_crop;