memset(c, 0, offsetof(struct dtv_frontend_properties, strength));
        c->delivery_system = delsys;
 
-       c->state = DTV_CLEAR;
-
        dev_dbg(fe->dvb->device, "%s: Clearing cache for delivery system %d\n",
                        __func__, c->delivery_system);
 
                dvb_frontend_clear_cache(fe);
                break;
        case DTV_TUNE:
-               /* interpret the cache of data, build either a traditional frontend
-                * tunerequest so we can pass validation in the FE_SET_FRONTEND
-                * ioctl.
+               /*
+                * Use the cached Digital TV properties to tune the
+                * frontend
                 */
-               c->state = tvp->cmd;
-               dev_dbg(fe->dvb->device, "%s: Finalised property cache\n",
-                               __func__);
+               dev_dbg(fe->dvb->device,
+                       "%s: Setting the frontend from property cache\n",
+                       __func__);
 
                r = dtv_set_frontend(fe);
                break;
 {
        struct dvb_device *dvbdev = file->private_data;
        struct dvb_frontend *fe = dvbdev->priv;
-       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct dvb_frontend_private *fepriv = fe->frontend_priv;
        int err;
 
                return -EPERM;
        }
 
-       c->state = DTV_UNDEFINED;
        err = dvb_frontend_handle_ioctl(file, cmd, parg);
 
        up(&fepriv->sem);
                        }
                        (tvp + i)->result = err;
                }
-
-               if (c->state == DTV_TUNE)
-                       dev_dbg(fe->dvb->device, "%s: Property cache is full, tuning\n", __func__);
-
                kfree(tvp);
                break;
        }