Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3687889lfo; Mon, 23 May 2022 11:28:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzV9aydjUg6l0CwzOlX8uL9OBb0GbmJqE4SamO5zK5sZG11V2n4wfYl/hOMkIhDTRyrUImW X-Received: by 2002:a17:902:ab1d:b0:161:527e:277 with SMTP id ik29-20020a170902ab1d00b00161527e0277mr23946072plb.73.1653330520070; Mon, 23 May 2022 11:28:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653330520; cv=none; d=google.com; s=arc-20160816; b=WthpFDnfiazqJoBbXjgGfWVDB0fxoKkEZ3cGrQZeP/mBXCdziHAl6Qqqcjr+j0nNf7 MJEFDm+x40xPSXZ0agYlwTCgh/Sf6quWqkDfEhqPnu0z+miZN2sPw3k9Ktkrn61kjvFu XX78W1yqzl9fZ66GO+Rn8hbOjpMzGpXOtCvvZUcrujP/QSfAXopvqB6If10hWtP29OS+ rwVvqbexnYDgiZs5Xaut3UWCgjvZ9cldBWn+0q1RjiL/6Qok6LAba1mCGtj4ZH9QTjsl AeUuU4G9NzoHH46f/2NVfGe++nnVHnf2KtrmrtnzVClQtMP1kYtAOz+DB0eGo7DQxTX1 G05w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6rLBIkyydOII6oBkmnTPmYPJd2TEZbuZsKawDlRwZFM=; b=NhPHHj3MLTW4544hojI0mouRRE5pC0RnKC7RiiK4UvZoUQhRNpcPo7u8NQmd6OvrgN alpaFpSsMA2UqjqWlRtt1xswhN69HA/ubhhtPyfTVX7OO/2u8iOQMSP946hUXngjW7A5 jLvu1i1zYu9ZEA9v12I/iqfaGTSXqeZdF2CBuaCic3Zyp3iTJJRnqr2soD2aVLYtrLPo p9mi9UKQGgS6aRLDMsd+/5XlU/cGTyu6HNM4GLfyKeMKvqQfXcrsBFCgmeA9uifVvXN8 0y4hZVOqDbi+wj/S44QNWV+kIpU6gKOVkA2sdhUezYJGrErGDXzPmxUH46sM5sJGe+9D bxwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=E6AJTzli; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id y14-20020a1709027c8e00b00158f777bbbfsi9704112pll.559.2022.05.23.11.28.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 11:28:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=E6AJTzli; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A0623C8BFC; Mon, 23 May 2022 11:28:05 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241242AbiEWRaq (ORCPT + 99 others); Mon, 23 May 2022 13:30:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241714AbiEWRWd (ORCPT ); Mon, 23 May 2022 13:22:33 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B735F7B9CE; Mon, 23 May 2022 10:19:20 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6E2E6B811CC; Mon, 23 May 2022 17:17:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C53ACC385A9; Mon, 23 May 2022 17:17:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1653326278; bh=l+dweFhCBdHCnU3oBcjOgofbeTDxRhLUVlx7Mb2HFa0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E6AJTzliV7iniNYW5DDKntKpQzkv9yTWbYWE4yc1Yh2U1UutstgGQDZaNC0XyYX+j ODxHxAc8G7wqwC1Ww/ykRqZ7ONFyertnAtRJZTNCAwGLSnNe7V1vOqBZ3g/1Sk22QP 2V6FLSS0df/McDXOnmrirkeydO2O7amZyPP+o9+0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Terry Bowman , Andy Shevchenko , Jean Delvare , Wolfram Sang , Mario Limonciello Subject: [PATCH 5.15 012/132] i2c: piix4: Enable EFCH MMIO for Family 17h+ Date: Mon, 23 May 2022 19:03:41 +0200 Message-Id: <20220523165825.647117603@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220523165823.492309987@linuxfoundation.org> References: <20220523165823.492309987@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Terry Bowman commit 6cf72f41808ab5db1d7718b999b3ff0166e67e45 upstream. Enable EFCH MMIO using check for SMBus PCI revision ID value 0x51 or greater. This PCI revision ID check will enable family 17h and future AMD processors with the same EFCH SMBus controller HW. Signed-off-by: Terry Bowman Reviewed-by: Andy Shevchenko Reviewed-by: Jean Delvare Signed-off-by: Wolfram Sang Cc: Mario Limonciello Signed-off-by: Greg Kroah-Hartman --- drivers/i2c/busses/i2c-piix4.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -229,6 +229,18 @@ static void piix4_sb800_region_release(s release_region(SB800_PIIX4_SMB_IDX, SB800_PIIX4_SMB_MAP_SIZE); } +static bool piix4_sb800_use_mmio(struct pci_dev *PIIX4_dev) +{ + /* + * cd6h/cd7h port I/O accesses can be disabled on AMD processors + * w/ SMBus PCI revision ID 0x51 or greater. MMIO is supported on + * the same processors and is the recommended access method. + */ + return (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && + PIIX4_dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS && + PIIX4_dev->revision >= 0x51); +} + static int piix4_setup(struct pci_dev *PIIX4_dev, const struct pci_device_id *id) { @@ -339,7 +351,7 @@ static int piix4_setup_sb800_smba(struct u8 smba_en_hi; int retval; - mmio_cfg.use_mmio = 0; + mmio_cfg.use_mmio = piix4_sb800_use_mmio(PIIX4_dev); retval = piix4_sb800_region_request(&PIIX4_dev->dev, &mmio_cfg); if (retval) return retval; @@ -461,7 +473,7 @@ static int piix4_setup_sb800(struct pci_ piix4_port_shift_sb800 = SB800_PIIX4_PORT_IDX_SHIFT; } } else { - mmio_cfg.use_mmio = 0; + mmio_cfg.use_mmio = piix4_sb800_use_mmio(PIIX4_dev); retval = piix4_sb800_region_request(&PIIX4_dev->dev, &mmio_cfg); if (retval) { release_region(piix4_smba, SMBIOSIZE); @@ -944,6 +956,7 @@ static int piix4_add_adapter(struct pci_ return -ENOMEM; } + adapdata->mmio_cfg.use_mmio = piix4_sb800_use_mmio(dev); adapdata->smba = smba; adapdata->sb800_main = sb800_main; adapdata->port = port << piix4_port_shift_sb800;