return 0;
 }
 
-static struct ufs_hba_variant_ops ufs_hba_hi3660_vops = {
+static const struct ufs_hba_variant_ops ufs_hba_hi3660_vops = {
        .name = "hi3660",
        .init = ufs_hi3660_init,
        .link_startup_notify = ufs_hisi_link_startup_notify,
        .resume = ufs_hisi_resume,
 };
 
-static struct ufs_hba_variant_ops ufs_hba_hi3670_vops = {
+static const struct ufs_hba_variant_ops ufs_hba_hi3670_vops = {
        .name = "hi3670",
        .init = ufs_hi3670_init,
        .link_startup_notify = ufs_hisi_link_startup_notify,
 static int ufs_hisi_probe(struct platform_device *pdev)
 {
        const struct of_device_id *of_id;
-       struct ufs_hba_variant_ops *vops;
-       struct device *dev = &pdev->dev;
 
-       of_id = of_match_node(ufs_hisi_of_match, dev->of_node);
-       vops = (struct ufs_hba_variant_ops *)of_id->data;
+       of_id = of_match_node(ufs_hisi_of_match, pdev->dev.of_node);
 
-       return ufshcd_pltfrm_init(pdev, vops);
+       return ufshcd_pltfrm_init(pdev, of_id->data);
 }
 
 static int ufs_hisi_remove(struct platform_device *pdev)
 
  * Returns 0 on success, non-zero value on failure
  */
 int ufshcd_pltfrm_init(struct platform_device *pdev,
-                      struct ufs_hba_variant_ops *vops)
+                      const struct ufs_hba_variant_ops *vops)
 {
        struct ufs_hba *hba;
        void __iomem *mmio_base;
 
 #include "ufshcd.h"
 
 int ufshcd_pltfrm_init(struct platform_device *pdev,
-                      struct ufs_hba_variant_ops *vops);
+                      const struct ufs_hba_variant_ops *vops);
 void ufshcd_pltfrm_shutdown(struct platform_device *pdev);
 
 #ifdef CONFIG_PM