From patchwork Wed Nov 18 17:46:48 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 7651511 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 7F819BF90C for ; Wed, 18 Nov 2015 17:47:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id B7534205F7 for ; Wed, 18 Nov 2015 17:47:02 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C4455205EE for ; Wed, 18 Nov 2015 17:47:01 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 908046E775; Wed, 18 Nov 2015 09:47:00 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1449B6E775 for ; Wed, 18 Nov 2015 09:46:59 -0800 (PST) Received: by wmec201 with SMTP id c201so290796387wme.0 for ; Wed, 18 Nov 2015 09:46:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=8iuM+D430prY17av6Efcg077gPnLzaZU7fmuNKlH7Oc=; b=KL1CKLt5GZ64aMzEHR8k76OG/FxqCkNCgfgMK17PWk4TmHS/3fapa2GgdL1PAqk4kI iYzjedEi78EezBvXyHHVGXcEvtFFYsmBpfw95aaTUeViznpzIGCM2M4tkzR2g0xkkTFB bXOMUuT1QsMge0erOlle/6/mR4uWBcupJ2d8U= 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:mime-version :content-type:content-transfer-encoding; bh=8iuM+D430prY17av6Efcg077gPnLzaZU7fmuNKlH7Oc=; b=P94eC7WgxgNwswPyov0qSIvJxhvURfxa/pEkjrQvVe054LvQVO1Os/aG+s0XgwBwV2 85j7q+QFZRYZEK0k2xzAyxIR6b5TM0mkskuskc9lgnHIJMWN2mRogrj8+FkhDwRisOrL Ll3hrSMQklHYraomRCErTCqssLDPVEoTHOLonxTtlkTuXLlGrfNgo9O9TREk28KZSMwq i4PbkDp07ED0NdM1FSWS7DnZDGIdK5v3h6e8JwtXtUgE7n9DrcwBM01fGjRLAZDBoZFh Xj9Uq2ZxjBmHA6Qp6zyBClinGR4V7pfLxrEjdlXFsl42RVAK3Cu2l1da5vykEmbKuvV+ DEoA== X-Gm-Message-State: ALoCoQlHQmbRC2Ro7HMe5JRGmP1JtbHtRiEPQFwvrfytcgKrQmL6DR6vEo1UZ4fS9QwLRijevhu/ X-Received: by 10.194.6.226 with SMTP id e2mr3787861wja.109.1447868817498; Wed, 18 Nov 2015 09:46:57 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id h7sm3932868wjz.7.2015.11.18.09.46.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Nov 2015 09:46:56 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Subject: [PATCH] drm/atomic-helper: Check encoder/crtc constraints Date: Wed, 18 Nov 2015 18:46:48 +0100 Message-Id: <1447868808-10266-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.5.1 MIME-Version: 1.0 Cc: Daniel Vetter , Daniel Vetter , DRI Development , Daniel Stone 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,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 was totally lost when I originally created the atomic helpers. We probably should also check possible_clones in the helpers, but since the legacy ones didn't do that this is for a separate patch. Reported-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Daniel Stone Signed-off-by: Daniel Vetter Reviewed-by: Daniel Stone Reviewed-by: Ville Syrjälä Tested-by: Ville Syrjälä --- drivers/gpu/drm/drm_atomic_helper.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 0c6f62168776..cfdc9931b08a 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -210,6 +210,14 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx) return -EINVAL; } + if (!drm_encoder_crtc_ok(new_encoder, connector_state->crtc)) { + DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] incompatible with [CRTC:%d]\n", + new_encoder->base.id, + new_encoder->name, + connector_state->crtc->base.id); + return -EINVAL; + } + if (new_encoder == connector_state->best_encoder) { DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now on [CRTC:%d]\n", connector->base.id,