mirror of
https://github.com/torvalds/linux.git
synced 2026-04-19 15:24:02 -04:00
drm/amd/display: Added support for individual control for multiple back-light instances.
[Why & How] Added support for individual control for multiple back-light instances. Signed-off-by: Jake Wang <haonan.wang2@amd.com> Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -1709,7 +1709,6 @@ static int dm_late_init(void *handle)
|
||||
unsigned int linear_lut[16];
|
||||
int i;
|
||||
struct dmcu *dmcu = NULL;
|
||||
bool ret = true;
|
||||
|
||||
dmcu = adev->dm.dc->res_pool->dmcu;
|
||||
|
||||
@@ -1726,18 +1725,23 @@ static int dm_late_init(void *handle)
|
||||
* 0xFFFF x 0.01 = 0x28F
|
||||
*/
|
||||
params.min_abm_backlight = 0x28F;
|
||||
|
||||
/* In the case where abm is implemented on dmcub,
|
||||
* dmcu object will be null.
|
||||
* ABM 2.4 and up are implemented on dmcub.
|
||||
*/
|
||||
if (dmcu)
|
||||
ret = dmcu_load_iram(dmcu, params);
|
||||
else if (adev->dm.dc->ctx->dmub_srv)
|
||||
ret = dmub_init_abm_config(adev->dm.dc->res_pool, params);
|
||||
* dmcu object will be null.
|
||||
* ABM 2.4 and up are implemented on dmcub.
|
||||
*/
|
||||
if (dmcu) {
|
||||
if (!dmcu_load_iram(dmcu, params))
|
||||
return -EINVAL;
|
||||
} else if (adev->dm.dc->ctx->dmub_srv) {
|
||||
struct dc_link *edp_links[MAX_NUM_EDP];
|
||||
int edp_num;
|
||||
|
||||
if (!ret)
|
||||
return -EINVAL;
|
||||
get_edp_links(adev->dm.dc, edp_links, &edp_num);
|
||||
for (i = 0; i < edp_num; i++) {
|
||||
if (!dmub_init_abm_config(adev->dm.dc->res_pool, params, i))
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return detect_mst_link_for_all_connectors(adev_to_drm(adev));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user