mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 04:34:45 -04:00
The KMS framework uses two slightly different definitions for the state concept. For a given object (plane, CRTC, encoder, etc., so drm_$OBJECT_state), the state is the entire state of that object. However, at the device level, drm_atomic_state refers to a state update for a limited number of objects. Thus, drm_atomic_state isn't the entire device state, but only the full state of some objects in that device. This has been an endless source of confusion and thus bugs. We can rename the drm_atomic_state structure to drm_atomic_commit to make it less confusing. This patch was created using: rg -l drm_atomic_state | \ xargs sed -i 's/drm_atomic_state/drm_atomic_commit/g; s/drm_atomic_commit_helper/drm_atomic_state_helper/g' mv drivers/gpu/drm/tests/drm_atomic_state_test.c drivers/gpu/drm/tests/drm_atomic_commit_test.c Acked-by: Simona Vetter <simona.vetter@ffwll.ch> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patch.msgid.link/20260427-drm-drm-atomic-update-v4-1-c0e713bfdf25@kernel.org
85 lines
2.1 KiB
C
85 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2015 MediaTek Inc.
|
|
*/
|
|
|
|
#ifndef MTK_DRM_DRV_H
|
|
#define MTK_DRM_DRV_H
|
|
|
|
#include <linux/io.h>
|
|
#include "mtk_ddp_comp.h"
|
|
|
|
#define MAX_CONNECTOR 2
|
|
#define DDP_COMPONENT_DRM_OVL_ADAPTOR (DDP_COMPONENT_ID_MAX + 1)
|
|
#define DDP_COMPONENT_DRM_ID_MAX (DDP_COMPONENT_DRM_OVL_ADAPTOR + 1)
|
|
|
|
enum mtk_crtc_path {
|
|
CRTC_MAIN,
|
|
CRTC_EXT,
|
|
CRTC_THIRD,
|
|
MAX_CRTC,
|
|
};
|
|
|
|
struct device;
|
|
struct device_node;
|
|
struct drm_crtc;
|
|
struct drm_device;
|
|
struct drm_fb_helper;
|
|
struct drm_property;
|
|
struct regmap;
|
|
|
|
struct mtk_drm_route {
|
|
const unsigned int crtc_id;
|
|
const unsigned int route_ddp;
|
|
};
|
|
|
|
struct mtk_mmsys_driver_data {
|
|
const unsigned int *main_path;
|
|
unsigned int main_len;
|
|
const unsigned int *ext_path;
|
|
unsigned int ext_len;
|
|
const unsigned int *third_path;
|
|
unsigned int third_len;
|
|
const struct mtk_drm_route *conn_routes;
|
|
unsigned int num_conn_routes;
|
|
|
|
bool shadow_register;
|
|
unsigned int mmsys_id;
|
|
unsigned int mmsys_dev_num;
|
|
|
|
u16 max_width;
|
|
u16 min_width;
|
|
u16 min_height;
|
|
};
|
|
|
|
struct mtk_drm_private {
|
|
struct drm_device *drm;
|
|
bool mtk_drm_bound;
|
|
bool drm_master;
|
|
struct device *dev;
|
|
struct device_node *mutex_node;
|
|
struct device *mutex_dev;
|
|
struct device *mmsys_dev;
|
|
struct device_node *comp_node[DDP_COMPONENT_DRM_ID_MAX];
|
|
struct mtk_ddp_comp ddp_comp[DDP_COMPONENT_DRM_ID_MAX];
|
|
struct mtk_mmsys_driver_data *data;
|
|
struct drm_atomic_commit *suspend_state;
|
|
unsigned int mbox_index;
|
|
struct mtk_drm_private **all_drm_private;
|
|
};
|
|
|
|
extern struct platform_driver mtk_disp_aal_driver;
|
|
extern struct platform_driver mtk_disp_ccorr_driver;
|
|
extern struct platform_driver mtk_disp_color_driver;
|
|
extern struct platform_driver mtk_disp_gamma_driver;
|
|
extern struct platform_driver mtk_disp_merge_driver;
|
|
extern struct platform_driver mtk_disp_ovl_adaptor_driver;
|
|
extern struct platform_driver mtk_disp_ovl_driver;
|
|
extern struct platform_driver mtk_disp_rdma_driver;
|
|
extern struct platform_driver mtk_dpi_driver;
|
|
extern struct platform_driver mtk_dsi_driver;
|
|
extern struct platform_driver mtk_ethdr_driver;
|
|
extern struct platform_driver mtk_mdp_rdma_driver;
|
|
extern struct platform_driver mtk_padding_driver;
|
|
#endif /* MTK_DRM_DRV_H */
|