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

Commit 304bce41 authored by Miroslav Slugen's avatar Miroslav Slugen Committed by Mauro Carvalho Chehab
Browse files

[media] Add registers names to XC2028 tuner from datahseet and use them

parent 8a538a88
Loading
Loading
Loading
Loading
+21 −6
Original line number Original line Diff line number Diff line
@@ -24,6 +24,21 @@
#include <linux/dvb/frontend.h>
#include <linux/dvb/frontend.h>
#include "dvb_frontend.h"
#include "dvb_frontend.h"


/* Registers (Write-only) */
#define XREG_INIT         0x00
#define XREG_RF_FREQ      0x02
#define XREG_POWER_DOWN   0x08

/* Registers (Read-only) */
#define XREG_FREQ_ERROR   0x01
#define XREG_LOCK         0x02
#define XREG_VERSION      0x04
#define XREG_PRODUCT_ID   0x08
#define XREG_HSYNC_FREQ   0x10
#define XREG_FRAME_LINES  0x20
#define XREG_SNR          0x40

#define XREG_ADC_ENV      0x0100


static int debug;
static int debug;
module_param(debug, int, 0644);
module_param(debug, int, 0644);
@@ -885,7 +900,7 @@ static int xc2028_signal(struct dvb_frontend *fe, u16 *strength)
	mutex_lock(&priv->lock);
	mutex_lock(&priv->lock);


	/* Sync Lock Indicator */
	/* Sync Lock Indicator */
	rc = xc2028_get_reg(priv, 0x0002, &frq_lock);
	rc = xc2028_get_reg(priv, XREG_LOCK, &frq_lock);
	if (rc < 0)
	if (rc < 0)
		goto ret;
		goto ret;


@@ -894,7 +909,7 @@ static int xc2028_signal(struct dvb_frontend *fe, u16 *strength)
		signal = 1 << 11;
		signal = 1 << 11;


	/* Get SNR of the video signal */
	/* Get SNR of the video signal */
	rc = xc2028_get_reg(priv, 0x0040, &signal);
	rc = xc2028_get_reg(priv, XREG_SNR, &signal);
	if (rc < 0)
	if (rc < 0)
		goto ret;
		goto ret;


@@ -1019,9 +1034,9 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */,


	/* CMD= Set frequency */
	/* CMD= Set frequency */
	if (priv->firm_version < 0x0202)
	if (priv->firm_version < 0x0202)
		rc = send_seq(priv, {0x00, 0x02, 0x00, 0x00});
		rc = send_seq(priv, {0x00, XREG_RF_FREQ, 0x00, 0x00});
	else
	else
		rc = send_seq(priv, {0x80, 0x02, 0x00, 0x00});
		rc = send_seq(priv, {0x80, XREG_RF_FREQ, 0x00, 0x00});
	if (rc < 0)
	if (rc < 0)
		goto ret;
		goto ret;


@@ -1201,9 +1216,9 @@ static int xc2028_sleep(struct dvb_frontend *fe)
	mutex_lock(&priv->lock);
	mutex_lock(&priv->lock);


	if (priv->firm_version < 0x0202)
	if (priv->firm_version < 0x0202)
		rc = send_seq(priv, {0x00, 0x08, 0x00, 0x00});
		rc = send_seq(priv, {0x00, XREG_POWER_DOWN, 0x00, 0x00});
	else
	else
		rc = send_seq(priv, {0x80, 0x08, 0x00, 0x00});
		rc = send_seq(priv, {0x80, XREG_POWER_DOWN, 0x00, 0x00});


	priv->cur_fw.type = 0;	/* need firmware reload */
	priv->cur_fw.type = 0;	/* need firmware reload */