Index: stv0299.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/stv0299.c,v
retrieving revision 1.65
diff -p -u -r1.65 stv0299.c
--- stv0299.c	9 Mar 2005 15:52:00 -0000	1.65
+++ stv0299.c	21 Mar 2005 22:22:25 -0000
@@ -309,11 +309,19 @@ static int stv0299_send_diseqc_burst (st
 
 	val = stv0299_readreg (state, 0x08);
 
-	if (stv0299_writeregI (state, 0x08, (val & ~0x7) | 0x2))	/* burst mode */
-		return -EREMOTEIO;
-
-	if (stv0299_writeregI (state, 0x09, burst == SEC_MINI_A ? 0x00 : 0xff))
-		return -EREMOTEIO;
+	if (burst == SEC_MINI_A) {
+		/* unmodulated '0' tone burst */
+		if (stv0299_writeregI (state, 0x08, (val & ~0x7) | 0x2))
+			return -EREMOTEIO;
+		if (stv0299_writeregI (state, 0x09, 0x00))
+			return -EREMOTEIO;
+	} else {
+		/* modulated '1' tone burst */
+		if (stv0299_writeregI (state, 0x08, (val & ~0x7) | 0x6))
+			return -EREMOTEIO;
+		if (stv0299_writeregI (state, 0x09, 0xff))
+			return -EREMOTEIO;
+	}
 
 	if (stv0299_wait_diseqc_idle (state, 100) < 0)
 		return -ETIMEDOUT;
