From patchwork Wed Mar 22 21:50:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 9640171 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 81AEE601E9 for ; Wed, 22 Mar 2017 21:52:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 713DC201A4 for ; Wed, 22 Mar 2017 21:52:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6362B27D5E; Wed, 22 Mar 2017 21:52:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0EEA2201A4 for ; Wed, 22 Mar 2017 21:52:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 504146E9C0; Wed, 22 Mar 2017 21:51:27 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id E18CF6E9BE for ; Wed, 22 Mar 2017 21:51:25 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id l37so28606667wrc.3 for ; Wed, 22 Mar 2017 14:51:25 -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=xHiuSwkWSTO5xgjoVhhKkulI90u6ZAHrB5hlBle0qhA=; b=BKd8/Wkr/fCBPhFnQVdVlTj9IghR0ZRPhPfHhvjIjVd61EXlTel1Fl68yRjd4z3gCi 55GiWqeXMoxoE3ZXhZbWfrWqSsPDKz5++eGZXQ18rWA6/zAxLeIKXmd2gZUZd63AtmSX 2yijpz21KJYPQyMfX3cDSTlNd41PaM1Lm5hVY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xHiuSwkWSTO5xgjoVhhKkulI90u6ZAHrB5hlBle0qhA=; b=ItQCXVB2OG3yntAn0YiPI9yxi6WnOkbo5HGrJsMa4z1Uiry/NlJNjn4BllfykElGRR e5VGvKMuOuP2F2yeWJ8aoUy2lStHW1aft7qzfrYffFlTJ2+lpIIQBcASn+gaD05z8I/4 fhXJlW/486r72g9pg4skcALHcs48XRrnSwaGk4XKVzRMNmKT0VfE9Ta/Gf8Vb1m1frGX Tsl0sfzh9/Nd6flYIFmldjCPEcG5Yc+x8fbP45n/ddX4izwSx65yLBDSwriTR1itBk0x f1zDUro1ETZQKLXONq3gHcgp0EDTbgPUZDDBIh+SufiAO+jsnXVOXbdFBJT/iVx0tjrJ MZ/w== X-Gm-Message-State: AFeK/H3M9uLYSqi4WdulmH7QRbaH+8c2Rh80F545yb3z4WRxQuld1U35fxj8ec8ItzvLog== X-Received: by 10.223.152.73 with SMTP id v67mr36582892wrb.78.1490219484509; Wed, 22 Mar 2017 14:51:24 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:56c9:0:decc:6e78:7e96:b452]) by smtp.gmail.com with ESMTPSA id t85sm1777070wmt.23.2017.03.22.14.51.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Mar 2017 14:51:23 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 16/19] drm: Restrict drm_mode_set_config_internal to non-atomic drivers Date: Wed, 22 Mar 2017 22:50:55 +0100 Message-Id: <20170322215058.8671-17-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170322215058.8671-1-daniel.vetter@ffwll.ch> References: <20170322215058.8671-1-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-Virus-Scanned: ClamAV using ClamSMTP This is another case where we really can't reconstruct a acquire ctx in any useful fashion because all the callers are legacy drivers. So like drm_plane_force_disable simply restrict it to non-atomic drivers so that it's clear we're ok with passing a NULL ctx. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_crtc.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index df1ff0b8818b..05447492483f 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -444,18 +444,7 @@ int drm_mode_getcrtc(struct drm_device *dev, return 0; } -/** - * drm_mode_set_config_internal - helper to call &drm_mode_config_funcs.set_config - * @set: modeset config to set - * - * This is a little helper to wrap internal calls to the - * &drm_mode_config_funcs.set_config driver interface. The only thing it adds is - * correct refcounting dance. - * - * Returns: - * Zero on success, negative errno on failure. - */ -int drm_mode_set_config_internal(struct drm_mode_set *set) +static int __drm_mode_set_config_internal(struct drm_mode_set *set) { struct drm_crtc *crtc = set->crtc; struct drm_framebuffer *fb; @@ -488,6 +477,25 @@ int drm_mode_set_config_internal(struct drm_mode_set *set) return ret; } +/** + * drm_mode_set_config_internal - helper to call &drm_mode_config_funcs.set_config + * @set: modeset config to set + * + * This is a little helper to wrap internal calls to the + * &drm_mode_config_funcs.set_config driver interface. The only thing it adds is + * correct refcounting dance. + * + * This should only be used by non-atomic legacy drivers. + * + * Returns: + * Zero on success, negative errno on failure. + */ +int drm_mode_set_config_internal(struct drm_mode_set *set) +{ + WARN_ON(drm_drv_uses_atomic_modeset(set->crtc->dev)); + + return __drm_mode_set_config_internal(set); +} EXPORT_SYMBOL(drm_mode_set_config_internal); /** @@ -685,7 +693,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, set.connectors = connector_set; set.num_connectors = crtc_req->count_connectors; set.fb = fb; - ret = drm_mode_set_config_internal(&set); + ret = __drm_mode_set_config_internal(&set); out: if (fb)