return 0;
 }
 
-static void stb0899_release(struct dvb_frontend *fe)
+static void stb0899_detach(struct dvb_frontend *fe)
 {
        struct stb0899_state *state = fe->demodulator_priv;
 
-       dprintk(state->verbose, FE_DEBUG, 1, "Release Frontend");
        /* post process event */
        stb0899_postproc(state, STB0899_POSTPROC_GPIO_POWER, 0);
+}
+
+static void stb0899_release(struct dvb_frontend *fe)
+{
+       struct stb0899_state *state = fe->demodulator_priv;
+
+       dprintk(state->verbose, FE_DEBUG, 1, "Release Frontend");
        kfree(state);
 }
 
                                          FE_CAN_QPSK
        },
 
+       .detach                         = stb0899_detach,
        .release                        = stb0899_release,
        .init                           = stb0899_init,
        .sleep                          = stb0899_sleep,