Received: by 10.223.185.116 with SMTP id b49csp2176102wrg; Thu, 22 Feb 2018 09:16:46 -0800 (PST) X-Google-Smtp-Source: AH8x227RaaLsC5DzJ9hFRUMU0cX1E4M68H/4sLSc3vCqpO1jsprYTabyHJI0spS3Rx8uhNS6yCGF X-Received: by 10.98.224.208 with SMTP id d77mr7674375pfm.194.1519319806750; Thu, 22 Feb 2018 09:16:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519319806; cv=none; d=google.com; s=arc-20160816; b=uRVoDHhH1RwPkNKPF9uBLeu5/BaZrAVfArJfW4SFRh8BX3aai8vdm7/zbu7/wgq8TY IfeehoCYI4SDtBMNZwJ7uR5o7JpTt0mE3f8F91JbDMZoor58BX4Q5PRAxPxTQPfC8i4D 8jZX7zRd8unEz9+IhQEw4i51Gk4JaAtSabE55rkZNQaU9CmidBzXzrWRIxoizT8vf2Z+ X/sxcki1MLV9MmwB4nBRDp0FSwp+AYmCAzCF76187D877QHo86x5ktRtOtVFrBIgbr2y WqdE9nh0N2HUsH061JKpcfm7Z+S0HPs3B5YV8dI6OKFQonipm3E3YxK7lJSEVY7hw8iD uI0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:dkim-signature :arc-authentication-results; bh=/0Y0Nls3Se7hGRD7nn442UUgq2zvKTwCA/u2Cwrh4VE=; b=UwrCy7wBGnl3gZSJ63v7o2pmLbRSF3ug/2Hm3yySkzlprSXlox1AUpBvhZL7fGjq5x CbpDWPUC/t3eqedqn0Q1jqroh1BnkarA2TRNUIS/TT9RIBFMnqEDyGz2ehmNAYjXaEhQ zwbRznLTdHDNWEw5o9K2JYFFz7WJCtKsrMJcjyVZ+Cm9kcknMC0ZpXUKA25XxV9u4/QM 8TYe4Ucp0CJ7yTXjrBnar5SbZXy6Wyt8NLFy8Dh+ZXvWG7tk4kKoyuo9TeaIcu8gOwpu m2mkbkQo7NS1md0MSq9DZH0m6EjkpHljMiQA5vc5IR1Oxodmu6ml7Iibw+Rg8wAlzkvn P6XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YutAB4aF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s193si263701pgs.825.2018.02.22.09.16.20; Thu, 22 Feb 2018 09:16:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YutAB4aF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933421AbeBVRPg (ORCPT + 99 others); Thu, 22 Feb 2018 12:15:36 -0500 Received: from mail-lf0-f65.google.com ([209.85.215.65]:45730 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933298AbeBVRPc (ORCPT ); Thu, 22 Feb 2018 12:15:32 -0500 Received: by mail-lf0-f65.google.com with SMTP id x196so8438029lfd.12 for ; Thu, 22 Feb 2018 09:15:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=/0Y0Nls3Se7hGRD7nn442UUgq2zvKTwCA/u2Cwrh4VE=; b=YutAB4aF6Q8d68ROKED/pFfmU78TnWBb5Fsl5pUA9fdVpcIHjo5vznzUYHtIVXQQe0 jTQRqZGOPKkWUjDRh1ubiXGr1pKHw3bNeIVVy+wwT6gUbdr7sQkSoihSuFqrZgeyB3Ot QkN7hO8EiLovzgLWT9MqhdyFBWqE7wSp9qKoGjaPq5iWDquxVj1rJkF1Ii1zuhVoGmhI qiGdpfx7EGFGoE7Dj2hnDTGGZQB3YGJK75JhR6D6IfS8a/LDNdOT4C5Gpa+N4pEh43ic jkbbttN5Z6FQDSNKJT54353YrXZerS6eeX3v9SPkWv/f+dAAlRSPFRTctW0o9j2q/Qnv 0wcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=/0Y0Nls3Se7hGRD7nn442UUgq2zvKTwCA/u2Cwrh4VE=; b=VNU1pVaoCrSRFrGioHOiHjzwis69pCqv7XUxK/1lg4hoBlz83ZQgz/Z0SFdgOB/ked lhVwyTemVkYf4blVZJN3CjmcxcIzZM99wjJF87ztFCLBoKAwrRdJsMlV9AV1Yue4dAsn 440zkM01kONqKltAJZFr/Zshz0GLLuY7z4+EPi7/OHcEuGxKK0fYFHghUiewQOg4/tsd UaYRyRC+ltQ+wISwvVGqAmF2MCZp0OB/iuZRj24b+7txZKB2wlbsrPePi46nUGLQs0/b JnNjE+48lgKqek02HpS+ZDDftesZSIxG+zRwOgZhjs7zXRolyAds/jg8G6DgEbAk/wjt VAcg== X-Gm-Message-State: APf1xPAiYNLhFchxNX40fvFwSGLH/jz15D2HCWzGU6XdctFz9CPLIllr 46rLyovM087MfT2bdJkfib4= X-Received: by 10.46.86.74 with SMTP id k71mr5321615ljb.28.1519319730985; Thu, 22 Feb 2018 09:15:30 -0800 (PST) Received: from [192.168.0.20] (88-38-94-178.pool.ukrtel.net. [178.94.38.88]) by smtp.googlemail.com with ESMTPSA id 202sm102408ljj.2.2018.02.22.09.15.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 09:15:29 -0800 (PST) Subject: Re: [PATCH 1/4] drm/simple_kms_helper: Add {enable|disable}_vblank callback support To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, airlied@linux.ie, daniel.vetter@intel.com, Oleksandr Andrushchenko References: <1518425574-32671-1-git-send-email-andr2000@gmail.com> <1518425574-32671-2-git-send-email-andr2000@gmail.com> <00b01a2d-ad16-e171-f52f-88fba2896386@gmail.com> <20180222165916.GD6419@phenom.ffwll.local> From: Oleksandr Andrushchenko Message-ID: <14c72176-9547-bbdf-7d7e-695cd9da3e15@gmail.com> Date: Thu, 22 Feb 2018 19:15:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180222165916.GD6419@phenom.ffwll.local> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/22/2018 06:59 PM, Daniel Vetter wrote: > On Mon, Feb 19, 2018 at 11:11:23AM +0200, Oleksandr Andrushchenko wrote: >> ping >> On 02/12/2018 10:52 AM, Oleksandr Andrushchenko wrote: >>> From: Oleksandr Andrushchenko >>> >>> If simple_kms_helper based driver needs to work with vblanks, >>> then it has to provide drm_driver.{enable|disable}_vblank callbacks, >>> because drm_simple_kms_helper.drm_crtc_funcs does not provide any. >>> At the same time drm_driver.{enable|disable}_vblank callbacks >>> are marked as deprecated and shouldn't be used by new drivers. >>> >>> Fix this by extending drm_simple_kms_helper.drm_crtc_funcs >>> to provide the missing callbacks. >>> >>> Signed-off-by: Oleksandr Andrushchenko > lgtm, all 4 applied, thanks for your patches. Thank you, my pleasure > -Daniel > >>> --- >>> drivers/gpu/drm/drm_simple_kms_helper.c | 24 ++++++++++++++++++++++++ >>> include/drm/drm_simple_kms_helper.h | 18 ++++++++++++++++++ >>> 2 files changed, 42 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c >>> index 9d3f6b70812c..9ca8a4a59b74 100644 >>> --- a/drivers/gpu/drm/drm_simple_kms_helper.c >>> +++ b/drivers/gpu/drm/drm_simple_kms_helper.c >>> @@ -77,6 +77,28 @@ static const struct drm_crtc_helper_funcs drm_simple_kms_crtc_helper_funcs = { >>> .atomic_disable = drm_simple_kms_crtc_disable, >>> }; >>> +static int drm_simple_kms_crtc_enable_vblank(struct drm_crtc *crtc) >>> +{ >>> + struct drm_simple_display_pipe *pipe; >>> + >>> + pipe = container_of(crtc, struct drm_simple_display_pipe, crtc); >>> + if (!pipe->funcs || !pipe->funcs->enable_vblank) >>> + return 0; >>> + >>> + return pipe->funcs->enable_vblank(pipe); >>> +} >>> + >>> +static void drm_simple_kms_crtc_disable_vblank(struct drm_crtc *crtc) >>> +{ >>> + struct drm_simple_display_pipe *pipe; >>> + >>> + pipe = container_of(crtc, struct drm_simple_display_pipe, crtc); >>> + if (!pipe->funcs || !pipe->funcs->disable_vblank) >>> + return; >>> + >>> + pipe->funcs->disable_vblank(pipe); >>> +} >>> + >>> static const struct drm_crtc_funcs drm_simple_kms_crtc_funcs = { >>> .reset = drm_atomic_helper_crtc_reset, >>> .destroy = drm_crtc_cleanup, >>> @@ -84,6 +106,8 @@ static const struct drm_crtc_funcs drm_simple_kms_crtc_funcs = { >>> .page_flip = drm_atomic_helper_page_flip, >>> .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, >>> .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, >>> + .enable_vblank = drm_simple_kms_crtc_enable_vblank, >>> + .disable_vblank = drm_simple_kms_crtc_disable_vblank, >>> }; >>> static int drm_simple_kms_plane_atomic_check(struct drm_plane *plane, >>> diff --git a/include/drm/drm_simple_kms_helper.h b/include/drm/drm_simple_kms_helper.h >>> index 6d9adbb46293..79567826b099 100644 >>> --- a/include/drm/drm_simple_kms_helper.h >>> +++ b/include/drm/drm_simple_kms_helper.h >>> @@ -93,6 +93,24 @@ struct drm_simple_display_pipe_funcs { >>> */ >>> void (*cleanup_fb)(struct drm_simple_display_pipe *pipe, >>> struct drm_plane_state *plane_state); >>> + >>> + /** >>> + * @enable_vblank: >>> + * >>> + * Optional, called by &drm_crtc_funcs.enable_vblank. Please read >>> + * the documentation for the &drm_crtc_funcs.enable_vblank hook for >>> + * more details. >>> + */ >>> + int (*enable_vblank)(struct drm_simple_display_pipe *pipe); >>> + >>> + /** >>> + * @disable_vblank: >>> + * >>> + * Optional, called by &drm_crtc_funcs.disable_vblank. Please read >>> + * the documentation for the &drm_crtc_funcs.disable_vblank hook for >>> + * more details. >>> + */ >>> + void (*disable_vblank)(struct drm_simple_display_pipe *pipe); >>> }; >>> /** >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel