Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp688593img; Wed, 20 Mar 2019 08:49:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqwrDP81jYUMoGbQaUiQDcYZE6Mdo2Npc60w8k+E6AEmJ7eWNJ/4+9UPeXgjR8TsapZ3TB0e X-Received: by 2002:a63:e801:: with SMTP id s1mr29271992pgh.378.1553096978399; Wed, 20 Mar 2019 08:49:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553096978; cv=none; d=google.com; s=arc-20160816; b=VhI4ernptShlZMDh8kQufxrQw5YbRntxwJ4i2C3MN19CGv078lRAKIYYuVATbHxCEh rIpGIIx6ZmZ/8Bj3rBRTiDODn6GiKpUqyjk/+sY97LHVjGMvfiINUjMfC+IoKJY1LUy2 rh+kssZ4GU5mx4mx3pqHQZMwoTazI/M1mNDR9ck4lTjLRylZNfQU3/eyA0srjyCXEfn+ 10PaTy+4upnOiLShYJRdMi/Du6+6HEqDUuJiMrYdxXXmk/88wZ5NoCEIFODdSvJLCwXx E5dU8DQQepW2+X79knHETK3QSUViJ5LCMWC28m29cg13zfexBB7lRLzv5pXnDCriJT6C TFXA== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=uz0Th7JFEBYmy9VrxoYV/bqf3pSwIXsoeZB9jmYo5TQ=; b=bBFrcO6Sf3H/eP+xouENqHaXohBI/KVrtYmNDwDxHsGf8I3qN6sWdr5qt2L7rjHkFI WVRc3dM9l3Qs4YRePcFv7WogteXU3SiEgBc3Oe0E5PLC5FI3Zqps0d5x/k424pF4ambi +hnlY0zPqnMdcBsjWP5tt7n9Vd1kXm3IcJohBJ3fbIee7uRiNRYQHMvkcMt6zDRYoASz bua6VnxBqK2G3reROGH0WZGyDUFks8PP3U4wv0k1y27ZbeKcjwzPRr9ffPonJkIyM9Pd fplrb9/lkhM8v625Zik8PmcD9wFgx/nxKPljDQM1QPG8w0WgA/4eHIEnBfWYTsw979pS 3Cgg== 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 d3si2158988pla.399.2019.03.20.08.49.23; Wed, 20 Mar 2019 08:49:38 -0700 (PDT) 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 S1727122AbfCTPsn (ORCPT + 99 others); Wed, 20 Mar 2019 11:48:43 -0400 Received: from relay7-d.mail.gandi.net ([217.70.183.200]:56971 "EHLO relay7-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726457AbfCTPsj (ORCPT ); Wed, 20 Mar 2019 11:48:39 -0400 X-Originating-IP: 90.88.33.153 Received: from localhost.localdomain (aaubervilliers-681-1-92-153.w90-88.abo.wanadoo.fr [90.88.33.153]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 1EF992000D; Wed, 20 Mar 2019 15:48:36 +0000 (UTC) From: Paul Kocialkowski To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Eric Anholt , Eben Upton , Thomas Petazzoni , Paul Kocialkowski Subject: [PATCH v2 1/2] drm/file: Rehabilitate the firstopen hook for non-legacy drivers Date: Wed, 20 Mar 2019 16:48:08 +0100 Message-Id: <20190320154809.14823-2-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190320154809.14823-1-paul.kocialkowski@bootlin.com> References: <20190320154809.14823-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The firstopen DRM driver hook was initially used to perform hardware initialization, which is now considered legacy. Only a single user of firstopen remains at this point (savage). In some specific cases, non-legacy drivers may also need to implement these hooks. For instance on VC4, we need to allocate a 16 MiB buffer for the GPU. Because it's not required for fbcon, it's a waste to allocate it before userspace starts using the DRM device. Using firstopen and lastclose for this allocation seems like the best fit, so re-habilitate the hook to allow it to be called for non-legacy drivers. Signed-off-by: Paul Kocialkowski --- drivers/gpu/drm/drm_file.c | 3 +-- include/drm/drm_drv.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c index b1838a41ad43..c011b5cbfb6b 100644 --- a/drivers/gpu/drm/drm_file.c +++ b/drivers/gpu/drm/drm_file.c @@ -266,8 +266,7 @@ static int drm_setup(struct drm_device * dev) { int ret; - if (dev->driver->firstopen && - drm_core_check_feature(dev, DRIVER_LEGACY)) { + if (dev->driver->firstopen) { ret = dev->driver->firstopen(dev); if (ret != 0) return ret; diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index ca46a45a9cce..aa14607e54d4 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -236,7 +236,7 @@ struct drm_driver { * to set/unset the VT into raw mode. * * Legacy drivers initialize the hardware in the @firstopen callback, - * which isn't even called for modern drivers. + * modern drivers can use it for other purposes only. */ void (*lastclose) (struct drm_device *); -- 2.21.0