Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31bc09b5 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (3610): Added the new routing commands to cx25840.

parent 11cda107
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -19,8 +19,9 @@
#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <media/v4l2-common.h>
#include <media/cx25840.h>

#include "cx25840.h"
#include "cx25840-core.h"

static int set_audclk_freq(struct i2c_client *client, u32 freq)
{
+14 −10
Original line number Diff line number Diff line
@@ -32,8 +32,9 @@
#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <media/v4l2-common.h>
#include <media/cx25840.h>

#include "cx25840.h"
#include "cx25840-core.h"

MODULE_DESCRIPTION("Conexant CX25840 audio/video decoder driver");
MODULE_AUTHOR("Ulf Eklund, Chris Kennedy, Hans Verkuil, Tyler Trafford");
@@ -668,6 +669,7 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
{
	struct cx25840_state *state = i2c_get_clientdata(client);
	struct v4l2_tuner *vt = arg;
	struct v4l2_routing *route = arg;

	switch (cmd) {
#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -749,19 +751,21 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
		state->radio = 1;
		break;

	case VIDIOC_G_INPUT:
		*(int *)arg = state->vid_input;
	case VIDIOC_INT_G_VIDEO_ROUTING:
		route->input = state->vid_input;
		route->output = 0;
		break;

	case VIDIOC_S_INPUT:
		return set_input(client, *(enum cx25840_video_input *)arg, state->aud_input);
	case VIDIOC_INT_S_VIDEO_ROUTING:
		return set_input(client, route->input, state->aud_input);

	case VIDIOC_S_AUDIO:
	{
		struct v4l2_audio *input = arg;
	case VIDIOC_INT_G_AUDIO_ROUTING:
		route->input = state->aud_input;
		route->output = 0;
		break;

		return set_input(client, state->vid_input, input->index);
	}
	case VIDIOC_INT_S_AUDIO_ROUTING:
		return set_input(client, state->vid_input, route->input);

	case VIDIOC_S_FREQUENCY:
		input_change(client);
+3 −43
Original line number Diff line number Diff line
/* cx25840 API header
/* cx25840 internal API header
 *
 * Copyright (C) 2003-2004 Chris Kennedy
 *
@@ -17,8 +17,8 @@
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

#ifndef _CX25840_H_
#define _CX25840_H_
#ifndef _CX25840_CORE_H_
#define _CX25840_CORE_H_


#include <linux/videodev2.h>
@@ -32,46 +32,6 @@
   providing this information. */
#define CX25840_CID_ENABLE_PVR150_WORKAROUND (V4L2_CID_PRIVATE_BASE+0)

enum cx25840_video_input {
	/* Composite video inputs In1-In8 */
	CX25840_COMPOSITE1 = 1,
	CX25840_COMPOSITE2,
	CX25840_COMPOSITE3,
	CX25840_COMPOSITE4,
	CX25840_COMPOSITE5,
	CX25840_COMPOSITE6,
	CX25840_COMPOSITE7,
	CX25840_COMPOSITE8,

	/* S-Video inputs consist of one luma input (In1-In4) ORed with one
	   chroma input (In5-In8) */
	CX25840_SVIDEO_LUMA1 = 0x10,
	CX25840_SVIDEO_LUMA2 = 0x20,
	CX25840_SVIDEO_LUMA3 = 0x30,
	CX25840_SVIDEO_LUMA4 = 0x40,
	CX25840_SVIDEO_CHROMA4 = 0x400,
	CX25840_SVIDEO_CHROMA5 = 0x500,
	CX25840_SVIDEO_CHROMA6 = 0x600,
	CX25840_SVIDEO_CHROMA7 = 0x700,
	CX25840_SVIDEO_CHROMA8 = 0x800,

	/* S-Video aliases for common luma/chroma combinations */
	CX25840_SVIDEO1 = 0x510,
	CX25840_SVIDEO2 = 0x620,
	CX25840_SVIDEO3 = 0x730,
	CX25840_SVIDEO4 = 0x840,
};

enum cx25840_audio_input {
	/* Audio inputs: serial or In4-In8 */
	CX25840_AUDIO_SERIAL,
	CX25840_AUDIO4 = 4,
	CX25840_AUDIO5,
	CX25840_AUDIO6,
	CX25840_AUDIO7,
	CX25840_AUDIO8,
};

struct cx25840_state {
	int pvr150_workaround;
	int radio;
+2 −1
Original line number Diff line number Diff line
@@ -20,8 +20,9 @@
#include <linux/i2c-algo-bit.h>
#include <linux/firmware.h>
#include <media/v4l2-common.h>
#include <media/cx25840.h>

#include "cx25840.h"
#include "cx25840-core.h"

#define FWFILE "v4l-cx25840.fw"
#define FWSEND 1024
+2 −1
Original line number Diff line number Diff line
@@ -19,8 +19,9 @@
#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <media/v4l2-common.h>
#include <media/cx25840.h>

#include "cx25840.h"
#include "cx25840-core.h"

static int odd_parity(u8 c)
{
Loading