Commit f612c579 authored by Manu Abraham's avatar Manu Abraham Committed by Linus Torvalds
Browse files

[PATCH] dvb: dst: fix symbol rate setting



Make the Symbolrate setting card specific.

Signed-off-by: default avatarManu Abraham <manu@kromtek.com>
Signed-off-by: default avatarJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f30db067
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -324,12 +324,12 @@ static int dst_set_polarization(struct dst_state *state)
{
	switch (state->voltage) {
		case SEC_VOLTAGE_13:	// vertical
			printk("%s: Polarization=[Vertical]\n", __FUNCTION__);
			dprintk("%s: Polarization=[Vertical]\n", __FUNCTION__);
			state->tx_tuna[8] &= ~0x40;  //1
			break;

		case SEC_VOLTAGE_18:	// horizontal
			printk("%s: Polarization=[Horizontal]\n", __FUNCTION__);
			dprintk("%s: Polarization=[Horizontal]\n", __FUNCTION__);
			state->tx_tuna[8] |= 0x40;  // 0
			break;

@@ -344,7 +344,7 @@ static int dst_set_polarization(struct dst_state *state)
static int dst_set_freq(struct dst_state *state, u32 freq)
{
	state->frequency = freq;
	if (debug > 4)
	if (verbose > 4)
		dprintk("%s: set Frequency %u\n", __FUNCTION__, freq);

	if (state->dst_type == DST_TYPE_IS_SAT) {
@@ -451,7 +451,6 @@ static fe_code_rate_t dst_get_fec(struct dst_state* state)

static int dst_set_symbolrate(struct dst_state* state, u32 srate)
{
	u8 *val;
	u32 symcalc;
	u64 sval;

@@ -463,7 +462,6 @@ static int dst_set_symbolrate(struct dst_state* state, u32 srate)
	if (debug > 4)
		dprintk("%s: set symrate %u\n", __FUNCTION__, srate);
	srate /= 1000;
	val = &state->tx_tuna[0];

	if (state->type_flags & DST_TYPE_HAS_SYMDIV) {
		sval = srate;
@@ -474,17 +472,19 @@ static int dst_set_symbolrate(struct dst_state* state, u32 srate)
		if (debug > 4)
			dprintk("%s: set symcalc %u\n", __FUNCTION__, symcalc);

		val[5] = (u8) (symcalc >> 12);
		val[6] = (u8) (symcalc >> 4);
		val[7] = (u8) (symcalc << 4);
		state->tx_tuna[5] = (u8) (symcalc >> 12);
		state->tx_tuna[6] = (u8) (symcalc >> 4);
		state->tx_tuna[7] = (u8) (symcalc << 4);
	} else {
		val[5] = (u8) (srate >> 16) & 0x7f;
		val[6] = (u8) (srate >> 8);
		val[7] = (u8) srate;
		state->tx_tuna[5] = (u8) (srate >> 16) & 0x7f;
		state->tx_tuna[6] = (u8) (srate >> 8);
		state->tx_tuna[7] = (u8) srate;
	}
	val[8] &= ~0x20;
	state->tx_tuna[8] &= ~0x20;
	if (state->type_flags & DST_TYPE_HAS_OBS_REGS) {
		if (srate > 8000)
		val[8] |= 0x20;
			state->tx_tuna[8] |= 0x20;
	}
	return 0;
}