]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
DVB: firedtv: FireDTV S2 problems with tuning solved
authorBeat Michel Liechti <bml303@gmail.com>
Sat, 28 Mar 2009 01:45:15 +0000 (01:45 +0000)
committerChris Wright <chrisw@sous-sol.org>
Thu, 2 Apr 2009 20:55:17 +0000 (13:55 -0700)
upstream commit: 32a0f488ce5e8a9a148491f15edc508ab5e8265b

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.

Cc: stable@kernel.org
Signed-off-by: Beat Michel Liechti <bml303@gmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/media/dvb/firewire/firedtv-avc.c

index b55d9ccaf33ed4b5fb21d420cf1eed46bcf26efa..adc2ce953f3958d99434b37836661093eec2e0ee 100644 (file)
@@ -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";
        }
@@ -266,7 +267,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;