On 13 August 2016 at 04:48, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > It's deprecated and only should be used by drivers which still use > drm_platform_init, not by anyone else. > > And indeed it's entirely unused and can be nuked. > > This required a bit more fudging, but I guess kirin_dc_ops really > wants to operate on the platform_device, not something else. Also > bonus points for implementing abstraction, and then storing the vfunc > in a global variable. > > Cc: Xinliang Liu <xinliang.liu@xxxxxxxxxx> > Cc: Xinwei Kong <kong.kongxinwei@xxxxxxxxxxxxx> > Cc: Archit Taneja <architt@xxxxxxxxxxxxxx> > Reviewed-by: Sean Paul <seanpaul@xxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Reviewed-by: Xinliang Liu <xinliang.liu@xxxxxxxxxx> Thanks, -xinliang > --- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 10 +++++----- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 6 ++---- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h | 4 ++-- > 3 files changed, 9 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > index c3707d47cd89..34c22823e5c2 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > @@ -987,9 +987,9 @@ static int ade_dts_parse(struct platform_device *pdev, struct ade_hw_ctx *ctx) > return 0; > } > > -static int ade_drm_init(struct drm_device *dev) > +static int ade_drm_init(struct platform_device *pdev) > { > - struct platform_device *pdev = dev->platformdev; > + struct drm_device *drm_dev = platform_get_drvdata(dev); > struct ade_data *ade; > struct ade_hw_ctx *ctx; > struct ade_crtc *acrtc; > @@ -1048,9 +1048,9 @@ static int ade_drm_init(struct drm_device *dev) > return 0; > } > > -static void ade_drm_cleanup(struct drm_device *dev) > +static void ade_drm_cleanup(struct platform_device *pdev) > { > - struct platform_device *pdev = dev->platformdev; > + struct drm_device *drm_dev = platform_get_drvdata(dev); > struct ade_data *ade = platform_get_drvdata(pdev); > struct drm_crtc *crtc = &ade->acrtc.base; > > @@ -1060,4 +1060,4 @@ static void ade_drm_cleanup(struct drm_device *dev) > const struct kirin_dc_ops ade_dc_ops = { > .init = ade_drm_init, > .cleanup = ade_drm_cleanup > -}; > +; > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1edd9bc80294..a31016af9b61 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -41,7 +41,7 @@ static int kirin_drm_kms_cleanup(struct drm_device *dev) > #endif > drm_kms_helper_poll_fini(dev); > drm_vblank_cleanup(dev); > - dc_ops->cleanup(dev); > + dc_ops->cleanup(to_platform_device(dev->dev)); > drm_mode_config_cleanup(dev); > devm_kfree(dev->dev, priv); > dev->dev_private = NULL; > @@ -103,7 +103,7 @@ static int kirin_drm_kms_init(struct drm_device *dev) > kirin_drm_mode_config_init(dev); > > /* display controller init */ > - ret = dc_ops->init(dev); > + ret = dc_ops->init(to_platform_device(dev)); > if (ret) > goto err_mode_config_cleanup; > > @@ -210,8 +210,6 @@ static int kirin_drm_bind(struct device *dev) > if (!drm_dev) > return -ENOMEM; > > - drm_dev->platformdev = to_platform_device(dev); > - > ret = kirin_drm_kms_init(drm_dev); > if (ret) > goto err_drm_dev_unref; > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h > index 1a07caf8e7f4..a0bb217c4c64 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h > @@ -15,8 +15,8 @@ > > /* display controller init/cleanup ops */ > struct kirin_dc_ops { > - int (*init)(struct drm_device *dev); > - void (*cleanup)(struct drm_device *dev); > + int (*init)(struct platform_device *pdev); > + void (*cleanup)(struct platform_device *pdev); > }; > > struct kirin_drm_private { > -- > 2.8.1 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel