mirror of
https://github.com/torvalds/linux
synced 2024-10-03 18:00:50 +00:00
Merge tag 'amd-drm-fixes-5.19-2022-06-15' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
amd-drm-fixes-5.19-2022-06-15: amdgpu: - Fix regression in GTT size reporting - OLED backlight fix Signed-off-by: Dave Airlie <airlied@redhat.com> From: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220615205609.28763-1-alexander.deucher@amd.com
This commit is contained in:
commit
d08227a8b1
|
@ -642,7 +642,6 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
|
||||||
atomic64_read(&adev->visible_pin_size),
|
atomic64_read(&adev->visible_pin_size),
|
||||||
vram_gtt.vram_size);
|
vram_gtt.vram_size);
|
||||||
vram_gtt.gtt_size = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT)->size;
|
vram_gtt.gtt_size = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT)->size;
|
||||||
vram_gtt.gtt_size *= PAGE_SIZE;
|
|
||||||
vram_gtt.gtt_size -= atomic64_read(&adev->gart_pin_size);
|
vram_gtt.gtt_size -= atomic64_read(&adev->gart_pin_size);
|
||||||
return copy_to_user(out, &vram_gtt,
|
return copy_to_user(out, &vram_gtt,
|
||||||
min((size_t)size, sizeof(vram_gtt))) ? -EFAULT : 0;
|
min((size_t)size, sizeof(vram_gtt))) ? -EFAULT : 0;
|
||||||
|
@ -675,7 +674,6 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
|
||||||
mem.cpu_accessible_vram.usable_heap_size * 3 / 4;
|
mem.cpu_accessible_vram.usable_heap_size * 3 / 4;
|
||||||
|
|
||||||
mem.gtt.total_heap_size = gtt_man->size;
|
mem.gtt.total_heap_size = gtt_man->size;
|
||||||
mem.gtt.total_heap_size *= PAGE_SIZE;
|
|
||||||
mem.gtt.usable_heap_size = mem.gtt.total_heap_size -
|
mem.gtt.usable_heap_size = mem.gtt.total_heap_size -
|
||||||
atomic64_read(&adev->gart_pin_size);
|
atomic64_read(&adev->gart_pin_size);
|
||||||
mem.gtt.heap_usage = ttm_resource_manager_usage(gtt_man);
|
mem.gtt.heap_usage = ttm_resource_manager_usage(gtt_man);
|
||||||
|
|
|
@ -2812,7 +2812,7 @@ static struct drm_mode_config_helper_funcs amdgpu_dm_mode_config_helperfuncs = {
|
||||||
|
|
||||||
static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
|
static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
|
||||||
{
|
{
|
||||||
u32 max_cll, min_cll, max, min, q, r;
|
u32 max_avg, min_cll, max, min, q, r;
|
||||||
struct amdgpu_dm_backlight_caps *caps;
|
struct amdgpu_dm_backlight_caps *caps;
|
||||||
struct amdgpu_display_manager *dm;
|
struct amdgpu_display_manager *dm;
|
||||||
struct drm_connector *conn_base;
|
struct drm_connector *conn_base;
|
||||||
|
@ -2842,7 +2842,7 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
|
||||||
caps = &dm->backlight_caps[i];
|
caps = &dm->backlight_caps[i];
|
||||||
caps->ext_caps = &aconnector->dc_link->dpcd_sink_ext_caps;
|
caps->ext_caps = &aconnector->dc_link->dpcd_sink_ext_caps;
|
||||||
caps->aux_support = false;
|
caps->aux_support = false;
|
||||||
max_cll = conn_base->hdr_sink_metadata.hdmi_type1.max_cll;
|
max_avg = conn_base->hdr_sink_metadata.hdmi_type1.max_fall;
|
||||||
min_cll = conn_base->hdr_sink_metadata.hdmi_type1.min_cll;
|
min_cll = conn_base->hdr_sink_metadata.hdmi_type1.min_cll;
|
||||||
|
|
||||||
if (caps->ext_caps->bits.oled == 1 /*||
|
if (caps->ext_caps->bits.oled == 1 /*||
|
||||||
|
@ -2870,8 +2870,8 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
|
||||||
* The results of the above expressions can be verified at
|
* The results of the above expressions can be verified at
|
||||||
* pre_computed_values.
|
* pre_computed_values.
|
||||||
*/
|
*/
|
||||||
q = max_cll >> 5;
|
q = max_avg >> 5;
|
||||||
r = max_cll % 32;
|
r = max_avg % 32;
|
||||||
max = (1 << q) * pre_computed_values[r];
|
max = (1 << q) * pre_computed_values[r];
|
||||||
|
|
||||||
// min luminance: maxLum * (CV/255)^2 / 100
|
// min luminance: maxLum * (CV/255)^2 / 100
|
||||||
|
|
Loading…
Reference in a new issue