TM5600/TM6000 needs clock reset during firmware load. This patch adds the
capability of caling a callback method for this.
Also, avoids uneeded firmware loads.
Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
                        }
                        continue;
                }
+               if (size >= 0xff00) {
+                       switch (size) {
+                       case 0xff00:
+                               rc = priv->tuner_callback(priv->video_dev,
+                                                       XC2028_RESET_CLK, 0);
+                               if (rc < 0) {
+                                       tuner_err("Error at RESET code %d\n",
+                                                 (*p) & 0x7f);
+                                       return -EINVAL;
+                               }
+                       default:
+                               tuner_info("Invalid RESET code %d\n",
+                                          size & 0x7f);
+                               return -EINVAL;
+
+                       }
+               }
 
                /* Checks for a sleep command */
                if (size & 0x8000) {
                priv->bandwidth = bandwidth;
        }
 
+       if (!change_digital_bandwidth && priv->mode == T_DIGITAL_TV)
+               return 0;
+
        /* Load INIT1, if needed */
        tuner_dbg("Load init1 firmware, if exists\n");
        type0 = BASE | INIT1;