Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3669743lfo; Mon, 23 May 2022 10:55:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz859UJsxHVW4DWtNFOqkmZgzZTfNzsHlgpZuCMr7BKA2Dxw5bSH8/VesNZ1AzE8PxFDPFJ X-Received: by 2002:a63:dd13:0:b0:3f2:3f20:4227 with SMTP id t19-20020a63dd13000000b003f23f204227mr20766061pgg.59.1653328505068; Mon, 23 May 2022 10:55:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653328505; cv=none; d=google.com; s=arc-20160816; b=cTGTzZX1ZnN+rIbnfwB2qWKEH0ZoXkViI6qL2s7SSF/RjsDb1XCjlm2ERFHi7nQWg2 uVGMevLWbjUakaqmj0pr29QGqKRGCkjgDDegmYEFcV/lcXKWu6lLaLzRHMlseBQRLZCJ Ry8N95Ebs3SSP4uUY1enG6eBp6iHE9CMyv2hGingoint6HWOeJ+zt3ZQ6FVJvKRWPW+c 8/n3OeauFOwp7EAZbc/r2JkRZqD3scCRWck9GGbtqtM1mL0Wo7Z5s6fTtWNk3Vb8/hcD 2+iCGLG3qd88LN7KAVmZFOXGtuELocQaQPvMqnq73/2auhsgoSyyATgFYE3SzmP/vmfy GlOg== 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=wyYlOXq/YmExW7eYa4wQSDtd7x4eW7JUuezg6PHnCU8zBRwSM1OzKRYfwsSk3MGvF6 xl+ZM3y74+PFaN7Cx55oCouC4YzZz81iRzVpyG4wufAudLda7doPoH7wpRSb3DwqiR3K uKmVwDShvroVI3iQHlI5TFkx/e0uWTHgGJs41x7mPIh0vpZdAc1i9+jSP8rRA8BayvGS 0VO6Azh1TAqwCSpDdqLkYEDDpgIRLvQJF+1zQWcnaHgry5t6eR0XEQJeCr3JpBZzHKxy MqXdrrWFcRTrJvOj6ENn02dvKfhdVWcQHMiiPB2rGSjCCKuLAUg6lexmA9ksjBafmUa1 TTZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=oO6fZ+c0; 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 u2-20020a634542000000b003faa259a522si129977pgk.288.2022.05.23.10.55.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 10:55:05 -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=oO6fZ+c0; 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 BCE271116EC; Mon, 23 May 2022 10:53:47 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242656AbiEWRqL (ORCPT + 99 others); Mon, 23 May 2022 13:46:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242945AbiEWR2P (ORCPT ); Mon, 23 May 2022 13:28:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC13F8BD20; Mon, 23 May 2022 10:24:58 -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 dfw.source.kernel.org (Postfix) with ESMTPS id 7DCDA60B2C; Mon, 23 May 2022 17:24:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85C1CC385A9; Mon, 23 May 2022 17:24:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1653326695; bh=l+dweFhCBdHCnU3oBcjOgofbeTDxRhLUVlx7Mb2HFa0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oO6fZ+c0rF6LLPNNd2eBRPKDFyVX7MTIIbGKPW0wWe/upvn5qZ8+q2fPOSWuY73+5 vAphUa3kPdtsJxpUIu5X0Lzr93Ubnh6JMVFSXK6PHuw+K9azOa/ZLGty0ldYyRaETS X+glKDriqnh76Fpfoa1UH2/FE5mISdYYV/arotAA= 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.17 011/158] i2c: piix4: Enable EFCH MMIO for Family 17h+ Date: Mon, 23 May 2022 19:02:48 +0200 Message-Id: <20220523165832.457360822@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220523165830.581652127@linuxfoundation.org> References: <20220523165830.581652127@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;