Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp41272imm; Tue, 19 Jun 2018 15:31:14 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLxooOnPDhK1LakjeS1eHMLz7/ztZkem3Y+iGPS0HLl+LeEBppNWsLMTueFdripA3s2aOso X-Received: by 2002:a17:902:aa48:: with SMTP id c8-v6mr20821422plr.132.1529447474342; Tue, 19 Jun 2018 15:31:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529447474; cv=none; d=google.com; s=arc-20160816; b=ssxWSkeyBEWuMvfr0+n4IOguFy0a2sWIkAAGYdIUXCzQD2cN7WvWOCQvWajTR3zaMI 7KmyqhgbLHbwNzDpZlOzTMPHvGbeGi6v8uGjchIVc/OI0ZMiacWsZszlVGmHtynAntL8 uuI3JjDYTSQ3ueJzCsX6Y0VlH51uNpLamyh1n/N16ynsThUXGbTbcqbvbpvxB7kgJcaX M/nfK2DI6K0kvS7vAYvSE66HxeX+xWwzyiacB602GlTAVynMeDaCSYXDixjA8DNmjjGZ vtL8AKvO84Ky21wljbYga/OIyAKjBHzMGofE0640oPbpwmd+vjgiJDVSSRZAxHMfXkdO hC1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=RkcIvkyEFReCaHAg/pfQHOo76u9fAL2Ucet4c89DdXc=; b=ehZDUGfq1Ni6X5M4VoceS1v5SSQiEz2OfRdoqWevDE4XhwG6hxiEBWVIqYPeLkqY+2 m7+HbNB7+K29B1c9MvEnOnIEdXQMvBRlvftwvrim9bjRF0PG6vKICpWqd2AcBZLNTwqd fMkMc2hpxa+7zB1AiM3DLTHVTk5FFAkWurN68ckft/WoW/81cCsXXistviBXrucMFqqx s5C3+EmWG6rqoiesMqpe/hfznKyqW6/mNL75rMV7JLC2MNqal4MTYeVhl+uQCf6L4FJZ AW2RS12F9t7dgq8bAgcyphUGMt6sb1Abg1aLhJrbFQEhtkRMndXwaJ6Bctdi9tNgrpTB e3xQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=nvls6NGV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x9-v6si714058plo.368.2018.06.19.15.31.00; Tue, 19 Jun 2018 15:31:14 -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; dkim=pass header.i=@kernel.org header.s=default header.b=nvls6NGV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754002AbeFSW31 (ORCPT + 99 others); Tue, 19 Jun 2018 18:29:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:43596 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753622AbeFSW3X (ORCPT ); Tue, 19 Jun 2018 18:29:23 -0400 Received: from localhost (unknown [146.7.4.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D2BD020661; Tue, 19 Jun 2018 22:29:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1529447363; bh=IWEjH3mLpik6iZt/Cn3+qAeFrcx5VD6bbaCL65P28Vk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nvls6NGVl1lG/VCoMnG3Tlg1jhlvX/6Y8GrQKF7RnwUJmZpXlLs975vbbwtiAINJX yK2OkoE6iIlGKI9ADICOnxZC1JdQSoHQQrm826aVTJHzpgEtj4/seZUpeW3IdzlQhF kIT0g8meYZJGOcVgmk+1IInTJhmdK60/k0IANfgQ= Date: Tue, 19 Jun 2018 17:29:22 -0500 From: Bjorn Helgaas To: Sinan Kaya Cc: linux-fbdev@vger.kernel.org, timur@codeaurora.org, Bartlomiej Zolnierkiewicz , linux-arm-msm@vger.kernel.org, open list , "open list:FRAMEBUFFER LAYER" , Peter Jones , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V2 2/2] efi/fb: Convert PCI bus address to resource if translated by the bridge Message-ID: <20180619222921.GA90490@bhelgaas-glaptop.roam.corp.google.com> References: <1526653072-7153-1-git-send-email-okaya@codeaurora.org> <1526653072-7153-2-git-send-email-okaya@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1526653072-7153-2-git-send-email-okaya@codeaurora.org> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Minor subject nit: From the caller's point of view, we must convert a bus address to a resource *always* (the caller has no knowledge of "whether it is translated by the host bridge"). On Fri, May 18, 2018 at 10:17:51AM -0400, Sinan Kaya wrote: > A host bridge is allowed to remap BAR addresses using _TRA attribute in > _CRS windows. Also, _TRA/_CRS are ACPI-specific terms and non-ACPI host bridges can also do the same sort of translation. Another trivial nit. > pci_bus 0000:00: root bus resource [mem 0x80100100000-0x8011fffffff window] (bus address [0x00100000-0x1fffffff]) > pci 0000:02:00.0: reg 0x10: [mem 0x8011e000000-0x8011effffff] > > When a VGA device is behind such a host bridge and the resource is > translated efifb driver is trying to do ioremap against bus address > rather than the resource address and is failing to probe. > > efifb: probing for efifb > efifb: cannot reserve video memory at 0x1e000000 > efifb: framebuffer at 0x1e000000, using 1920k, total 1875k > efifb: mode is 800x600x32, linelength=3200, pages=1 > efifb: scrolling: redraw > efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0 > > Use the host bridge offset information to convert bus address to > resource address in the fixup. > > Signed-off-by: Sinan Kaya Reviewed-by: Bjorn Helgaas Thanks a lot for fixing this! > --- > drivers/video/fbdev/efifb.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c > index 6daac8d..429cc85 100644 > --- a/drivers/video/fbdev/efifb.c > +++ b/drivers/video/fbdev/efifb.c > @@ -431,6 +431,7 @@ static void efifb_fixup_resources(struct pci_dev *dev) > .end = screen_info.lfb_base + screen_info.lfb_size - 1, > .flags = IORESOURCE_MEM, > }; > + struct pci_bus_region region; > int i; > > if (efifb_pci_dev || screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) > @@ -442,6 +443,10 @@ static void efifb_fixup_resources(struct pci_dev *dev) > if (!screen_res.start) > return; > > + region.start = screen_res.start; > + region.end = screen_res.end; > + pcibios_bus_to_resource(dev->bus, &screen_res, ®ion); > + > for (i = 0; i <= PCI_STD_RESOURCE_END; i++) { > struct resource *res = &dev->resource[i]; > > -- > 2.7.4 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel