return ret;
 }
 
-static int pxa3xx_gcu_remove(struct platform_device *pdev)
+static void pxa3xx_gcu_remove(struct platform_device *pdev)
 {
        struct pxa3xx_gcu_priv *priv = platform_get_drvdata(pdev);
        struct device *dev = &pdev->dev;
        dma_free_coherent(dev, SHARED_SIZE, priv->shared, priv->shared_phys);
        clk_disable_unprepare(priv->clk);
        pxa3xx_gcu_free_buffers(dev, priv);
-
-       return 0;
 }
 
 #ifdef CONFIG_OF
 
 static struct platform_driver pxa3xx_gcu_driver = {
        .probe    = pxa3xx_gcu_probe,
-       .remove  = pxa3xx_gcu_remove,
+       .remove_new      = pxa3xx_gcu_remove,
        .driver  = {
                .name   = DRV_NAME,
                .of_match_table = of_match_ptr(pxa3xx_gcu_of_match),