Commit 9357b31c authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

V4L/DVB (9823): cx25840: convert to v4l2_subdev.

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 825c6aa2
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
static int set_audclk_freq(struct i2c_client *client, u32 freq) static int set_audclk_freq(struct i2c_client *client, u32 freq)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
if (freq != 32000 && freq != 44100 && freq != 48000) if (freq != 32000 && freq != 44100 && freq != 48000)
return -EINVAL; return -EINVAL;
...@@ -193,7 +193,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq) ...@@ -193,7 +193,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
void cx25840_audio_set_path(struct i2c_client *client) void cx25840_audio_set_path(struct i2c_client *client)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
/* assert soft reset */ /* assert soft reset */
cx25840_and_or(client, 0x810, ~0x1, 0x01); cx25840_and_or(client, 0x810, ~0x1, 0x01);
...@@ -235,7 +235,7 @@ void cx25840_audio_set_path(struct i2c_client *client) ...@@ -235,7 +235,7 @@ void cx25840_audio_set_path(struct i2c_client *client)
static int get_volume(struct i2c_client *client) static int get_volume(struct i2c_client *client)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
int vol; int vol;
if (state->unmute_volume >= 0) if (state->unmute_volume >= 0)
...@@ -252,7 +252,7 @@ static int get_volume(struct i2c_client *client) ...@@ -252,7 +252,7 @@ static int get_volume(struct i2c_client *client)
static void set_volume(struct i2c_client *client, int volume) static void set_volume(struct i2c_client *client, int volume)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
int vol; int vol;
if (state->unmute_volume >= 0) { if (state->unmute_volume >= 0) {
...@@ -340,14 +340,14 @@ static void set_balance(struct i2c_client *client, int balance) ...@@ -340,14 +340,14 @@ static void set_balance(struct i2c_client *client, int balance)
static int get_mute(struct i2c_client *client) static int get_mute(struct i2c_client *client)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
return state->unmute_volume >= 0; return state->unmute_volume >= 0;
} }
static void set_mute(struct i2c_client *client, int mute) static void set_mute(struct i2c_client *client, int mute)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
if (mute && state->unmute_volume == -1) { if (mute && state->unmute_volume == -1) {
int vol = get_volume(client); int vol = get_volume(client);
...@@ -365,7 +365,7 @@ static void set_mute(struct i2c_client *client, int mute) ...@@ -365,7 +365,7 @@ static void set_mute(struct i2c_client *client, int mute)
int cx25840_audio(struct i2c_client *client, unsigned int cmd, void *arg) int cx25840_audio(struct i2c_client *client, unsigned int cmd, void *arg)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
struct v4l2_control *ctrl = arg; struct v4l2_control *ctrl = arg;
int retval; int retval;
......
This diff is collapsed.
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <media/v4l2-device.h>
#include <linux/i2c.h> #include <linux/i2c.h>
/* ENABLE_PVR150_WORKAROUND activates a workaround for a hardware bug that is /* ENABLE_PVR150_WORKAROUND activates a workaround for a hardware bug that is
...@@ -34,6 +35,7 @@ ...@@ -34,6 +35,7 @@
struct cx25840_state { struct cx25840_state {
struct i2c_client *c; struct i2c_client *c;
struct v4l2_subdev sd;
int pvr150_workaround; int pvr150_workaround;
int radio; int radio;
v4l2_std_id std; v4l2_std_id std;
...@@ -53,6 +55,11 @@ struct cx25840_state { ...@@ -53,6 +55,11 @@ struct cx25840_state {
struct work_struct fw_work; /* work entry for fw load */ struct work_struct fw_work; /* work entry for fw load */
}; };
static inline struct cx25840_state *to_state(struct v4l2_subdev *sd)
{
return container_of(sd, struct cx25840_state, sd);
}
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* cx25850-core.c */ /* cx25850-core.c */
int cx25840_write(struct i2c_client *client, u16 addr, u8 value); int cx25840_write(struct i2c_client *client, u16 addr, u8 value);
......
...@@ -91,7 +91,7 @@ static int fw_write(struct i2c_client *client, const u8 *data, int size) ...@@ -91,7 +91,7 @@ static int fw_write(struct i2c_client *client, const u8 *data, int size)
int cx25840_loadfw(struct i2c_client *client) int cx25840_loadfw(struct i2c_client *client)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
const struct firmware *fw = NULL; const struct firmware *fw = NULL;
u8 buffer[FWSEND]; u8 buffer[FWSEND];
const u8 *ptr; const u8 *ptr;
......
...@@ -84,7 +84,7 @@ static int decode_vps(u8 * dst, u8 * p) ...@@ -84,7 +84,7 @@ static int decode_vps(u8 * dst, u8 * p)
int cx25840_vbi(struct i2c_client *client, unsigned int cmd, void *arg) int cx25840_vbi(struct i2c_client *client, unsigned int cmd, void *arg)
{ {
struct cx25840_state *state = i2c_get_clientdata(client); struct cx25840_state *state = to_state(i2c_get_clientdata(client));
struct v4l2_format *fmt; struct v4l2_format *fmt;
struct v4l2_sliced_vbi_format *svbi; struct v4l2_sliced_vbi_format *svbi;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment