From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757539AbcHZD0K (ORCPT ); Thu, 25 Aug 2016 23:26:10 -0400 Received: from mail-dm3nam03on0062.outbound.protection.outlook.com ([104.47.41.62]:9296 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757325AbcHZD0I (ORCPT ); Thu, 25 Aug 2016 23:26:08 -0400 Authentication-Results: spf=softfail (sender IP is 66.35.236.227) smtp.mailfrom=altera.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=altera.com; From: Ley Foon Tan To: Bjorn Helgaas CC: , , Ley Foon Tan , Ley Foon Tan Subject: [PATCH v4 1/2] PCI: altera: Rework configs accessors Date: Fri, 26 Aug 2016 09:47:24 +0800 Message-ID: <1472176045-27815-2-git-send-email-lftan@altera.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1472176045-27815-1-git-send-email-lftan@altera.com> References: <1472176045-27815-1-git-send-email-lftan@altera.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(189002)(199003)(7846002)(76176999)(5003940100001)(50986999)(5660300001)(356003)(8936002)(189998001)(48376002)(97736004)(11100500001)(107886002)(305945005)(47776003)(110136002)(50466002)(50226002)(92566002)(68736007)(42186005)(106466001)(4001430100002)(626004)(4326007)(8676002)(86362001)(19580405001)(2950100001)(87936001)(81156014)(36756003)(81166006)(105596002)(586003)(33646002)(229853001)(19580395003)(2906002)(7099028);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB1394;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:SoftFail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD037;1:r+0brR17oWYoC/HUiZDM3NChDlu5hKYINanN/61OmPoUDQ88J3XGSR1ihiwgeAUL3hvHe/CPg0K64ir7Cb/HsaW3O6+mSv3cuT+XJf15ztlToscQAfrlvk7unqT9hZNDmOW/9rHN13wkZJJGlJ1xUWXvac9yy0fq2PMf4/kwJriav8tSSUtMa1Lfd8cJLVbIHeJcEV2pvmWyJwrxCbIQ4MdcYGAprC9/fnpZz29ZyEGZQoBAoIRwK54Cz5t9qpZ2kyTdSgxVz7lLPaqDGQ9CHxRV/x+/AUTZeHPhFcwVKLJbVtwBLRbQgkUZ7RFB9zXu80puAymze30u0+bAXDntfq/w4xnSZt8VPyj7yrgOggu6Lgw3Wt15X3uUwSuqom9P8MnipNUTAcOSHgq7flxMZ+vhgcM7FgDIq0QPwBYdex63Yl0fnvl/rWaqjDfpQSvuw/v/iXga/ZhXzi3i4tKPtkar7lX6KC7cgKeGT8/JngpTHdbvKs7BSxZGHBCuUVx3nN5uYOE6rDuvv67zn+hk6b6CWpKixMRszwvNYkrxP3fhoydx2R1PEgGJe+9Jr/oW X-MS-Office365-Filtering-Correlation-Id: c521fb74-bbd0-425a-7e6a-08d3cd52f4af X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB1394;2:GRC3OEbZ8n23ZaX66VixmDK0J57V6U913h3ydFrikl9f/T2d8udWhvxFtjX+L8pOvSNiri3YYJgnsuV8YqIEeSQHW8njRY7oXeZMpgwNOxGNbNPOPD3VwL0NZ2Ld5MD33cVdIkaMk9TGsaGYSUbfihM6IbucUTxiNu/2Tjhfm+9aXdueahdcn6hoM+IB5/Xt;3:pW4P6ii/SWGnd4Gq3jgAO9K0OEihju7vBi1FUN0zTOe+n+dQjVSM1+x/Xd+HUqf22Glnkcz3Ik6g6ipOSnEBZ8w7aUmSxluWB/h6F+jLZ8RCeZyiGQcOGh4K9Y6pqqOwkpZLtThZrDGi2mNh3npur8bPfkyWEFM22UgT+A3aQHpJMtg/WPeQBd+wg6CudXKybbfyJtxn7lGO6kCMIzstEYfHMRoRDH5D/tFDlbTqLsY= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB1394; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB1394;25:rcSQETQ5rMt9KGoaGNVksm0xAU+hw1itq84Iy7NXYY2x1gMswoNIfaVJotOza3dYAIU7WJNHt98FQe+ybvHLjrupV2+wyyH2tSn8HDB5vuTFURYlpDcYL+ulchS8rVad9dCOw2C2geit75C4o2ZDhZ54iK+7EIyCGwlhnj33CHuf1JomRKpNaFgoI1WmXXgKJ0ZaeQb7WGuztX57n0NLPmcxfoNqxPKwojpEf8UYsCD4OZlDu/Xw0MvtJpkL+XH4ozDql1syRGoqVgz3x1qpU9ZQdQ+AXQmKMhur0va4zxWkwUm3LtVo1t0NWgBGLlWBdqqjwdc586RA2KHh65K0HZDUvzoGdlXIg57uRTOu/6zLE43bVW+aAqh4ckuIpFinCHoBfuqpnnEL7iim5rgiTAp1WaiWXHRlVR0pXt5AfbtXKN8MITcUQ/BfTV4Rx0U/6sNEUBEI0cjy8HNt5Aghk3gKoSHHU+XyTt8btYq0R0OIEW/8ZBW3sXObLXOHPSoW2RvEwzSV9Pz4fxIpn6eymuYf+Vbs9U4NtwSPl6q5C6uZH4zEYFj3xYCWBxTO6/yvbeBLKUUCNCXqQ3/eTWtLFmNSdiy6dtnUt7tmlMYEg3RBQ+9EzLfDGlCZvOcd0BMySrGI5PkckkC3ynuqDY/nHYnqh2Q3PDSSfCkozmmGeAnlHqpYQsopx2S7BZ83ztVclUFDWyge1ZZy05E4Ujy1D1LzF51Of8+PhZSkMm09LTs+0tOdum04p08BmMzBHtrI58358XHGLBABcTiqRTmO1Q== X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB1394;31:0FumvJlHQhxIFLJeDbJkwM694icCJ1LNw3aZamx5MHS/h8PBTUwRj4ep3wBRonDUFcUc5irlsUFmGUMqTs2QX2RxAfRc8m+b1Djpl3YPvasBMb8q4U8eFw+woOcZGt/ltw7QXdb1rHOgR0ESTyJnEZ4HXCcvn/NIxkmC+2X3meZRetnvwuegZAnqNxfyrtFbmsSkhy7zLuMoj4hVnY+FRXNO3qxUEqubS/kBH+9q7G4=;20:0mWoCtBWeh5s4Naa6oL0/OtObd9Hnmq9kYoN6E8BjbNyChSGW2nKIjnuV7gT/aDlytB/mmu8ZZiIKINhVxY7VuWZLfiyLSVhnN3OJCopPxYr2OhzGhDHqIkSzNBila4jiHeU3wkbS/5Z1ml7QLDJlRnnG5eZVuml/Y2fSkxWstQ=;4:rtIR+EIzTosAq3c3uU2XHTAW2R8icMtsp1EBhuBAYgNT9n//vug6nAIiZMhHj1qFVGoUrfbh9OjEuOJb+Ylcv7QNZ4urmEKtPnvzZ12kvwhMTVSq1cJB4ewdm83l48NZUTNUp8kYOPXy1nG0OOk2FToa9CHOFhD3rwF7x5NBorytjuW9D18/jpXyN2a6S3e/2j4Zsj8y5712TTWpajX6exnbLRZrAsQ1tGVZGRE+fV/3A1JNovM9Bio0OJwHIVV5fZ+OFAiMl7yiMvxQ6Hp+AzH0ppIAio9NUnV40JNVS1yRP3mwjCSkoRnVDRicJQcady38MF+WBjaLudsqCLrd7rU6z9j3VnfRp3r+75xarKKWeLa3n8Hj+IwF2uKAT4++VVQNl1udpihJyYzdDet7hr6W2TuhTVZh0fXPFi/LVNBAqLBdja/hmnO8Z8CS4G3WVRztDdh+ne7eImRaAqi9VsUhfctsnJAMWQy5EC3EzJze4IyQvcxzf5NVKBGdl5A9JteY8y/9koFWaYM7baA4RJpCmQ587gy09qL+v6M4bfU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80048183373757); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13015025)(13023025)(13024025)(13018025)(13017025)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:BLUPR03MB1394;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB1394; X-Forefront-PRVS: 00462943DE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB1394;23:h25ini2l1s8Bq+Z0kyj8cNxxJvsS1K//HdiKQuDJd?= =?us-ascii?Q?qeo//CF4l1dpVcb3EZvxxjgsNg2XQTpPidvPCW3mUWpCkkU1EuZC4ZZc691d?= =?us-ascii?Q?Kbn+blGE0QDaRc/AiQFQYQQ9alcv9Dam7ZYk90+8sW5o4RuyD3JB7D8QgN9+?= =?us-ascii?Q?nXoy0UVnop/1qSb7HOdIl1468rXOv8g0ICor13PHOmGozud4TYEL0mZGHwrq?= =?us-ascii?Q?Kxn4VuPrQ38lRaxW1rRMc8Hd1EfpTws/y44iNmogLoE8d8Qha6SjMMN6hBCN?= =?us-ascii?Q?vtVA0Vo4ifbcBhco4HKiDBK1XpQxoTPjCxeM7W+n354XRYk3u4a9AMG1ifvb?= =?us-ascii?Q?tipDuxGKDrbrP6+GmI+0kOkn2al5Vo1CSsYdxIMjvEkcSrvhvCqJ0iUBIFWt?= =?us-ascii?Q?9y4fcF1OzJPYtGFGwqK/6X9JhsQPfUkaw6Q8c/PKkRPLSNQYSDO6eYM4sKkl?= =?us-ascii?Q?DXkkZ9IuKFfdV+PAwOsjzD8YHlf62lThws74KNyidLjzd4AiYOtAWNkee9LM?= =?us-ascii?Q?z4gk47loGhlpn6v/nPPI6KOJIXQiI+Dfr/orYKNbVpbkihm0V7X0r6AB9yls?= =?us-ascii?Q?lAVgWV28iVW6i84Y0TwOj9cMoSwI0q6GAgylk3mAVfbITXtK1jqGp5ZLR6kN?= =?us-ascii?Q?35mXVeVW/KtM48ODhREGf0sG4xN4yP0uWBW8ear0J+AVh1wICS9yh4VHET9U?= =?us-ascii?Q?L6/xOViYgpzsjMxjtFf/sMmhC5IidwphfrhetKNPQbsRM/JpuQMP9+pqFmca?= =?us-ascii?Q?8eqXnhX3HjYYDCyZNq4uJLD9LFp9JeSCXpzgV+mItbI2R5wpPzYAXjAcrpia?= =?us-ascii?Q?Rt9LtSoDKYyLmRH8XHtO4QTRCEdXtC5alIYXZXmQ/VaxxZ+6OVjiI7lVII9d?= =?us-ascii?Q?I5Wrs/3ivop1u+hwpH0LRaezbJoBVC3e14pjOxDNF1jmpyD1PN/qCz1ppgzn?= =?us-ascii?Q?NaSxvxb6iPHWso7DTEWMt2KtHo73FX0cwKLkvEV31+EaE/W7OMfn3yN6oMXE?= =?us-ascii?Q?FSJaxEUNPD5p5JyWEzsKPHcKPPoDryXAlxWNra/P7djjhzP2jxLiANSpe+UA?= =?us-ascii?Q?pMAk0uIv2o7p4cDttehdnZGaZWg?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB1394;6:hXBWtTkGweN+WRXdsu+ilnBmVCTgsr4KWEwqMFaICT5/mwNdMS3bD36bgkJ+rGuslwCxtBocETodG598Yf8fyKCHOrySsO0n5MgFXJehpaoUVBD6ZmRtZUzDcgXp8MkkwsmpZjIBAgmwswuZDuPkPDNDpRCi4Hwp0LDxDd2gFlamMq/aNWeXRF9gS333cF6wpKTbzWgxKsPwxMy4DfvxCZrpAe6ux23RJX56Odwkw67R6JxFSAPEviwa3YOIBOVUDDhmlLqH+H2AU4OiBlSpJdIsN9HqHbJ4M7yVDvpOZsdZumPclOZznYxNs0sPWIpHRNAHi7+UbqShy/PdYIA9zw==;5:CItfrzybpe3yKHxLFLSoGTb+400CDwnxJAbNfg7XLDStNH/JO6JumHriCdwWQdhWY0q3J8B6jRgTxRd8NvC+q3o9oF0bIjdUd6K6HyrZRbHH/sirtKH+dz9PNmGmkb4tBNNM1fvwOjgQKOGgy6OAyw==;24:ndX1Q1oCZaUyhD9hxWKXEDlEDEPgADKL8rCQbZ55zbHa8mzHaLZNrLDFFR3qsr4WcbthCzJk9yWPRPicVTZwcyTZeWXqydRQ4nSxwelh0FI=;7:iNaDPvCBbGgcwYPzLm8dR8OvLldkxchmpkC1de4yRPZPbGibXQjkPWc1cJ4y/Ho+4Z6kibsCup43UxAl7cTR4vjymqH3CDyPaHDDmMqet+yx5rkZ0GMIHnEZysSZMcNtqKeNsShtkFWLVo30iXr5CUDc2xFO49HUxFsMoHTQ62jN7p07y2omtGfL9/5kMu3XDsQU2nIp55n5DvGaugpk+AkGYGmmYU54DjKZBuj3pcaZveJM9wME7qLhs9KSrEeR SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2016 01:47:36.3498 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a;Ip=[66.35.236.227];Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1394 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Rework configs accessors so a future patch can use them in _probe() with struct altera_pcie instead of struct pci_bus. Signed-off-by: Ley Foon Tan --- drivers/pci/host/pcie-altera.c | 64 +++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/drivers/pci/host/pcie-altera.c b/drivers/pci/host/pcie-altera.c index 58eef99..34e6258 100644 --- a/drivers/pci/host/pcie-altera.c +++ b/drivers/pci/host/pcie-altera.c @@ -330,22 +330,14 @@ static int tlp_cfg_dword_write(struct altera_pcie *pcie, u8 bus, u32 devfn, return PCIBIOS_SUCCESSFUL; } -static int altera_pcie_cfg_read(struct pci_bus *bus, unsigned int devfn, - int where, int size, u32 *value) +static int _altera_pcie_cfg_read(struct altera_pcie *pcie, u8 busno, + unsigned int devfn, int where, int size, + u32 *value) { - struct altera_pcie *pcie = bus->sysdata; int ret; u32 data; u8 byte_en; - if (altera_pcie_hide_rc_bar(bus, devfn, where)) - return PCIBIOS_BAD_REGISTER_NUMBER; - - if (!altera_pcie_valid_config(pcie, bus, PCI_SLOT(devfn))) { - *value = 0xffffffff; - return PCIBIOS_DEVICE_NOT_FOUND; - } - switch (size) { case 1: byte_en = 1 << (where & 3); @@ -358,7 +350,7 @@ static int altera_pcie_cfg_read(struct pci_bus *bus, unsigned int devfn, break; } - ret = tlp_cfg_dword_read(pcie, bus->number, devfn, + ret = tlp_cfg_dword_read(pcie, busno, devfn, (where & ~DWORD_MASK), byte_en, &data); if (ret != PCIBIOS_SUCCESSFUL) return ret; @@ -378,20 +370,14 @@ static int altera_pcie_cfg_read(struct pci_bus *bus, unsigned int devfn, return PCIBIOS_SUCCESSFUL; } -static int altera_pcie_cfg_write(struct pci_bus *bus, unsigned int devfn, - int where, int size, u32 value) +static int _altera_pcie_cfg_write(struct altera_pcie *pcie, u8 busno, + unsigned int devfn, int where, int size, + u32 value) { - struct altera_pcie *pcie = bus->sysdata; u32 data32; u32 shift = 8 * (where & 3); u8 byte_en; - if (altera_pcie_hide_rc_bar(bus, devfn, where)) - return PCIBIOS_BAD_REGISTER_NUMBER; - - if (!altera_pcie_valid_config(pcie, bus, PCI_SLOT(devfn))) - return PCIBIOS_DEVICE_NOT_FOUND; - switch (size) { case 1: data32 = (value & 0xff) << shift; @@ -407,8 +393,40 @@ static int altera_pcie_cfg_write(struct pci_bus *bus, unsigned int devfn, break; } - return tlp_cfg_dword_write(pcie, bus->number, devfn, - (where & ~DWORD_MASK), byte_en, data32); + return tlp_cfg_dword_write(pcie, busno, devfn, (where & ~DWORD_MASK), + byte_en, data32); +} + +static int altera_pcie_cfg_read(struct pci_bus *bus, unsigned int devfn, + int where, int size, u32 *value) +{ + struct altera_pcie *pcie = bus->sysdata; + + if (altera_pcie_hide_rc_bar(bus, devfn, where)) + return PCIBIOS_BAD_REGISTER_NUMBER; + + if (!altera_pcie_valid_config(pcie, bus, PCI_SLOT(devfn))) { + *value = 0xffffffff; + return PCIBIOS_DEVICE_NOT_FOUND; + } + + return _altera_pcie_cfg_read(pcie, bus->number, devfn, where, size, + value); +} + +static int altera_pcie_cfg_write(struct pci_bus *bus, unsigned int devfn, + int where, int size, u32 value) +{ + struct altera_pcie *pcie = bus->sysdata; + + if (altera_pcie_hide_rc_bar(bus, devfn, where)) + return PCIBIOS_BAD_REGISTER_NUMBER; + + if (!altera_pcie_valid_config(pcie, bus, PCI_SLOT(devfn))) + return PCIBIOS_DEVICE_NOT_FOUND; + + return _altera_pcie_cfg_write(pcie, bus->number, devfn, where, size, + value); } static struct pci_ops altera_pcie_ops = { -- 1.8.2.1