Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp2338900rdh; Sun, 26 Nov 2023 02:56:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IHXKpthvYv1wdmM8aVUtQi/isI6QT9hA2VOx9qwm2ByeNotx0jNLn8AJTuLxVwedtXsr7/X X-Received: by 2002:a05:6a20:1587:b0:189:c987:76c5 with SMTP id h7-20020a056a20158700b00189c98776c5mr11696661pzj.43.1700996209037; Sun, 26 Nov 2023 02:56:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700996209; cv=none; d=google.com; s=arc-20160816; b=HqTIimHsPf0NGkBmDNvXJjpyGsynATXZhZa9xxedxggN/LYi3gjyxsSMgHTFgBEn6Z JXSyTddd8fOtPS/Trpp5tpDiWz2f+ph4pTzsavnW3Xrnh08KUV0WAbR4jn163QiRBJeI XUJmTIJbNYzJxHQhKHj2k+K4IVz3kLgpOf09y8WmBcvO4gaDaUQSKK1WTieA7voM5f79 MBqgXdkcNXz5eqFPdkWJQhk3rzJgG3UxwlGeoRrh8k4/sQsiBBis4mYKBamouMkGngCP sLcxubYO54pwTwn1LUMUa2A28csn18Wub7ARdA/38uFNMN0JPSqiNMGKnb7sL/ijANho ZboQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :content-language:references:cc:to:subject:from:user-agent :mime-version:date:message-id:dkim-signature; bh=I3GW50siPE3V/OZVTf7EbN7pnDFJwfRoAQudNo2WQ48=; fh=A5txN680DUrn+7vP1vJQ1x7h0qg5/DBhgY7UdU6iTTY=; b=UiwG9/B3CUnCgFeFIO0pXrC1GZfEbCfN2DsZ5MnfedJwGEiMeaVRyUKhmakgOa4dJL W3SWxEtxf9dxOJilnVUVPi1q95pfkySObfU53b/vffDtz6hvULEZTj1FjOENxXq/XUqq MxUfFo66G0xW0bqIZ5zEn7xqnzggmvB6D9H9y43mjhBsidqaUDZ5pkXsHjRrOKo9ayCv 11NqqQnPazRgQGUp7kUg5RkDkII6AJ8TDpfNEQVojE2X5WbO1tGqGPAoqGMQgP9N/qKt /h8p3S3T1IXrhQpCKk5Am/KjsgHzpfDD1d2/RLhiFThjOJNztS3WNWMYMa4F2tVqDR4p FsZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XP6Sdp3c; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id ih17-20020a056a008c1100b006cb4d47e598si2976131pfb.141.2023.11.26.02.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Nov 2023 02:56:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XP6Sdp3c; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id A43C180699C5; Sun, 26 Nov 2023 02:56:47 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229573AbjKZK4f (ORCPT + 99 others); Sun, 26 Nov 2023 05:56:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229456AbjKZK4e (ORCPT ); Sun, 26 Nov 2023 05:56:34 -0500 Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68CBAB6 for ; Sun, 26 Nov 2023 02:56:40 -0800 (PST) Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-9ffef4b2741so432536866b.3 for ; Sun, 26 Nov 2023 02:56:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700996199; x=1701600999; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=I3GW50siPE3V/OZVTf7EbN7pnDFJwfRoAQudNo2WQ48=; b=XP6Sdp3cduK1+XQIkEtc8Aw33QHLkMEsvn+BTGWYQxYL9XKN3Qav/fK0Lbq+4sjMMK gTlruFRE60Ss2mdeJ+LhY8kOaLTLUtgzOFX6jI5bUweF2BfxkFDCX+/tCbO8blotVuQY 50PH2GupGZjsbiPDBhjfB1SbSv9IwnIkK+pZ7kiOUwSr+Ztmy0puMEBT9JlBdMkRlERZ rMMpckcSmB5Zy78xXVrdmKSt/kO8VXdlSX97Fpu5WuL+cN7RGw8GLKOnwxkAxDsm33T4 r69r77CnPvzrlvJp7kakv2Pae8uiew1DndA3j1hZ1OQREyFHRgCzCdKvE8nf+yxww7U4 Lyvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700996199; x=1701600999; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=I3GW50siPE3V/OZVTf7EbN7pnDFJwfRoAQudNo2WQ48=; b=Plgk0iqR7B8ifk1xDq7EZ827E1KiiFcsOOrxEZrA9uuZhCLMRPx0NXbTeKkEz6FMoi CiXu9sCnKAoPNCbqUQglTFdGPk1FS5OcncEGIVzXank9sLRfu1Nd3975N+bWGJBHn2r9 7Wv4vvysWTg1+OxZJCnMFf2LWnIArzGVo960kEAM+oYH5VfJ0Dhhhmo4xFV08KsGnZ5n XHNUtjVVWbUm3yVYxbjoeti1hbEGFNumzZQTP7ltBMmXSLlnXdQXSZwUhnt6qq9InhrB WO2iMMwu9IdBwFBVbwVZzKzayJWrXZg+dZ1WSA4BW2Z2j23J+U9Ef6LQ9ZK/SLGCZ1Cg C+LA== X-Gm-Message-State: AOJu0Yy7aDbXEC5useJiKlF4bKb7PigDC2T/d8cbSegOm4ZmS28jUC+c iwU8CqsTg7FMx17YJVyTx0Q= X-Received: by 2002:a17:906:209e:b0:a0a:f9af:c159 with SMTP id 30-20020a170906209e00b00a0af9afc159mr3795403ejq.25.1700996198924; Sun, 26 Nov 2023 02:56:38 -0800 (PST) Received: from [192.168.2.1] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id r21-20020a170906351500b00a0bd234566bsm1763175eja.143.2023.11.26.02.56.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 26 Nov 2023 02:56:38 -0800 (PST) Message-ID: Date: Sun, 26 Nov 2023 11:56:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 From: Johan Jonker Subject: [PATCH v1 2/3] drm/rockchip: inno_hdmi: Switch encoder hooks to atomic To: hjc@rock-chips.com, heiko@sntech.de Cc: airlied@gmail.com, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, mripard@kernel.org References: <2601b669-c570-f39d-8cf9-bff56c939912@gmail.com> Content-Language: en-US In-Reply-To: <2601b669-c570-f39d-8cf9-bff56c939912@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Sun, 26 Nov 2023 02:56:47 -0800 (PST) The inno_hdmi encoder still uses the non atomic variants of enable and disable. Convert to their atomic equivalents. In atomic mode there is no need to save the adjusted mode, so remove the mode_set function. Signed-off-by: Maxime Ripard Signed-off-by: Johan Jonker --- Changed V1: Combined patches Include drm_atomic.h --- drivers/gpu/drm/rockchip/inno_hdmi.c | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c index cc48cbf85f31..535cca30c256 100644 --- a/drivers/gpu/drm/rockchip/inno_hdmi.c +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -5,6 +5,13 @@ * Yakir Yang */ +#include +#include +#include +#include +#include +#include + #include #include #include @@ -16,12 +23,6 @@ #include #include -#include -#include -#include -#include -#include - #include "rockchip_drm_drv.h" #include "rockchip_drm_vop.h" @@ -62,7 +63,6 @@ struct inno_hdmi { unsigned int tmds_rate; struct hdmi_data_info hdmi_data; - struct drm_display_mode previous_mode; }; static struct inno_hdmi *encoder_to_inno_hdmi(struct drm_encoder *encoder) @@ -491,26 +491,27 @@ static int inno_hdmi_setup(struct inno_hdmi *hdmi, return 0; } -static void inno_hdmi_encoder_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adj_mode) +static void inno_hdmi_encoder_enable(struct drm_encoder *encoder, + struct drm_atomic_state *state) { struct inno_hdmi *hdmi = encoder_to_inno_hdmi(encoder); + struct drm_connector_state *conn_state; + struct drm_crtc_state *crtc_state; - inno_hdmi_setup(hdmi, adj_mode); + conn_state = drm_atomic_get_new_connector_state(state, &hdmi->connector); + if (WARN_ON(!conn_state)) + return; - /* Store the display mode for plugin/DPMS poweron events */ - drm_mode_copy(&hdmi->previous_mode, adj_mode); -} - -static void inno_hdmi_encoder_enable(struct drm_encoder *encoder) -{ - struct inno_hdmi *hdmi = encoder_to_inno_hdmi(encoder); + crtc_state = drm_atomic_get_new_crtc_state(state, conn_state->crtc); + if (WARN_ON(!crtc_state)) + return; + inno_hdmi_setup(hdmi, &crtc_state->adjusted_mode); inno_hdmi_set_pwr_mode(hdmi, NORMAL); } -static void inno_hdmi_encoder_disable(struct drm_encoder *encoder) +static void inno_hdmi_encoder_disable(struct drm_encoder *encoder, + struct drm_atomic_state *state) { struct inno_hdmi *hdmi = encoder_to_inno_hdmi(encoder); @@ -531,10 +532,9 @@ inno_hdmi_encoder_atomic_check(struct drm_encoder *encoder, } static struct drm_encoder_helper_funcs inno_hdmi_encoder_helper_funcs = { - .enable = inno_hdmi_encoder_enable, - .disable = inno_hdmi_encoder_disable, - .mode_set = inno_hdmi_encoder_mode_set, - .atomic_check = inno_hdmi_encoder_atomic_check, + .atomic_check = inno_hdmi_encoder_atomic_check, + .atomic_enable = inno_hdmi_encoder_enable, + .atomic_disable = inno_hdmi_encoder_disable, }; static enum drm_connector_status -- 2.39.2