Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2413687yba; Mon, 22 Apr 2019 06:26:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqwJhpLHigdqkwnBsfLw0SEFBAHdwTWUHobDod9GhJt0na0kbuyEbPbxfu3cAb3Oa+C1Sosn X-Received: by 2002:a17:902:362:: with SMTP id 89mr19529085pld.172.1555939586471; Mon, 22 Apr 2019 06:26:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555939586; cv=none; d=google.com; s=arc-20160816; b=d/AvKlV3gDSVwVbpNorxVem0J0BDNOzjwcOSoQUpDj+KNa++7bzjZgJVgUqn6iIgg1 B3XM5weJlX5fEfmiazFqAt85jHg240ORr3segdJEA1/sWlPEniXBqNJrgPAnhRHcQ4Rp /ZcMkNLKF7wGhh9IGekjSO2Yysemg59/YFhpPN2gpDLgo+uXwqUhbkuuQbCmb7KIySdm miaQrInJgr6XPYpyXmSn+23kXvlb/ZJ+Zuh39Y2ef1xTrIYG7wK7EoxK502Ha8M+/JFY NaBnTR/LPteiN0467AE7VoNaLjDESygxK26Aye2o8+QxzRd4maNyjXJKqdRjBuBTBwUT hLhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=II/Tmikgph6IQzxnWiojtXm0y1jJPnVEqwNkAqbt+dE=; b=oYECa79IS/illUiA7QK8WzV531ct8bQYJf+/bv9rwODotx4UPL8c2plklfGA/BLJyz Hp4T4JRT6lFbozSscNZW1tXDSBCqA/kC+Wl5EAK9aMyuAXHLEhwDtILlIJPg0Kn/LW8l UQtF0dWZ+x93xU1/qthKR/PHOzTdgPNTrxYHmyeUrT0ZXOuUGEtPotj5crmmN2wRBCzD efruyEUk+SdkCeN4WM3rNglmmmKIm206iOHFrBbJ9cgWn9eyk3GOvXHAWSwZ8dhiuAzr dFP5s3ETOZXfsnQbDeiOulCW31cPWXpLKJNmlt/6jKfRzxfotXrC1U4qiTYSj/J742OO ukxw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hygon.cn Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f12si11801821pgo.388.2019.04.22.06.26.08; Mon, 22 Apr 2019 06:26:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hygon.cn Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727386AbfDVNOC (ORCPT + 99 others); Mon, 22 Apr 2019 09:14:02 -0400 Received: from [110.188.70.11] ([110.188.70.11]:5243 "EHLO spam2.hygon.cn" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726057AbfDVNOB (ORCPT ); Mon, 22 Apr 2019 09:14:01 -0400 Received: from MK-DB.hygon.cn ([172.23.18.60]) by spam2.hygon.cn with ESMTP id x3MDBMM1020867; Mon, 22 Apr 2019 21:11:22 +0800 (GMT-8) (envelope-from puwen@hygon.cn) Received: from cncheex01.Hygon.cn ([172.23.18.10]) by MK-DB.hygon.cn with ESMTP id x3MDB4Ct016123; Mon, 22 Apr 2019 21:11:04 +0800 (GMT-8) (envelope-from puwen@hygon.cn) Received: from pw-vbox.hygon.cn (172.23.18.44) by cncheex01.Hygon.cn (172.23.18.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1466.3; Mon, 22 Apr 2019 21:11:18 +0800 From: Pu Wen To: , CC: , , , Pu Wen Subject: [RFC PATCH RESEND] i2c-piix4: Add Hygon Dhyana SMBus support Date: Mon, 22 Apr 2019 21:10:07 +0800 Message-ID: <1555938607-2865-1-git-send-email-puwen@hygon.cn> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.23.18.44] X-ClientProxiedBy: cncheex02.Hygon.cn (172.23.18.12) To cncheex01.Hygon.cn (172.23.18.10) X-MAIL: spam2.hygon.cn x3MDBMM1020867 X-DNSRBL: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Hygon Dhyana CPU has the SMBus device with PCI device ID 0x790b, which is the same as AMD CZ SMBus device. So add Hygon Dhyana support to the i2c-piix4 driver by using the code path of AMD. Cc: # v5.0+ Signed-off-by: Pu Wen --- drivers/i2c/busses/i2c-piix4.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 90946a8..9db9d9d 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -289,6 +289,9 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, PIIX4_dev->revision >= 0x41) || (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && PIIX4_dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS && + PIIX4_dev->revision >= 0x49) || + (PIIX4_dev->vendor == PCI_VENDOR_ID_HYGON && + PIIX4_dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS && PIIX4_dev->revision >= 0x49)) smb_en = 0x00; else @@ -361,7 +364,8 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, piix4_smba, i2ccfg >> 4); /* Find which register is used for port selection */ - if (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD) { + if (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD || + PIIX4_dev->vendor == PCI_VENDOR_ID_HYGON) { switch (PIIX4_dev->device) { case PCI_DEVICE_ID_AMD_KERNCZ_SMBUS: piix4_port_sel_sb800 = SB800_PIIX4_PORT_IDX_KERNCZ; @@ -794,6 +798,7 @@ static const struct pci_device_id piix4_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4) }, { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, @@ -904,11 +909,13 @@ static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id) if ((dev->vendor == PCI_VENDOR_ID_ATI && dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS && dev->revision >= 0x40) || - dev->vendor == PCI_VENDOR_ID_AMD) { + dev->vendor == PCI_VENDOR_ID_AMD || + dev->vendor == PCI_VENDOR_ID_HYGON) { bool notify_imc = false; is_sb800 = true; - if (dev->vendor == PCI_VENDOR_ID_AMD && + if ((dev->vendor == PCI_VENDOR_ID_AMD || + dev->vendor == PCI_VENDOR_ID_HYGON) && dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) { u8 imc; -- 2.7.4