Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp2161833ioo; Mon, 23 May 2022 11:33:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEkN5T0/IdKru6Ve5+LFpXoiJ2l0p9/XYLE9EZCURFLe9k/rWvqb3ckrf3mikzCH1nLeUC X-Received: by 2002:a17:902:f68d:b0:161:ccdc:4567 with SMTP id l13-20020a170902f68d00b00161ccdc4567mr24120783plg.60.1653330805382; Mon, 23 May 2022 11:33:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653330805; cv=none; d=google.com; s=arc-20160816; b=t0/cWSrgJ3Uin6kR0zWGP/MOJtL5XoJwFm0y1FCaQB9hiP6M/zMhhoKWLNVosx19ii ySXDsCVA1htPJTMFz5I+u64HOquS2s7JFmQQj1Hu9P+lp5yPrHhvGGuO5PPEfO/cMqFp SqciOCAX5dLiUOkvLMh2/1wzfDxzFTcBuivU1mfysrp7FCYR+wCmLqPGLUXdu6yPv9bg V8sLpIWDdTgkV1GV3CHZS/CKWXYdnqJsvC4b64lWSdUOfT0luvhq/Pm4SmCPzly4rH8B eP09Jaea5gBpLTKcjmxrQvkooD4deYSYNKSuLFok9ZxtggIf6SHJJHWWO+iGYcA0+fEm 8WDQ== 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=sBV49dWqaPgY5cRZ0tSo3qbt75UmXLJL6+f83HzTVCk=; b=sPxZEwXd2/Yo+VuYSjE33TfrDIWqhg6COSLtI1rF+ISAWNwB/ibCgxANhEtCFg76dy CgoRTlYc3b8CzY1wdnh8Vila/VX6HRf0hhie1qyOK4ZRBcrV8jdzlDtUfTo5MzinYzVk /LNBR1y89l/mHVlyQ8vw23oU4DW3H0WnaoLla1CRXMggEKakZNGy0ApFIZX9+x5Wx28y uzW9V7Q3eEqlhmCubeewd7IwC9jsFF++a/uJkVY+nAQY7yy7/gHhVlgxdlQvXqjcumoL /qJ3rXhyM/DO+6DsFG1gUOn8yavjJ1M05I3luiZ7uVvXg8PTO4vt2yjKtaLSpjjVHUNE 3xUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=dtbY772P; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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. [23.128.96.19]) by mx.google.com with ESMTPS id iw5-20020a170903044500b0015cf92b7fbbsi9328956plb.503.2022.05.23.11.33.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 11:33:25 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=dtbY772P; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 548873DA5C; Mon, 23 May 2022 11:31:44 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241486AbiEWRak (ORCPT + 99 others); Mon, 23 May 2022 13:30:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241604AbiEWRWa (ORCPT ); Mon, 23 May 2022 13:22:30 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2A6F7A467; Mon, 23 May 2022 10:19:12 -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 DAA08B811F8; Mon, 23 May 2022 17:17:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 24187C385AA; Mon, 23 May 2022 17:17:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1653326262; bh=cLb5gKpb3Emt5UyYxqpjSOJ5CM5YoWj2BbF49iH0I7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dtbY772PSwrd6CHw4tyPuFe1WKhefC4l88fZ74CngBitVTz+AGwgoiRLSAPns1ma8 HoEAZg83B2VvThjfJCsimbzxaNACxD9gyI7gZ5qQBrMsgSnKmmF/xCd0DlF2azvmWp Ee7IgkYwcWCKhm26svxgYsLvgp713YqOxrFR12GY= 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 007/132] i2c: piix4: Move SMBus controller base address detect into function Date: Mon, 23 May 2022 19:03:36 +0200 Message-Id: <20220523165824.793406905@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 0a59a24e14e9b21dcbb6b8ea41422e2fdfa437fd upstream. Move SMBus controller base address detection into function. Refactor is in preparation for following MMIO changes. 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 | 69 ++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 25 deletions(-) --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -282,11 +282,51 @@ static int piix4_setup(struct pci_dev *P return piix4_smba; } +static int piix4_setup_sb800_smba(struct pci_dev *PIIX4_dev, + u8 smb_en, + u8 aux, + u8 *smb_en_status, + unsigned short *piix4_smba) +{ + u8 smba_en_lo; + u8 smba_en_hi; + int retval; + + retval = piix4_sb800_region_request(&PIIX4_dev->dev); + if (retval) + return retval; + + outb_p(smb_en, SB800_PIIX4_SMB_IDX); + smba_en_lo = inb_p(SB800_PIIX4_SMB_IDX + 1); + outb_p(smb_en + 1, SB800_PIIX4_SMB_IDX); + smba_en_hi = inb_p(SB800_PIIX4_SMB_IDX + 1); + + piix4_sb800_region_release(&PIIX4_dev->dev); + + if (!smb_en) { + *smb_en_status = smba_en_lo & 0x10; + *piix4_smba = smba_en_hi << 8; + if (aux) + *piix4_smba |= 0x20; + } else { + *smb_en_status = smba_en_lo & 0x01; + *piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; + } + + if (!*smb_en_status) { + dev_err(&PIIX4_dev->dev, + "SMBus Host Controller not enabled!\n"); + return -ENODEV; + } + + return 0; +} + static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, const struct pci_device_id *id, u8 aux) { unsigned short piix4_smba; - u8 smba_en_lo, smba_en_hi, smb_en, smb_en_status, port_sel; + u8 smb_en, smb_en_status, port_sel; u8 i2ccfg, i2ccfg_offset = 0x10; int retval; @@ -310,33 +350,12 @@ static int piix4_setup_sb800(struct pci_ else smb_en = (aux) ? 0x28 : 0x2c; - retval = piix4_sb800_region_request(&PIIX4_dev->dev); + retval = piix4_setup_sb800_smba(PIIX4_dev, smb_en, aux, &smb_en_status, + &piix4_smba); + if (retval) return retval; - outb_p(smb_en, SB800_PIIX4_SMB_IDX); - smba_en_lo = inb_p(SB800_PIIX4_SMB_IDX + 1); - outb_p(smb_en + 1, SB800_PIIX4_SMB_IDX); - smba_en_hi = inb_p(SB800_PIIX4_SMB_IDX + 1); - - piix4_sb800_region_release(&PIIX4_dev->dev); - - if (!smb_en) { - smb_en_status = smba_en_lo & 0x10; - piix4_smba = smba_en_hi << 8; - if (aux) - piix4_smba |= 0x20; - } else { - smb_en_status = smba_en_lo & 0x01; - piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; - } - - if (!smb_en_status) { - dev_err(&PIIX4_dev->dev, - "SMBus Host Controller not enabled!\n"); - return -ENODEV; - } - if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) return -ENODEV;