Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp690460rdf; Fri, 3 Nov 2023 11:58:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGwPz9/VJ9AbkybhaF5WGWJjHJu41igyEeOG7SAjeM/nRjSJYZDzn7kmDY9i6D4/u6QyooQ X-Received: by 2002:a05:6808:1892:b0:3b2:f275:18a8 with SMTP id bi18-20020a056808189200b003b2f27518a8mr29067560oib.22.1699037895969; Fri, 03 Nov 2023 11:58:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1699037895; cv=none; d=google.com; s=arc-20160816; b=i+1tmnmJNCVxt5HYgHxv1qBfeH0rXSwR34NKhK/kjSuSwcqH+s61imxc+aJ/tf0cnt dj+W0Bbqm+RVk0uAAwZSA/Bih05ug35HG3rfUYjYUKAjj4GlMBzkzLmLnzFJxB87mt7o KFNBGdT7lIpwYGApwtL4J/MsZHURWva3s5VYhA9TnN61q9eY5uZjWkr4aftaTxChBLIa xIQp57WQjnM7B+ZM8jkmL/hs0sKydeRxt7TjG2lkz/V0xsFt4Vgh5UV6WA4uq2G2rzd/ gz4LbmE/Cqk6BH6p8xAh+EWTZGYM+dCWQQ9hpfLpPneZH9TUPeMiBwQQjfYVA/FyC8wT aWRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=yCNQUHCSZTbJ8KuLi5z2WtgZGkpa2mTT7UKrdej+Tyc=; fh=dfsY5d6TRAuEYJM9HDwDMTtNyDF2MYtYb8fKOgJgvGE=; b=oFxmtyq3Pz9m+EfnTrEuvb8XSnfpIQxspGP5tSaJbshZR7W8rwB/fMxsMCvN1g47pn yqz0Agwe8IWIi6g/3Kd5D9vxqar91tXat+BZl53TSbIC9+x08Y1d9GKPGvNec8prSi1C C28mV95lteFAahNB1C/h6zg12LVFmOUzePyb1EjqLzJp/o4px9q67STu0k0kSFHUG2w+ 4LaldgR4vcgQVW8LaJ+R1qAlvHwoT7wElMaVSqhosGdxuzrRyz8jBLC+LnabPPfXK1tY QKIJ8Q3jgdJ9TAEn1QMCCHn6bT+VNzYikp4cIQY2egzL7+yMzWyjfVqwrr0iVzQaDULs 3OQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=DgdYbT4R; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id u8-20020a056a00098800b006be0278445esi2098580pfg.138.2023.11.03.11.58.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Nov 2023 11:58:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=DgdYbT4R; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 7BEC483DC985; Fri, 3 Nov 2023 11:58:12 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376360AbjKCS6I (ORCPT + 99 others); Fri, 3 Nov 2023 14:58:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345859AbjKCS6D (ORCPT ); Fri, 3 Nov 2023 14:58:03 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83AF9D59; Fri, 3 Nov 2023 11:57:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1699037854; x=1699642654; i=w_armin@gmx.de; bh=OhijzaFOCs/gLtWXwbD2ow5r3VEm8U+868KlplYcQ9k=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=DgdYbT4Ra7kHuz52A+z8oHHWKuIvGfu55yQkp3ft3wPp1sxNYt5ExyaTtb3YH8MJ 26XvYJVekwrWUwbmz1VtLvlJN6nvNpUf7ZmR8i5JY4Np3xmHi1RPs0ozDniosn3Nu r2p26CYennpNcJ03/GV+7ECaBwQe1m4bCYV1pQIKNdDgkumSr38XHtimWgaQjiwC4 XHLh37nize3hPWUm+xKR9ZdmqqwtRZhOL3IQsL15gl4V8iRISi7IbToyNgNnEnyyJ zLrEmPZXaLRCWoU50cUaKWPKsZ9boC0MDi4gGIbwBRz6L8t/EMgdeyR6nEj8omFpt t3gI+18lmWcv2vCayw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MgvrL-1rdZxr0I5V-00hOEG; Fri, 03 Nov 2023 19:57:34 +0100 From: Armin Wolf To: pali@kernel.org Cc: jdelvare@suse.com, linux@roeck-us.net, linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/9] hwmon: (dell-smm) Move config entries out of i8k_dmi_table Date: Fri, 3 Nov 2023 19:57:12 +0100 Message-Id: <20231103185716.11007-6-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231103185716.11007-1-W_Armin@gmx.de> References: <20231103185716.11007-1-W_Armin@gmx.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:+bHDlPOemJkQ3c8wajbkE1ZDf+QZWbc35o3L40DApMIPvZ3N/iV lrXTfBfxwgjzNilZ4BhPXtesiftSrdk7Ga5qOtiK97kEyYtkLrdF/VVeETizshW2iuNcM8N /bBqgBBp9/U+LO2LTZzBPFL6EBkxqBZJCKHs8E1wmVlYE1K0hPx2m1ZP3HBSdHOqXOni3aL PdH+6hrNOfrV5U6jseFOQ== UI-OutboundReport: notjunk:1;M01:P0:1IdPy4aFrCQ=;w3njuxt2JVfAiEnTgHAlOkoWdhd sZN+jidOCfcAhg27RaoK8Tdv70Bx7KfcVsEAJt27V+tj2WyNCgV8sr0jbbdhy2qylUvUe7iuy vtt/HdCqX4tMgEHpJA4+YAsBJJ3eFhia2te6G/yaIrCeLVYwJGcn+QVOqg8HxYF05a9TOAuL8 UcAAr/XetnK36c54QCiP40v1y3rlSUjSRB1GQuSGaz4Xxa1XCiOK9Qxp/0kAKtMcg47N7d7xB fvX7joXEZIoH619npmWO2p67wwYjqHIVxJLnogLUASmKvKm62su6S46kBouRxNsN9K0013iU+ 9P+9kOpqNIVdcgkRc93UKCQmRyeZEXWSWipRK9FfZ2+f7zEi2L7p/LwWAxXswCuXwUwZ+hMdQ TubnerCg4Ose1S1gNXaQGdhFjT4s7G92C2S+Nbvkkv1e318JPfXjNw2p+ZfiUmMn4ObIDvVk0 8mCv40MdXpvsy43PI7TPG7qWn+XUALa4+BdhH9CKhM3CbB/W9anIWKbBiPRqaRYmxRPcBYHse Fc/QNRe/tFpmL34AKfJt7JBllvCGPTSYwLOy9ctoVIcE4ub1MoQSZtOxQPzNdy7zpDMeBNz87 PPFJgM4281YEATle0qq07oBZbcmKnSNcd0XN6ZuChDvs11IWyMdbRPXYMlnd45VevPi8Y/fi5 pHxB30vLjcTJ3YEW/sTtgPpfFAAc77np6dVVowBNL1ITRcR8PbMRvsKO5wsfNSCEJNF2HCEy1 yTnQjsU24nFytpkxirsybdasb9F0vuk43wkA6C4XGDD5/4mLWIYdy3NNOjMjBI3NCSR7OOIho k1VI5cBuALnLOlRGhSHc3oQSHRxHZPQA6MQtWrrC8Ea2i5J2Bk/KjRZW0xEy641zO15rDfUOJ u1aNxrBZXK1I0Vs3aNudUQ7VtRt+RgCDpaIncj5LaeO8BGM0MsiDgzFi8e3ut1Xh3dDbSGc+k oFPnESytj0+/7Bsriyeo8YxUcwk= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 03 Nov 2023 11:58:12 -0700 (PDT) Currently, i8k_dmi_table contains both entries used for DMI matching and entries used to override config options. This does not allow for differentiating between "its safe to issue raw SMM calls on this machine" and "its not safe to issue raw SMM calls on this machine, but here are some config values". Since future SMM backends will need to differentiate between those two cases, move those config entries into a separate table. i8k_dmi_table now serves as a general "its safe to issue raw SMM calls" table. Tested-by: Signed-off-by: Armin Wolf =2D-- drivers/hwmon/dell-smm-hwmon.c | 129 +++++++++++++++++++-------------- 1 file changed, 73 insertions(+), 56 deletions(-) diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon= .c index 3d14a3baf8e4..4a2c0d1ffa5b 100644 =2D-- a/drivers/hwmon/dell-smm-hwmon.c +++ b/drivers/hwmon/dell-smm-hwmon.c @@ -1078,42 +1078,6 @@ static int __init dell_smm_init_hwmon(struct device= *dev) return PTR_ERR_OR_ZERO(dell_smm_hwmon_dev); } -struct i8k_config_data { - uint fan_mult; - uint fan_max; -}; - -enum i8k_configs { - DELL_LATITUDE_D520, - DELL_PRECISION_490, - DELL_STUDIO, - DELL_XPS, -}; - -/* - * Only use for machines which need some special configuration - * in order to work correctly (e.g. if autoconfig fails on this machines)= . - */ - -static const struct i8k_config_data i8k_config_data[] __initconst =3D { - [DELL_LATITUDE_D520] =3D { - .fan_mult =3D 1, - .fan_max =3D I8K_FAN_TURBO, - }, - [DELL_PRECISION_490] =3D { - .fan_mult =3D 1, - .fan_max =3D I8K_FAN_TURBO, - }, - [DELL_STUDIO] =3D { - .fan_mult =3D 1, - .fan_max =3D I8K_FAN_HIGH, - }, - [DELL_XPS] =3D { - .fan_mult =3D 1, - .fan_max =3D I8K_FAN_HIGH, - }, -}; - static const struct dmi_system_id i8k_dmi_table[] __initconst =3D { { .ident =3D "Dell G5 5590", @@ -1143,14 +1107,6 @@ static const struct dmi_system_id i8k_dmi_table[] _= _initconst =3D { DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron"), }, }, - { - .ident =3D "Dell Latitude D520", - .matches =3D { - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), - DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D520"), - }, - .driver_data =3D (void *)&i8k_config_data[DELL_LATITUDE_D520], - }, { .ident =3D "Dell Latitude 2", .matches =3D { @@ -1172,15 +1128,6 @@ static const struct dmi_system_id i8k_dmi_table[] _= _initconst =3D { DMI_MATCH(DMI_PRODUCT_NAME, "MP061"), }, }, - { - .ident =3D "Dell Precision 490", - .matches =3D { - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), - DMI_MATCH(DMI_PRODUCT_NAME, - "Precision WorkStation 490"), - }, - .driver_data =3D (void *)&i8k_config_data[DELL_PRECISION_490], - }, { .ident =3D "Dell Precision", .matches =3D { @@ -1201,7 +1148,6 @@ static const struct dmi_system_id i8k_dmi_table[] __= initconst =3D { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), DMI_MATCH(DMI_PRODUCT_NAME, "Studio"), }, - .driver_data =3D (void *)&i8k_config_data[DELL_STUDIO], }, { .ident =3D "Dell XPS M140", @@ -1209,7 +1155,6 @@ static const struct dmi_system_id i8k_dmi_table[] __= initconst =3D { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), DMI_MATCH(DMI_PRODUCT_NAME, "MXC051"), }, - .driver_data =3D (void *)&i8k_config_data[DELL_XPS], }, { .ident =3D "Dell XPS", @@ -1223,6 +1168,78 @@ static const struct dmi_system_id i8k_dmi_table[] _= _initconst =3D { MODULE_DEVICE_TABLE(dmi, i8k_dmi_table); +/* + * Only use for machines which need some special configuration + * in order to work correctly (e.g. if autoconfig fails on this machines)= . + */ +struct i8k_config_data { + uint fan_mult; + uint fan_max; +}; + +enum i8k_configs { + DELL_LATITUDE_D520, + DELL_PRECISION_490, + DELL_STUDIO, + DELL_XPS, +}; + +static const struct i8k_config_data i8k_config_data[] __initconst =3D { + [DELL_LATITUDE_D520] =3D { + .fan_mult =3D 1, + .fan_max =3D I8K_FAN_TURBO, + }, + [DELL_PRECISION_490] =3D { + .fan_mult =3D 1, + .fan_max =3D I8K_FAN_TURBO, + }, + [DELL_STUDIO] =3D { + .fan_mult =3D 1, + .fan_max =3D I8K_FAN_HIGH, + }, + [DELL_XPS] =3D { + .fan_mult =3D 1, + .fan_max =3D I8K_FAN_HIGH, + }, +}; + +static const struct dmi_system_id i8k_config_dmi_table[] __initconst =3D = { + { + .ident =3D "Dell Latitude D520", + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D520"), + }, + .driver_data =3D (void *)&i8k_config_data[DELL_LATITUDE_D520], + }, + { + .ident =3D "Dell Precision 490", + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, + "Precision WorkStation 490"), + }, + .driver_data =3D (void *)&i8k_config_data[DELL_PRECISION_490], + }, + { + .ident =3D "Dell Studio", + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Studio"), + }, + .driver_data =3D (void *)&i8k_config_data[DELL_STUDIO], + }, + { + .ident =3D "Dell XPS M140", + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "MXC051"), + }, + .driver_data =3D (void *)&i8k_config_data[DELL_XPS], + }, + { } +}; + /* * On some machines once I8K_SMM_GET_FAN_TYPE is issued then CPU fan spee= d * randomly going up and down due to bug in Dell SMM or BIOS. Here is bla= cklist @@ -1438,7 +1455,7 @@ static void __init dell_smm_init_dmi(void) * Set fan multiplier and maximal fan speed from DMI config. * Values specified in module parameters override values from DMI. */ - id =3D dmi_first_match(i8k_dmi_table); + id =3D dmi_first_match(i8k_config_dmi_table); if (id && id->driver_data) { config =3D id->driver_data; if (!fan_mult && config->fan_mult) =2D- 2.39.2