Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp145543pxb; Wed, 18 Nov 2020 00:11:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJybiM4ShojRfVR4y/ZhOCd4eOINUp7WMSk4kiJdQo73zx6qNNzWMP7Jthn1K0+GSMPueA9w X-Received: by 2002:a17:906:1e84:: with SMTP id e4mr5575639ejj.57.1605687115195; Wed, 18 Nov 2020 00:11:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605687115; cv=none; d=google.com; s=arc-20160816; b=X8Gl/G7y7trtlvnxHt+aspzNBO/iXhNqd4duGKVEHuCkW0tjz4S75/mMPUCBSMwOdm l7ThYcVWiIN0A9rrj8LS74FfxTmmgOFcdDLxj6nU6wq8E/VNYi8hYJYhh27CsaOyOApV ayBWYL0PO5gAM1xGesRMQ/DOc5qEQikMkQo2+cE3F26N80ysLcIlDOyYn+WihZw3m5ap FohjSqoSchN0Du+37s3hwMk7/dwL1zldsdMTznCi8my713KtQnu2kGX/cIdKcNJqRV7Q t351nY5IbWwubdNNWadnsnxWrYDmfUBNra7l1ep6bkd47IYceGi/lD6aehK8SF3SNvaJ uphg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=Vi8h+VhjzXyYP6h2udU8UHe3fX4t8mVS7mb/75FPecY=; b=cC4pEQxJ3z4Yinzbw48jdTgYM0sxywVbp0xHkerblftoSTzuQyZLYU0dnqoQ5AOsqL PKrA9h7JKRIDs9LBkez55eiJfdtnUQrWCEguv/+662CE/A124sdQ7QHbs1nAx1+o+ntc J9AN66Mq8SdyNRdtBecZIqbDxLdBrNATkiM11GieLmrmy7lBse/gWSOBkZMmnzFGPLWG Nj4L12TucB/TbhXq3XlD0CPlXPdAGh1fJtTBd9k+kH4Q2hUzRiAmwAwdkS37SCvdQGq3 aP3cXxCxvHDi3BRQS7Zg+do/kCdP9r8BiIZY02XcWyeZNOPlt8wT0zs97C++JVexE5Yi hs/A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w8si14949422ejv.203.2020.11.18.00.11.32; Wed, 18 Nov 2020 00:11:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726533AbgKRIKP (ORCPT + 99 others); Wed, 18 Nov 2020 03:10:15 -0500 Received: from mx2.suse.de ([195.135.220.15]:38376 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726296AbgKRIKP (ORCPT ); Wed, 18 Nov 2020 03:10:15 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id D1053ABDE; Wed, 18 Nov 2020 08:10:13 +0000 (UTC) Subject: Re: [PATCH] drm: imx: Move fbdev setup to before output polling To: Mark Jonas , Philipp Zabel , David Airlie , Daniel Vetter , Shawn Guo , Sascha Hauer , Fabio Estevam Cc: Leo Ruan , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, NXP Linux Team , Pengutronix Kernel Team , linux-arm-kernel@lists.infradead.org References: <20201117155229.9837-1-mark.jonas@de.bosch.com> From: Thomas Zimmermann Message-ID: Date: Wed, 18 Nov 2020 09:10:13 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201117155229.9837-1-mark.jonas@de.bosch.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Am 17.11.20 um 16:52 schrieb Mark Jonas: > From: Leo Ruan > > The generic fbdev has to be setup before enabling output polling. > Otherwise the fbdev client is not ready to handle delayed events. > > Since f53705fd, the generic fbdev is setup after the output polling > init. During fbdev setup, when fbdev probes attached outputs and a > status changes from unknown to connected, the delayed event is > marked and the output_poll_work thread is scheduled without delay. > If output_poll_execute() is runs immediately, the delayed event > is handled without actually polling the output because the fbdev is not > registered yet. So the delayed event is lost. This leads to a dark > screen until a KMS application (or fbcon) sets the screen mode. > > This patch fixes the issue by moving the setup of generic fbdev before > initializing and enabling output polling. > > Signed-off-by: Leo Ruan > Signed-off-by: Mark Jonas > --- > drivers/gpu/drm/imx/imx-drm-core.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c > index 9bf5ad6d18a2..2665040e11c7 100644 > --- a/drivers/gpu/drm/imx/imx-drm-core.c > +++ b/drivers/gpu/drm/imx/imx-drm-core.c > @@ -240,14 +240,18 @@ static int imx_drm_bind(struct device *dev) > legacyfb_depth = 16; > } > > + /* > + * The generic fbdev has to be setup before enabling output polling. > + * Otherwise the fbdev client is not ready to handle delayed events. > + */ > + drm_fbdev_generic_setup(drm, legacyfb_depth); > + > drm_kms_helper_poll_init(drm); > > ret = drm_dev_register(drm, 0); > if (ret) > goto err_poll_fini; > > - drm_fbdev_generic_setup(drm, legacyfb_depth); > - This does not work well. fbdev is supposed to be another regular DRM client. It has to be enabled after registering the DRM device. I'd rather improve fbdev or the driver to handle this gracefully. Best regards Thomas > return 0; > > err_poll_fini: > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer