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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF58FC4332F for ; Sat, 25 Sep 2021 17:32:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9BAE96108B for ; Sat, 25 Sep 2021 17:32:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229612AbhIYReG (ORCPT ); Sat, 25 Sep 2021 13:34:06 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:37389 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229542AbhIYReF (ORCPT ); Sat, 25 Sep 2021 13:34:05 -0400 Received: from mail-wr1-f47.google.com ([209.85.221.47]) by mrelayeu.kundenserver.de (mreue109 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MxUfn-1mnker1G6j-00xqPp; Sat, 25 Sep 2021 19:32:28 +0200 Received: by mail-wr1-f47.google.com with SMTP id t18so37441161wrb.0; Sat, 25 Sep 2021 10:32:28 -0700 (PDT) X-Gm-Message-State: AOAM532VW9e3tSTXVFytoQOU+xOIztS6vPebbvsQ+0iznf2cd9EAOhk9 Z5ujwgzoynTyLZw0DQp3RKTPgCTzAv3q4eEOqHY= X-Google-Smtp-Source: ABdhPJwATFoMtLfM82dbiwbfY0GKoVgPll7guJJPZ4SlMDyVpnybiZOiHpV2yuRbCNlpS7w6kjrpn7CdgtMxMmMrKi0= X-Received: by 2002:adf:f481:: with SMTP id l1mr18158744wro.411.1632591147944; Sat, 25 Sep 2021 10:32:27 -0700 (PDT) MIME-Version: 1.0 References: <20210924211139.3477-1-sergio.paracuellos@gmail.com> <20210924211139.3477-6-sergio.paracuellos@gmail.com> In-Reply-To: <20210924211139.3477-6-sergio.paracuellos@gmail.com> From: Arnd Bergmann Date: Sat, 25 Sep 2021 19:32:12 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 5/6] MIPS: implement architecture dependent 'pci_remap_iospace()' To: Sergio Paracuellos Cc: Thomas Bogendoerfer , Rob Herring , Arnd Bergmann , Catalin Marinas , Liviu Dudau , Bjorn Helgaas , Matthias Brugger , gregkh , "open list:BROADCOM NVRAM DRIVER" , linux-pci , linux-staging@lists.linux.dev, neil@brown.name, Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:z1A2KwAlDVKgQ9R2BTxeV0qDqwwnA6UG2aXvSweb+1hWygHPTf2 AnBx/YyA+/aCuzOWBAWKXEcvIlKAlmiYjFcFlenk8lGJdjqv7mP0U1q5WA0PngXOcsT21Ic g+XGEKSmGhcbMtS2OTlKpFBYicSW/R05F1UVipkeZDPAMi4W/LjLIJfwXDcj6liLCJajaE1 snpu0joEB9Lbcu1JZejGw== X-UI-Out-Filterresults: notjunk:1;V03:K0:rDk+CQ70ebI=:qVrEYAsiT3PSydjldOOVBZ olzrxDKovhFmI2TFws3jCi1d9YtIUSk8l5ADig0QasAdu8VBOxwYfvhF5qCuTOeX5bv94c8Oz vmo8bYlgMrxJmCPQDeqO2fDF34CVabUNmhHsN9JRq462OVeJEOwoSIwkJ+u7R6aeKJFVqjoeZ HqRuu3gne8me+HWX9nAsHb2cifDWqOOlR8YiFuO2w/fhZFDKbHr7fThHQkVV/5CwQHJU89nb2 6aI68Nuhu/QhYFZbWDwdJaPEW/FCDxtcrTTgkL4HlHclI+rH8UQwWX3zrheplEF+/6McBG6KD xFwAEBBT0H4qj34Z5/c80LpSy8Ld2JZbdRjLU4XF4ZGFFIFGqR0jmGgW14q7mhJuaDDTFZbo5 1ukdeKyjpE79XKLbRGfm5ZeU/QsXhEKaU1F/Mmp6LlNIi4HQAIfpL1Z3u8Dbjtw6rMOXT4l1N qpxE0tqJ8gLFscnNKKwIYme0zcDgwmVxsuVYS9s1/652vbvhik2yKpSGnurnu1qv2oMpLJDET 5d4u/P8s7nRtTTKlX7vVM9lSFvWp2POG6H56CRTbv2iMUL16bIoTvrNveJaKW4PjNllKJN4aB oV9ndXw9U0e34D/jM7bSZwyHlGRfQr0B3MFtjoqshsDIX4ps+h7dWztGOSCeV+KnEqScz+ZAT Kbqyl9FirEY5FXkNut2qM3kUa9vU5l6s1+cA35+otweVhaHf9Ug3FsnopnU5KQ+J2ZzZ6QwGl nAepfokNeJWYl11hQha+NwQVg3CBPBdStZUgHRVKhYEZ+m48MR/j0Y/jBgmqMmKmRghSlXOOP pyCBHeLHm0hQXyEgOnA/OrsO2Q8T4Ug9DE3eH/9gMmqImYkhf6yNYUoCy64txZtn1cuV/9okb ft14OfoWfDWgjrXBhbDQ== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > +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. Arnd From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 950E43FC7 for ; Sat, 25 Sep 2021 17:37:41 +0000 (UTC) Received: from mail-wr1-f45.google.com ([209.85.221.45]) by mrelayeu.kundenserver.de (mreue106 [213.165.67.113]) with ESMTPSA (Nemesis) id 1Mrxjf-1nFMBV1Usn-00o2nb for ; Sat, 25 Sep 2021 19:32:28 +0200 Received: by mail-wr1-f45.google.com with SMTP id w29so37275666wra.8 for ; Sat, 25 Sep 2021 10:32:28 -0700 (PDT) X-Gm-Message-State: AOAM5305N2GOTLeuikHz7rlaPRDOTHWItnSts2OiZ8wuHVIRKJYWv94p or14SOPEKAHICUXichOozfXikclMLGxKAinfRiE= X-Google-Smtp-Source: ABdhPJwATFoMtLfM82dbiwbfY0GKoVgPll7guJJPZ4SlMDyVpnybiZOiHpV2yuRbCNlpS7w6kjrpn7CdgtMxMmMrKi0= X-Received: by 2002:adf:f481:: with SMTP id l1mr18158744wro.411.1632591147944; Sat, 25 Sep 2021 10:32:27 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20210924211139.3477-1-sergio.paracuellos@gmail.com> <20210924211139.3477-6-sergio.paracuellos@gmail.com> In-Reply-To: <20210924211139.3477-6-sergio.paracuellos@gmail.com> From: Arnd Bergmann Date: Sat, 25 Sep 2021 19:32:12 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 5/6] MIPS: implement architecture dependent 'pci_remap_iospace()' To: Sergio Paracuellos Cc: Thomas Bogendoerfer , Rob Herring , Arnd Bergmann , Catalin Marinas , Liviu Dudau , Bjorn Helgaas , Matthias Brugger , gregkh , "open list:BROADCOM NVRAM DRIVER" , linux-pci , linux-staging@lists.linux.dev, neil@brown.name, Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:vEbMx2ATTuXjKB1dAOJnXpPZNN48QoaYVidKQS82i3OSLhhn59+ 5FL7e8k69/QQd/VErAIAL/OZtwVIB3CpnNbXt3fajoACVvPbH0BAdudl6cfDo0CPO/h0Uq0 7WxWp3l+0q16eLdmEMb4g6FZhOJ/8CGgjTn5SmcSwf0ZBH4zCPyEgH+lo2d+XnHfl478DUK acHQwZVRvyBKpDQTOQPhQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:AuFy5ajBSPk=:7kfM42oXOisnPe8prdLGVa oZyCMIgbri6a6VHxt7vOYDnatTBpw4B12T96vhPiBRrBNc79swjYZtip7Pyc35LhftF539PkA MVflHhOe6r+PjlWMUUrGXz8U059VaqzJNesdsI/VN3uv2+T5zXhNGBIIi9UEId32wS8MDuZE4 +rsyANBPUzQikHut2Ea5EDS9K8EnCGBIwkwuLrP616xMR0YThY8hd1KCKfWeeuAR54mKfoi+s s9qi4KVIfoIbv4/FkoGdHnVPn3zPb+qQumiOPtoJ6zcCSqExdkbFNbEbIMxMxvP0s9oE6buC9 AV3q/IOdikrE+L/fdMvWECwmbQfVE7vypeDsPic5lvQOj9qIawN4hCoVdlVXXV7/caCvuYUaa tcc13hAKMcgHl6HD8J66WNGtCOBRZfsPCScbI+Dw+chR7IVKeS2CyjeoVLC8TNciokNRpluGV q2G/winqRgD8nY0OOxR0BF5uXtwk+tnYfRhnKgLmx9Aktlf3xdEiZQCVocAS/gsrAR9YcH6BX LuZESXwmUfu3GmJdo+H3yFOL3/AOV6lx4YOb5X01m4+sfAiW33vWSLq704OdnRDFxipOxK6ee XHeDJlXmulLUPtvMCd44WG9e0KH1/LvNtFkYWYAg4DaOHWyYbgZpvmBhmLBQow7zM1+wbtTqZ fMUJbA9zrzHd4v+SoEFWNYeQiKFD9aKml7dQMY+5V5AabcpRcnLYGJ/rEXY+aYJZmviuaSdFG jhZI6PNDR4ixSdRw47Y64fC9WfT4F4dWadMaBt3TG0WNzUDhmS0dqMF5G9rlA1+Vh9N0sl9Zo aAoXTsT1YFsMZMlVOdb1OEg5eVR+kDvqJVBTpYoGx67G1zibnNOSiThfh0LA40bc3AbgLUIj5 L3GwT5TfQRJyG9CZyvwg== 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 > +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. Arnd