enum cmds {
-       CMD_SET_VCO     = 0x10,
-       CMD_TUNEREQUEST = 0x11,
-       CMD_MPEGCONFIG  = 0x13,
-       CMD_TUNERINIT   = 0x14,
-       CMD_LNBSEND     = 0x21, /* Formerly CMD_SEND_DISEQC */
-       CMD_LNBDCLEVEL  = 0x22,
-       CMD_SET_TONE    = 0x23,
-       CMD_UPDFWVERS   = 0x35,
-       CMD_TUNERSLEEP  = 0x36,
+       CMD_SET_VCOFREQ    = 0x10,
+       CMD_TUNEREQUEST    = 0x11,
+       CMD_GLOBAL_MPEGCFG = 0x13,
+       CMD_MPEGCFG        = 0x14,
+       CMD_TUNERINIT      = 0x15,
+       CMD_GET_SRATE      = 0x18,
+       CMD_SET_GOLDCODE   = 0x19,
+       CMD_GET_AGCACC     = 0x1a,
+       CMD_DEMODINIT      = 0x1b,
+       CMD_GETCTLACC      = 0x1c,
+
+       CMD_LNBCONFIG      = 0x20,
+       CMD_LNBSEND        = 0x21,
+       CMD_LNBDCLEVEL     = 0x22,
+       CMD_LNBPCBCONFIG   = 0x23,
+       CMD_LNBSENDTONEBST = 0x24,
+       CMD_LNBUPDREPLY    = 0x25,
+
+       CMD_SET_GPIOMODE   = 0x30,
+       CMD_SET_GPIOEN     = 0x31,
+       CMD_SET_GPIODIR    = 0x32,
+       CMD_SET_GPIOOUT    = 0x33,
+       CMD_ENABLERSCORR   = 0x34,
+       CMD_FWVERSION      = 0x35,
+       CMD_SET_SLEEPMODE  = 0x36,
+       CMD_BERCTRL        = 0x3c,
+       CMD_EVENTCTRL      = 0x3d,
 };
 
 static LIST_HEAD(hybrid_tuner_instance_list);
        cx24117_writereg(state, 0xf7, 0x0c);
        cx24117_writereg(state, 0xe0, 0x00);
 
-       /* CMD 1B */
-       cmd.args[0] = 0x1b;
+       /* Init demodulator */
+       cmd.args[0] = CMD_DEMODINIT;
        cmd.args[1] = 0x00;
        cmd.args[2] = 0x01;
        cmd.args[3] = 0x00;
        if (ret != 0)
                goto error;
 
-       /* CMD 10 */
-       cmd.args[0] = CMD_SET_VCO;
+       /* Set VCO frequency */
+       cmd.args[0] = CMD_SET_VCOFREQ;
        cmd.args[1] = 0x06;
        cmd.args[2] = 0x2b;
        cmd.args[3] = 0xd8;
        if (ret != 0)
                goto error;
 
-       /* CMD 15 */
-       cmd.args[0] = 0x15;
+       /* Tuner init */
+       cmd.args[0] = CMD_TUNERINIT;
        cmd.args[1] = 0x00;
        cmd.args[2] = 0x01;
        cmd.args[3] = 0x00;
        if (ret != 0)
                goto error;
 
-       /* CMD 13 */
-       cmd.args[0] = CMD_MPEGCONFIG;
+       /* Global MPEG config */
+       cmd.args[0] = CMD_GLOBAL_MPEGCFG;
        cmd.args[1] = 0x00;
        cmd.args[2] = 0x00;
        cmd.args[3] = 0x00;
        if (ret != 0)
                goto error;
 
