Merge 920eacd962 on remote branch

Change-Id: Icb8d5df92cd9dcc53ac8237ce201af17d00f3803
This commit is contained in:
Linux Build Service Account 2026-01-05 04:51:05 -08:00
commit d52214b6e3
3 changed files with 23 additions and 13 deletions

View file

@ -1,4 +1,5 @@
/*
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
* Copyright (C) 2013 Red Hat
* Author: Rob Clark <robdclark@gmail.com>
@ -211,6 +212,10 @@ static void msm_smmu_destroy(struct msm_mmu *mmu)
{
struct msm_smmu *smmu = to_msm_smmu(mmu);
struct platform_device *pdev = to_platform_device(smmu->client_dev);
struct iommu_domain *domain = iommu_get_domain_for_dev(smmu->client_dev);
if (domain)
iommu_set_fault_handler(domain, NULL, NULL);
if (smmu->client_dev)
platform_device_unregister(pdev);

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
* Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
* Copyright (C) 2013 Red Hat
* Author: Rob Clark <robdclark@gmail.com>
@ -1255,16 +1255,6 @@ static void _sde_kms_release_splash_resource(struct sde_kms *sde_kms,
SDE_EVT32(DRMID(crtc), crtc->state->active,
sde_kms->splash_data.num_splash_displays);
/*remove all votes if eDP displays are done with splash*/
if (dp_display_get_num_of_boot_displays()) {
for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++)
sde_power_data_bus_set_quota(phandle, i,
SDE_POWER_HANDLE_ENABLE_BUS_AB_QUOTA,
phandle->ib_quota[i]);
pm_runtime_put_sync(sde_kms->dev->dev);
sde_kms->splash_data.num_splash_displays--;
}
for (i = 0; i < MAX_DSI_DISPLAYS; i++) {
splash_display = &sde_kms->splash_data.splash_display[i];
if (splash_display->encoder &&
@ -3385,7 +3375,7 @@ static int sde_kms_cont_splash_config(struct msm_kms *kms,
struct msm_display_info info;
struct drm_encoder *encoder = NULL;
struct drm_crtc *crtc = NULL;
int i, rc = 0;
int i, rc = 0, splash_index = 0;
struct drm_display_mode *drm_mode = NULL;
struct drm_device *dev;
struct msm_drm_private *priv;
@ -3423,7 +3413,7 @@ static int sde_kms_cont_splash_config(struct msm_kms *kms,
DRM_INFO("cont_splash enabled in %d of %d display(s)\n",
sde_kms->splash_data.num_splash_displays,
sde_kms->dsi_display_count);
sde_kms->dsi_display_count + sde_kms->dp_display_count);
/* dsi */
for (i = 0; i < sde_kms->dsi_display_count; ++i) {
@ -3559,6 +3549,19 @@ static int sde_kms_cont_splash_config(struct msm_kms *kms,
break;
}
splash_display = &sde_kms->splash_data.splash_display[splash_index];
if (splash_display->cont_splash_enabled) {
priv = sde_kms->dev->dev_private;
encoder->crtc = priv->crtcs[splash_index];
splash_display->encoder = encoder;
SDE_DEBUG("dp-display:%d splash_index:%d crtc id[%d]:%d enc id[%d]:%d\n",
i, splash_index, encoder->crtc->index, encoder->crtc->base.id,
encoder->index, encoder->base.id);
splash_index++;
}
mutex_lock(&dev->mode_config.mutex);
drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {

View file

@ -204,6 +204,8 @@ int sde_wb_connector_set_modes(struct sde_wb_device *wb_dev,
memset(&dispmode, 0, sizeof(dispmode));
ret = drm_mode_convert_umode(wb_dev->drm_dev,
&dispmode, &modeinfo[i]);
/* null terminate the string */
modeinfo[i].name[DRM_DISPLAY_MODE_LEN - 1] = '\0';
if (ret) {
SDE_ERROR(
"failed to convert mode %d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x status:%d rc:%d\n",