From patchwork Tue Jan 30 21:40:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooks X-Patchwork-Id: 867700 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="C15DCKIf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zWKZM0s8Fz9s71 for ; Wed, 31 Jan 2018 08:41:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753129AbeA3VlN (ORCPT ); Tue, 30 Jan 2018 16:41:13 -0500 Received: from mail-cys01nam02on0049.outbound.protection.outlook.com ([104.47.37.49]:63584 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751755AbeA3VlM (ORCPT ); Tue, 30 Jan 2018 16:41:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=opengear.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3g3/DlOTt+xE6Y4LmkfOaOggcyClqHJcs7dvEyt2nhI=; b=C15DCKIfFKjB+2HxNemJgW390/HXS1ZGbzqXr/HBp4fAvT7xN/nDa0l7X8DTzxXy8QjfrdggQVtjdQ2IvdQUT2IgMOVFGT8igxORRw9m4OyoMtFFZ36Welpt48+JLddxGcJA2F0DNYtUmDM6e07MVyNwOc5PGzFQ5ehqD77ks34= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=andrew.cooks@opengear.com; Received: from andrewc.bne.opengear.com (59.167.150.161) by BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Tue, 30 Jan 2018 21:41:07 +0000 From: Andrew Cooks To: Jean Delvare , Wolfram Sang , linux-i2c@vger.kernel.org (open list:I2C/SMBUS CONTROLLER DRIVERS FOR PC), linux-kernel@vger.kernel.org (open list) Cc: Andrew Cooks Subject: [PATCH v4 1/3] i2c: piix4: Fix port selection for AMD Family 16h Model 30h Date: Wed, 31 Jan 2018 07:40:28 +1000 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [59.167.150.161] X-ClientProxiedBy: ME1PR01CA0134.ausprd01.prod.outlook.com (10.171.9.147) To BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1c2c7c66-93c9-4bae-78d5-08d5682a2d04 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BLUPR15MB0018; X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 3:DAFSG8MlW+9LFM1wd/NfoW1o3KaCoRNVviI8UjP2Gkz/dYliakktM66QWQNjfW7zcH1yyFdqQwvNy3EjxSXoIO9rXEDJbrtkj+bNqDGXMv292SMOG1MW13FiY4qLitnTBZmVGP+cQvZNl8KeI6mHQqbsNvGAv8Pm5t8L/fWM9KAbeAanLLbQkXjC0h1L1h80GULGmTOYtunX+KRD9Pw/UDGjqn+eNdQzEmUoEnHaiT2jmmXAL13t2aMEpUpJDSzY; 25:pjnyqSMIqGVNF5eI09/FEcLpNX7PjbZynqBqUsSitQEQHAtozqC5zKWlc8idTj33aTQPKCaYm+HY90tbuW/5hX6EK9/lq1Y+7ro+Tc1m3eQZaSac0BopGFsbDR7S48x+kcZt2cr5icn7EtgLtDzx1obnnhVr4qQn98JOa+pBNBxoBUL+98lcxkLBoXIFBj6XJbLpi3CiG3OHb5wFCSKHTAwe6NxkUcYkkmNLc12oWahCvtdhTbHIWFpV+Jn3kejxCJgfe/+VDZOwcph2OtTuCw9MvONZaW6nBZyy8qX8zv+OGdZpdayoJ6aQFcrPZ450irDXLjJ1zaNM7MNj8cklUA==; 31:AWcipTo+7iznhE6CdI51Gep0fGD5GytAs5siQd82++K9wWRo+042BnHP1rfigNYGk4wqyOZNV01a4jk65PXDGJXbel95/zwS3yoaBfVWlryX5yKJh97LqxBVpY6U/jf/RDZMTb7vkQQ79eDprLSBrZVNITaKJ/p/gPiIKhBz2igCW+CzfQXZF+KHFg6VF7dVvU55B88OILZBQth28cv8krhcih2k8nLiRbZGjgcnZAc= X-MS-TrafficTypeDiagnostic: BLUPR15MB0018: X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 20:1itMvEyoS6it7/6WPSuC+BoaDrtKWEs+Y1cGTCEUje7+grEIfzQBfvLKi4Jw1M3n+bSTshRepM22RHPSt5puchjTaAY77M+pDeKm9qGLmsMjlsZdiFkTDiuYZdwQN8uGbExOEgxJ/z4BVFVygV1HFMvH8Od5S0L561I6YYZRX+I=; 4:OD7Z8C3F6FyLZ+sM4jYdRG+0XmbjHXNDIw2bqNFrhyXt9oUi77FzKwmQlx4uSPNMEbzlUwDDbX1CkKmiW7FIqOUwTBMg9MOP42AKNrMzv53if/w2/HRGkhuJEj1n/iJAclGZuAiKgBB0xD4v/VcgDQRc22Itf0SUeN8+j21rOIeNav6fnVsaVa/ilA0PIxb/L/UHYaVCtx8CoIv2SFpyp7BxH3UGn1G9UAAqek9PwvIe8jpF91pzcq24uKPg1CXR2sQPwdkOXxL+wVNqh9T4Vg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231101)(944501161)(6041288)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:BLUPR15MB0018; BCL:0; PCL:0; RULEID:; SRVR:BLUPR15MB0018; X-Forefront-PRVS: 0568F32D91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(39840400004)(376002)(396003)(346002)(189003)(199004)(76176011)(50466002)(107886003)(97736004)(48376002)(2906002)(16526019)(8936002)(81156014)(575784001)(8676002)(47776003)(3846002)(86362001)(316002)(50226002)(16586007)(81166006)(53936002)(66066001)(110136005)(118296001)(105586002)(6116002)(186003)(26005)(36756003)(68736007)(7736002)(4326008)(106356001)(305945005)(6666003)(6486002)(2950100002)(386003)(25786009)(5660300001)(59450400001)(51416003)(52116002)(7696005)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR15MB0018; H:andrewc.bne.opengear.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: opengear.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 23:3s7CDKdD/Om5sxQ8ds9YVwunapay/qkXPgNlHFG8Tnub5UpGo2aKxFT/z7jvR7lHBQQ4B7YYiboSh9FGqYNW0RTjB5SxUUUUiPrt5lZi+R85Jouicts9gi4OTmMHQ46ergk3tz0utsF+Z8RO40QGoLewUp7B6FhjNjIxFS8K4OIzUFfX1JrOBhq/+Y2mAcWd8CUwl/hMFEYEGRpVUgW4DD0LTF5mE4z4UP9/Ch2QmKlA4nCBoens4dDPUas1wlXfdorsIdgmDj7l55yLlqm6Qa5T8AmxobhYxuvyGrDAuKKP58jVFQW8t98Cka4I6SJ84rRlOqDwkKs0xP9PDmnQyj28yqTGxnfaMimDsj6oS8JS1dcqKy+ozqp6LH4kjL7NtTj9qrtQMI+STGjp+0vNhw1GK1bk9yPzUJLehmgtOh+YK6287g1djeYlMJcq7idsZF9s8Fsk1Movd7LiuwdgQzu3UjRbNluqAF16pjmwWoNiMJQ0ltTMeGEAo+ndlWnMMMNud56ZCY/EmEy4kdLYr15dbE8WmLJyD+fl9j3TbDMDzRXiOFuVthIKJyHFa1lLyv2bcIBerDJkFoP7xcon0WZLjux69POm52vP0nW/m3jDP5AiBg8CnZAIKKxbT7a7zVf4TVg818d39L7vKmL3Az4rrefBMhNUWNXCDFoQQx+Rup8e0Gk0E/Wv6QGzZ3PKgZPrO2WG2k1f2rmSolGuxOUANSxBH2+PrlvQEKxp7hqfTCj9bkAH+ji0iahzeNWSFb23b3J9E6hFq0gKWyYq+1r/AXmT6RAd0XpZlMiF3g/Je942rhNZBY4SDYwEx/rGkjqB8fl+Xp3/Bp6DxLS0KkSMeh9g5i10jmOuGaxONlQrkLAUNT2rnIIFoH/E22U2q/+ktV8G+Q1qWBp7XaiKji5yljnIAeruuZE8hGuVCLbYWnf0BQYqZaII75m4/l5y40/GQUEZML6/ZSnfgRGzIBx99qZrUgoFs0AjCRvQdmePa9KR8q0/fkG0TCdY37SfCnLIQ3XLR/8QcPzrZAhq6VqdH+TG30UQZt6Zcsw5kHL+XNwpzeJt2RhvXT71k564ZndMiioficxHvcbjGUobdRmFRLcOJgz0yGwqnlp++h94cDaiPdYSEgyLATmMD1WJDXJOOmCVv96Ya1PiAkSESyxM/r/TkVr+KpdP2aXac8k= X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 6:jS3px0WeAOMW9xUcS5qYDESXbIkgYxvLtwlP4p/Z8ndARJKaaVPhsB+/xGA3XCCnjDVUBVB2EPE3gdL4HrS0YtXDLonMb0sJ7HrS7WaHbRZ2IgIbpTNkHuhbRe1Xg3MZigNJPcpzRVKPziv5+Th+Vfj2/D5+DLZ7F0W8xRA8TrODAMjrw0U5v0PpzCdat0jbfYR1fOOo4+LziU7AUSPlpb6qR+sXApH+fCWIzcY+nushzvBiI7hmXTrJ3SepfSmxg5yZArFMaJoD8wuy8DUir7KIfeX7u2Gl28G2EgC7iHFuM346WNrxr4O73MYjrNJ+2NwEfLoRAbh6CbrI7E1PQtz0XlXuHOIsVOzG90fLGo4=; 5:QSrdJwWJ5ql2YZv5+h8kXz3z/ONf8Gh5dOHR6jovuzbotUxYtS5fNGhvOmCeL9t/vY2kUd9NzxzUCQJ4/VIdfTZSXRMd7c6Rg5n/v/58ZkAqNshaTCnn94vH0E3BTuuQ1eU3ywTAJaazxBbfoAcivJPTkwRlQQXDcBPFcIfqrYQ=; 24:/eCBzKUp1/MJX/uhRzk3nPTuqW/Z26VWKWGBs7dlZUMr9Mf0d0R/I9SYPP8z2zlzGvdhHBlAs1VxUpFySpi+B/M/eukWOIP6Oge+mQrWUt8=; 7:8pgt4vfoxK+SU2xm5Xi3MPNyTgLQ3gNK4vFwEdNWGx43BzUgq+O/aAQveLV250PF2iNeaGcuP9Lv6T3aH6vVSTnQ5b/meaPpdTA5SOHzKGrk1XzOZ9VTC6Sg29kxCfUgzeNESvipJwEjbN2ZRX66zMnTGofwH6x/ezl0hlta6uq0J+GsGh4Yw8A4y4NHUwmzogYplQE/J8RK4F1PjXl0GOVnRAvf0R1VsTGsDupfNPGeSoRADZnosovkn+dfqrcP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: opengear.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2018 21:41:07.9882 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1c2c7c66-93c9-4bae-78d5-08d5682a2d04 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a6251c26-d21f-4164-a225-1f4eaebf5f9a X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR15MB0018 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Family 16h Model 30h SMBus controller has the same port selection register as described and fixed in commit 0fe16195f891 ("i2c: piix4: Fix SMBus port selection for AMD Family 17h chips") commit 6befa3fde65fe ("i2c: piix4: Support alternative port selection register") also fixed the port selection for Hudson2. Unfortunately the AMD naming and PCI Device IDs aren't particularly helpful here. The SMBus port selection register is common to the following Families and models, as documented in AMD's publicly available BIOS and Kernel Developer Guides: 50742 - Family 15h Model 60h-6Fh (PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) 55072 - Family 15h Model 70h-7Fh (PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) 52740 - Family 16h Model 30h-3Fh (PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) The Hudson2 PCI Device ID (PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) is shared between Bolton FCH and Family 16h Model 30h, but the location of the SmBus0Sel port selection bits are different: 51192 - Bolton Register Reference Guide We distinguish between Bolton and Family 16h Model 30h using the PCI Revision ID: Bolton is device 0x780b, revision 0x15 Family 16h Model 30h is device 0x780b, revision 0x1F Family 15h Model 60h and 70h are both device 0x790b, revision 0x4A. The following additional public AMD BKDG documents were checked and do not share the same port selection register: 42301 - Family 15h Model 00h-0Fh doesn't mention any 42300 - Family 15h Model 10h-1Fh doesn't mention any 49125 - Family 15h Model 30h-3Fh doesn't mention any 48751 - Family 16h Model 00h-0Fh uses the previously supported index register SB800_PIIX4_PORT_IDX_ALT at 0x2e Signed-off-by: Andrew Cooks --- drivers/i2c/busses/i2c-piix4.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 174579d..5c90a44 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -99,7 +99,7 @@ #define SB800_PIIX4_PORT_IDX_MASK 0x06 #define SB800_PIIX4_PORT_IDX_SHIFT 1 -/* On kerncz, SmBus0Sel is at bit 20:19 of PMx00 DecodeEn */ +/* On kerncz and Hudson2, SmBus0Sel is at bit 20:19 of PMx00 DecodeEn */ #define SB800_PIIX4_PORT_IDX_KERNCZ 0x02 #define SB800_PIIX4_PORT_IDX_MASK_KERNCZ 0x18 #define SB800_PIIX4_PORT_IDX_SHIFT_KERNCZ 3 @@ -359,18 +359,16 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, /* Find which register is used for port selection */ if (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD) { - switch (PIIX4_dev->device) { - case PCI_DEVICE_ID_AMD_KERNCZ_SMBUS: + if ((PIIX4_dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) || + (PIIX4_dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS && + PIIX4_dev->revision >= 0x1F)) { piix4_port_sel_sb800 = SB800_PIIX4_PORT_IDX_KERNCZ; piix4_port_mask_sb800 = SB800_PIIX4_PORT_IDX_MASK_KERNCZ; piix4_port_shift_sb800 = SB800_PIIX4_PORT_IDX_SHIFT_KERNCZ; - break; - case PCI_DEVICE_ID_AMD_HUDSON2_SMBUS: - default: + } else { piix4_port_sel_sb800 = SB800_PIIX4_PORT_IDX_ALT; piix4_port_mask_sb800 = SB800_PIIX4_PORT_IDX_MASK; piix4_port_shift_sb800 = SB800_PIIX4_PORT_IDX_SHIFT; - break; } } else { mutex_lock(&piix4_mutex_sb800); From patchwork Tue Jan 30 21:40:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooks X-Patchwork-Id: 867703 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="c3FdKGHJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zWKbg1bmxz9s71 for ; Wed, 31 Jan 2018 08:42:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753153AbeA3VmK (ORCPT ); Tue, 30 Jan 2018 16:42:10 -0500 Received: from mail-cys01nam02on0071.outbound.protection.outlook.com ([104.47.37.71]:18784 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752277AbeA3VlN (ORCPT ); Tue, 30 Jan 2018 16:41:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=opengear.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KkyubyEzM5ZOYOouPkOouRtrXJMIrGrEK/Xm5Y8XHUA=; b=c3FdKGHJlMUFzk/bCe/S7LUl7DfC9A6i8HifKHTewZZmfl20x+27kVHwnnMx5r8/pvZeLxazZ+eyr0EvF3/k6S/Qy8rclD0x9jp92QLAnY84RFOihht0MbI30MVwnIAjjCeM3I0fOEeV7lS+b/USqb/+FBitx13zWv0YSYYybe8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=andrew.cooks@opengear.com; Received: from andrewc.bne.opengear.com (59.167.150.161) by BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Tue, 30 Jan 2018 21:41:10 +0000 From: Andrew Cooks To: Jean Delvare , Wolfram Sang , linux-i2c@vger.kernel.org (open list:I2C/SMBUS CONTROLLER DRIVERS FOR PC), linux-kernel@vger.kernel.org (open list) Cc: Andrew Cooks Subject: [PATCH v4 2/3] i2c: piix4: fix probing of reserved ports on AMD Date: Wed, 31 Jan 2018 07:40:29 +1000 Message-Id: <970f151329b43cfa5f842dc0fe0604b03c5c1297.1517285239.git.andrew.cooks@opengear.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [59.167.150.161] X-ClientProxiedBy: ME1PR01CA0134.ausprd01.prod.outlook.com (10.171.9.147) To BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8950f6cf-1c3a-4e7a-2c5b-08d5682a2e7d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BLUPR15MB0018; X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 3:DTdQWvqk9Biipag7TwF8aEP0h8Am4u3nvEvokCMyKRJZqc91M7YdiZ2HxfA3k21I2w8ckThEvnMGG5pN491sYoHTURQvIE+CREoKgJOxldxNPmXhowHpux/6nLdb2zGXU7Xf6C5yT9T1oFE2iMX+eUYmnGkw8ULZzy+ph7Pp5LJMXQEvgmXXHtrqOMqCUUD2HWLGYJNvfQjnRYCWut9P8o5u3GQQobXa2hUDuFDJsf83AEKlE8pOmslYLACQkp34; 25:UXL+XIwP7eg8s2V7/4VIOEbn4n52dok5hN1Rs16/t6oHYh4YkV7cECqLDO8xoXEXU94yTt8DrmaQjyKMcLzA1VCPkVK8DIKoBrlVVl20FhJqtUuiwxSy9wyhlZZZclOpS347iyyB6APfKub7vUEAodxuh6mPBbffpngCx/8gjuHPuIzrOkvE+aKeyZtQANzFS40gsHqfXzW+CS+UuLpqnEFC2fI9jUaS7jcOy8L+GKuz/e4+8XbDtW57dvR2a6pdRJ1ACaS2hqGLPWT/EZ9tTooQXQ3A0Po2dVyVrVFeFz/r2WjgiA3ecTZJukf3MqDv8I/NsNzyGuuy9o1TaMtPMw==; 31:ZRzRmIpt3Em3Ce3ftqsgD4nJ73x5UaLBUF3gbcf809HbYIWA6HKl9VXm0OwG4GDrGf2I77cJ2yg0n14R4rEBFAkivq3jYBxD+B9Th3HmUDNhdNTshD02OzLQiNMJOevJgoilhCCtYV8kjN2oGfEooz4rGObmR14byKH37ry0WGo3ZbVPCOJ1TzBGdGhcK6sNHnnJT1Ste5YMB6d/7VfscS3mDG7djGLCki/64Av2w0E= X-MS-TrafficTypeDiagnostic: BLUPR15MB0018: X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 20:ZVGb2lxTbNUBlbgOfAyGwcLd7pHV5YIBv3wfRNFe6HQSmpot0WUbanU82xlJN5OgR6InD//flHewGGc99UnAbJywmgeW23FCQLLnyjx1jsCc3zX80enAWG0bYgUCnM60bAeT/Zlz+DLIUkCXKqmjxk1Aj2NDfonahq+AjethI/w=; 4:NlvEdb6jC252jeq2gWwPyMWI0QYSmYTVUYAfLLbLdKxNQioC1K9kgdKXwzRt86uj2VT3iTqY8CTIEvUZa7RjDuDLuRXiWObMBLQARW8wOKLT2w8g4dRIScm7iXe5q81jt0B4IEiKvdfjF0Dft8J5gx37563VnNFHS1XqfxVtpb7biPsq4fLPUVmHXCAi0wdZ+l72EgAEeaNfLv+Iga0/MQhif2Rp5luWJAEFwdXPZhF3m/BMuB241LYypky3eU8lDEkhaCidjYA5MFYposc6kg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231101)(944501161)(6041288)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:BLUPR15MB0018; BCL:0; PCL:0; RULEID:; SRVR:BLUPR15MB0018; X-Forefront-PRVS: 0568F32D91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(39840400004)(376002)(396003)(346002)(189003)(199004)(76176011)(50466002)(107886003)(97736004)(48376002)(2906002)(16526019)(8936002)(81156014)(8676002)(47776003)(3846002)(86362001)(316002)(50226002)(16586007)(81166006)(53936002)(66066001)(110136005)(118296001)(105586002)(6116002)(186003)(26005)(36756003)(68736007)(7736002)(4326008)(106356001)(305945005)(6666003)(6486002)(2950100002)(386003)(25786009)(5660300001)(51416003)(52116002)(7696005)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR15MB0018; H:andrewc.bne.opengear.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: opengear.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 23:tfbkYKKjA7kS0i/Dzb7ZF+YuDJ2jOQRp07hhmWU+6w5MkHiyXYFvxSH2PEFrJ36lYxjfulXm98p/O2UIA0LwmBEGhqRZw+JmsxWRyU1r3SlveWyWS9hSJW/LdMaVXq54WQk3j2OMfEA9o/Y3i02Unl/zWQWM14rfjEEfEo5ZxgdE1c3IXZ4a/JvuOK/iR9/zoaOEtqq3p0N4xzDBd+/v/+OZoNOSRSSjuICvwqtZb/mU9lcbVhAw+20t2txrM6rexZX6sXsz0WhqmO6aBKTN8qvO8zAmO1Y5iBgiGu7uu0KCh/lL8srfjKbNQa8Rk3a7w/h2SG4tk3Ob5301/eSKKqcQm5GZN5mgYam3cAFzMTLksubyPBhEwC7yJhhBvoaRpagfTQ7c1D3n42tEu6NfQoqK0a8i6yyzx2p5GBS9xi1V+OCNZqxlOBN/sBO4lmrx533r0AaDljK9yUdPfrgeYiQdlCOyXvJ+1ra5o6rVn7ty7vq2+FA+F94eBjdJTDSg0EK/YtEwbYZ2zs6aVHBN/qVwDvNCnK3SIfW+dWH5JIogYIWAHlqETztUCScuIQIPyINZSlLKHBDda3l0JxfiT/OsesajApK+JiW/4oGhKDG/OrLqEEyVqQQqNG1fRmvnojiPq+LEHS+Ofs2CIZs981pgAQGEI07UDn3PNJeBTl7/bevYVCkaP2fmikEXAcWyqBCRQysrhab/0WrL29l8WD7eQXZv0Qm7SkNvPqPMhIjEMnQpFM6USEN68KbgeNVHSh6wHS5F32syaRN5Hl8WfbN5/7zVsFtS8NQdAp1uJF8b9AfHow6gmCCS3qcNsL27QWGaJCZyyWSJOFln1H1UV8xbMlVMMuFl2j3NmsfW44Xt6BfNsTia8soPFY+Xwtlhmc4eaVbmV+y/0L9m+kjrG4PzXzcV2UGWsZxV2lWbimfGUtTonmFs1b1L6qX3I6uySO3Dz8R3bclH+am5FnyWecWsk92oTa4t7o23PBjJlY4tUHKYnhUalg8o3Iup2mnwVvC7YubqMmAUHHTz0y7+tiWs7zgSs4P4TAENWuDYtAYhD0K/Vq1R0KL//LAVIPZVH3B2W18kEPPd2+ABlprOC74Aju+VFnDzwjfGvivLuzw= X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 6:5kpFKvcO5+Qkpbwd1KDKXdqtNH3q2XVds85rgJ3XeLBtpA81u1HWJO/uGVvbNfTbNN2OdIM3kH5tbBIV6oxFccSqAAvZ1zembC5KH818ceLCWZ2MRbD7ZUgmcabpVGolDfq5TrAB4a6IVYExeyJWJM0QIiohXT90+gULCmoRu5T4XReIU58RGC+hcyhqVcsrtA5tid/LURqu6Hvm4RSP858NY9DU+HIflnFovs37UndnDoONQhxogATzzxDF32NJsSACOcfNENmwnv/4YReBGQjewWr/hSQIXRHz6eRYEsx9ShbbJ/mOo5vlGOqYtTbXm7WatWhtGpnc4/6/ehuZ6BCtogUKMHnzNjpz7RI/XlE=; 5:1X29MLzZ4a0V49FUTdvUuKCkC31QHqPZAih5S4PMBx442zh2zJ6zSw8zO8CxV8qW1LW4OR2kD3XdeGDUQzrsaKRiHmHMVvQZfuQsZa8v3J4tUhZ7Pe94zbp955fjjGoDHSmSrdV8bwb9y0SV9iZKxRLvqpyJwHEcyff0gvGUM38=; 24:rOIt0t+urlKs/mOpCDyiQ3CNGmxxHTgLGJLDJKVZyF6Q27BzBjhy9I+72yZZuHrsaczzNnggEgcV7zCqHheXAV7RFy7T2Tc289Xzoe0QB2I=; 7:Ecs0UbQ4G1AOVfPkGbDL96KOzO0T466LUq7ifQPxg8oO0gQGaQdQfcZmhQLsrCnBX1iffBu1woIlzkVJechEo+MzVyhpK1wQffgLQr0i7X/LaEgKIKgy4eKA70lFT/fRnlUnAEVTGKCwnZRQg7vTY6eoRJXl56q06bAwBiNKxEskTc7ofdDCxFYnSQKsuYAN24N3wUbkXCIMzZAc6wtgrnv7RQ+ty82gEmWZcuWObdZbq3qBRcvFAF/B1Nr4zQ3c SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: opengear.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2018 21:41:10.2538 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8950f6cf-1c3a-4e7a-2c5b-08d5682a2e7d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a6251c26-d21f-4164-a225-1f4eaebf5f9a X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR15MB0018 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Prevent bus timeouts and resets on Family 16h Model 30h), by not probing reserved Ports 3 and 4. According to the AMD BIOS and Kernel Developer's Guides (BKDG), Port 3 and Port 4 are reserved on the following devices: - Family 15h Model 60h-6Fh, - Family 15h Model 70h-7Fh, - Family 16h Model 30h-3Fh, Signed-off-by: Andrew Cooks --- drivers/i2c/busses/i2c-piix4.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 5c90a44..01f1610 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -80,7 +80,8 @@ #define PIIX4_BLOCK_DATA 0x14 /* Multi-port constants */ -#define PIIX4_MAX_ADAPTERS 4 +#define PIIX4_MAX_ADAPTERS 4 +#define HUDSON2_MAIN_PORTS 2 /* HUDSON2, KERNCZ reserves ports 3, 4 */ /* SB800 constants */ #define SB800_PIIX4_SMB_IDX 0xcd6 @@ -800,6 +801,7 @@ MODULE_DEVICE_TABLE (pci, piix4_ids); static struct i2c_adapter *piix4_main_adapters[PIIX4_MAX_ADAPTERS]; static struct i2c_adapter *piix4_aux_adapter; +static int piix4_adapter_count; static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba, bool sb800_main, u8 port, bool notify_imc, @@ -849,6 +851,7 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba, } *padap = adap; + piix4_adapter_count++; return 0; } @@ -856,10 +859,17 @@ static int piix4_add_adapters_sb800(struct pci_dev *dev, unsigned short smba, bool notify_imc) { struct i2c_piix4_adapdata *adapdata; - int port; + int port, port_count; int retval; - for (port = 0; port < PIIX4_MAX_ADAPTERS; port++) { + if (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS || + dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) { + port_count = HUDSON2_MAIN_PORTS; + } else { + port_count = PIIX4_MAX_ADAPTERS; + } + + for (port = 0; port < port_count; port++) { retval = piix4_add_adapter(dev, smba, true, port, notify_imc, piix4_main_port_names_sb800[port], &piix4_main_adapters[port]); @@ -889,6 +899,7 @@ static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id) { int retval; bool is_sb800 = false; + piix4_adapter_count = 0; if ((dev->vendor == PCI_VENDOR_ID_ATI && dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS && @@ -993,7 +1004,7 @@ static void piix4_adap_remove(struct i2c_adapter *adap) static void piix4_remove(struct pci_dev *dev) { - int port = PIIX4_MAX_ADAPTERS; + int port = piix4_adapter_count; while (--port >= 0) { if (piix4_main_adapters[port]) { From patchwork Tue Jan 30 21:40:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooks X-Patchwork-Id: 867702 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="uu18zTcz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zWKbJ538qz9s71 for ; Wed, 31 Jan 2018 08:42:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752167AbeA3VlU (ORCPT ); Tue, 30 Jan 2018 16:41:20 -0500 Received: from mail-cys01nam02on0044.outbound.protection.outlook.com ([104.47.37.44]:15680 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751755AbeA3VlQ (ORCPT ); Tue, 30 Jan 2018 16:41:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=opengear.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=z86wQH1viaGBR0KS0jOK0CxleCH/d0baHxxCXgr7Sps=; b=uu18zTczP9kh8hAO3jVZ8H4kpFFE9ey/C1McVISpioOQT1u6mlSZ6vXDpvMQAYVp4cmgIrFqkg4waiLiHAQIIAeh8eLIv4Cc32b0Y8Pr/M/CsVq8l55zILFgCpM0+xkx1Uh5uxQSx8zGjDbpfinRpEvfPzIHiWhUgDp/pCZs3Wc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=andrew.cooks@opengear.com; Received: from andrewc.bne.opengear.com (59.167.150.161) by BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Tue, 30 Jan 2018 21:41:12 +0000 From: Andrew Cooks To: Jean Delvare , Wolfram Sang , linux-i2c@vger.kernel.org (open list:I2C/SMBUS CONTROLLER DRIVERS FOR PC), linux-kernel@vger.kernel.org (open list) Cc: Andrew Cooks Subject: [PATCH v4 3/3] i2c: piix4: add ACPI support Date: Wed, 31 Jan 2018 07:40:30 +1000 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [59.167.150.161] X-ClientProxiedBy: ME1PR01CA0134.ausprd01.prod.outlook.com (10.171.9.147) To BLUPR15MB0018.namprd15.prod.outlook.com (10.161.124.16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 133af4d1-e701-4f0f-91c6-08d5682a2fe7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BLUPR15MB0018; X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 3:M5P3ke0dn7k7SmfdSRzsPNM5NT4z9u+6XWveIDZTNslKJW+bLZ+tPuNXi/yyj0UcCmrDpitv8cBPca9sWbzMW5zB/LEogMKl8ePB5qbfALjQPsd4oGKZ9/N4E8oNefZf5jDsmczgnU2rv46rQ8c2DP7KhxeFerhAuOvyX6f/bob6oQAijF07VqEI0ox0CFzTH3cwlaFEh67nhqisR0nO2qSo1VISmgdxtcFfB8op9gtFA2Lj6d0wj8gPinQFNpq4; 25:qqSF0VILeIdRWzZRnghAms/SLUmtwriS7Wyv4ovcM8RtV8rKY+N78HmB/9KglHhZtsxoDiZWkBflER+uQ421/LmuzTzefvMTnMcR0vnl1Qxc8JdfdqHd5GVsYq8Ks3KXCZ1arFlRqyVPz1dddeLvNGq8tDFqbwfS+z2kS0JBXH3WQeOPAswbxOG0wzUB2EwG2n4JDkwUSYZ/G7MpZp2fZFR8KYZRTCZBoRUim8fHb1uGcQRnxIyhw7clg5hZVATVmczGIU50CslHyzl7elorXEaw3wKJ5W/vN3BiJo4YhINxErr0CpDvnn7Ev97XaCotYUY7IEOZbLITCTeu3qHIAQ==; 31:Q08xsP3e6QDWAwyiMVAcV0TE5UQnXofiido/JiGa4fECvN0zpQV8F5oBQ3jZx4D+YJsugl62uHL1Aqr3Pent2R7dIS+cr/e0luNMKQGcjwSIdakx61HpvVD8s9rLON+4Lw37mVBWd0sExLXfZMP12pB4vzPW423hsSYO4jryTFla2iv0urXWHyCgUZyu8UnB0YY3dkJDcw30czd6kD86l7/coeMq3Ka6CQy0KMKNoRA= X-MS-TrafficTypeDiagnostic: BLUPR15MB0018: X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 20:741kyVfkfCWuxycouaNoTHwravUGaq2Crl+XzPhKYGPvyzBNJ8XoEaS6IdEfaATEoGE2ZDvct2ogzWuwhlKJrM2D1IhV7jrf3mgIxdlenVBYQ6SKvG4if56ZlNVTAu96CenMZYw62hzgEmBQFxfKlj0bImDscyhdkEUy+I9iqX0=; 4:TkxDNPYooQoRS7HrOp2cteOASNCGEjSJaHXHRM0WILd5h5Ry65pFt+ztbyzPYEBWYnj1Pk5+qEo1IG6y1iZpOzl0YoDVJsUURWQZF2xX8Rcccgghct+4eIFuMgkXxLQvBS9c2M13ubrzfL3X/1MZz3bRCVMrlFuvWmyMB+17Ahs1ivW1yTuGIgkWC1ydCePBbI953HlUAqGUY7DUuVJIGqQ6ryJH1zuZvGiNAg3xRRhPgOkDBbVNTBst3cNAuMZeN4nOqbqPHaalpsxzcezUDWFvieV0mtp0wD44hSNayB2QmAOZynY4Ev8QiUHC6lHr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231101)(944501161)(6041288)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:BLUPR15MB0018; BCL:0; PCL:0; RULEID:; SRVR:BLUPR15MB0018; X-Forefront-PRVS: 0568F32D91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(39840400004)(376002)(396003)(346002)(189003)(199004)(76176011)(50466002)(107886003)(97736004)(48376002)(2906002)(16526019)(8936002)(81156014)(8676002)(47776003)(3846002)(86362001)(316002)(50226002)(16586007)(81166006)(53936002)(66066001)(110136005)(118296001)(105586002)(6116002)(186003)(26005)(36756003)(68736007)(7736002)(4326008)(106356001)(305945005)(6666003)(6486002)(2950100002)(386003)(25786009)(5660300001)(59450400001)(51416003)(52116002)(7696005)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR15MB0018; H:andrewc.bne.opengear.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: opengear.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 23:OowLJumkhAnYfSqw1+j6irm33BOjycLYwHRE0UIayi83cCC96CGbFSgQoYI21c+fToFINtrViG7M41VICDDTknYt+W6RH229kbWX45tqvmr0gFzWrK+pn0rBohKCCEpAb0oCyPY/ZfC00Mr4PT+ArHR4hzDY+uZ7MkhoIxS00a1pHLR482aS/3FunQFxV/rqbOVf+LhewEE8QcTqftGy411NDwQbuojAKSzO4ujE7yWhzIeBsDyRefDovWuXFcmLocOdl5jEgMtsMHDSyHtdO+Vx2VYS4Q1YCwUvEqLRTYuzDdsOYbOW3E4jttPwPZoAmP9vQr67weFkiTDxOXw1thRLxhxwgnB/V0jx2A1U4ip5+T4dBWj3LJYYOQP7OAjMsWQNNu+w7QdfXQkGaq/aRmN6VTeN/cMwbg42qHXQB+x65VElo+wYEq2ks0H1Ar9DYJPzmLGulOxwop1o8pAay+UZVX+eHjXd3xZ3dEp4gvtUPV3cW47eTDEUWqfHCwH+RxphWRMMJYtQGVJQ/vdUMT/CJEQf5gYdkZn5hwB1YiB6lbSbyK/RdqSrOKAesozMzdwtThGnrtYAFW9fRJBVGa7VPTOY8NTIzxUstIchgNk6rJYWycAMmjLbeGksqj8lyWbCTNkC4qkwb9NDRIFR46Y6Sqv3pzbHc4CvYxeOtMbRkijYHZ0ifW1PLT2hpzUx42VJi01+ETjzVZ++G2E2YSw4tH5hsMrrlzxTKJw87zVaiDflgngJuD4uh2LjnxeP/Hpvi5Xh3Q3bTs2B/+CL6J3qHAEYec3WTXSbQZ2H0h98sYk4VFWIjwqpXlscM/7sKjM1h3TlAmmAkW8p1wfC9nBulx0NzWmaRlS5YAXcmL9piudpbphIdddL+l0k5u+lr/zzF2VIXKB9hh92LqSVP2pyEocR9TI9q7jLtAFhj5NvnM06vkz6NqzA92vFPgVMZ6vet/xdn1fHvCx3Uxgy1bHPIrzzbXRdQ87wTZOxNh5F6PS9IUqpE2g1GOo6Vr+L0Diz1hnzrhy3mbE+ef62JZmDWBh7fAINQB/AgOcX0ewH1hVp147Mbkp5RqquCdHG5yyHvixHCjYXDjwY9r8acWONx1qgYMVxL4GI/ezAAOVpZyaaTSD7tMCD9MkRoP/m1wxkvRvXGY1Gmzs5Ol7h9Q== X-Microsoft-Exchange-Diagnostics: 1; BLUPR15MB0018; 6:VIzEMfKQSr837srZtgozmqzzZUzuggjWm6dyxqWusgVCXa5ckHXGFyBHTAgs3CR9PVXbcATlZsHjIf3qCF2kWmG+0at57lS2zXzjShfERFDHowwwbaNylZN6YDlmM7hFfW+W04FMIPWSmJd4i++DtrcmFBa72A75wd2a+Vo1XInYYTe+09wVt1zWPZf6BQXzCFNn4GClK5QhHI/wiYDmcr+9nlhWmrIDiBT1CWktfzatgG1koHm4tpedil4rySWLRtZZ+TouP09sBFKfslkYQbP88DCz1eDO7eqRnZLx14rSx6AfQAeQ69etNe4TWYQRHbfqHlZ7UhgQjwVNySoJgwa17hhIb2ipMb/xLNJmUKA=; 5:QDdsfl5+r0xnC/E2vNiQRhbJ9dQCtamD6mmarCGCuuyztp8Dlh7U0cYMBeLZoWUBSS2D1xgX/akrilSS295OlCWqfODDKn4+iszc7U9K/mm1CzHCyEZEd3Jr123qeA/RtRfjDkGBz08dIjOpVtMGP5etnKAR0n4rsLEPqeJXxRU=; 24:NhU1pyMFc0SJvpihRE63mIr/I9PN7lemyyCk1LraTxssePYOicEafZimsfwJqZeu64CaGDkenhZesHPy629fpqFc/MBcCa8E9pRFpZwdFPk=; 7:ZW/fx+hBBwu6gvgjDN02gRF6RHuYadfwrwi1Ms3+NlyQVevZzkhJMtb6uJHrJW6coE+aJFF9uaEi0DfVkac7aWccIRNU0mNo1RvhGF1a7UbBvuDTr6BTisn9dMTWukef+iyl1bThoQ8WGJfRSKObTjNmdPjRQIQnJEcrllgZFLUlFc6Y9R/AGQCVvv+JKbrgMxxublLdpY06KH0tGz5RUv6SMYYd8XbUmxHTKCTz9+Sj9r2t7j6QJSMe0k89k2Th SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: opengear.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2018 21:41:12.7694 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 133af4d1-e701-4f0f-91c6-08d5682a2fe7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a6251c26-d21f-4164-a225-1f4eaebf5f9a X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR15MB0018 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Enable the i2c-piix4 SMBus controller driver to enumerate I2C slave devices using ACPI. It builds on the related I2C mux device work in commit 8eb5c87a92c0 ("i2c: add ACPI support for I2C mux ports") In the i2c-piix4 driver the adapters are enumerated as: Main SMBus adapter Port 0, Port 2, ..., aux port (i.e., ASF adapter) However, in the AMD BKDG documentation[1], the implied order of ports is: Main SMBus adapter Port 0, ASF adapter, Port 2, Port 3, ... This ordering difference is unfortunate, and we assume that ACPI developers will use the Linux ordering, as follows: Device(SBUS) { Name(_ADR, 0x00140000) Name(_HID, "SMB0001") Device(CH00) { Name(_ADR, 0) // main SMBus adapter, Port 0 Name (_STR, Unicode ("Main SMBus adapter, Port 0")) } Device(CH01) { Name(_ADR, 1) // main SMBus Port 2 (Port 1 label is undefined) Name (_STR, Unicode ("Main SMBus adapter, Port 2")) } Device (CH02) { Name(_ADR, 2) // ASF adapter (what Linux calls 'aux port') Name (_STR, Unicode ("AUX / ASF SMBus adapter")) } } [1] 52740 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 16h Models 30h-3Fh Processors Signed-off-by: Andrew Cooks Reviewed-by: Andy Shevchenko --- drivers/i2c/busses/i2c-piix4.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 01f1610..9a6cdc8 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -837,6 +837,12 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba, /* set up the sysfs linkage to our parent device */ adap->dev.parent = &dev->dev; + if (has_acpi_companion(&dev->dev)) { + acpi_preset_companion(&adap->dev, + ACPI_COMPANION(&dev->dev), + piix4_adapter_count); + } + snprintf(adap->name, sizeof(adap->name), "SMBus PIIX4 adapter%s at %04x", name, smba);