Merge dfcbf74486
on remote branch
Change-Id: I96fff508d542c4c14459f122b4cfd1e1b5ea174e
This commit is contained in:
commit
110735449b
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -1576,6 +1576,8 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel, bool multi_func)
|
||||
struct dp_panel_private *panel;
|
||||
struct drm_dp_link *link_info;
|
||||
struct drm_dp_aux *drm_aux;
|
||||
struct drm_connector *connector;
|
||||
struct sde_connector *sde_conn;
|
||||
u8 *dpcd, rx_feature, temp;
|
||||
u32 dfp_count = 0, offset = DP_DPCD_REV;
|
||||
|
||||
@ -1596,6 +1598,8 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel, bool multi_func)
|
||||
panel->vscext_supported = false;
|
||||
panel->vscext_chaining_supported = false;
|
||||
|
||||
connector = dp_panel->connector;
|
||||
sde_conn = to_sde_connector(connector);
|
||||
rlen = drm_dp_dpcd_read(drm_aux, DP_TRAINING_AUX_RD_INTERVAL, &temp, 1);
|
||||
if (rlen != 1) {
|
||||
DP_ERR("error reading DP_TRAINING_AUX_RD_INTERVAL\n");
|
||||
@ -1637,6 +1641,7 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel, bool multi_func)
|
||||
panel->vscext_chaining_supported = !!(rx_feature &
|
||||
VSC_EXT_VESA_SDP_CHAINING_SUPPORTED);
|
||||
|
||||
sde_conn->hdr_supported = panel->vsc_supported;
|
||||
DP_DEBUG("vsc=%d, vscext=%d, vscext_chaining=%d\n",
|
||||
panel->vsc_supported, panel->vscext_supported,
|
||||
panel->vscext_chaining_supported);
|
||||
|
@ -33,22 +33,39 @@ int _sde_vm_validate_sgl(struct gh_sgl_desc *expected,
|
||||
{
|
||||
u32 idx;
|
||||
|
||||
sort(assigned->sgl_entries, assigned->n_sgl_entries,
|
||||
sizeof(assigned->sgl_entries[0]), __sgl_cmp, NULL);
|
||||
|
||||
/*
|
||||
* fragmented address spaces are not supported.
|
||||
* So the number of sgl entries is expected to be the same.
|
||||
*/
|
||||
if (expected->n_sgl_entries != assigned->n_sgl_entries)
|
||||
return -E2BIG;
|
||||
if (expected->n_sgl_entries != assigned->n_sgl_entries) {
|
||||
SDE_ERROR("expected sgl entries = %d, assigned sgl entries = %d\n",
|
||||
expected->n_sgl_entries, assigned->n_sgl_entries);
|
||||
|
||||
sort(assigned->sgl_entries, assigned->n_sgl_entries,
|
||||
sizeof(assigned->sgl_entries[0]), __sgl_cmp, NULL);
|
||||
for (idx = 0; idx < expected->n_sgl_entries; idx++) {
|
||||
struct gh_sgl_entry *e = &expected->sgl_entries[idx];
|
||||
|
||||
SDE_ERROR("expected sgl entry: (0x%llx - %llx)\n",
|
||||
e->ipa_base, e->size);
|
||||
}
|
||||
|
||||
for (idx = 0; idx < assigned->n_sgl_entries; idx++) {
|
||||
struct gh_sgl_entry *a = &assigned->sgl_entries[idx];
|
||||
|
||||
SDE_ERROR("assigned sgl entry: (0x%llx - %llx)\n",
|
||||
a->ipa_base, a->size);
|
||||
}
|
||||
return -E2BIG;
|
||||
}
|
||||
|
||||
for (idx = 0; idx < expected->n_sgl_entries; idx++) {
|
||||
struct gh_sgl_entry *e = &expected->sgl_entries[idx];
|
||||
struct gh_sgl_entry *a = &assigned->sgl_entries[idx];
|
||||
|
||||
if ((e->ipa_base != a->ipa_base) || (e->size != a->size)) {
|
||||
SDE_DEBUG("sgl mismatch: (%llu - %llu) vs (%llu - %llu)\n",
|
||||
SDE_ERROR("sgl mismatch: (%llu - %llu) vs (%llu - %llu)\n",
|
||||
e->ipa_base, e->size, a->ipa_base, a->size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -255,6 +255,11 @@ sde_edid_parse_hdr_db(struct drm_connector *connector, const u8 *db)
|
||||
if (!db)
|
||||
return;
|
||||
|
||||
if (!c_conn->hdr_supported) {
|
||||
SDE_INFO("connected receiver does not support HDR\n");
|
||||
return;
|
||||
}
|
||||
|
||||
len = db[0] & 0x1f;
|
||||
/* Byte 3: Electro-Optical Transfer Functions */
|
||||
c_conn->hdr_eotf = db[2] & 0x3F;
|
||||
|
Loading…
Reference in New Issue
Block a user