From patchwork Mon Feb 10 16:30:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?5p2OIOaUvw==?= X-Patchwork-Id: 13968329 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 94A2DC02198 for ; Mon, 10 Feb 2025 18:03:29 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 047B210E0F6; Mon, 10 Feb 2025 18:03:29 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="WXB+MrIj"; dkim-atps=neutral Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazolkn19010012.outbound.protection.outlook.com [52.103.43.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id C83FE10E391 for ; Mon, 10 Feb 2025 16:30:10 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=X/VgBDxVKneZAZe7xdeqRNHuE0O2Nx/mu/QtYG9qttRsn1qCtIQ1u3kwxiBMJeATe2He+pT+anTd/6/qAqvVvFbmZZ+LxDuYpSLTtyxjkx5CXTd6GpsI9eW2+1vCOSTejRCrBKR4HDfCxEV7FnBIHBp4T/rSace4QtOuntn3PW+kN+D14d9sTRV7Fgco7vJhvHEkIqW5F0yjpkNdfaXtms+UgcfYsWWtlTqLwjllfGyDRXHo1ebtm0olSAjlZrEUY+7NLOS1TWh9cAoJJVassc/raraenM1/4Ga2TyfSy3GwCbiuwxgdUoi1bJ9dvh7mMZNnEiMRlUGu3P3Qf92eJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y1zY11woGQRG2oaHo2EdQbQSyOyFfxWJmnMwlvi100o=; b=aOa677Tnq9eXy3dArM64qXjfy5fwbxMW5gfmBAGHLISNB3dFd8dhkN+8f5DKx3nVyRJ0wA8uAIzFn45mHnHihth3/pBkS9bOfz6phA3+WXS7CYDxO9t0NcpMvmYbAT+pb1Yhq7oyKbEI1GRpon4hxrSZ/DF/hTGfMiC+xx/V1cPqS31LXFEp62We+eckz1LYvSJfPgwRdMM+BtIlwfFhbgsWutJdprH7DUeiVLj96XjeJSb9Vje7l0oprjNDiLWX4+kcUnPsbPCaRF3O9bVY7kAxDIHp3OuywRBKo1NvVBBxh97CkH+lXOc2vdxWS7GzCz+9d0XnJkOY6BdbKxTzDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y1zY11woGQRG2oaHo2EdQbQSyOyFfxWJmnMwlvi100o=; b=WXB+MrIjNSXD3XMm5zQv3gLTaGv4qZn41hurWZuxOjLF+QKSEIO2x9sElX3GMuuXwsP4qZpEX7knCnxRCygsdhxDpxu5eP1rbRgzNcrphsWPsU9t+gHGdmm/89tu8fHz2ed1UIRAZRkV1F8JX6Z52KyD6dHPUyCkeVgI6qspriJqzNZESIgOVHEv0cBUjgHYqxeXCyEm8L8DA2PIspOJEpD19hl+Pq30ic7VIj7rsTPvHNpjJ35Ltk8vpSRtqO4iwRH2NZUML7HsLPuTs3S3eO6iOsx223vCoOL4oMe6UQ2mWfWcj2kOh5fq7IRyvof6fblEz9tpe/6NWAkbOQKdYg== Received: from TYWPR01MB11707.jpnprd01.prod.outlook.com (2603:1096:400:3ff::13) by TYRPR01MB12584.jpnprd01.prod.outlook.com (2603:1096:405:1b4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.18; Mon, 10 Feb 2025 16:30:08 +0000 Received: from TYWPR01MB11707.jpnprd01.prod.outlook.com ([fe80::1558:1bff:2918:d3b1]) by TYWPR01MB11707.jpnprd01.prod.outlook.com ([fe80::1558:1bff:2918:d3b1%4]) with mapi id 15.20.8422.015; Mon, 10 Feb 2025 16:30:07 +0000 From: =?iso-2022-jp?b?GyRCTXsbKEIgGyRCQC8bKEI=?= To: "airlied@gmail.com" CC: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , =?iso-2022-jp?b?GyRCTXsbKEIgGyRCQC8bKEI=?= Subject: [PATCH] drm/i915/quirks: Add no dpio-common-bc powerwell init quirk for xiaomi-latte Thread-Topic: [PATCH] drm/i915/quirks: Add no dpio-common-bc powerwell init quirk for xiaomi-latte Thread-Index: AQHbe9kMxeMNwg3o6Emn7xPold8JWg== Date: Mon, 10 Feb 2025 16:30:07 +0000 Message-ID: <20250210162950.4102846-1-qs315490@outlook.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYWPR01MB11707:EE_|TYRPR01MB12584:EE_ x-ms-office365-filtering-correlation-id: bd46354c-98ea-4117-a51d-08dd49f02e96 x-microsoft-antispam: BCL:0; ARA:14566002|38102599003|15080799006|8062599003|8060799006|19110799003|461199028|7092599003|440099028|3412199025|41001999003|30101999003|3430499032|102099032|1710799026; x-microsoft-antispam-message-info: =?iso-2022-jp?b?a1VRZnk1ZWhuVkVlUnpOekdo?= =?iso-2022-jp?b?NlFXdk0yK25IMlZ3aXhXODZqZ21nQ2loQVZBL1ZwQ09UUVdyYjJmVHhM?= =?iso-2022-jp?b?bEo3VkRmS3BRdGFwQmtJaE45ZGl1R1Mxbk5QaU9ZZmtpSEhJMnBTQ1JE?= =?iso-2022-jp?b?U25FbmxTby9jTXh2RDR0emdnWVFva1FKaFp2emE5L2E2dnhYeCtqWkpW?= =?iso-2022-jp?b?dWRxUHEwWFd2VUx6Ulh1d1JsS1c4eFIwNU05bFk1aW8veWtraVd4eitJ?= =?iso-2022-jp?b?c2YwaFJydzJpTTR3elBCNGNpUUZXbXF1MDkxckczNFZqSmUyeW0xdlN4?= =?iso-2022-jp?b?cVZnK2xHbkYyWXJqQ3kwRFNzaFRnMC9qaExsNXczMFpwMEhlL21kSWFY?= =?iso-2022-jp?b?bnRLUUVyRCs0M2VwTW5DdmtHdXJkY2w5V1RUeTFmMk5taytnRkZNaity?= =?iso-2022-jp?b?NXdJcWpZblkwT3VMY21aQnZxY04ydEFwbjlTWHMwdE94dFFLZDBJaFFU?= =?iso-2022-jp?b?d3BIR01DQXkzVUpFeUI0U0ZjcXlyRjc3TERwNWV5OUkxVUJJbGx2c1dX?= =?iso-2022-jp?b?S0JqYlUrYW5kNnJVMmNyKzc1OHArUE5lbHdiQi94a2o0Nit0cW5SUWF0?= =?iso-2022-jp?b?S2l5alNjZGdZTWprdk5nenBPMmlRTmttUFo3U3EvM3cyZHcyMmZsaVRI?= =?iso-2022-jp?b?Nm92WGhLcWVXUityVnp4RjRDdmdvY0JvMENpek9NUlc4Qkk5WllTcGhj?= =?iso-2022-jp?b?TmRGQnMzdzlvMElDK2c4cHM0VUlhS3ZzaHBmMjZxR2YwZVVQY3hnZ1dn?= =?iso-2022-jp?b?KzF6WUhZOWxsbTVwbzZZZkxmM3JHdElnYTNHOWkzUGpCeUczS1RZVlNv?= =?iso-2022-jp?b?VlZ2RlBjTStIYWZmbUNzTkV2bFFDamUyenZmcVVJTkh6VmFQQWlId2pu?= =?iso-2022-jp?b?NUFsM25oZTgzVnpvUFJleS92RS81Sy95bWxkZmJCb0dSM2trVGNIdVBv?= =?iso-2022-jp?b?aGVZbjZnRm1CMlhKOVFlVW5GVnQ2RkQ1VUlnYXA0UWVBR0UvcHF0Tm1q?= =?iso-2022-jp?b?MEZuSiszZFYvUDlWVnVnRFBvZ05aWncxTnd1bzF4T0VCYzU4VXcvN1NE?= =?iso-2022-jp?b?ejVaVHkwZmxSd1IzdFdFKzgwRXJ3dFVuY0hwMW9mN1hmMVlCVWVxZk1t?= =?iso-2022-jp?b?Y042SU1EaGZDOG14d3NScmZhanVEbUlQVWprd2I3VHZNQVJVQXY4OEZr?= =?iso-2022-jp?b?K0d1Y0tQNUQ5eDJLck5nTnpPczdVQWNiWTA1bkV0UVc1M3o4WHlvK1My?= =?iso-2022-jp?b?dXFMQkc4clRmWVo5OEtyLy8zL0dSeXhpTWkrRWZqTzM3dmp0bnZXbUty?= =?iso-2022-jp?b?aXVWNEpxelZENkhEYnRTUFRLZjU2WjJyamhPeFVrZDh3bThsMTkrUHhy?= =?iso-2022-jp?b?ZjVXYy9WcVg0YXpPT1ZRWkxNV0VkL0pSd1YwV0VSZGhMY21hVmpVRXRP?= =?iso-2022-jp?b?eldSMDlHQm1PSUZiL1JtUGs0bTBENGJMczkxUExxQk45TWtwZHM1UDF2?= =?iso-2022-jp?b?Y25Ua0lKWTI4N3dpSEVENklJWFRtbnB5cmdpT21pZHBucndWT0QyNE54?= =?iso-2022-jp?b?T1ZVZ1g1Vk5GM1gzQlNlSVFOLzJ5ZmR1RmRvQUYyOXBzTmlOckZ4OW9I?= =?iso-2022-jp?b?N3Z0MU5GcmdUY2Z5dXkzSEcrcXZMMzFhVnZpdDZDdlhrQWJOREUrU005?= =?iso-2022-jp?b?dHFTWDNYZmwyUEFvYldQUjNHWGVma21qWUs2VFZZMXo0UktSNHlLVFND?= =?iso-2022-jp?b?Nnc9PQ==?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?b?WkpsTGVDWjVtWnBEQlpU?= =?iso-2022-jp?b?V2JpNzFHNDc3cE5Cb0hGWFNVQXRiSWdlRDcvK280OFVpM2V3Z0NldGFH?= =?iso-2022-jp?b?cFFwaTNYL1VVNlpyZVRNN09jdzZqVDJGVisyRmd4eWphUElEaVlCMmNT?= =?iso-2022-jp?b?bE1LbVNUWndzQnI0K2ovVzhOUGFybStPQTZTR0cxVTVaZkVDZ05hZ09r?= =?iso-2022-jp?b?UHdMYmkyMHpsZjV2dFlJc0FQOFpoc0wyN0hmUUtwaUtZSXR1aXJIQ0sx?= =?iso-2022-jp?b?bWR6ajlaaEZIYmhJZTRpUnk5enFLbGVvdkZOS3piOVAzVDNiL0JJVEFx?= =?iso-2022-jp?b?aXhScUtxRmkzL2FvUlp5RkNzRTF3bm5GRzA0Q3AyeE5BR1ljck1QNEpY?= =?iso-2022-jp?b?ZVZaeWJwbGxEQW9BQWF1OUF5ZXZERjNNNUlYRGVWa3lyU1BpcXhrTjhJ?= =?iso-2022-jp?b?WUNEUlJ5ZUFZQklnRVdJK0dMT0drWkN5UGtRMnNZeFhOY1JVQW1wU0to?= =?iso-2022-jp?b?RjQvblNSeFNUc3VnaTBvK3gyZDFidGxiUXQxSmZUL2Z0V01pQTlSVXZq?= =?iso-2022-jp?b?U3JvL2lSeUtiSkQyd2ZQWEJwVjRCZkh0dys2b3lRSFpqZ3d5RmhuRzBN?= =?iso-2022-jp?b?UVVTZHltdk10V2VVSDN3WWFtenV6N1dZTUpaYzRtNmxCa1ZwRWh1S2NW?= =?iso-2022-jp?b?VzJrbW1XUVJ3UDUveTluQ0kyMUQyQTlvcEV6S2xGbm1heEFSc285UHNu?= =?iso-2022-jp?b?YjdwOTY1Ty9Fb3VXL29hZnJjMjVMTjRXQTV1ZGRzclA2NzlRaExod2kw?= =?iso-2022-jp?b?R0grNFFmSjJiYUJ6TTRIMjJmTXAybTlCUGNQTURvby9uVXhmODc2Zmx5?= =?iso-2022-jp?b?REJGOXlvU3RLSmdlVFhWSnovK1dnRTVRWWRldk1GSWJoS1JDTmlhdC8x?= =?iso-2022-jp?b?WU1jbVNDRmVYeGZWS0Rkb3pHWEwvaVZrTUh5Y0ZaSCtKa05ZRmY5cDFN?= =?iso-2022-jp?b?dTdlY1VpWFY3OUplZUp5UWF0cGF0bzIyZG0xNmRjNU9MUHU0OVJuSkph?= =?iso-2022-jp?b?RC9EdWVqTFM0QUlsRzlVaFdoeVMrdkgyQ054Q0xZUXFIbFFRTWQxdHQz?= =?iso-2022-jp?b?NVd2UmxkN2IxVEVwZUpjYWJvOWxIUXhYR0lnYjJnemxla1BpSUcvTmR4?= =?iso-2022-jp?b?TkJPbFlBZ0Y4MzY2Y1NVQlVVdnNtNkJFdFZoTUVQVVNLV3dQRXBDbmNY?= =?iso-2022-jp?b?K2RQRG5NQU9TOURWcXE4VGhhY0dxY3h4TkFpaUFIRzF4VjZRNGpDdlA4?= =?iso-2022-jp?b?SHRIUTdsUWltSFpvZnY3MWFyMnphOFNJc0tlYkpLWHFoTDlMckM4NzdL?= =?iso-2022-jp?b?dE0rS0JxY2tLMlNvaVZ0cjVMYlNiNW1PaEtxeUFucDV2R0dCTFNLd3F1?= =?iso-2022-jp?b?YTdmcGp3cnNMbTI2ZkZsczlseEx4MUdURldxUHpXalhpaVU0R2x3SG0z?= =?iso-2022-jp?b?UndUZExwUUJXMTBEeFVnMlRBSnFpNnhlYk02dGpXdTFMQ2RDL2VMMDla?= =?iso-2022-jp?b?MFUzY2ZNZnBwM3hYTHdLVG4rcmlxL2RlQUQzM042R0d0N2tIdEVmU3hJ?= =?iso-2022-jp?b?eEs3Sm0rZUxURHo4SzByM1cyT3J3ek5kWXozcWI5cHBjMVFyS3lZSWM2?= =?iso-2022-jp?b?U1FQVmN3RFRrU3BPV0dpVkZXbVVjcFQxZXRabURpaWt5SjBYUkdOcDN5?= =?iso-2022-jp?b?S2dsV0w4andqQ04rWkVQUDN3ZVhtY2xNY202Q1U3b2JhZDN1aTh2UjdO?= =?iso-2022-jp?b?YisrWWc9PQ==?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYWPR01MB11707.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: bd46354c-98ea-4117-a51d-08dd49f02e96 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2025 16:30:07.8455 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12584 X-Mailman-Approved-At: Mon, 10 Feb 2025 18:03:28 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This tablet does not have dpio-common-bc powerwell init. i915 0000:00:02.0: [drm] *ERROR* timeout setting power well state 00000000 (fffff3ff) i915 0000:00:02.0: [drm] *ERROR* Display PHY 0 is not power up Signed-off-by: Qs315490 --- .../drm/i915/display/intel_display_driver.c | 4 ++-- .../drm/i915/display/intel_display_power.c | 21 +++++++++++++++++++ drivers/gpu/drm/i915/display/intel_quirks.c | 8 +++++++ drivers/gpu/drm/i915/display/intel_quirks.h | 1 + 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c index 50ec0c3c7..36338e12f 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c @@ -226,6 +226,8 @@ int intel_display_driver_probe_noirq(struct intel_display *display) if (ret) goto cleanup_bios; + intel_init_quirks(display); + /* FIXME: completely on the wrong abstraction layer */ ret = intel_power_domains_init(display); if (ret < 0) @@ -267,8 +269,6 @@ int intel_display_driver_probe_noirq(struct intel_display *display) if (ret) goto cleanup_vga_client_pw_domain_dmc; - intel_init_quirks(display); - intel_fbc_init(display); return 0; diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c index d3b8453a1..c589836cb 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.c +++ b/drivers/gpu/drm/i915/display/intel_display_power.c @@ -23,6 +23,7 @@ #include "intel_pcode.h" #include "intel_pmdemand.h" #include "intel_pps_regs.h" +#include "intel_quirks.h" #include "intel_snps_phy.h" #include "skl_watermark.h" #include "skl_watermark_regs.h" @@ -482,6 +483,12 @@ intel_display_power_grab_async_put_ref(struct intel_display *display, return ret; } +static const struct i915_power_well_instance * +i915_power_well_instance(const struct i915_power_well *power_well) +{ + return &power_well->desc->instances->list[power_well->instance_idx]; +} + static void __intel_display_power_get_domain(struct intel_display *display, enum intel_display_power_domain domain) @@ -493,7 +500,14 @@ __intel_display_power_get_domain(struct intel_display *display, return; for_each_power_domain_well(display, power_well, domain) + { + if (domain == POWER_DOMAIN_INIT && + intel_has_quirk(display, QUIRK_NO_VLV_DISP_PW_DPIO_CMN_BC_INIT) && + i915_power_well_instance(power_well)->id == VLV_DISP_PW_DPIO_CMN_BC) + continue; + intel_power_well_get(display, power_well); + } power_domains->domain_use_count[domain]++; } @@ -589,7 +603,14 @@ __intel_display_power_put_domain(struct intel_display *display, power_domains->domain_use_count[domain]--; for_each_power_domain_well_reverse(display, power_well, domain) + { + if (domain == POWER_DOMAIN_INIT && + intel_has_quirk(display, QUIRK_NO_VLV_DISP_PW_DPIO_CMN_BC_INIT) && + i915_power_well_instance(power_well)->id == VLV_DISP_PW_DPIO_CMN_BC) + continue; + intel_power_well_put(display, power_well); + } } static void __intel_display_power_put(struct intel_display *display, diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c index 8b30e9fd9..af2fa6b67 100644 --- a/drivers/gpu/drm/i915/display/intel_quirks.c +++ b/drivers/gpu/drm/i915/display/intel_quirks.c @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp) drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n"); } +static void quirk_no_vlv_disp_pw_dpio_cmn_bc_init(struct intel_display *display) +{ + intel_set_quirk(display, QUIRK_NO_VLV_DISP_PW_DPIO_CMN_BC_INIT); + drm_info(display->drm, "Applying no dpio-common-bc powerwell init quirk\n"); +} + struct intel_quirk { int device; int subsystem_vendor; @@ -229,6 +235,8 @@ static struct intel_quirk intel_quirks[] = { { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, /* HP Notebook - 14-r206nv */ { 0x0f31, 0x103c, 0x220f, quirk_invert_brightness }, + /* Xiaomi Pad 2 - xiaomi-latte */ + { 0x22b0, 0x1d72, 0x1502, quirk_no_vlv_disp_pw_dpio_cmn_bc_init }, }; static const struct intel_dpcd_quirk intel_dpcd_quirks[] = { diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h index cafdebda7..6e7ea8c13 100644 --- a/drivers/gpu/drm/i915/display/intel_quirks.h +++ b/drivers/gpu/drm/i915/display/intel_quirks.h @@ -20,6 +20,7 @@ enum intel_quirk_id { QUIRK_LVDS_SSC_DISABLE, QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK, QUIRK_FW_SYNC_LEN, + QUIRK_NO_VLV_DISP_PW_DPIO_CMN_BC_INIT, }; void intel_init_quirks(struct intel_display *display);