.demod_address = 0x68,
  };
  
- static int __devinit frontend_init(struct dm1105_dev *dev)
 +static struct ts2020_config dvbworld_ts2020_config  = {
 +      .tuner_address = 0x60,
 +      .clk_out_div = 1,
 +};
 +
+ static int frontend_init(struct dm1105_dev *dev)
  {
        int ret;
  
 
  };
  MODULE_DEVICE_TABLE(platform, mfc_driver_ids);
  
 +static const struct of_device_id exynos_mfc_match[] = {
 +      {
 +              .compatible = "samsung,mfc-v5",
 +              .data = &mfc_drvdata_v5,
 +      }, {
 +              .compatible = "samsung,mfc-v6",
 +              .data = &mfc_drvdata_v6,
 +      },
 +      {},
 +};
 +MODULE_DEVICE_TABLE(of, exynos_mfc_match);
 +
 +static void *mfc_get_drv_data(struct platform_device *pdev)
 +{
 +      struct s5p_mfc_variant *driver_data = NULL;
 +
 +      if (pdev->dev.of_node) {
 +              const struct of_device_id *match;
 +              match = of_match_node(of_match_ptr(exynos_mfc_match),
 +                              pdev->dev.of_node);
 +              if (match)
 +                      driver_data = (struct s5p_mfc_variant *)match->data;
 +      } else {
 +              driver_data = (struct s5p_mfc_variant *)
 +                      platform_get_device_id(pdev)->driver_data;
 +      }
 +      return driver_data;
 +}
 +
  static struct platform_driver s5p_mfc_driver = {
        .probe          = s5p_mfc_probe,
-       .remove         = __devexit_p(s5p_mfc_remove),
+       .remove         = s5p_mfc_remove,
        .id_table       = mfc_driver_ids,
        .driver = {
                .name   = S5P_MFC_NAME,
 
        return ret;
  }
  
- static int __devexit sii9234_remove(struct i2c_client *client)
+ static int sii9234_remove(struct i2c_client *client)
  {
        struct device *dev = &client->dev;
 -      struct v4l2_subdev *sd = i2c_get_clientdata(client);
 -      struct sii9234_context *ctx = sd_to_context(sd);
  
        pm_runtime_disable(dev);
 -      gpio_free(ctx->gpio_n_reset);
  
        dev_info(dev, "remove successful\n");
  
 
                .name   = MX2_CAM_DRV_NAME,
        },
        .id_table       = mx2_camera_devtype,
-       .remove         = __devexit_p(mx2_camera_remove),
+       .remove         = mx2_camera_remove,
 +      .probe          = mx2_camera_probe,
  };
  
 +module_platform_driver(mx2_camera_driver);
  
 -static int __init mx2_camera_init(void)
 -{
 -      return platform_driver_probe(&mx2_camera_driver, &mx2_camera_probe);
 -}
 -
 -static void __exit mx2_camera_exit(void)
 -{
 -      return platform_driver_unregister(&mx2_camera_driver);
 -}
 -
 -module_init(mx2_camera_init);
 -module_exit(mx2_camera_exit);
 -
 -MODULE_DESCRIPTION("i.MX27/i.MX25 SoC Camera Host driver");
 +MODULE_DESCRIPTION("i.MX27 SoC Camera Host driver");
  MODULE_AUTHOR("Sascha Hauer <sha@pengutronix.de>");
  MODULE_LICENSE("GPL");
  MODULE_VERSION(MX2_CAM_VERSION);
 
        return ret;
  }
  
- static __devexit int sh_csi2_remove(struct platform_device *pdev)
+ static int sh_csi2_remove(struct platform_device *pdev)
  {
        struct sh_csi2 *priv = platform_get_drvdata(pdev);
 -      struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  
        v4l2_device_unregister_subdev(&priv->subdev);
        pm_runtime_disable(&pdev->dev);
 
        return 0;
  }
  
- static int __devinit soc_camera_pdrv_probe(struct platform_device *pdev)
+ static int soc_camera_pdrv_probe(struct platform_device *pdev)
  {
 -      struct soc_camera_link *icl = pdev->dev.platform_data;
 +      struct soc_camera_desc *sdesc = pdev->dev.platform_data;
 +      struct soc_camera_subdev_desc *ssdd = &sdesc->subdev_desc;
        struct soc_camera_device *icd;
 +      int ret;
  
 -      if (!icl)
 +      if (!sdesc)
                return -EINVAL;
  
        icd = devm_kzalloc(&pdev->dev, sizeof(*icd), GFP_KERNEL);