Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2580784pxb; Sat, 25 Sep 2021 11:11:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5vTUkzAYsAw+PgEkw78GwODsRMZv/BmEG4wEdRGM80y2BTppKpGsYSnREpa+6ZVS/J42C X-Received: by 2002:a17:906:2ed1:: with SMTP id s17mr18822607eji.261.1632593462063; Sat, 25 Sep 2021 11:11:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632593462; cv=none; d=google.com; s=arc-20160816; b=fFH+LXCo2t5XFCLlQZbC5gmWu2uiGc5+xQYPoZeBPw3i6Ehq13B1i7L0NShnkb5qP0 tnZP5DBmFygioQw/cD0sbXQQxlAmdVa9UAgjccfWprN55LAOdhbYs97SFiKCgTumOvtz SjQkKcz51g+ks6++KfaEOgxvDPXs6GVJb7F+YJzytXzsk+LJcR60acIpIhLQA7ypm+0M Hu6t0ZELA1U5myIo0EmOvhoInwzQMuEKZZ/s36Jhu0s+5O+gbvZMpJukW0mOWj4V8KqW 5c1OEpjq1IafNVc4ymemSuLtqu2lyDfomu8vb4bZ/rys0GhKGdAqvT+uFN/UsVilaQbB yPOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=WXQl6xYHyo7VmGkogOZ2uCBbLxqiVuqGmz8mDC3PsVE=; b=HPm+KQ10mEiAxer1s+mnRJgf2pfceW35VDinbKJ4Q7v4Z3zdE1fWd2vTJ7o256ktlq AcUEI7P8MlzDYFqyUagczkS69HUkQxJjbKP4ExLinqNGgRJFcOYny69UPQ2Pb2ufh2is IpcDcFg99Q3P/xLHYZBzw0OPPRp3pTz3NrRvbxA5cQZxmnGgSN1RhOFZqu/nnBC0Md3B XaWUH+hyOYn2YXxoFdETFQuLNyVJA67TAj9BAMwLNwPIhZ5O9BfnhNsFtZxaGcJ1ihQh r77DIRmaNktwUUFcc08jWVmaBNLYhWZTYNytOc/Bi3RoSgF02MIIbSmOxm8cVruR2TIY hTQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=RyN3JIcF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w20si13660452ejv.231.2021.09.25.11.10.37; Sat, 25 Sep 2021 11:11:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=RyN3JIcF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229705AbhIYSKr (ORCPT + 99 others); Sat, 25 Sep 2021 14:10:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229608AbhIYSKq (ORCPT ); Sat, 25 Sep 2021 14:10:46 -0400 Received: from mail-ua1-x92e.google.com (mail-ua1-x92e.google.com [IPv6:2607:f8b0:4864:20::92e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94098C061570; Sat, 25 Sep 2021 11:09:11 -0700 (PDT) Received: by mail-ua1-x92e.google.com with SMTP id r8so9016069uap.0; Sat, 25 Sep 2021 11:09:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WXQl6xYHyo7VmGkogOZ2uCBbLxqiVuqGmz8mDC3PsVE=; b=RyN3JIcFIRv5HcRDNmaJXs0sPVG3iaG8G4p6T/woxXGgGDJyMVky1Qb/UdpUe30KJp +hwj4SYJX0Tw1JdrdDpGF/QUcAK+lytw0/3KVJ9fUqYtKMmkuOFVTog++LIeIaMjRxS7 MZyJiwfHQKgjw8GA1vEN/Hl+oWlY0zowHuq/qzYf3/OFMlDArg8wn5JMV5u42l16ffzp 0ABIgaTD7jLtYx9l8N0BMAGl1kORu+SiMXzfANpYHmATBYEk8Um3/gLgPVnsbWycguiI 3qNezo/MTSpomvZBgS72bkv5xg9MStyz0oYiGvuAtJn2HxHVPU1uFS29ywB9WDpIQE8z kNzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WXQl6xYHyo7VmGkogOZ2uCBbLxqiVuqGmz8mDC3PsVE=; b=riK0wT1tPyVChYuQ6rhtX+rgpdfYeG5I+r2C/nRX72xmRLResokX5gKU7T5/YT63uD fASR0huV6CWB/0UXznM7UzAaAMfWabZj37hLHsI+X06wfpo8RkVef/HZzrOWo2CxEphe 37ydko7wlJ52YsVyARr4epg1rUv7ji7LCFvQkI+OHWIwqejWB4aYv4iLlZXipRW4lYAN P6tpn3dlzz4qRM70tm0oU5DvRTqsTRHE39jLd6hvQl/C6ndUD60im2V+IW1vkKpsRx+d e0XClttxJMZuDPYjI/PB9iQXGnBhmTbl+FQMz0KTKHKtN7h7Ba+aqyv6PHkXkQvly0Fm G85A== X-Gm-Message-State: AOAM532For2f81c2ZytlWFLJ1Bh2dVsnqEdYNGeo5jYSM5Jl7UGG6/Mj hI8LvXgp9Xf3d55VufcqPhz0bPAwGZOOcZYTczzW6dROKmY= X-Received: by 2002:ab0:538b:: with SMTP id k11mr11610115uaa.131.1632593350651; Sat, 25 Sep 2021 11:09:10 -0700 (PDT) MIME-Version: 1.0 References: <20210924211139.3477-1-sergio.paracuellos@gmail.com> <20210924211139.3477-6-sergio.paracuellos@gmail.com> In-Reply-To: From: Sergio Paracuellos Date: Sat, 25 Sep 2021 20:08:58 +0200 Message-ID: Subject: Re: [PATCH 5/6] MIPS: implement architecture dependent 'pci_remap_iospace()' To: Arnd Bergmann Cc: Thomas Bogendoerfer , Rob Herring , Catalin Marinas , Liviu Dudau , Bjorn Helgaas , Matthias Brugger , gregkh , "open list:BROADCOM NVRAM DRIVER" , linux-pci , linux-staging@lists.linux.dev, NeilBrown , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Arnd, On Sat, Sep 25, 2021 at 7:32 PM Arnd Bergmann wrote: > > On Fri, Sep 24, 2021 at 11:11 PM Sergio Paracuellos > wrote: > > > > To make PCI IO work we need to properly virtually map IO cpu physical address > > and set this virtual address as the address of the first PCI IO port which > > is set using function 'set_io_port_base()'. > > > > Signed-off-by: Sergio Paracuellos > > Acked-by: Arnd Bergmann Thanks! > > > +int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) > > +{ > > + size_t size = (res->end - res->start) + 1; > > + unsigned long vaddr = (unsigned long)ioremap(phys_addr, size); > > + > > + set_io_port_base(vaddr); > > + return 0; > > +} > > It might be good to check that res->start is zero here, otherwise > the io_port_base would be off. That could happen if you ever have more > than one bridge. Do you mean something like the following? int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) { unsigned long vaddr; size_t size; if (res->start != 0) { // Should I WARN_ONCE or just show an error/warning message?? WARN_ONCE(1, "resource start must be zero\n"); return -ENODEV; } size = (res->end - res->start) + 1; vaddr = (unsigned long)ioremap(phys_addr, size); return 0; } Thanks, Sergio Paracuellos > > Arnd