Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3389495imm; Thu, 17 May 2018 08:02:55 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpXyfpxF69F5vjta4VhMc677gBby+Kvf3dKdHJjTQ6uMHWboJ2alnr8wgA7THi2KquvpfuD X-Received: by 2002:a17:902:981:: with SMTP id 1-v6mr5519731pln.11.1526569375650; Thu, 17 May 2018 08:02:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526569375; cv=none; d=google.com; s=arc-20160816; b=gQiBg/AhMjzCaUKjtQTxvxnq4Q2uGXVxplT6tofwbxQC802SBe8IefapN2dnuKGz05 PKP9DtyDGaNT7fCDcW34O3QDHcSyl0rHjuCtO4lwnYRJA6P6XASIpk8gkyfHi3paEH02 ptGP9RPEsFS8g6GdvDhgeMJe8HxsNh+Gm58vcN/K6eaSQ2BMkt2kw52qS5jOYVvXn/1s o/Z4oL1KaDdNGzxsvMNJz+XvJlgixdX17u9qY8v1QzI4mktbSGGhUM1kNBmE8hOF5Qju r59sW/5ubo6Z9qya+d7OOnPBdwZYhuVZIT4IcaW10kJJyr7Bq/dYXzH+kU9rciKHdqV5 uXRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=Rp8Nns1gAwROkK9vREyThznjw1TFeK3HgYqHKqoV/Z4=; b=fb39qYdYtkczNi/RiASgKxXe3QBIjuqUdH4PbTN7XAN47F34MNyvIBVXkNyeAKP4dr QGf1BRKMl0RbGs6Boo6nEY145dM0jyGShRx7W0y5DGRsUdFkjF43tiREqhVDQ6+eTFHt AzSfTgi06cx4U+fKbk5HW7ns49r1HcA9yBfZ88tWl4TmM5WMFhRHlmV1eAaU+IwydY10 pPDAZHJYqIewmL876rrJHV3K9BtKHvVtSTjiJiPqfFUKXbTbwUr84vtt6kw0DzotAFFs wa2NIDIW5AUDNUd4yIh+T1TbTjZHba8dOOyCfsIpP1NyGE2T44OsDHGCjHTZDE5U344F rMuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SyktEMZ0; 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=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id az8-v6si5297518plb.347.2018.05.17.08.01.47; Thu, 17 May 2018 08:02:55 -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=@linaro.org header.s=google header.b=SyktEMZ0; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752354AbeEQPAx (ORCPT + 99 others); Thu, 17 May 2018 11:00:53 -0400 Received: from mail-it0-f66.google.com ([209.85.214.66]:51732 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752279AbeEQPAv (ORCPT ); Thu, 17 May 2018 11:00:51 -0400 Received: by mail-it0-f66.google.com with SMTP id n202-v6so9205175ita.1 for ; Thu, 17 May 2018 08:00:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Rp8Nns1gAwROkK9vREyThznjw1TFeK3HgYqHKqoV/Z4=; b=SyktEMZ0RaJ7sweaGzt3z0G/vcENt4aDGEbYqRkeRe6+V/KzaBpXSNKhcKwrCBVkQn 6dQZQTbwzt64h8lGuA6ZptRvOPFVwONfJ+5mpAifoOajmo6Al2mlFfJfEv2RP6kHuY9n TzAc2zaiAuhPUOh1iUKw0zZoCzMS/sZpIoZX8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Rp8Nns1gAwROkK9vREyThznjw1TFeK3HgYqHKqoV/Z4=; b=nF9DBKnTqj9YEbp0Da/RyhcKcnYwby1NhA7URAl7cBKf2d1dNrjEJqKDG/myeKLDlc OF5x4le/ekhadkgEtX0grqjTu1GNRyNgxgjfYu8vtdppt/NCPBJSpwBYPcV72InQZi/r 3aRv9+RUupAn2DbtT6zpRIF3Z+JYXMcU0y7bXsFQ+qSHR20479xSBcqdAw3RNVCxbc+x OXhq8DRjIlb0tYprNDRNOb6Wb9nCq/mZ7t65Tw8Fcz4fZk74BwqA0tF5wQGGijezNKPN q9VWFERdGhqMDTBtF51qAGEdeLvb0ci8F02arOIjbqx5YAZyQm6ckR9i/ZOVw992LYyW 4DjA== X-Gm-Message-State: ALKqPwcx6OsnamwR8o2Adn5Z7LxV7ufPCpMPkO1ZoKqtGbhkPt8BGvma N8NpiPxsNZsM004IOMf2pMXQXGlUvP2OFRRN73ui3A== X-Received: by 2002:a24:af45:: with SMTP id l5-v6mr3037091iti.106.1526569250294; Thu, 17 May 2018 08:00:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.187.134 with HTTP; Thu, 17 May 2018 08:00:49 -0700 (PDT) In-Reply-To: <20180517145512.cmr3twodfyz7lzon@redhat.com> References: <1526563343-28721-1-git-send-email-okaya@codeaurora.org> <20180517145512.cmr3twodfyz7lzon@redhat.com> From: Ard Biesheuvel Date: Thu, 17 May 2018 17:00:49 +0200 Message-ID: Subject: Re: [PATCH] efi/fb: Convert PCI bus address to resource if translated by the bridge To: Peter Jones Cc: Sinan Kaya , linux-pci , Timur Tabi , linux-arm-msm@vger.kernel.org, linux-arm-kernel , Bartlomiej Zolnierkiewicz , "open list:EFIFB FRAMEBUFFER DRIVER" , "open list:FRAMEBUFFER LAYER" , open list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17 May 2018 at 16:55, Peter Jones wrote: > On Thu, May 17, 2018 at 09:22:23AM -0400, Sinan Kaya wrote: >> A host bridge is allowed to remap BAR addresses using _TRA attribute in >> _CRS windows. >> >> 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 driver is having difficulty locating the base address from BAR >> address when >> >> 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 > > Looks reasonable to me - Ard, do you want to take this up through the > EFI tree? > Sure > Signed-off-by: Peter Jones > I'll take that as a reviewed-by, thanks. >> --- >> drivers/video/fbdev/efifb.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c >> index 46a4484..ea68d5c 100644 >> --- a/drivers/video/fbdev/efifb.c >> +++ b/drivers/video/fbdev/efifb.c >> @@ -428,6 +428,8 @@ static void efifb_fixup_resources(struct pci_dev *dev) >> { >> u64 base = screen_info.lfb_base; >> u64 size = screen_info.lfb_size; >> + struct pci_bus_region region; >> + struct resource res; >> int i; >> >> if (efifb_pci_dev || screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) >> @@ -439,6 +441,14 @@ static void efifb_fixup_resources(struct pci_dev *dev) >> if (!base) >> return; >> >> + region.start = base; >> + region.end = base + size - 1; >> + res.start = 0; >> + res.flags = IORESOURCE_MEM; >> + pcibios_bus_to_resource(dev->bus, &res, ®ion); >> + if (res.start) >> + base = res.start; >> + >> for (i = 0; i <= PCI_STD_RESOURCE_END; i++) { >> struct resource *res = &dev->resource[i]; >> >> -- >> 2.7.4 >> > > -- > Peter