From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACC71C4338F for ; Thu, 5 Aug 2021 20:39:58 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5F36F60BD3 for ; Thu, 5 Aug 2021 20:39:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5F36F60BD3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZJhFIvnTRcJz+zeqE/VCpqM5wrsMeMWCVn9LiJsyHWc=; b=iv0peNacrGxVFvDpMnNBdNv7tL rKRURQWkRsH87tju6s/uHJMe2UbJBn5LniZfGc89wO0qOPLOUIHu4OS+7SZHsjWZRyVtHBbKXKc6B xCtfR5MoWn/yOU+YoNY9pmUjwf66gSYbUKpvP2C3p3GVNysqDB134A+EWkTDnHsylAVScmdw6XhZA 9T5IUsSV+Opl8LCNGa+l8tmv9DMBeue6wkY5/c6XQnhClglMSI6PWltqkVv6sWrk4G1WTxicjtnz3 xi4A3IwzDCJZ6RyqpLHfTSOhHDbB1aKPg5t8Yoq+9NH8vRm+tzbrxDutYek/l/ICDpwV7saXyONK1 Qejz261A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mBk7a-00AjR9-51; Thu, 05 Aug 2021 20:37:42 +0000 Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mBk7U-00AjPr-JI for linux-arm-kernel@lists.infradead.org; Thu, 05 Aug 2021 20:37:39 +0000 Received: by mail-lj1-x229.google.com with SMTP id h9so8808026ljq.8 for ; Thu, 05 Aug 2021 13:37:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=PCb9Vg4MNIfx8MIl3EhLdxWgZVaYvDp4QlXHnDYweSM=; b=tQmVbTGrDgseUjOuhUpIYNpimj6wcV2Vq0Kb0Wc6BstUtDzG+/1xhTafWKhC0DglsI z/dJdpxxaQoGg8VHB41YpVNWY4ahIGQewaFM+X3M02qdYW2a1vAPQK6012TLFmpWGbPL wMyMGVYwXlXdvFc5mIwzkVLotbPufmDGrwEiu7F6GuneoqNrLa57ts0CcLPsGG2uR3Iq rKzl8EfIFUt8K/x8Rkz5JmY6l1RSXwBGlhS6MOb0A/5UfYuzvxtnyqyJRwuwK//L6cG8 kSdyiN66qxjHPegov9rWzlwSWCMSB2sNir8Q6gTJymKDwmTYn+QJZLQUVkUaMS5XBlXl gq4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=PCb9Vg4MNIfx8MIl3EhLdxWgZVaYvDp4QlXHnDYweSM=; b=JI9XnB9Uqrcb80UlJa9rqqfY6II+pE1I3LqWd+LPLxaNLlX/acWDXwGId/7923GuiR RRbg0X2+3RX1bCBbyNoRsjVLifRiikxnCvovx6oXKSY+D6YYHBtuTd/cbGTbWV12MwK9 Az/la01PDSv6mIlpyKYAPKRjYYxNpKkBy6j5xqpfC6KmWINXQwI0qsfEn34e2QLQ9MlL jcOmOGGfrRIpbZDSOy/uLrSfKXN49ORWPdTuVeN88B4ZxQE+TE/Ou/6wrH5Wne3W3DP6 CW54t4FAOPZmWgw0Zif1+gZT6V6BgzIkb+DqHwq/BNSz/rzzGdovgzr7TmKrGawKF1vY 7gGA== X-Gm-Message-State: AOAM5321JN1tbBiuRoDKj23XS3Q4kwfk3dZa9bQxk7FJ6jF8I5VdU2bo GCG4cLB2Wd1hnYrlzmyCyc0riw== X-Google-Smtp-Source: ABdhPJxFiXjhta4Jq9uuEp6GCTVIh+qj58FU/VuJ36KUv+PjNPN9FiopMbZltk87/KNmzaxNXkhmOg== X-Received: by 2002:a2e:a906:: with SMTP id j6mr4329253ljq.292.1628195853878; Thu, 05 Aug 2021 13:37:33 -0700 (PDT) Received: from [192.168.1.211] ([37.153.55.125]) by smtp.gmail.com with ESMTPSA id j16sm282693ljc.71.2021.08.05.13.37.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 05 Aug 2021 13:37:33 -0700 (PDT) Subject: Re: [PATCH] drm/aperture: Pass DRM driver structure instead of driver name To: Thomas Zimmermann , daniel@ffwll.ch, airlied@redhat.com Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-rockchip@lists.infradead.org, spice-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, intel-gfx@lists.freedesktop.org, virtualization@lists.linux-foundation.org, linux-hyperv@vger.kernel.org, amd-gfx@lists.freedesktop.org References: <20210629135833.22679-1-tzimmermann@suse.de> From: Dmitry Baryshkov Message-ID: Date: Thu, 5 Aug 2021 23:37:32 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <20210629135833.22679-1-tzimmermann@suse.de> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210805_133736_751201_4BA038EA X-CRM114-Status: GOOD ( 32.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 29/06/2021 16:58, Thomas Zimmermann wrote: > Print the name of the DRM driver when taking over fbdev devices. Makes > the output to dmesg more consistent. Note that the driver name is only > used for printing a string to the kernel log. No UAPI is affected by this > change. > > Signed-off-by: Thomas Zimmermann > --- [...] > drivers/gpu/drm/msm/msm_fbdev.c | 2 +- Reviewed-by: Dmitry Baryshkov > drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- > drivers/gpu/drm/qxl/qxl_drv.c | 2 +- > drivers/gpu/drm/radeon/radeon_drv.c | 2 +- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- > drivers/gpu/drm/sun4i/sun4i_drv.c | 2 +- > drivers/gpu/drm/tegra/drm.c | 2 +- > drivers/gpu/drm/tiny/cirrus.c | 2 +- > drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 +- > drivers/gpu/drm/vc4/vc4_drv.c | 2 +- > drivers/gpu/drm/virtio/virtgpu_drv.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- > include/drm/drm_aperture.h | 14 +++++++++----- > 23 files changed, 43 insertions(+), 34 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 6f30c525caac..accf9c1b967a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -1278,7 +1278,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > #endif > > /* Get rid of things like offb */ > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "amdgpudrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &amdgpu_kms_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c > index dab0a1f0983b..31925ae3ab72 100644 > --- a/drivers/gpu/drm/armada/armada_drv.c > +++ b/drivers/gpu/drm/armada/armada_drv.c > @@ -95,7 +95,7 @@ static int armada_drm_bind(struct device *dev) > } > > /* Remove early framebuffers */ > - ret = drm_aperture_remove_framebuffers(false, "armada-drm-fb"); > + ret = drm_aperture_remove_framebuffers(false, &armada_drm_driver); > if (ret) { > dev_err(dev, "[" DRM_NAME ":%s] can't kick out simple-fb: %d\n", > __func__, ret); > diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c > index 5aa452b4efe6..86d5cd7b6318 100644 > --- a/drivers/gpu/drm/ast/ast_drv.c > +++ b/drivers/gpu/drm/ast/ast_drv.c > @@ -100,7 +100,7 @@ static int ast_remove_conflicting_framebuffers(struct pci_dev *pdev) > primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW; > #endif > > - return drm_aperture_remove_conflicting_framebuffers(base, size, primary, "astdrmfb"); > + return drm_aperture_remove_conflicting_framebuffers(base, size, primary, &ast_driver); > } > > static int ast_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c > index c828cadbabff..0d232b44ecd7 100644 > --- a/drivers/gpu/drm/bochs/bochs_drv.c > +++ b/drivers/gpu/drm/bochs/bochs_drv.c > @@ -110,7 +110,7 @@ static int bochs_pci_probe(struct pci_dev *pdev, > return -ENOMEM; > } > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "bochsdrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &bochs_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/drm_aperture.c b/drivers/gpu/drm/drm_aperture.c > index 9335d9d6cf9a..9ac39cf11694 100644 > --- a/drivers/gpu/drm/drm_aperture.c > +++ b/drivers/gpu/drm/drm_aperture.c > @@ -33,6 +33,10 @@ > * > * .. code-block:: c > * > + * static const struct drm_driver example_driver = { > + * ... > + * }; > + * > * static int remove_conflicting_framebuffers(struct pci_dev *pdev) > * { > * bool primary = false; > @@ -46,7 +50,7 @@ > * #endif > * > * return drm_aperture_remove_conflicting_framebuffers(base, size, primary, > - * "example driver"); > + * &example_driver); > * } > * > * static int probe(struct pci_dev *pdev) > @@ -274,7 +278,7 @@ static void drm_aperture_detach_drivers(resource_size_t base, resource_size_t si > * @base: the aperture's base address in physical memory > * @size: aperture size in bytes > * @primary: also kick vga16fb if present > - * @name: requesting driver name > + * @req_driver: requesting DRM driver > * > * This function removes graphics device drivers which use memory range described by > * @base and @size. > @@ -283,7 +287,7 @@ static void drm_aperture_detach_drivers(resource_size_t base, resource_size_t si > * 0 on success, or a negative errno code otherwise > */ > int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size, > - bool primary, const char *name) > + bool primary, const struct drm_driver *req_driver) > { > #if IS_REACHABLE(CONFIG_FB) > struct apertures_struct *a; > @@ -296,7 +300,7 @@ int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_ > a->ranges[0].base = base; > a->ranges[0].size = size; > > - ret = remove_conflicting_framebuffers(a, name, primary); > + ret = remove_conflicting_framebuffers(a, req_driver->name, primary); > kfree(a); > > if (ret) > @@ -312,7 +316,7 @@ EXPORT_SYMBOL(drm_aperture_remove_conflicting_framebuffers); > /** > * drm_aperture_remove_conflicting_pci_framebuffers - remove existing framebuffers for PCI devices > * @pdev: PCI device > - * @name: requesting driver name > + * @req_driver: requesting DRM driver > * > * This function removes graphics device drivers using memory range configured > * for any of @pdev's memory bars. The function assumes that PCI device with > @@ -321,7 +325,8 @@ EXPORT_SYMBOL(drm_aperture_remove_conflicting_framebuffers); > * Returns: > * 0 on success, or a negative errno code otherwise > */ > -int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, const char *name) > +int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, > + const struct drm_driver *req_driver) > { > resource_size_t base, size; > int bar, ret = 0; > @@ -339,7 +344,7 @@ int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, const > * otherwise the vga fbdev driver falls over. > */ > #if IS_REACHABLE(CONFIG_FB) > - ret = remove_conflicting_pci_framebuffers(pdev, name); > + ret = remove_conflicting_pci_framebuffers(pdev, req_driver->name); > #endif > if (ret == 0) > ret = vga_remove_vgacon(pdev); > diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > index f4bc5386574a..6f0297b854f2 100644 > --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > @@ -314,7 +314,7 @@ static int hibmc_pci_probe(struct pci_dev *pdev, > struct drm_device *dev; > int ret; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "hibmcdrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &hibmc_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/hyperv/hyperv_drm_drv.c b/drivers/gpu/drm/hyperv/hyperv_drm_drv.c > index eb06c92c4bfd..cd818a629183 100644 > --- a/drivers/gpu/drm/hyperv/hyperv_drm_drv.c > +++ b/drivers/gpu/drm/hyperv/hyperv_drm_drv.c > @@ -82,7 +82,7 @@ static int hyperv_setup_gen1(struct hyperv_drm_device *hv) > return -ENODEV; > } > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "hypervdrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &hyperv_driver); > if (ret) { > drm_err(dev, "Not able to remove boot fb\n"); > return ret; > @@ -127,7 +127,7 @@ static int hyperv_setup_gen2(struct hyperv_drm_device *hv, > drm_aperture_remove_conflicting_framebuffers(screen_info.lfb_base, > screen_info.lfb_size, > false, > - "hypervdrmfb"); > + &hyperv_driver); > > hv->fb_size = (unsigned long)hv->mmio_megabytes * 1024 * 1024; > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 850b499c71c8..62327c15f457 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -562,7 +562,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv) > if (ret) > goto err_perf; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "inteldrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, dev_priv->drm.driver); > if (ret) > goto err_ggtt; > > diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c > index a7388bf7c838..3d0ccc7eef1b 100644 > --- a/drivers/gpu/drm/meson/meson_drv.c > +++ b/drivers/gpu/drm/meson/meson_drv.c > @@ -285,7 +285,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) > * Remove early framebuffers (ie. simplefb). The framebuffer can be > * located anywhere in RAM > */ > - ret = drm_aperture_remove_framebuffers(false, "meson-drm-fb"); > + ret = drm_aperture_remove_framebuffers(false, &meson_driver); > if (ret) > goto free_drm; > > diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c > index a701d9563257..36d1bfb3213f 100644 > --- a/drivers/gpu/drm/mgag200/mgag200_drv.c > +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c > @@ -342,7 +342,7 @@ mgag200_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > struct drm_device *dev; > int ret; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "mgag200drmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &mgag200_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c > index 227404077e39..67fae60f2fa5 100644 > --- a/drivers/gpu/drm/msm/msm_fbdev.c > +++ b/drivers/gpu/drm/msm/msm_fbdev.c > @@ -169,7 +169,7 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev) > } > > /* the fw fb could be anywhere in memory */ > - ret = drm_aperture_remove_framebuffers(false, "msm"); > + ret = drm_aperture_remove_framebuffers(false, dev->driver); > if (ret) > goto fini; > > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index a616cf4573b8..df8a2d92f473 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -738,7 +738,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, > nvkm_device_del(&device); > > /* Remove conflicting drivers (vesafb, efifb etc). */ > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "nouveaufb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver_pci); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c > index 854e6c5a563f..31f4c86ceb99 100644 > --- a/drivers/gpu/drm/qxl/qxl_drv.c > +++ b/drivers/gpu/drm/qxl/qxl_drv.c > @@ -95,7 +95,7 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > if (ret) > return ret; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "qxl"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &qxl_driver); > if (ret) > goto disable_pci; > > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c > index 8cd135fa6dcd..82ee8244c9b3 100644 > --- a/drivers/gpu/drm/radeon/radeon_drv.c > +++ b/drivers/gpu/drm/radeon/radeon_drv.c > @@ -330,7 +330,7 @@ static int radeon_pci_probe(struct pci_dev *pdev, > return -EPROBE_DEFER; > > /* Get rid of things like offb */ > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "radeondrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &kms_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index b730b8d5d949..17a189bb6bbc 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -116,7 +116,7 @@ static int rockchip_drm_bind(struct device *dev) > int ret; > > /* Remove existing drivers that may own the framebuffer memory. */ > - ret = drm_aperture_remove_framebuffers(false, "rockchip-drm-fb"); > + ret = drm_aperture_remove_framebuffers(false, &rockchip_drm_driver); > if (ret) { > DRM_DEV_ERROR(dev, > "Failed to remove existing framebuffers - %d.\n", > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c > index af335f58bdfc..6bc1c8d6d43b 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -100,7 +100,7 @@ static int sun4i_drv_bind(struct device *dev) > drm->irq_enabled = true; > > /* Remove early framebuffers (ie. simplefb) */ > - ret = drm_aperture_remove_framebuffers(false, "sun4i-drm-fb"); > + ret = drm_aperture_remove_framebuffers(false, &sun4i_drv_driver); > if (ret) > goto cleanup_mode_config; > > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index f96c237b2242..2c8fc14bba1f 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -1204,7 +1204,7 @@ static int host1x_drm_probe(struct host1x_device *dev) > > drm_mode_config_reset(drm); > > - err = drm_aperture_remove_framebuffers(false, "tegradrmfb"); > + err = drm_aperture_remove_framebuffers(false, &tegra_drm_driver); > if (err < 0) > goto hub; > > diff --git a/drivers/gpu/drm/tiny/cirrus.c b/drivers/gpu/drm/tiny/cirrus.c > index 42611dacde88..a8b476a59c0d 100644 > --- a/drivers/gpu/drm/tiny/cirrus.c > +++ b/drivers/gpu/drm/tiny/cirrus.c > @@ -550,7 +550,7 @@ static int cirrus_pci_probe(struct pci_dev *pdev, > struct cirrus_device *cirrus; > int ret; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "cirrusdrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &cirrus_driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/vboxvideo/vbox_drv.c b/drivers/gpu/drm/vboxvideo/vbox_drv.c > index 6d4b32da9866..879a2445cc44 100644 > --- a/drivers/gpu/drm/vboxvideo/vbox_drv.c > +++ b/drivers/gpu/drm/vboxvideo/vbox_drv.c > @@ -43,7 +43,7 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > if (!vbox_check_supported(VBE_DISPI_ID_HGSMI)) > return -ENODEV; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "vboxvideodrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index 8a60fb8ad370..73335feb712f 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -265,7 +265,7 @@ static int vc4_drm_bind(struct device *dev) > if (ret) > goto unbind_all; > > - ret = drm_aperture_remove_framebuffers(false, "vc4drmfb"); > + ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver); > if (ret) > goto unbind_all; > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c b/drivers/gpu/drm/virtio/virtgpu_drv.c > index ca77edbc5ea0..ed85a7863256 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.c > @@ -57,7 +57,7 @@ static int virtio_gpu_pci_quirk(struct drm_device *dev, struct virtio_device *vd > vga ? "virtio-vga" : "virtio-gpu-pci", > pname); > if (vga) { > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "virtiodrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver); > if (ret) > return ret; > } > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > index 086dc75e7b42..40864ce19ae1 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > @@ -1574,7 +1574,7 @@ static int vmw_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > struct vmw_private *vmw; > int ret; > > - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "svgadrmfb"); > + ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver); > if (ret) > return ret; > > diff --git a/include/drm/drm_aperture.h b/include/drm/drm_aperture.h > index 6c148078780c..7096703c3949 100644 > --- a/include/drm/drm_aperture.h > +++ b/include/drm/drm_aperture.h > @@ -6,20 +6,22 @@ > #include > > struct drm_device; > +struct drm_driver; > struct pci_dev; > > int devm_aperture_acquire_from_firmware(struct drm_device *dev, resource_size_t base, > resource_size_t size); > > int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size, > - bool primary, const char *name); > + bool primary, const struct drm_driver *req_driver); > > -int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, const char *name); > +int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, > + const struct drm_driver *req_driver); > > /** > * drm_aperture_remove_framebuffers - remove all existing framebuffers > * @primary: also kick vga16fb if present > - * @name: requesting driver name > + * @req_driver: requesting DRM driver > * > * This function removes all graphics device drivers. Use this function on systems > * that can have their framebuffer located anywhere in memory. > @@ -27,9 +29,11 @@ int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, const > * Returns: > * 0 on success, or a negative errno code otherwise > */ > -static inline int drm_aperture_remove_framebuffers(bool primary, const char *name) > +static inline int > +drm_aperture_remove_framebuffers(bool primary, const struct drm_driver *req_driver) > { > - return drm_aperture_remove_conflicting_framebuffers(0, (resource_size_t)-1, primary, name); > + return drm_aperture_remove_conflicting_framebuffers(0, (resource_size_t)-1, primary, > + req_driver); > } > > #endif > -- With best wishes Dmitry _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel