You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
drm/rockchip: Pass struct rockchip_drm_sub_dev for &rockchip_drm_sub_dev.loader_protect()
In order to enhance the flexibility of loader protect callback &rockchip_drm_sub_dev.loader_protect(), we replace the parameter 'struct drm_encoder *encoder' by 'struct rockchip_drm_sub_dev'so that the panel or bridge drivers can apply it to achieve the loader protect function. Change-Id: Ic26110583245c1a0807fee35f4dd889ee8f1f845 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
This commit is contained in:
@@ -251,9 +251,9 @@ static int rockchip_dp_get_modes(struct analogix_dp_plat_data *plat_data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rockchip_dp_loader_protect(struct drm_encoder *encoder, bool on)
|
||||
static int rockchip_dp_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct rockchip_dp_device *dp = encoder_to_dp(encoder);
|
||||
struct rockchip_dp_device *dp = container_of(sub_dev, struct rockchip_dp_device, sub_dev);
|
||||
struct analogix_dp_plat_data *plat_data = &dp->plat_data;
|
||||
struct rockchip_dp_device *secondary = NULL;
|
||||
int ret;
|
||||
@@ -261,7 +261,7 @@ static int rockchip_dp_loader_protect(struct drm_encoder *encoder, bool on)
|
||||
if (plat_data->right) {
|
||||
secondary = rockchip_dp_find_by_id(dp->dev->driver, !dp->id);
|
||||
|
||||
ret = rockchip_dp_loader_protect(&secondary->encoder.encoder, on);
|
||||
ret = rockchip_dp_loader_protect(&secondary->sub_dev, on);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -3308,9 +3308,9 @@ static void _dw_dp_loader_protect(struct dw_dp *dp, bool on)
|
||||
}
|
||||
}
|
||||
|
||||
static int dw_dp_loader_protect(struct drm_encoder *encoder, bool on)
|
||||
static int dw_dp_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct dw_dp *dp = encoder_to_dp(encoder);
|
||||
struct dw_dp *dp = container_of(sub_dev, struct dw_dp, sub_dev);
|
||||
|
||||
dp->is_loader_protect = true;
|
||||
_dw_dp_loader_protect(dp, on);
|
||||
|
||||
@@ -914,10 +914,11 @@ static void dw_mipi_dsi_rockchip_loader_protect(struct dw_mipi_dsi_rockchip *dsi
|
||||
dw_mipi_dsi_rockchip_loader_protect(dsi->slave, on);
|
||||
}
|
||||
|
||||
static int dw_mipi_dsi_rockchip_encoder_loader_protect(struct drm_encoder *encoder,
|
||||
bool on)
|
||||
static int dw_mipi_dsi_rockchip_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev,
|
||||
bool on)
|
||||
{
|
||||
struct dw_mipi_dsi_rockchip *dsi = to_dsi(encoder);
|
||||
struct dw_mipi_dsi_rockchip *dsi = container_of(sub_dev, struct dw_mipi_dsi_rockchip,
|
||||
sub_dev);
|
||||
|
||||
if (dsi->panel)
|
||||
panel_simple_loader_protect(dsi->panel);
|
||||
|
||||
@@ -1191,10 +1191,9 @@ static void dw_mipi_dsi2_loader_protect(struct dw_mipi_dsi2 *dsi2, bool on)
|
||||
dw_mipi_dsi2_loader_protect(dsi2->slave, on);
|
||||
}
|
||||
|
||||
static int dw_mipi_dsi2_encoder_loader_protect(struct drm_encoder *encoder,
|
||||
bool on)
|
||||
static int dw_mipi_dsi2_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct dw_mipi_dsi2 *dsi2 = encoder_to_dsi2(encoder);
|
||||
struct dw_mipi_dsi2 *dsi2 = container_of(sub_dev, struct dw_mipi_dsi2, sub_dev);
|
||||
|
||||
if (dsi2->panel)
|
||||
panel_simple_loader_protect(dsi2->panel);
|
||||
|
||||
@@ -2153,9 +2153,9 @@ static int _dw_hdmi_rockchip_encoder_loader_protect(struct rockchip_hdmi *hdmi,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dw_hdmi_rockchip_encoder_loader_protect(struct drm_encoder *encoder, bool on)
|
||||
static int dw_hdmi_rockchip_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = to_rockchip_hdmi(encoder);
|
||||
struct rockchip_hdmi *hdmi = container_of(sub_dev, struct rockchip_hdmi, sub_dev);
|
||||
struct rockchip_hdmi *secondary;
|
||||
|
||||
_dw_hdmi_rockchip_encoder_loader_protect(hdmi, on);
|
||||
|
||||
@@ -144,7 +144,7 @@ struct rockchip_drm_sub_dev {
|
||||
struct list_head list;
|
||||
struct drm_connector *connector;
|
||||
struct device_node *of_node;
|
||||
int (*loader_protect)(struct drm_encoder *encoder, bool on);
|
||||
int (*loader_protect)(struct rockchip_drm_sub_dev *sub_dev, bool on);
|
||||
void (*update_vfp_for_vrr)(struct drm_connector *connector, struct drm_display_mode *mode,
|
||||
int vfp);
|
||||
};
|
||||
|
||||
@@ -813,7 +813,7 @@ static int setup_initial_state(struct drm_device *drm_dev,
|
||||
conn_state->best_encoder = rockchip_drm_connector_get_single_encoder(connector);
|
||||
|
||||
if (set->sub_dev->loader_protect) {
|
||||
ret = set->sub_dev->loader_protect(conn_state->best_encoder, true);
|
||||
ret = set->sub_dev->loader_protect(set->sub_dev, true);
|
||||
if (ret) {
|
||||
dev_err(drm_dev->dev,
|
||||
"connector[%s] loader protect failed\n",
|
||||
@@ -979,7 +979,7 @@ error_crtc:
|
||||
priv->crtc_funcs[pipe]->loader_protect(crtc, false, NULL);
|
||||
error_conn:
|
||||
if (set->sub_dev->loader_protect)
|
||||
set->sub_dev->loader_protect(conn_state->best_encoder, false);
|
||||
set->sub_dev->loader_protect(set->sub_dev, false);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -546,9 +546,9 @@ rockchip_tve_encoder_atomic_check(struct drm_encoder *encoder,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rockchip_tve_encoder_loader_protect(struct drm_encoder *encoder, bool on)
|
||||
static int rockchip_tve_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct rockchip_tve *tve = encoder_to_tve(encoder);
|
||||
struct rockchip_tve *tve = container_of(sub_dev, struct rockchip_tve, sub_dev);
|
||||
int ret;
|
||||
|
||||
if (on) {
|
||||
|
||||
@@ -431,10 +431,9 @@ static void rockchip_lvds_encoder_disable(struct drm_encoder *encoder)
|
||||
drm_panel_unprepare(lvds->panel);
|
||||
}
|
||||
|
||||
static int rockchip_lvds_encoder_loader_protect(struct drm_encoder *encoder,
|
||||
bool on)
|
||||
static int rockchip_lvds_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct rockchip_lvds *lvds = encoder_to_lvds(encoder);
|
||||
struct rockchip_lvds *lvds = container_of(sub_dev, struct rockchip_lvds, sub_dev);
|
||||
|
||||
if (lvds->panel)
|
||||
panel_simple_loader_protect(lvds->panel);
|
||||
|
||||
@@ -403,10 +403,9 @@ rockchip_rgb_encoder_atomic_check(struct drm_encoder *encoder,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rockchip_rgb_encoder_loader_protect(struct drm_encoder *encoder,
|
||||
bool on)
|
||||
static int rockchip_rgb_encoder_loader_protect(struct rockchip_drm_sub_dev *sub_dev, bool on)
|
||||
{
|
||||
struct rockchip_rgb *rgb = encoder_to_rgb(encoder);
|
||||
struct rockchip_rgb *rgb = container_of(sub_dev, struct rockchip_rgb, sub_dev);
|
||||
|
||||
if (rgb->np_mcu_panel) {
|
||||
struct rockchip_mcu_panel *mcu_panel = to_rockchip_mcu_panel(rgb->panel);
|
||||
|
||||
Reference in New Issue
Block a user