summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/frontends')
-rw-r--r--linux/drivers/media/dvb/frontends/bcm3510.c6
-rw-r--r--linux/drivers/media/dvb/frontends/drx397xD.c8
-rw-r--r--linux/drivers/media/dvb/frontends/lgdt330x.c24
3 files changed, 23 insertions, 15 deletions
diff --git a/linux/drivers/media/dvb/frontends/bcm3510.c b/linux/drivers/media/dvb/frontends/bcm3510.c
index ca9a55ae9..1cd63a4df 100644
--- a/linux/drivers/media/dvb/frontends/bcm3510.c
+++ b/linux/drivers/media/dvb/frontends/bcm3510.c
@@ -39,9 +39,7 @@
#include <linux/string.h>
#include <linux/slab.h>
#include "compat.h"
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
#include <linux/mutex.h>
-#endif
#include "dvb_frontend.h"
#include "bcm3510.h"
@@ -54,11 +52,7 @@ struct bcm3510_state {
struct dvb_frontend frontend;
/* demodulator private data */
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
struct mutex hab_mutex;
-#else
- struct semaphore hab_mutex;
-#endif
u8 firmware_loaded:1;
unsigned long next_status_check;
diff --git a/linux/drivers/media/dvb/frontends/drx397xD.c b/linux/drivers/media/dvb/frontends/drx397xD.c
index 327fff4b8..52a9a6553 100644
--- a/linux/drivers/media/dvb/frontends/drx397xD.c
+++ b/linux/drivers/media/dvb/frontends/drx397xD.c
@@ -74,7 +74,7 @@ static struct {
const struct firmware *file;
rwlock_t lock;
int refcnt;
- u8 *data[ARRAY_SIZE(blob_name)];
+ const u8 *data[ARRAY_SIZE(blob_name)];
} fw[] = {
#define _FW_ENTRY(a, b) { \
.name = a, \
@@ -110,7 +110,7 @@ static void drx_release_fw(struct drx397xD_state *s)
static int drx_load_fw(struct drx397xD_state *s, fw_ix_t ix)
{
- u8 *data;
+ const u8 *data;
size_t size, len;
int i = 0, j, rc = -EINVAL;
@@ -194,7 +194,7 @@ static int drx_load_fw(struct drx397xD_state *s, fw_ix_t ix)
static int write_fw(struct drx397xD_state *s, blob_ix_t ix)
{
struct i2c_msg msg = {.addr = s->config.demod_address,.flags = 0 };
- u8 *data;
+ const u8 *data;
int len, rc = 0, i = 0;
if (ix < 0 || ix >= ARRAY_SIZE(blob_name)) {
@@ -215,7 +215,7 @@ static int write_fw(struct drx397xD_state *s, blob_ix_t ix)
case 0: /* bytecode */
len = data[i++];
msg.len = len;
- msg.buf = &data[i];
+ msg.buf = (__u8 *) &data[i];
if (i2c_transfer(s->i2c, &msg, 1) != 1) {
rc = -EIO;
goto exit_rc;
diff --git a/linux/drivers/media/dvb/frontends/lgdt330x.c b/linux/drivers/media/dvb/frontends/lgdt330x.c
index 3a3658238..9a63bafc3 100644
--- a/linux/drivers/media/dvb/frontends/lgdt330x.c
+++ b/linux/drivers/media/dvb/frontends/lgdt330x.c
@@ -227,11 +227,16 @@ static int lgdt330x_init(struct dvb_frontend* fe)
0x4c, 0x14
};
- static u8 flip_lgdt3303_init_data[] = {
+ static u8 flip_1_lgdt3303_init_data[] = {
0x4c, 0x14,
0x87, 0xf3
};
+ static u8 flip_2_lgdt3303_init_data[] = {
+ 0x4c, 0x14,
+ 0x87, 0xda
+ };
+
struct lgdt330x_state* state = fe->demodulator_priv;
char *chip_name;
int err;
@@ -244,10 +249,19 @@ static int lgdt330x_init(struct dvb_frontend* fe)
break;
case LGDT3303:
chip_name = "LGDT3303";
- if (state->config->clock_polarity_flip) {
- err = i2c_write_demod_bytes(state, flip_lgdt3303_init_data,
- sizeof(flip_lgdt3303_init_data));
- } else {
+ switch (state->config->clock_polarity_flip) {
+ case 2:
+ err = i2c_write_demod_bytes(state,
+ flip_2_lgdt3303_init_data,
+ sizeof(flip_2_lgdt3303_init_data));
+ break;
+ case 1:
+ err = i2c_write_demod_bytes(state,
+ flip_1_lgdt3303_init_data,
+ sizeof(flip_1_lgdt3303_init_data));
+ break;
+ case 0:
+ default:
err = i2c_write_demod_bytes(state, lgdt3303_init_data,
sizeof(lgdt3303_init_data));
}