Skip to content

Commit

Permalink
[media] tuner-core: add an input pad
Browse files Browse the repository at this point in the history
Tuners actually have at least one connector on its input.

Add a PAD to connect it.

Acked-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
  • Loading branch information
mchehab committed Jan 11, 2016
1 parent a08fad1 commit 188d2d5
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 6 deletions.
5 changes: 4 additions & 1 deletion drivers/media/dvb-core/dvbdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
#include <linux/mutex.h>
#include "dvbdev.h"

/* Due to enum tuner_pad_index */
#include <media/tuner.h>

static DEFINE_MUTEX(dvbdev_mutex);
static int dvbdev_debug;

Expand Down Expand Up @@ -552,7 +555,7 @@ void dvb_create_media_graph(struct dvb_adapter *adap)
}

if (tuner && demod)
media_create_pad_link(tuner, 0, demod, 0, 0);
media_create_pad_link(tuner, TUNER_PAD_IF_OUTPUT, demod, 0, 0);

if (demod && demux)
media_create_pad_link(demod, 1, demux, 0, MEDIA_LNK_FL_ENABLED);
Expand Down
5 changes: 4 additions & 1 deletion drivers/media/usb/au0828/au0828-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
#include <media/v4l2-common.h>
#include <linux/mutex.h>

/* Due to enum tuner_pad_index */
#include <media/tuner.h>

/*
* 1 = General debug messages
* 2 = USB handling
Expand Down Expand Up @@ -260,7 +263,7 @@ static void au0828_create_media_graph(struct au0828_dev *dev)
return;

if (tuner)
media_create_pad_link(tuner, 0, decoder, 0,
media_create_pad_link(tuner, TUNER_PAD_IF_OUTPUT, decoder, 0,
MEDIA_LNK_FL_ENABLED);
media_create_pad_link(decoder, 1, &dev->vdev.entity, 0,
MEDIA_LNK_FL_ENABLED);
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/usb/cx231xx/cx231xx-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -1264,7 +1264,7 @@ static void cx231xx_create_media_graph(struct cx231xx *dev)
return;

if (tuner)
media_create_pad_link(tuner, 0, decoder, 0,
media_create_pad_link(tuner, TUNER_PAD_IF_OUTPUT, decoder, 0,
MEDIA_LNK_FL_ENABLED);
media_create_pad_link(decoder, 1, &dev->vdev.entity, 0,
MEDIA_LNK_FL_ENABLED);
Expand Down
8 changes: 5 additions & 3 deletions drivers/media/v4l2-core/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,9 @@ struct tuner {
unsigned int type; /* chip type id */
void *config;
const char *name;

#if defined(CONFIG_MEDIA_CONTROLLER)
struct media_pad pad;
struct media_pad pad[TUNER_NUM_PADS];
#endif
};

Expand Down Expand Up @@ -695,11 +696,12 @@ static int tuner_probe(struct i2c_client *client,
/* Should be just before return */
register_client:
#if defined(CONFIG_MEDIA_CONTROLLER)
t->pad.flags = MEDIA_PAD_FL_SOURCE;
t->pad[TUNER_PAD_RF_INPUT].flags = MEDIA_PAD_FL_SINK;
t->pad[TUNER_PAD_IF_OUTPUT].flags = MEDIA_PAD_FL_SOURCE;
t->sd.entity.type = MEDIA_ENT_T_V4L2_SUBDEV_TUNER;
t->sd.entity.name = t->name;

ret = media_entity_init(&t->sd.entity, 1, &t->pad);
ret = media_entity_init(&t->sd.entity, TUNER_NUM_PADS, &t->pad[0]);
if (ret < 0) {
tuner_err("failed to initialize media entity!\n");
kfree(t);
Expand Down
8 changes: 8 additions & 0 deletions include/media/tuner.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@

#include <linux/videodev2.h>

/* Tuner PADs */
/* FIXME: is this the right place for it? */
enum tuner_pad_index {
TUNER_PAD_RF_INPUT,
TUNER_PAD_IF_OUTPUT,
TUNER_NUM_PADS
};

#define ADDR_UNSET (255)

#define TUNER_TEMIC_PAL 0 /* 4002 FH5 (3X 7756, 9483) */
Expand Down

0 comments on commit 188d2d5

Please sign in to comment.