Received: by 10.223.185.116 with SMTP id b49csp2073228wrg; Mon, 12 Feb 2018 03:58:08 -0800 (PST) X-Google-Smtp-Source: AH8x225/P/WyoJmM/FsGuVq3bALxFrHUF3a2QZwYd3lTntuHXu840hcL0OIjQg0V+OY/C1IbMo5+ X-Received: by 2002:a17:902:6b89:: with SMTP id p9-v6mr10589535plk.377.1518436688349; Mon, 12 Feb 2018 03:58:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518436688; cv=none; d=google.com; s=arc-20160816; b=FCnLPeUXF5DosCVN5niofHJlFzQqlQbByW1Iz1frjaBfQEDKgG41754T3wPZ2B0tPL ajXYfaBF9m6ONRk13kRzqPkNlqJ8L55gv8t29UPk4QBZQq+iZBiDS1+703hvgJzEppPE J9MbsS5qxZGS7rAsg8zd4mdkP2d36kfpOKhr3nMDqqATrL1lzam2ikNC9bJxD72EgP1J 5uPL0Zs+COIqx/gQDDWdrB3/G4N+9VwrKsRqSncidqBAFb54DYbmTMNLRwfc2ERNFhwE hGdEExzYNOFVnNhhBXbXdFQUR4NxI6rIuYu3HtX+g4NnZfJOZLHZh3LaGcUpCUXLklGl SiPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=iTBTUHcbeCGQIJGghDB9/r6tcKwxyaYUJJRl23xPWMc=; b=C4zbz0o+xXV5PflOCAn+h+ZZsKHjYRcdrjOA6qsX3jKJcgN57LFlewMuAguDlu8iW7 ZkbbUrVS+IYX9Ji3gNnTg7UMYS55NjH5omfNxoKvfDMMmCsPcU9MSBNPDT8plB8zE/8s uAlpfMtlut0p2lpwqA972bTzq74Se3cLSxP/bHJK3SEYmFQV/x109cVrXFNQ5vANXli8 0DTlU7l7NOTtxbg5NPTq1meaRjje3RMCip/YlRc2OMx8gixICYX6lrUTISD++/7kRkdi HAJV8lAdhdWy69s3OiH3kILWGRhswI4ZC3TJG0Np+E6GAA/o1FWncZbeeuLZ3ihaCBnZ sQ9A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o4-v6si4086169plk.582.2018.02.12.03.57.54; Mon, 12 Feb 2018 03:58:08 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933267AbeBLJgc (ORCPT + 99 others); Mon, 12 Feb 2018 04:36:32 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:48313 "EHLO mail-out.m-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932621AbeBLJgb (ORCPT ); Mon, 12 Feb 2018 04:36:31 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3zg0t45yKbz1qtP5; Mon, 12 Feb 2018 10:36:28 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3zg0t454yGz1qqkT; Mon, 12 Feb 2018 10:36:28 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id I_qtW9EzW4yW; Mon, 12 Feb 2018 10:36:27 +0100 (CET) X-Auth-Info: gh6EHaphQWrzS9PBQIKrZoaqyMsl7qEoYv8CfOIbROg= Received: from [IPv6:::1] (unknown [195.140.253.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Mon, 12 Feb 2018 10:36:27 +0100 (CET) Subject: Re: [PATCH 2/4] drm/mxsfb: Do not use deprecated drm_driver.{enable|disable)_vblank To: Oleksandr Andrushchenko , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: daniel.vetter@intel.com, gustavo@padovan.org, airlied@linux.ie, seanpaul@chromium.org, Oleksandr Andrushchenko References: <1518425574-32671-1-git-send-email-andr2000@gmail.com> <1518425574-32671-3-git-send-email-andr2000@gmail.com> From: Marek Vasut Message-ID: Date: Mon, 12 Feb 2018 10:26:09 +0100 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: <1518425574-32671-3-git-send-email-andr2000@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/12/2018 09:52 AM, Oleksandr Andrushchenko wrote: > From: Oleksandr Andrushchenko > > Do not use deprecated drm_driver.{enable|disable)_vblank callbacks, > but use drm_simple_kms_helpe's pipe callbacks instead. > > Signed-off-by: Oleksandr Andrushchenko > Cc: Marek Vasut Reviewed-by: Marek Vasut > --- > drivers/gpu/drm/mxsfb/mxsfb_drv.c | 54 ++++++++++++++++++++------------------- > 1 file changed, 28 insertions(+), 26 deletions(-) > > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c > index 1207ffe36250..5cae8db9dcd4 100644 > --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c > +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c > @@ -131,11 +131,37 @@ static int mxsfb_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, > return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); > } > > +static int mxsfb_pipe_enable_vblank(struct drm_simple_display_pipe *pipe) > +{ > + struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe); > + > + /* Clear and enable VBLANK IRQ */ > + mxsfb_enable_axi_clk(mxsfb); > + writel(CTRL1_CUR_FRAME_DONE_IRQ, mxsfb->base + LCDC_CTRL1 + REG_CLR); > + writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, mxsfb->base + LCDC_CTRL1 + REG_SET); > + mxsfb_disable_axi_clk(mxsfb); > + > + return 0; > +} > + > +static void mxsfb_pipe_disable_vblank(struct drm_simple_display_pipe *pipe) > +{ > + struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe); > + > + /* Disable and clear VBLANK IRQ */ > + mxsfb_enable_axi_clk(mxsfb); > + writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, mxsfb->base + LCDC_CTRL1 + REG_CLR); > + writel(CTRL1_CUR_FRAME_DONE_IRQ, mxsfb->base + LCDC_CTRL1 + REG_CLR); > + mxsfb_disable_axi_clk(mxsfb); > +} > + > static struct drm_simple_display_pipe_funcs mxsfb_funcs = { > .enable = mxsfb_pipe_enable, > .disable = mxsfb_pipe_disable, > .update = mxsfb_pipe_update, > .prepare_fb = mxsfb_pipe_prepare_fb, > + .enable_vblank = mxsfb_pipe_enable_vblank, > + .disable_vblank = mxsfb_pipe_disable_vblank, > }; > > static int mxsfb_load(struct drm_device *drm, unsigned long flags) > @@ -274,33 +300,11 @@ static void mxsfb_lastclose(struct drm_device *drm) > drm_fbdev_cma_restore_mode(mxsfb->fbdev); > } > > -static int mxsfb_enable_vblank(struct drm_device *drm, unsigned int crtc) > -{ > - struct mxsfb_drm_private *mxsfb = drm->dev_private; > - > - /* Clear and enable VBLANK IRQ */ > - mxsfb_enable_axi_clk(mxsfb); > - writel(CTRL1_CUR_FRAME_DONE_IRQ, mxsfb->base + LCDC_CTRL1 + REG_CLR); > - writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, mxsfb->base + LCDC_CTRL1 + REG_SET); > - mxsfb_disable_axi_clk(mxsfb); > - > - return 0; > -} > - > -static void mxsfb_disable_vblank(struct drm_device *drm, unsigned int crtc) > +static void mxsfb_irq_preinstall(struct drm_device *drm) > { > struct mxsfb_drm_private *mxsfb = drm->dev_private; > > - /* Disable and clear VBLANK IRQ */ > - mxsfb_enable_axi_clk(mxsfb); > - writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, mxsfb->base + LCDC_CTRL1 + REG_CLR); > - writel(CTRL1_CUR_FRAME_DONE_IRQ, mxsfb->base + LCDC_CTRL1 + REG_CLR); > - mxsfb_disable_axi_clk(mxsfb); > -} > - > -static void mxsfb_irq_preinstall(struct drm_device *drm) > -{ > - mxsfb_disable_vblank(drm, 0); > + mxsfb_pipe_disable_vblank(&mxsfb->pipe); > } > > static irqreturn_t mxsfb_irq_handler(int irq, void *data) > @@ -333,8 +337,6 @@ static struct drm_driver mxsfb_driver = { > .irq_handler = mxsfb_irq_handler, > .irq_preinstall = mxsfb_irq_preinstall, > .irq_uninstall = mxsfb_irq_preinstall, > - .enable_vblank = mxsfb_enable_vblank, > - .disable_vblank = mxsfb_disable_vblank, > .gem_free_object_unlocked = drm_gem_cma_free_object, > .gem_vm_ops = &drm_gem_cma_vm_ops, > .dumb_create = drm_gem_cma_dumb_create, > -- Best regards, Marek Vasut