Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3667291lfo; Mon, 23 May 2022 10:49:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy9kwLbGQalubvu8wzH6S5jNpa+lrW/pc0CX6EOPQb/N/V6e/W+yFhk+mlye3p/CLZkAecQ X-Received: by 2002:a63:531c:0:b0:3fa:5856:2fa2 with SMTP id h28-20020a63531c000000b003fa58562fa2mr4972744pgb.198.1653328192250; Mon, 23 May 2022 10:49:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653328192; cv=none; d=google.com; s=arc-20160816; b=MAm/g1mXLj041YGwgVJrglPRCykc3+70T0ak9hNxHLg4QhzAIOi68RbMm/mTjHT15u a0QNRaUAdpGIRs18/NL/UQ6xmA4OxSbhRJxU5hcwjv4KBh9/uysa40p+Cx0yfrM3e2xr IZ3MCztAFuirGTnSmIwY90k76+e1rSASacCxfdRMMdG+lMHtuFb1c1lFYnPY0LsTi27c umTncHuPLS5hjq9UOO3gZGH0NCzn48Ip69z+oueJ+jlVlX/M2tCUwBRo4H3+01YVT6ui Q89mluP9HvU8pOuEip/1cow7s40gI0qKy80naKFFhfI4MdMyJT0YGvJ6tZ1bQsVYvXJs 4Znw== 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=ScotTp+ga6bk77e0uK+L/G1JfHcbprf18RsSp1esbwYjfgvlev+AoSLVzmksVRisXk 9/HizG4LnniqdC8SPag7eAdMKuN7nvQXLaCrUHxThxnhq12ZI8tOg9WR4qyPFoGfXykY hZvkvw79/lk8XE9O1MzqcUxg+l5BJxYa2P4FQx4RyEI/U3YBqf+DehSiQbDoC9C7wzbI 61TtTGWehiSH4V0JGHvAeRbIYIwXi9+oMWG45Y790MCpf52nMeFTCwDY4d0PLOtQvopm KShbbzpY0YOAPP2yPSvfSPsfyfSvOcwWAcI0Cj0H0Tdfvzgnukz5ZtiReApk7z3e8N6T wjCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=MVRBtGcZ; 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 e15-20020a170903240f00b0015a16b86c56si10666036plo.81.2022.05.23.10.49.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 10:49:52 -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=MVRBtGcZ; 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 77794AEE26; Mon, 23 May 2022 10:49:30 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243062AbiEWRql (ORCPT + 99 others); Mon, 23 May 2022 13:46:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242669AbiEWR14 (ORCPT ); Mon, 23 May 2022 13:27:56 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ECC7C8B08C; Mon, 23 May 2022 10:24:01 -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 930A760C1D; Mon, 23 May 2022 17:24:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 950D9C385A9; Mon, 23 May 2022 17:24:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1653326641; bh=cLb5gKpb3Emt5UyYxqpjSOJ5CM5YoWj2BbF49iH0I7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MVRBtGcZda+/yDXSU3KzbDQmJtq/xPMG1o7Pa64PmDYbOgN3JBiP8HMSdyMk9G4/2 kV0DEwf/BKZJjr9dSV6SjoszvdZIrb+ZkvNpLfJVBNEu/jLkd8l4z0TPIrdIyGxMZ7 xPaA15ETtRviDiy6NkwdDHx6joFKx4DlM5xaVwfc= 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 006/158] i2c: piix4: Move SMBus controller base address detect into function Date: Mon, 23 May 2022 19:02:43 +0200 Message-Id: <20220523165831.605365798@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 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;