summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-04-14 13:27:46 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-04-14 13:27:46 -0300
commit4c6d792a82b4304ed6ccbfccf9f5ed693a3349e2 (patch)
tree87e39ddd6a3372d55de20a14f9e5716fb69c1da2 /linux/drivers
parentc23903beefd9eaf1b4572041fbe56c64881f8750 (diff)
downloadmediapointer-dvb-s2-4c6d792a82b4304ed6ccbfccf9f5ed693a3349e2.tar.gz
mediapointer-dvb-s2-4c6d792a82b4304ed6ccbfccf9f5ed693a3349e2.tar.bz2
backport commit 32a0f488ce5e8a9a148491f15edc508ab5e8265b
From: Mauro Carvalho Chehab <mchehab@redhat.com> Author: Beat Michel Liechti <bml303@gmail.com> Date: Thu Mar 26 22:36:52 2009 +0100 DVB: firedtv: FireDTV S2 problems with tuning solved Tuning was broken on FireDTV S2 (and presumably FloppyDTV S2) because a wrong opcode was sent. The box only gave "not implemented" responses. Changing the opcode to _TUNE_QPSK2 fixes this for good. kernel-sync: Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers')
-rw-r--r--linux/drivers/media/dvb/firewire/firedtv-avc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/firewire/firedtv-avc.c b/linux/drivers/media/dvb/firewire/firedtv-avc.c
index 79fab477c..e95a6f094 100644
--- a/linux/drivers/media/dvb/firewire/firedtv-avc.c
+++ b/linux/drivers/media/dvb/firewire/firedtv-avc.c
@@ -135,6 +135,7 @@ static const char *debug_fcp_opcode(unsigned int opcode,
case SFE_VENDOR_OPCODE_REGISTER_REMOTE_CONTROL: return "RegisterRC";
case SFE_VENDOR_OPCODE_LNB_CONTROL: return "LNBControl";
case SFE_VENDOR_OPCODE_TUNE_QPSK: return "TuneQPSK";
+ case SFE_VENDOR_OPCODE_TUNE_QPSK2: return "TuneQPSK2";
case SFE_VENDOR_OPCODE_HOST2CA: return "Host2CA";
case SFE_VENDOR_OPCODE_CA2HOST: return "CA2Host";
}
@@ -271,7 +272,10 @@ static void avc_tuner_tuneqpsk(struct firedtv *fdtv,
c->operand[0] = SFE_VENDOR_DE_COMPANYID_0;
c->operand[1] = SFE_VENDOR_DE_COMPANYID_1;
c->operand[2] = SFE_VENDOR_DE_COMPANYID_2;
- c->operand[3] = SFE_VENDOR_OPCODE_TUNE_QPSK;
+ if (fdtv->type == FIREDTV_DVB_S2)
+ c->operand[3] = SFE_VENDOR_OPCODE_TUNE_QPSK2;
+ else
+ c->operand[3] = SFE_VENDOR_OPCODE_TUNE_QPSK;
c->operand[4] = (params->frequency >> 24) & 0xff;
c->operand[5] = (params->frequency >> 16) & 0xff;