Received: by 10.223.185.111 with SMTP id b44csp821242wrg; Fri, 9 Mar 2018 14:31:10 -0800 (PST) X-Google-Smtp-Source: AG47ELtx6z8VPdoqnxaI7+KROCNg2QoHX1V9OgE9R+A8wVHsDqkjkuScNMt7+XiHizRc2IfvRsRO X-Received: by 10.101.93.82 with SMTP id e18mr29692pgt.371.1520634670727; Fri, 09 Mar 2018 14:31:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520634670; cv=none; d=google.com; s=arc-20160816; b=m0uAmV/F8ioEjBMZtsSUubsX5ccL0VBX6BvtHZGY7QnDhWHaCG88xfCo+qrgAA4kFt YvnPM5iaPFyCFRNqj/SVj7gGgOcKTJsfMOXcLuKTJP82gNz5lmZLwTqc8+LCEHDkuQvd rNRJBe+b2itOP8M+1H+kfytSzbCpEF6MJNg6zHqB+cvi5fm7KzcO7yPo4L5ewKM62Kq0 d7lqMqOu2yRvpX5H1X7J1vuvfQp9cr9p+j0ZWDIL13g07VmQOtNvnGyqc28ncIGMqRfh pE7mALtBFKw05XnhtcLfS9XZ//XNoef0l9xl9V/0BhLhlzq2hyf6tqImFibM9l5HwlPP ygSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=CVXvq7TWxEJK0PYdrUbg1LO8HyGTP5DT9FnFMm2DIME=; b=u9k/ac/LMyHhFoppr1eVOJs2LDUpu3QbacubuEYNZ9mlezFgnfuFz3Pue+X64OzgYK SCWuVU8s7/w1QrF3b2UtV2HIfmVCIbDDH60tLmsiYCpzH07/aVd9fM+ievZIF5CUAOln vsWmfmzUESsLKlFr8NsYjai235uUlNwauhrFLb0r1k7UwGrMroNq2Xp9GQXrUf9+dGHZ 2R67z5OSXc8o0AF8IVaN2iM37rvL4JSVhrev4hQJ71ZirxiU7KMXEdzZ/MR4xDyac0uL TfX6llcat0Ei4gIHXnf4qtVAZUHUWgApFvAN4L1ZjCnhcwCMkaac6mQuwSVegNEt2oe3 KC5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=n/exQ8w8; dkim=pass header.i=@codeaurora.org header.s=default header.b=C+QMCAAI; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m11si1382109pgc.243.2018.03.09.14.30.56; Fri, 09 Mar 2018 14:31:10 -0800 (PST) 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; dkim=pass header.i=@codeaurora.org header.s=default header.b=n/exQ8w8; dkim=pass header.i=@codeaurora.org header.s=default header.b=C+QMCAAI; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933305AbeCIW23 (ORCPT + 99 others); Fri, 9 Mar 2018 17:28:29 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:49186 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932520AbeCIW2Z (ORCPT ); Fri, 9 Mar 2018 17:28:25 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E988660618; Fri, 9 Mar 2018 22:28:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520634504; bh=xuBYDhBW4XQHPkSSU0e5EyJrDGDJU0X6Pe60i8b4dKM=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=n/exQ8w8dESMOA0kn38CBoOdbIt2LBLdD1bKu7gnPS2JXWF2Vs+nj0e657ryjkr81 Z7dNXWp1CYyW12j+hRiw2x+/dhtB5zc3xsIq5p8DO1BuqsnUgQcLZlf4cjxg+sARmf 9KMgdwqxXhUzsGWMd4SzMbbi2DoLec9jfF2vI3kQ= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from [10.222.143.176] (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: anjiandi@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id E41956076C; Fri, 9 Mar 2018 22:28:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520634503; bh=xuBYDhBW4XQHPkSSU0e5EyJrDGDJU0X6Pe60i8b4dKM=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=C+QMCAAIoEMw5ffUb21CVZ0Lxduz5kp549oG2q8QvV4zcVRJIYrjOypIbIrixjGbj lhgpRdx1FVu4jF80xh8NGoHxDp2/C+JUrzXXu/oeVE+Egr63wwuIC9cP+KVHmPK4y7 6E3lLHLqUR/WXZPZoxwihVI6/TRzFB12y9OdA8sQ= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E41956076C Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=anjiandi@codeaurora.org Subject: Re: [PATCH] ipmi: Remove ACPI SPMI probing from the SSIF (I2C) driver To: minyard@acm.org Cc: openipmi-developer@lists.sourceforge.net, linux-kernel@vger.kernel.org, Corey Minyard References: <1520543298-18163-1-git-send-email-minyard@acm.org> From: Jiandi An Message-ID: Date: Fri, 9 Mar 2018 16:28:21 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <1520543298-18163-1-git-send-email-minyard@acm.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/08/2018 03:08 PM, minyard@acm.org wrote: > From: Corey Minyard > > The IPMI spec states: > > The purpose of the SPMI Table is to provide a mechanism that can > be used by the OSPM (an ACPI term for “OS Operating System-directed > configuration and Power Management” essentially meaning an ACPI-aware > OS or OS loader) very early in the boot process, e.g., before the > ability to execute ACPI control methods in the OS is available. > > When we are probing IPMI in Linux, ACPI control methods are available, > so we shouldn't be probing using SPMI. It could cause some confusion > during the probing process. > > Signed-off-by: Corey Minyard > Cc: Jiandi An > --- > > Jiandi, this just yanks out the SPMI code. Your platform > should have an ACPI control method in it's namespace specifying the > IPMI interface. If it doesn't, that's a bug in your platform and > really needs to be fixed. Finding IPMI devices with SMBIOS tables > is kind of risky since there is no real way to know which I2C bus > has the IPMI device if your system has more than one I2C bus. With > an ACPI control method, the IPMI control method will be inside the > I2C bus control method, so it will be unambiguous. Thanks Corey. I tested this patch. It works for us through the ACPI control method. By the way, FYI the ipmi_si driver is also having the SPMI probe code. [ 17.370835] ipmi_si: probing via SPMI Thanks - Jiandi > > drivers/char/ipmi/ipmi_ssif.c | 105 ------------------------------------------ > 1 file changed, 105 deletions(-) > > diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c > index 4cff4cd..206257b 100644 > --- a/drivers/char/ipmi/ipmi_ssif.c > +++ b/drivers/char/ipmi/ipmi_ssif.c > @@ -1994,108 +1994,6 @@ static const struct acpi_device_id ssif_acpi_match[] = { > { }, > }; > MODULE_DEVICE_TABLE(acpi, ssif_acpi_match); > - > -/* > - * Once we get an ACPI failure, we don't try any more, because we go > - * through the tables sequentially. Once we don't find a table, there > - * are no more. > - */ > -static int acpi_failure; > - > -/* > - * Defined in the IPMI 2.0 spec. > - */ > -struct SPMITable { > - s8 Signature[4]; > - u32 Length; > - u8 Revision; > - u8 Checksum; > - s8 OEMID[6]; > - s8 OEMTableID[8]; > - s8 OEMRevision[4]; > - s8 CreatorID[4]; > - s8 CreatorRevision[4]; > - u8 InterfaceType; > - u8 IPMIlegacy; > - s16 SpecificationRevision; > - > - /* > - * Bit 0 - SCI interrupt supported > - * Bit 1 - I/O APIC/SAPIC > - */ > - u8 InterruptType; > - > - /* > - * If bit 0 of InterruptType is set, then this is the SCI > - * interrupt in the GPEx_STS register. > - */ > - u8 GPE; > - > - s16 Reserved; > - > - /* > - * If bit 1 of InterruptType is set, then this is the I/O > - * APIC/SAPIC interrupt. > - */ > - u32 GlobalSystemInterrupt; > - > - /* The actual register address. */ > - struct acpi_generic_address addr; > - > - u8 UID[4]; > - > - s8 spmi_id[1]; /* A '\0' terminated array starts here. */ > -}; > - > -static int try_init_spmi(struct SPMITable *spmi) > -{ > - unsigned short myaddr; > - > - if (num_addrs >= MAX_SSIF_BMCS) > - return -1; > - > - if (spmi->IPMIlegacy != 1) { > - pr_warn("IPMI: Bad SPMI legacy: %d\n", spmi->IPMIlegacy); > - return -ENODEV; > - } > - > - if (spmi->InterfaceType != 4) > - return -ENODEV; > - > - if (spmi->addr.space_id != ACPI_ADR_SPACE_SMBUS) { > - pr_warn(PFX "Invalid ACPI SSIF I/O Address type: %d\n", > - spmi->addr.space_id); > - return -EIO; > - } > - > - myaddr = spmi->addr.address & 0x7f; > - > - return new_ssif_client(myaddr, NULL, 0, 0, SI_SPMI, NULL); > -} > - > -static void spmi_find_bmc(void) > -{ > - acpi_status status; > - struct SPMITable *spmi; > - int i; > - > - if (acpi_disabled) > - return; > - > - if (acpi_failure) > - return; > - > - for (i = 0; ; i++) { > - status = acpi_get_table(ACPI_SIG_SPMI, i+1, > - (struct acpi_table_header **)&spmi); > - if (status != AE_OK) > - return; > - > - try_init_spmi(spmi); > - } > -} > -#else > -static void spmi_find_bmc(void) { } > #endif > > #ifdef CONFIG_DMI > @@ -2200,9 +2098,6 @@ static int init_ipmi_ssif(void) > ssif_i2c_driver.driver.acpi_match_table = > ACPI_PTR(ssif_acpi_match); > > - if (ssif_tryacpi) > - spmi_find_bmc(); > - > if (ssif_trydmi) { > rv = platform_driver_register(&ipmi_driver); > if (rv) > -- Jiandi An Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.