From patchwork Tue May 12 13:29:35 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 6388281 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id D59279F1C2 for ; Tue, 12 May 2015 13:27:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id EE54A2041E for ; Tue, 12 May 2015 13:27:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C797820414 for ; Tue, 12 May 2015 13:27:24 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C38F6E610; Tue, 12 May 2015 06:27:23 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTP id DE4AA6E600 for ; Tue, 12 May 2015 06:27:20 -0700 (PDT) Received: by wggj6 with SMTP id j6so9783721wgg.3 for ; Tue, 12 May 2015 06:27:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sb/LfszoKmhppD1Mpfe2iD7SITJlsnWbHgBHTVVkP7Q=; b=E2SAuHqSfNCxCuDngF3NWSsB4CeWOXS1K81SzyrkQ/YU9/q2Lbwt3XTcAEZPc53R0n GI6BLXYVbk3Flhu8xrh/sAnSySnIJubIrb2I9Uw/G4JL3qs7o4EvQduEEmWg6TXeSKns GSxt9I1k0Nfime/HFwrAz2ZzL78q+wp+zdeJ0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sb/LfszoKmhppD1Mpfe2iD7SITJlsnWbHgBHTVVkP7Q=; b=kV1TQ+ftNsBYnVH5W7ffiaY7Aw33Sw9zoN2y7Q6Rt4Vm2mZyWnwi3yFu65epVwtTDI n8oMs6uzVKrIcCHEaK9QZC+U1x1ovAeV8WONFzR6HLJgO8qJSpgEU4n/OJqDw+h7M6SA Koc167um+f1dOZaCXkucSvXulBUvUD+cSJ2l1xcQ/WgunxmR0lmC2PToNeZ3zA84XWew 4yDsPkR1aW3N16gAha/PFdLqvWAZGglGe16rMqqoR5OmSB+UO7LZzbvQ68V4jOZYJVbL AxWL4HThRbnvWhloCQnupvGbc1sRwAcjtrDmCLoo/67lLz8eiKFJxEv0LDgbYW1ttTnl 9C2g== X-Gm-Message-State: ALoCoQlxGdxdo/f0KDQhNFVjoFj00IzGqqMU8xBjGk9ZxpS+pUIwZWUJET6kVAJbVqhqhongEn1o X-Received: by 10.194.172.130 with SMTP id bc2mr30885018wjc.85.1431437240217; Tue, 12 May 2015 06:27:20 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by mx.google.com with ESMTPSA id ch2sm2878247wib.18.2015.05.12.06.27.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 12 May 2015 06:27:19 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 2/2] drm/atomic-helpers: Export drm_atomic_helper_update_legacy_modeset_state Date: Tue, 12 May 2015 15:29:35 +0200 Message-Id: <1431437375-17180-2-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1431437375-17180-1-git-send-email-daniel.vetter@ffwll.ch> References: <1431437375-17180-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This is useful for drivers which have their own modeset infrastructure but want to reuse most of the legacy state frobbery from the helpers. i915 wants this. Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst --- drivers/gpu/drm/drm_atomic_helper.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 181bbc1ef1b9..8ba5be8c754c 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -619,8 +619,22 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) } } -static void -set_routing_links(struct drm_device *dev, struct drm_atomic_state *old_state) +/** + * drm_atomic_helper_update_legacy_modeset_state - update legacy modeset state + * @dev: DRM device + * @old_state: atomic state object with old state structures + * + * This function updates all the various legacy modeset state pointers in + * connectors, encoders and crtcs. It also updates the timestamping constants + * used for precise vblank timestamps by calling + * drm_calc_timestamping_constants(). + * + * Drivers can use this for building their own atomic commit if they don't have + * a pure helper-based modeset implementation. + */ +void +drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev, + struct drm_atomic_state *old_state) { struct drm_connector *connector; struct drm_connector_state *old_conn_state; @@ -661,6 +675,7 @@ set_routing_links(struct drm_device *dev, struct drm_atomic_state *old_state) drm_calc_timestamping_constants(crtc, &crtc->state->adjusted_mode); } } +EXPORT_SYMBOL(drm_atomic_helper_update_legacy_modeset_state); static void crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state) @@ -739,7 +754,9 @@ void drm_atomic_helper_commit_modeset_disables(struct drm_device *dev, struct drm_atomic_state *old_state) { disable_outputs(dev, old_state); - set_routing_links(dev, old_state); + + drm_atomic_helper_update_legacy_modeset_state(dev, old_state); + crtc_set_mode(dev, old_state); } EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_disables);