From patchwork Tue Mar 11 10:30:27 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 3810871 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.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 710DFBF540 for ; Tue, 11 Mar 2014 10:31:55 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 90BEF2021F for ; Tue, 11 Mar 2014 10:31:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 9FCB62022A for ; Tue, 11 Mar 2014 10:31:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5AE0BF9ED7; Tue, 11 Mar 2014 03:31:37 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ee0-f51.google.com (mail-ee0-f51.google.com [74.125.83.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 90BDFF9CFF for ; Tue, 11 Mar 2014 03:31:28 -0700 (PDT) Received: by mail-ee0-f51.google.com with SMTP id c13so3620203eek.24 for ; Tue, 11 Mar 2014 03:31:27 -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=jVO2q4sbFyGisH15aVQ3z5NAqbNMip2rfGTy7lCuXAM=; b=E8sjUq1PByOf4jcyponMolFfXU9feUWfNkL8CppMoXIuiHAwfX/qi69q7BjQ0TRPGD DzjaW93F+zGvDxl1msP3EPnXVUvykoayknKdbvKciAEpVjc7IZYQqBycjD8udsrrR1JW y9xiAoKAJRQR4uQCckjPV5yTin2sn22KyL9dw= 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=jVO2q4sbFyGisH15aVQ3z5NAqbNMip2rfGTy7lCuXAM=; b=Qj4FDOTqkiFsSwqG3Q6eaT/G+G6Bm9kp9s6txlN5vYGe/PHSDSarPNXFiME02Asynw KkQn/+71Bldej/wskaTdFIbmSZwGcJrDzB3xPsr3iLI/P2JsGocyt4pR2zFu3SIlzJuS A7YGk3NWmNz5uimG/aarSNWF8/o+nyns4yW0OguMKTMsRmZo9t9e+1Olzl57TC+pzagN nFe6JXLuo90l+/tdh4nLVxeZfOYX1Eycq6pVJlWXfRx4l4R6Eh99i3RMEtfb59nZSQp9 CXh7t2EnW0ESoVcF1w3EY3+Kw9mui8UYTxyvUg6ZTA1Dj5GHXKUDmZPUIe2wFPnMuDgO tC/g== X-Gm-Message-State: ALoCoQmZn9BrYaBqfsGh9sS9SdE8Cao6oc9r/FvoKLBuLVu3ReeNShaUF7sSJtG2mX4yCKXLNU+0 X-Received: by 10.14.198.197 with SMTP id v45mr25312462een.9.1394533887898; Tue, 11 Mar 2014 03:31:27 -0700 (PDT) Received: from phenom.ffwll.local (84-73-67-144.dclient.hispeed.ch. [84.73.67.144]) by mx.google.com with ESMTPSA id q44sm55958331eez.1.2014.03.11.03.31.25 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 11 Mar 2014 03:31:27 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 31/34] drm: drop error code for drm_helper_resume_force_mode Date: Tue, 11 Mar 2014 11:30:27 +0100 Message-Id: <1394533830-30150-32-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.8.5.2 In-Reply-To: <1394533830-30150-1-git-send-email-daniel.vetter@ffwll.ch> References: <1394533830-30150-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org 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 No driver cares, and it should generally work. Add a big comment when drivers can't use this for recompense. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_crtc_helper.c | 19 ++++++++++++++++--- include/drm/drm_crtc_helper.h | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 44d50f56afa3..0f60150adfc3 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -941,13 +941,25 @@ EXPORT_SYMBOL(drm_helper_mode_fill_fb_struct); * force-restore the mode setting configuration e.g. on resume or when something * else might have trampled over the hw state (like some overzealous old BIOSen * tended to do). + * + * This helper doesn't provide a error return value since restoring the old + * config should never fail due to resource allocation issues since the driver + * has successfully set the restored configuration already. Hence this should + * boil down to the equivalent of a few dpms on calls, which also don't provide + * an error code. + * + * Drivers where simply restoring an old configuration again might fail (e.g. + * due to slight differences in allocating shared resources when the + * configuration is restored in a different order than when userspace set it up) + * need to use their own restore logic. */ -int drm_helper_resume_force_mode(struct drm_device *dev) +void drm_helper_resume_force_mode(struct drm_device *dev) { struct drm_crtc *crtc; struct drm_encoder *encoder; struct drm_crtc_helper_funcs *crtc_funcs; - int ret, encoder_dpms; + int encoder_dpms; + bool ret; list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { @@ -957,6 +969,7 @@ int drm_helper_resume_force_mode(struct drm_device *dev) ret = drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x, crtc->y, crtc->fb); + /* Restoring the old config should never fail! */ if (ret == false) DRM_ERROR("failed to set mode on crtc %p\n", crtc); @@ -979,9 +992,9 @@ int drm_helper_resume_force_mode(struct drm_device *dev) drm_helper_choose_crtc_dpms(crtc)); } } + /* disable the unused connectors while restoring the modesetting */ drm_helper_disable_unused_functions(dev); - return 0; } EXPORT_SYMBOL(drm_helper_resume_force_mode); diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index b6c17980cd00..0bb34ca2ad2b 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h @@ -160,7 +160,7 @@ static inline void drm_connector_helper_add(struct drm_connector *connector, connector->helper_private = (void *)funcs; } -extern int drm_helper_resume_force_mode(struct drm_device *dev); +extern void drm_helper_resume_force_mode(struct drm_device *dev); extern void drm_kms_helper_poll_init(struct drm_device *dev); extern void drm_kms_helper_poll_fini(struct drm_device *dev); extern bool drm_helper_hpd_irq_event(struct drm_device *dev);