Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8378308ybl; Thu, 16 Jan 2020 15:40:27 -0800 (PST) X-Google-Smtp-Source: APXvYqy7EuwwKyfOV/VK7TWhBIIK8MaX3LmfPa4DQRuVT9Vg2A+XO5sYAVK+00k/SqZ/wwRwOZ6q X-Received: by 2002:a9d:5c1:: with SMTP id 59mr4175163otd.192.1579218027352; Thu, 16 Jan 2020 15:40:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579218027; cv=none; d=google.com; s=arc-20160816; b=luf0B5VD1oQd0vJWF/ECBQY4+m2nXy95wFLWstB9Bh64cO5BZTyRTsHirECVqA+142 UqRNZrAQk5xg/JSgOOLLr0SRPziQPIUuFd36XzF37EGPzzgm5qdYtbmgjLodqnv+V1MI EE0gHF4SrX1s/54i6YU8tlv1pG4hdr7bcJlwjJpKW+lVkGj/Yk/QQAxyuNiczJDaG4nj qp10XUQy0ej4tR0L2pGpeHDXwf8hP1DvnGizyg1xoOQ5is+4BgC+MdMFJXMqp4PzmKDn OOfINyKQThLMNkCkpVInv3O/U3ha+/ZlyyDwRxBbWKdWR6BR4zK6DCpcaSBIvWAVxAbO DWRg== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0WvSgIt9ZyqzWs6rWfwvGDPrGAhR/Q8KatS3qbRxWh0=; b=tAferxrJrCyNs2VvTWuUajcig6f/hBRtTJFMr1x10Lakv3ufFChnDGtBwcH/3bgTyd jd4H+AqqdBJTiqcMkVB684Xt+LnLWv18lKUa1UNqMdgy/Rokmysi16vIaY4Ls+XauP0K WKNZvSe8dhsYl0O83xO6XHh3EQYfA2MWSOj9Gh47nYckSpHigK4mKZPcY51MGOwuMrHc ORc4HK8kfqQRAnwe8o8S1F91kXzGZv2ZmrynPmlOU5iXenX04AHmAIY3AqSGtMNFJA4I CXM6YDhrzca5vrIdH6cisWZXNDNbChEwZ3uZ4YVelyq2MpiptSTZB4KAimC6UGImw3gq uM9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eGYqx+BM; 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 k4si12429723oiw.55.2020.01.16.15.40.16; Thu, 16 Jan 2020 15:40:27 -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=@kernel.org header.s=default header.b=eGYqx+BM; 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 S2391184AbgAPX2y (ORCPT + 99 others); Thu, 16 Jan 2020 18:28:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:34012 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729762AbgAPX2x (ORCPT ); Thu, 16 Jan 2020 18:28:53 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3C95B20684; Thu, 16 Jan 2020 23:28:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579217332; bh=PoxcrDcGEQmUeQXGusjb3WsOfqsZeYJY0WnI1BoaYy0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGYqx+BMwIdxFNjrgFRn8bhUoAFWf2RhwEsHwtSqno/XfBo8Iky2CLR45jt1MQYc6 rg2tYp81lg9w7ogLbHdy/QBND9UvDKhKoO2QrmvdMIOKLCYvvi8TYIJjPTX/58yhjy 2NJvRI/PThOVYs9EjeVqNj2uHSuk75IrOClBI73E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jason Anderson , Hans de Goede , Andy Shevchenko Subject: [PATCH 4.19 40/84] platform/x86: GPD pocket fan: Use default values when wrong modparams are given Date: Fri, 17 Jan 2020 00:18:14 +0100 Message-Id: <20200116231718.472607590@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200116231713.087649517@linuxfoundation.org> References: <20200116231713.087649517@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hans de Goede commit 6ae01050e49f0080ae30575d9b45a6d4a3d7ee23 upstream. Use our default values when wrong module-parameters are given, instead of refusing to load. Refusing to load leaves the fan at the BIOS default setting, which is "Off". The CPU's thermal throttling should protect the system from damage, but not-loading is really not the best fallback in this case. This commit fixes this by re-setting module-parameter values to their defaults if they are out of range, instead of failing the probe with -EINVAL. Cc: stable@vger.kernel.org Cc: Jason Anderson Reported-by: Jason Anderson Fixes: 594ce6db326e ("platform/x86: GPD pocket fan: Use a min-speed of 2 while charging") Signed-off-by: Hans de Goede Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman --- drivers/platform/x86/gpd-pocket-fan.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) --- a/drivers/platform/x86/gpd-pocket-fan.c +++ b/drivers/platform/x86/gpd-pocket-fan.c @@ -16,17 +16,27 @@ #define MAX_SPEED 3 -static int temp_limits[3] = { 55000, 60000, 65000 }; +#define TEMP_LIMIT0_DEFAULT 55000 +#define TEMP_LIMIT1_DEFAULT 60000 +#define TEMP_LIMIT2_DEFAULT 65000 + +#define HYSTERESIS_DEFAULT 3000 + +#define SPEED_ON_AC_DEFAULT 2 + +static int temp_limits[3] = { + TEMP_LIMIT0_DEFAULT, TEMP_LIMIT1_DEFAULT, TEMP_LIMIT2_DEFAULT, +}; module_param_array(temp_limits, int, NULL, 0444); MODULE_PARM_DESC(temp_limits, "Millicelsius values above which the fan speed increases"); -static int hysteresis = 3000; +static int hysteresis = HYSTERESIS_DEFAULT; module_param(hysteresis, int, 0444); MODULE_PARM_DESC(hysteresis, "Hysteresis in millicelsius before lowering the fan speed"); -static int speed_on_ac = 2; +static int speed_on_ac = SPEED_ON_AC_DEFAULT; module_param(speed_on_ac, int, 0444); MODULE_PARM_DESC(speed_on_ac, "minimum fan speed to allow when system is powered by AC"); @@ -120,18 +130,21 @@ static int gpd_pocket_fan_probe(struct p if (temp_limits[i] < 40000 || temp_limits[i] > 70000) { dev_err(&pdev->dev, "Invalid temp-limit %d (must be between 40000 and 70000)\n", temp_limits[i]); - return -EINVAL; + temp_limits[0] = TEMP_LIMIT0_DEFAULT; + temp_limits[1] = TEMP_LIMIT1_DEFAULT; + temp_limits[2] = TEMP_LIMIT2_DEFAULT; + break; } } if (hysteresis < 1000 || hysteresis > 10000) { dev_err(&pdev->dev, "Invalid hysteresis %d (must be between 1000 and 10000)\n", hysteresis); - return -EINVAL; + hysteresis = HYSTERESIS_DEFAULT; } if (speed_on_ac < 0 || speed_on_ac > MAX_SPEED) { dev_err(&pdev->dev, "Invalid speed_on_ac %d (must be between 0 and 3)\n", speed_on_ac); - return -EINVAL; + speed_on_ac = SPEED_ON_AC_DEFAULT; } fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL);