Hi,

On Fri, Oct 13, 2017 at 05:59:33PM +0300, Laurent Pinchart wrote:
> The dsi_get_dsidrv_data() and dsi_get_dsidev_from_dssdev() inline
> functions convert a struct omap_dss_device pointer to the corresponding
> struct platform_device, and a struct platform_device pointer to the
> corresponding struct dsi_data. They are nearly always called together
> without any use of the intermediate platform_device, so combine them
> into a single function.
> 
> In the three locations where only dsi_get_dsidrv_data() is used, call
> dev_get_drvdata() directly.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reic...@collabora.co.uk>

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/dsi.c | 90 
> +++++++++++++--------------------------
>  1 file changed, 30 insertions(+), 60 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c 
> b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index 312804104ad3..a763ab7ed657 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -441,14 +441,9 @@ static bool dsi_perf;
>  module_param(dsi_perf, bool, 0644);
>  #endif
>  
> -static inline struct dsi_data *dsi_get_dsidrv_data(struct platform_device 
> *dsidev)
> +static inline struct dsi_data *to_dsi_data(struct omap_dss_device *dssdev)
>  {
> -     return dev_get_drvdata(&dsidev->dev);
> -}
> -
> -static inline struct platform_device *dsi_get_dsidev_from_dssdev(struct 
> omap_dss_device *dssdev)
> -{
> -     return to_platform_device(dssdev->dev);
> +     return dev_get_drvdata(dssdev->dev);
>  }
>  
>  static struct dsi_data *dsi_get_dsi_from_id(int module)
> @@ -469,7 +464,7 @@ static struct dsi_data *dsi_get_dsi_from_id(int module)
>  
>       out = omap_dss_get_output(id);
>  
> -     return out ? dsi_get_dsidrv_data(to_platform_device(out->dev)) : NULL;
> +     return out ? to_dsi_data(out) : NULL;
>  }
>  
>  static inline void dsi_write_reg(struct dsi_data *dsi,
> @@ -503,16 +498,14 @@ static inline u32 dsi_read_reg(struct dsi_data *dsi, 
> const struct dsi_reg idx)
>  
>  static void dsi_bus_lock(struct omap_dss_device *dssdev)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       down(&dsi->bus_lock);
>  }
>  
>  static void dsi_bus_unlock(struct omap_dss_device *dssdev)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       up(&dsi->bus_lock);
>  }
> @@ -2536,8 +2529,7 @@ static int dsi_vc_config_source(struct dsi_data *dsi, 
> int channel,
>  static void dsi_vc_enable_hs(struct omap_dss_device *dssdev, int channel,
>               bool enable)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       DSSDBG("dsi_vc_enable_hs(%d, %d)\n", channel, enable);
>  
> @@ -2660,8 +2652,7 @@ static int dsi_vc_send_bta(struct dsi_data *dsi, int 
> channel)
>  
>  static int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       DECLARE_COMPLETION_ONSTACK(completion);
>       int r = 0;
>       u32 err;
> @@ -2863,8 +2854,7 @@ static int dsi_vc_write_nosync_common(struct dsi_data 
> *dsi, int channel,
>  static int dsi_vc_dcs_write_nosync(struct omap_dss_device *dssdev, int 
> channel,
>               u8 *data, int len)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       return dsi_vc_write_nosync_common(dsi, channel, data, len,
>                       DSS_DSI_CONTENT_DCS);
> @@ -2873,8 +2863,7 @@ static int dsi_vc_dcs_write_nosync(struct 
> omap_dss_device *dssdev, int channel,
>  static int dsi_vc_generic_write_nosync(struct omap_dss_device *dssdev, int 
> channel,
>               u8 *data, int len)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       return dsi_vc_write_nosync_common(dsi, channel, data, len,
>                       DSS_DSI_CONTENT_GENERIC);
> @@ -2884,8 +2873,7 @@ static int dsi_vc_write_common(struct omap_dss_device 
> *dssdev,
>                              int channel, u8 *data, int len,
>                              enum dss_dsi_content_type type)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int r;
>  
>       r = dsi_vc_write_nosync_common(dsi, channel, data, len, type);
> @@ -3090,8 +3078,7 @@ static int dsi_vc_read_rx_fifo(struct dsi_data *dsi, 
> int channel, u8 *buf,
>  static int dsi_vc_dcs_read(struct omap_dss_device *dssdev, int channel, u8 
> dcs_cmd,
>               u8 *buf, int buflen)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int r;
>  
>       r = dsi_vc_dcs_send_read_request(dsi, channel, dcs_cmd);
> @@ -3121,8 +3108,7 @@ static int dsi_vc_dcs_read(struct omap_dss_device 
> *dssdev, int channel, u8 dcs_c
>  static int dsi_vc_generic_read(struct omap_dss_device *dssdev, int channel,
>               u8 *reqdata, int reqlen, u8 *buf, int buflen)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int r;
>  
>       r = dsi_vc_generic_send_read_request(dsi, channel, reqdata, reqlen);
> @@ -3149,8 +3135,7 @@ static int dsi_vc_generic_read(struct omap_dss_device 
> *dssdev, int channel,
>  static int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int 
> channel,
>               u16 len)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       return dsi_vc_send_short(dsi, channel,
>                       MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE, len, 0);
> @@ -3784,8 +3769,7 @@ static void dsi_proto_timings(struct dsi_data *dsi)
>  static int dsi_configure_pins(struct omap_dss_device *dssdev,
>               const struct omap_dsi_pin_config *pin_cfg)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int num_pins;
>       const int *pins;
>       struct dsi_lane_config lanes[DSI_MAX_NR_LANES];
> @@ -3850,8 +3834,7 @@ static int dsi_configure_pins(struct omap_dss_device 
> *dssdev,
>  
>  static int dsi_enable_video_output(struct omap_dss_device *dssdev, int 
> channel)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       enum omap_channel dispc_channel = dssdev->dispc_channel;
>       int bpp = dsi_get_pixel_size(dsi->pix_fmt);
>       struct omap_dss_device *out = &dsi->output;
> @@ -3921,8 +3904,7 @@ static int dsi_enable_video_output(struct 
> omap_dss_device *dssdev, int channel)
>  
>  static void dsi_disable_video_output(struct omap_dss_device *dssdev, int 
> channel)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       enum omap_channel dispc_channel = dssdev->dispc_channel;
>  
>       if (dsi->mode == OMAP_DSS_DSI_VIDEO_MODE) {
> @@ -4078,8 +4060,7 @@ static void dsi_framedone_irq_callback(void *data)
>  static int dsi_update(struct omap_dss_device *dssdev, int channel,
>               void (*callback)(int, void *), void *data)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       u16 dw, dh;
>  
>       dsi_perf_mark_setup(dsi);
> @@ -4287,8 +4268,7 @@ static void dsi_display_uninit_dsi(struct dsi_data 
> *dsi, bool disconnect_lanes,
>  
>  static int dsi_display_enable(struct omap_dss_device *dssdev)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int r = 0;
>  
>       DSSDBG("dsi_display_enable\n");
> @@ -4322,8 +4302,7 @@ static int dsi_display_enable(struct omap_dss_device 
> *dssdev)
>  static void dsi_display_disable(struct omap_dss_device *dssdev,
>               bool disconnect_lanes, bool enter_ulps)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       DSSDBG("dsi_display_disable\n");
>  
> @@ -4345,8 +4324,7 @@ static void dsi_display_disable(struct omap_dss_device 
> *dssdev,
>  
>  static int dsi_enable_te(struct omap_dss_device *dssdev, bool enable)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       dsi->te_enabled = enable;
>       return 0;
> @@ -4832,8 +4810,7 @@ static bool dsi_vm_calc(struct dsi_data *dsi,
>  static int dsi_set_config(struct omap_dss_device *dssdev,
>               const struct omap_dss_dsi_config *config)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       struct dsi_clk_calc_ctx ctx;
>       bool ok;
>       int r;
> @@ -4920,8 +4897,7 @@ static enum omap_channel dsi_get_channel(struct 
> dsi_data *dsi)
>  
>  static int dsi_request_vc(struct omap_dss_device *dssdev, int *channel)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       int i;
>  
>       for (i = 0; i < ARRAY_SIZE(dsi->vc); i++) {
> @@ -4938,8 +4914,7 @@ static int dsi_request_vc(struct omap_dss_device 
> *dssdev, int *channel)
>  
>  static int dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int 
> vc_id)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       if (vc_id < 0 || vc_id > 3) {
>               DSSERR("VC ID out of range\n");
> @@ -4964,8 +4939,7 @@ static int dsi_set_vc_id(struct omap_dss_device 
> *dssdev, int channel, int vc_id)
>  
>  static void dsi_release_vc(struct omap_dss_device *dssdev, int channel)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>  
>       if ((channel >= 0 && channel <= 3) &&
>               dsi->vc[channel].dssdev == dssdev) {
> @@ -4993,8 +4967,7 @@ static int dsi_get_clocks(struct dsi_data *dsi)
>  static int dsi_connect(struct omap_dss_device *dssdev,
>               struct omap_dss_device *dst)
>  {
> -     struct platform_device *dsidev = dsi_get_dsidev_from_dssdev(dssdev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = to_dsi_data(dssdev);
>       enum omap_channel dispc_channel = dssdev->dispc_channel;
>       int r;
>  
> @@ -5512,13 +5485,12 @@ static int dsi_bind(struct device *dev, struct device 
> *master, void *data)
>  
>  static void dsi_unbind(struct device *dev, struct device *master, void *data)
>  {
> -     struct platform_device *dsidev = to_platform_device(dev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
> +     struct dsi_data *dsi = dev_get_drvdata(dev);
>  
>       dss_debugfs_remove_file(dsi->debugfs.irqs);
>       dss_debugfs_remove_file(dsi->debugfs.regs);
>  
> -     of_platform_depopulate(&dsidev->dev);
> +     of_platform_depopulate(dev);
>  
>       WARN_ON(dsi->scp_clk_refcount > 0);
>  
> @@ -5526,7 +5498,7 @@ static void dsi_unbind(struct device *dev, struct 
> device *master, void *data)
>  
>       dsi_uninit_output(dsi);
>  
> -     pm_runtime_disable(&dsidev->dev);
> +     pm_runtime_disable(dev);
>  
>       if (dsi->vdds_dsi_reg != NULL && dsi->vdds_dsi_enabled) {
>               regulator_disable(dsi->vdds_dsi_reg);
> @@ -5552,8 +5524,7 @@ static int dsi_remove(struct platform_device *pdev)
>  
>  static int dsi_runtime_suspend(struct device *dev)
>  {
> -     struct platform_device *pdev = to_platform_device(dev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
> +     struct dsi_data *dsi = dev_get_drvdata(dev);
>  
>       dsi->is_enabled = false;
>       /* ensure the irq handler sees the is_enabled value */
> @@ -5568,8 +5539,7 @@ static int dsi_runtime_suspend(struct device *dev)
>  
>  static int dsi_runtime_resume(struct device *dev)
>  {
> -     struct platform_device *pdev = to_platform_device(dev);
> -     struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
> +     struct dsi_data *dsi = dev_get_drvdata(dev);
>       int r;
>  
>       r = dispc_runtime_get();
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to