Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp638061ybb; Thu, 28 Mar 2019 09:14:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqx658Ny6qqfq72JllLn3AKSEOKlA4fhf7XOULnB82fO3huQTKT2YzeFyBjorEMYoUnNocOP X-Received: by 2002:a17:902:47c2:: with SMTP id d2mr15223309plh.277.1553789669860; Thu, 28 Mar 2019 09:14:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553789669; cv=none; d=google.com; s=arc-20160816; b=QioavhuCHWIqDIww8cvYttr6GH502SvlzjQd/YL7LX2bqElj3/QjkQWx+KixeIn/Zd HhFqceByqzUJrM5X8rXrPg0m4oLFphME3oWiyvTq3GETGi6/Vmq2QvMe1TI4dbu+j5U1 YREEhqU+yUe0O+p9z061R4xEGXnZtRdRu9uUEda7dIh8D9LN2yZbiMz9GZSYJE2rT1Xa 7zaGPib18tkD0pxRfN5FDXFqJR/aTplDNiuZsOEd1hEI2YYh2YvZ2gRW2vgGkdzsA6js 3rm2/K4R3nD3GZf72b7kyyIrxrPwlYhitMuBUI0ChM8Yi6CQQPGeHOYx9UsYKNPzTcEN tprQ== 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=edtsHuqEH4F8s6l82aaguD+gQmN05WAijTpeVTzG0sw=; b=nxVDg5HeayBqE13X3GwqR0loP4eSo5AMx7veIHmxY94nCc3w2F67ziDOXHTgmrBh3I V8hCJRwoCeBQsdeytV2rv1YHvA8y4gZgcXP3hnF+otbyQilhRXUsACp87AYqE9RSWGqF 5XKV55bWqfhMQXCPI+8Yrd9tFxz0wvX6a2YyUVBdb2r5gffRRc4AREdrqbtQ2Dc665XC KxpzrN7rLNpz1icpulyxb9oxDut8+f7sTPfWwx7HkdPeBLUMajXzLJpxA+VUgslLjKfc xvAZGUrANMRgkthOVEHm0S1B8fNfVbDgTJP29qMghBtm01rUD7LwUGFTiKOEoSitxiAJ eqtg== 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 h18si19611388pgj.430.2019.03.28.09.14.14; Thu, 28 Mar 2019 09:14:29 -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 S1727474AbfC1QNb (ORCPT + 99 others); Thu, 28 Mar 2019 12:13:31 -0400 Received: from relay10.mail.gandi.net ([217.70.178.230]:56653 "EHLO relay10.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726108AbfC1QNa (ORCPT ); Thu, 28 Mar 2019 12:13:30 -0400 Received: from localhost.localdomain (aaubervilliers-681-1-91-136.w90-88.abo.wanadoo.fr [90.88.32.136]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay10.mail.gandi.net (Postfix) with ESMTPSA id A1B69240009; Thu, 28 Mar 2019 16:13:26 +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 v3 1/2] drm/file: Rehabilitate the firstopen hook for non-legacy drivers Date: Thu, 28 Mar 2019 17:13:05 +0100 Message-Id: <20190328161306.22757-2-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190328161306.22757-1-paul.kocialkowski@bootlin.com> References: <20190328161306.22757-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 Reviewed-by: Eric Anholt --- drivers/gpu/drm/drm_file.c | 3 +-- include/drm/drm_drv.h | 3 --- 2 files changed, 1 insertion(+), 5 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..de5637494503 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -234,9 +234,6 @@ struct drm_driver { * kernel driver does not really own the hardware. Instead ownershipe is * handled with the help of userspace through an inheritedly racy dance * 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. */ void (*lastclose) (struct drm_device *); -- 2.21.0