From patchwork Wed Oct 31 09:11:48 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 1676871 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 549BE3FC4C for ; Wed, 31 Oct 2012 09:23:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 17E60A0A77 for ; Wed, 31 Oct 2012 02:23:10 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ee0-f49.google.com (mail-ee0-f49.google.com [74.125.83.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 8AFBF9F30B for ; Wed, 31 Oct 2012 02:20:22 -0700 (PDT) Received: by mail-ee0-f49.google.com with SMTP id c1so618182eek.36 for ; Wed, 31 Oct 2012 02:20:21 -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:x-mailer:in-reply-to:references; bh=+Ru1/3An3rdlFA1xyQOze2swAy3hmPfcxATmdbpyCA0=; b=MaCv6F4y+J1gRbxn09MDqYeIghvfz+bWAk1oUukGbOqEaqGB5zEtJcQglxTkPNQowS mPEatIXXAYH1oifuJZc+FGJQR7p1a5ScQkwQfdzKwjpK89Cenu1B66Oq9WsBvSAGQ9KY y7U9sru7+a7Sme/Z5VrefMq8FRHZWE9JnGh/Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=+Ru1/3An3rdlFA1xyQOze2swAy3hmPfcxATmdbpyCA0=; b=p4OIzxH6/+V+UmupxQx+izac42bZMzZQLNTVwyGa27ldr0E/Ayqo77NAICpNzDf2FL FGUYpGrdDKiok6i3tOWyXm3eCrINjtTYcAtJMZM02Nim7liBjgDRSE2+VjWnKeV1moTy gFqOEXrY9xM06utCLsIVV/lRS9rf8+H01MiW1fptR3wBbV4y7zIxZwV5fwHxQUlRt+gR BhumGJRIvMI+CfV+T+Kj36wXOxz4DjC0gqg3mrbxk8Q2Rxkf5OIrQuuNT7zU4nIFtlpj RbxyeKYsFlgpMvsP4VozwGHN5qQqFpaXNRsM8KtIWN7v39+mpsBGmBcs+6ddSS88Ny0D 9pDA== Received: by 10.14.194.136 with SMTP id m8mr83169981een.10.1351675221828; Wed, 31 Oct 2012 02:20:21 -0700 (PDT) Received: from wespe.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id f3sm6784078eeo.13.2012.10.31.02.20.21 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 31 Oct 2012 02:20:21 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 2/4] drm/doc: integrate crtc helper api into docbook Date: Wed, 31 Oct 2012 10:11:48 +0100 Message-Id: <1351674710-11629-2-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1351674710-11629-1-git-send-email-daniel.vetter@ffwll.ch> References: <3853113.57kDjBA5be@avalon> <1351674710-11629-1-git-send-email-daniel.vetter@ffwll.ch> X-Gm-Message-State: ALoCoQmghIbkjhT/zpJo5tjtDxtQxGR0PmwESnunphfbTf5TMInVuZCzqmzbOJPLlmxcpC5FOZeg Cc: Daniel Vetter , Intel Graphics Development , Laurent Pinchart 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+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org - Add the missing doc for drm_helper_move_panel_connectors_to_head. - Fixup any outdated stuff in existing sections. I've only looked at those kerneldoc headers that actually resulted in a complaint from the kerneldoc parser tool. Signed-off-by: Daniel Vetter Acked-by: Laurent Pinchart --- Documentation/DocBook/drm.tmpl | 4 +++ drivers/gpu/drm/drm_crtc_helper.c | 54 ++++++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index ca45155..43e706e 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl @@ -2106,6 +2106,10 @@ void intel_crt_init(struct drm_device *dev) + + Modeset Helper Functions Reference +!Edrivers/gpu/drm/drm_crtc_helper.c + diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 1021f505..e2e19ef 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -92,22 +92,21 @@ static void drm_mode_validate_flag(struct drm_connector *connector, /** * drm_helper_probe_single_connector_modes - get complete set of display modes - * @dev: DRM device + * @connector: connector to probe * @maxX: max width for modes * @maxY: max height for modes * * LOCKING: * Caller must hold mode config lock. * - * Based on @dev's mode_config layout, scan all the connectors and try to detect - * modes on them. Modes will first be added to the connector's probed_modes - * list, then culled (based on validity and the @maxX, @maxY parameters) and - * put into the normal modes list. - * - * Intended to be used either at bootup time or when major configuration - * changes have occurred. + * Based on the helper callbacks implemented by @connector try to detect all + * valid modes. Modes will first be added to the connector's probed_modes list, + * then culled (based on validity and the @maxX, @maxY parameters) and put into + * the normal modes list. * - * FIXME: take into account monitor limits + * Intended to be use as a generic implementation of the ->probe() @connector + * callback for drivers that use the crtc helpers for output mode filtering and + * conector detection. * * RETURNS: * Number of modes found on @connector. @@ -353,17 +352,23 @@ drm_crtc_prepare_encoders(struct drm_device *dev) } /** - * drm_crtc_set_mode - set a mode + * drm_crtc_set_mode - internal helper to set a mode * @crtc: CRTC to program * @mode: mode to use * @x: width of mode * @y: height of mode + * @old_fb: old framebuffer, for cleanup * * LOCKING: * Caller must hold mode config lock. * * Try to set @mode on @crtc. Give @crtc and its associated connectors a chance - * to fixup or reject the mode prior to trying to set it. + * to fixup or reject the mode prior to trying to set it. This is an internal + * helper that drivers could e.g. use to update properties that require the + * entire output pipe to be disabled and re-enabled in a new configuration. For + * example for changing whether audio is enabled on a hdmi link or for changing + * panel fitter or dither attributes. It is also called by the + * drm_crtc_helper_set_config() helper function. * * RETURNS: * True if the mode was set successfully, or false otherwise. @@ -519,20 +524,19 @@ drm_crtc_helper_disable(struct drm_crtc *crtc) /** * drm_crtc_helper_set_config - set a new config from userspace - * @crtc: CRTC to setup - * @crtc_info: user provided configuration - * @new_mode: new mode to set - * @connector_set: set of connectors for the new config - * @fb: new framebuffer + * @set: mode set configuration * * LOCKING: * Caller must hold mode config lock. * - * Setup a new configuration, provided by the user in @crtc_info, and enable - * it. + * Setup a new configuration, provided by the upper layers (either an ioctl call + * from userspace or internally e.g. from the fbdev suppport code) in @set, and + * enable it. This is the main helper functions for drivers that implement + * kernel mode setting with the crtc helper functions and the assorted + * ->prepare(), ->modeset() and ->commit() interfaces. * * RETURNS: - * Zero. (FIXME) + * Returns 0 on success, -ERRNO on failure. */ int drm_crtc_helper_set_config(struct drm_mode_set *set) { @@ -828,12 +832,14 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc) } /** - * drm_helper_connector_dpms - * @connector affected connector - * @mode DPMS mode + * drm_helper_connector_dpms() - connector dpms helper implementation + * @connector: affected connector + * @mode: DPMS mode * - * Calls the low-level connector DPMS function, then - * calls appropriate encoder and crtc DPMS functions as well + * This is the main helper function provided by the crtc helper framework for + * implementing the DPMS connector attribute. It computes the new desired DPMS + * state for all encoders and crtcs in the output mesh and calls the ->dpsm() + * callback provided by the driver appropriately. */ void drm_helper_connector_dpms(struct drm_connector *connector, int mode) {