diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index 6c34ac9c..66e69b8 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -324,12 +324,12 @@
 {
 	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_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 int dst_set_symbolrate(struct dst_state* state, u32 srate)
 {
-	u8 *val;
 	u32 symcalc;
 	u64 sval;
 
@@ -463,7 +462,6 @@
 	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 @@
 		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;
-	if (srate > 8000)
-		val[8] |= 0x20;
+	state->tx_tuna[8] &= ~0x20;
+	if (state->type_flags & DST_TYPE_HAS_OBS_REGS) {
+		if (srate > 8000)
+			state->tx_tuna[8] |= 0x20;
+	}
 	return 0;
 }
 
