From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933598AbcHaLpm (ORCPT ); Wed, 31 Aug 2016 07:45:42 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:53190 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932341AbcHaLpk (ORCPT ); Wed, 31 Aug 2016 07:45:40 -0400 From: Arnd Bergmann To: Dongdong Liu Cc: helgaas@kernel.org, rafael@kernel.org, Lorenzo.Pieralisi@arm.com, tn@semihalf.com, wangzhou1@hisilicon.com, pratyush.anand@gmail.com, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, jcm@redhat.com, gabriele.paoloni@huawei.com, charles.chenxin@huawei.com, hanjun.guo@linaro.org, linuxarm@huawei.com Subject: Re: [RFC PATCH V2 1/3] PCI: hisi: re-architect Hip05/Hip06 controllers driver to preapare for ACPI Date: Wed, 31 Aug 2016 13:45:24 +0200 Message-ID: <4925807.5nZM1s8II1@wuerfel> User-Agent: KMail/5.1.3 (Linux/4.4.0-34-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <1472644094-82731-2-git-send-email-liudongdong3@huawei.com> References: <1472644094-82731-1-git-send-email-liudongdong3@huawei.com> <1472644094-82731-2-git-send-email-liudongdong3@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:GbAExGHiFZLMhK0MC3OMj+9GQIZ2NS5EmZ8+54KxP1XjU0MA+ZL bYwrAwP+xdwZHH94OjiU3jVgxbraGevOvo3/NS24qHIJkM9IXiJYxKscuT+U/rq/+l3G2tB JCR/bF2gKeK7x/uOtrLgDJ+TogZDitWqX2p3+6tCPo0cCmTBQfHCPB9P1brEyJBvV9et2RW uf+eg91HvAcK17fok/1sA== X-UI-Out-Filterresults: notjunk:1;V01:K0:IVa6EdJ/Kqg=:AJMlK3Zpu+6VA7BDx70qnN OiQ/9XKeTKuyA/uG4lWxgDhgJstBcSYwFkPSy7sUgG77MSVes7+NsXHYp0Hu8UNtJOgcHr5rz SxTsKIC6pzbKgNH1iUM5sHoMzvUE8tlxUvdXi3/UO/E3s9dOnj3WOU/G/nnDjBHvtvcE17o76 HWQVwW5o25bp6Q43A4LHVhxb7I6Yx0XDWQBsqzLmzm1urXprwzRZr0fPMdnvcRbz+KPsAfgCe oKZ0t+4ZvT4ZC8jCF4LE7uDXJn33nqbUFk19gmVr07Rb2U7PXEyC4a4y3XFzfqfGX4KIV2qtW vJHFhKM3qDwlD4ncpD6F9ETwmSfsK9alGenXInO2g8XiQmlQy79oW2st5civ6pZ0wI8TqNC2O Nu22LuSOvlu7NhVHTMy7keQR4YK//8ULIu9e2NAgkGEakU7fW846NfCwEJb39xOuq9IXL5xzM va6zEb/mgihn7NipvtEPACyAbBZvVn4rdVEVNSrA3+R687be1QIy9XXltOmKTdbX0KO7ZZxlG 6OyySrhb7zjCwCPfOH7+bLNoQR7ps++AbCmi+bQ31BrlAh7nxBvw7Qk8zx43vsYWmcz0J/Wzg 6zJpz+3NAc9Ib8XedZuKieKy1ADlh91MtQX0XWlFVaQN0kIhzPBZ3lCgOBUAFCJWaIwMj6VYp sOuDaEiuncRCgofIwZ9g51NTSpobK+Shx8gt2TRwCBHgV+fhRYSPQ0A0HgnA5wYYRLh+3yEuI FMnaw1Lq39QRb8Pa Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday, August 31, 2016 7:48:12 PM CEST Dongdong Liu wrote: > + > +/* HipXX PCIe host only supports 32-bit config access */ > +int hisi_pcie_common_cfg_read(void __iomem *reg_base, int where, int size, > + u32 *val) > +{ > + u32 reg; > + u32 reg_val; > + void *walker = ®_val; > + > + walker += (where & 0x3); > + reg = where & ~0x3; > + reg_val = readl(reg_base + reg); > + > + if (size == 1) > + *val = *(u8 __force *) walker; > + else if (size == 2) > + *val = *(u16 __force *) walker; What is the __force for? > + else if (size == 4) > + *val = reg_val; > + else > + return PCIBIOS_BAD_REGISTER_NUMBER; > + > + return PCIBIOS_SUCCESSFUL; It looks like you are reimplementing pci_generic_config_read32/pci_generic_config_write32 read here, better use them directly. Arnd