-       /* CMD 14 */
+       /* MPEG config for each demod */
        for (i = 0; i < 2; i++) {
-               cmd.args[0] = CMD_TUNERINIT;
+               cmd.args[0] = CMD_MPEGCFG;
                cmd.args[1] = (u8) i;
                cmd.args[2] = 0x00;
                cmd.args[3] = 0x05;
        cx24117_writereg(state, 0xcf, 0x00);
        cx24117_writereg(state, 0xe5, 0x04);
 
-       /* Firmware CMD 35: Get firmware version */
-       cmd.args[0] = CMD_UPDFWVERS;
+       /* Get firmware version */
+       cmd.args[0] = CMD_FWVERSION;
        cmd.len = 2;
        for (i = 0; i < 4; i++) {
                cmd.args[1] = i;
        u8 reg = (state->demod == 0) ?
                CX24117_REG_SSTATUS0 : CX24117_REG_SSTATUS1;
 
-       /* Firmware CMD 1A */
-       cmd.args[0] = 0x1a;
+       /* Read AGC accumulator register */
+       cmd.args[0] = CMD_GET_AGCACC;
        cmd.args[1] = (u8) state->demod;
        cmd.len = 2;
        ret = cx24117_cmd_execute(fe, &cmd);
                voltage == SEC_VOLTAGE_18 ? "SEC_VOLTAGE_18" :
                "SEC_VOLTAGE_OFF");
 
-       /* CMD 32 */
-       cmd.args[0] = 0x32;
+       /* Set GPIO direction */
+       cmd.args[0] = CMD_SET_GPIODIR;
        cmd.args[1] = reg;
        cmd.args[2] = reg;
        cmd.len = 3;
 
        if ((voltage == SEC_VOLTAGE_13) ||
            (voltage == SEC_VOLTAGE_18)) {
-               /* CMD 33 */
-               cmd.args[0] = 0x33;
+               /* Set GPIO logic level */
+               cmd.args[0] = CMD_SET_GPIOOUT;
                cmd.args[1] = reg;
                cmd.args[2] = reg;
                cmd.len = 3;
                /* Wait for voltage/min repeat delay */
                msleep(100);
 
-               /* CMD 22 - CMD_LNBDCLEVEL */
+               /* Set 13V/18V select pin */
                cmd.args[0] = CMD_LNBDCLEVEL;
                cmd.args[1] = state->demod ? 0 : 1;
                cmd.args[2] = (voltage == SEC_VOLTAGE_18 ? 0x01 : 0x00);
                /* Min delay time before DiSEqC send */
                msleep(20);
        } else {
-               cmd.args[0] = 0x33;
+               cmd.args[0] = CMD_SET_GPIOOUT;
                cmd.args[1] = 0x00;
                cmd.args[2] = reg;
                cmd.len = 3;
        msleep(20);
 
        /* Set the tone */
-       /* CMD 23 - CMD_SET_TONE */
-       cmd.args[0] = CMD_SET_TONE;
+       cmd.args[0] = CMD_LNBPCBCONFIG;
        cmd.args[1] = (state->demod ? 0 : 1);
        cmd.args[2] = 0x00;
        cmd.args[3] = 0x00;
 
        mutex_lock(&state->priv->fe_lock);
 
-       /* Firmware CMD 36: Power config */
-       cmd.args[0] = CMD_TUNERSLEEP;
+       /* Set sleep mode off */
+       cmd.args[0] = CMD_SET_SLEEPMODE;
        cmd.args[1] = (state->demod ? 1 : 0);
        cmd.args[2] = 0;
        cmd.len = 3;
        if (ret != 0)
                goto exit;
 
-       /* CMD 3C */
-       cmd.args[0] = 0x3c;
+       /* Set BER control */
+       cmd.args[0] = CMD_BERCTRL;
        cmd.args[1] = (state->demod ? 1 : 0);
        cmd.args[2] = 0x10;
        cmd.args[3] = 0x10;
        if (ret != 0)
                goto exit;
 
-       /* CMD 34 */
-       cmd.args[0] = 0x34;
+       /* Set RS correction (enable/disable) */
+       cmd.args[0] = CMD_ENABLERSCORR;
        cmd.args[1] = (state->demod ? 1 : 0);
        cmd.args[2] = CX24117_OCC;
        cmd.len = 3;
        dev_dbg(&state->priv->i2c->dev, "%s() demod%d\n",
                __func__, state->demod);
 
-       /* Firmware CMD 36: Power config */
-       cmd.args[0] = CMD_TUNERSLEEP;
+       /* Set sleep mode on */
+       cmd.args[0] = CMD_SET_SLEEPMODE;
        cmd.args[1] = (state->demod ? 1 : 0);
        cmd.args[2] = 1;
        cmd.len = 3;
 
        u8 buf[0x1f-4];
 
-       cmd.args[0] = 0x1c;
+       /* Read current tune parameters */
+       cmd.args[0] = CMD_GETCTLACC;
        cmd.args[1] = (u8) state->demod;
        cmd.len = 2;
        ret = cx24117_cmd_execute(fe, &cmd);