From nobody Fri Oct 3 13:23:16 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BAE524EA90; Sat, 30 Aug 2025 15:57:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569428; cv=none; b=UFSm3+PgGDQomC0t0hOPjFugQRjTy7rqDB5maIfDy7EQ7bKu1fJvRNiA+QXIb4lcyz6dZdNQ0fsuJyT+OcjOONTcBNBuA1+uTs1FNBgxoKlgT+1VBjALALJS0A4yPz0nOJhH+LdXYtGosm5xFu5C6dZHs2nEeVEez3faXq2fDew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569428; c=relaxed/simple; bh=TR3dYiXJaEpl0M5QPz3NRcBIUcRMr2+x6i8Z5eZSKvw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=R2FsMLtH7LthueBLxD3vM/kqgcA6/yRVh+9BrWy/CPTu3jntFwocr0vlk5mBibl2WhvMLYxtNuvVRpM04JJyxvjuQJebtBPSVsMK7O9215XkU0BJB+SwUUhuwQWEFpVAp7MrzB7qYKzo9B22rfU/yOsGeIyXIXK3HayBYEoqFqk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usNwq-000000007q1-1HU3; Sat, 30 Aug 2025 15:57:00 +0000 Date: Sat, 30 Aug 2025 16:56:56 +0100 From: Daniel Golle To: "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Matthias Brugger , AngeloGioacchino Del Regno , Daniel Golle , =?iso-8859-1?Q?N=EDcolas_F=2E_R=2E_A=2E?= Prado , Greg Kroah-Hartman , Mason Chang , Arnd Bergmann , Frank Wunderlich , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stable@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Chad Monroe Subject: [PATCH linux-stable 6.12 1/3] thermal/drivers/mediatek/lvts_thermal: Change lvts commands array to static const Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mason Chang [ Upstream commit c5d5a72c01f7faabe7cc0fd63942c18372101daf ] Change the LVTS commands array to static const in preparation for adding different commands. Fixes: 585e92e6a79f ("thermal/drivers/mediatek/lvts_thermal: Add mt7988 sup= port") Signed-off-by: Mason Chang Link: https://lore.kernel.org/r/20250526102659.30225-2-mason-cw.chang@media= tek.com Signed-off-by: Daniel Lezcano Signed-off-by: Daniel Golle --- drivers/thermal/mediatek/lvts_thermal.c | 29 +++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/medi= atek/lvts_thermal.c index ae063d1bc95f..c24b76bcd18a 100644 --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c @@ -92,6 +92,17 @@ =20 #define LVTS_MINIMUM_THRESHOLD 20000 =20 +static const u32 default_conn_cmds[] =3D { 0xC103FFFF, 0xC502FF55 }; +/* + * Write device mask: 0xC1030000 + */ +static const u32 default_init_cmds[] =3D { + 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1, + 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300, + 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC, + 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1 +}; + static int golden_temp =3D LVTS_GOLDEN_TEMP_DEFAULT; static int golden_temp_offset; =20 @@ -880,7 +891,7 @@ static void lvts_ctrl_monitor_enable(struct device *dev= , struct lvts_ctrl *lvts_ * each write in the configuration register must be separated by a * delay of 2 us. */ -static void lvts_write_config(struct lvts_ctrl *lvts_ctrl, u32 *cmds, int = nr_cmds) +static void lvts_write_config(struct lvts_ctrl *lvts_ctrl, const u32 *cmds= , int nr_cmds) { int i; =20 @@ -963,9 +974,9 @@ static int lvts_ctrl_set_enable(struct lvts_ctrl *lvts_= ctrl, int enable) =20 static int lvts_ctrl_connect(struct device *dev, struct lvts_ctrl *lvts_ct= rl) { - u32 id, cmds[] =3D { 0xC103FFFF, 0xC502FF55 }; + u32 id; =20 - lvts_write_config(lvts_ctrl, cmds, ARRAY_SIZE(cmds)); + lvts_write_config(lvts_ctrl, default_conn_cmds, ARRAY_SIZE(default_conn_c= mds)); =20 /* * LVTS_ID : Get ID and status of the thermal controller @@ -984,17 +995,7 @@ static int lvts_ctrl_connect(struct device *dev, struc= t lvts_ctrl *lvts_ctrl) =20 static int lvts_ctrl_initialize(struct device *dev, struct lvts_ctrl *lvts= _ctrl) { - /* - * Write device mask: 0xC1030000 - */ - u32 cmds[] =3D { - 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1, - 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300, - 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC, - 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1 - }; - - lvts_write_config(lvts_ctrl, cmds, ARRAY_SIZE(cmds)); + lvts_write_config(lvts_ctrl, default_init_cmds, ARRAY_SIZE(default_init_c= mds)); =20 return 0; } --=20 2.51.0 From nobody Fri Oct 3 13:23:16 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83E5C25F7A4; Sat, 30 Aug 2025 15:57:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569438; cv=none; b=bG1OjS9G7d8adO0xir/+qi7dvOKBeTSRdfVTg3LrzaGWhIIH6fKdq0Y90HiDg1WEy6QdJ0GgiA2lfp6hx9umXY1qTuIhrcBh/bELdCteUyZqDYMP7s08I7EkGZqrIwXHVZ8wndE7tbVBxeQkACx/GELnyldmpoJu+q+2uwXOqAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569438; c=relaxed/simple; bh=t8c4Dix9ic8NnaYspIRY0NxCgWClvnHjpQgeitk1svE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=S1cfCYEwprWVC3VP3D10SWCGa7DUf9zi0hUfTO26Hz9B9/zY576Ksz2CpJ2HPMJM5izG7T9PzviADnRPFLXIOyJDrK2fMzBNGLhFthbx5I3YpNWU7c0fCU83GXE/DBZDJ61NlTO4iQn32zM2riudkO4mfg7Eh5uv+01maBPC+Mg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usNx0-000000007qk-2gkB; Sat, 30 Aug 2025 15:57:10 +0000 Date: Sat, 30 Aug 2025 16:57:07 +0100 From: Daniel Golle To: "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Matthias Brugger , AngeloGioacchino Del Regno , Daniel Golle , =?iso-8859-1?Q?N=EDcolas_F=2E_R=2E_A=2E?= Prado , Greg Kroah-Hartman , Mason Chang , Arnd Bergmann , Frank Wunderlich , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stable@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Chad Monroe Subject: [PATCH linux-stable 6.12 2/3] thermal/drivers/mediatek/lvts_thermal: Add lvts commands and their sizes to driver data Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mason Chang [ Upstream commit 6203a5e6fd090ed05f6d9b92e33bc7e7679a3dd6 ] Add LVTS commands and their sizes to driver data in preparation for adding different commands. Fixes: 585e92e6a79f ("thermal/drivers/mediatek/lvts_thermal: Add mt7988 sup= port") Signed-off-by: Mason Chang Link: https://lore.kernel.org/r/20250526102659.30225-3-mason-cw.chang@media= tek.com Signed-off-by: Daniel Lezcano Signed-off-by: Daniel Golle --- drivers/thermal/mediatek/lvts_thermal.c | 65 ++++++++++++++++++++----- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/medi= atek/lvts_thermal.c index c24b76bcd18a..239476152bab 100644 --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c @@ -92,17 +92,6 @@ =20 #define LVTS_MINIMUM_THRESHOLD 20000 =20 -static const u32 default_conn_cmds[] =3D { 0xC103FFFF, 0xC502FF55 }; -/* - * Write device mask: 0xC1030000 - */ -static const u32 default_init_cmds[] =3D { - 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1, - 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300, - 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC, - 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1 -}; - static int golden_temp =3D LVTS_GOLDEN_TEMP_DEFAULT; static int golden_temp_offset; =20 @@ -132,7 +121,11 @@ struct lvts_ctrl_data { =20 struct lvts_data { const struct lvts_ctrl_data *lvts_ctrl; + const u32 *conn_cmd; + const u32 *init_cmd; int num_lvts_ctrl; + int num_conn_cmd; + int num_init_cmd; int temp_factor; int temp_offset; int gt_calib_bit_offset; @@ -974,9 +967,10 @@ static int lvts_ctrl_set_enable(struct lvts_ctrl *lvts= _ctrl, int enable) =20 static int lvts_ctrl_connect(struct device *dev, struct lvts_ctrl *lvts_ct= rl) { + const struct lvts_data *lvts_data =3D lvts_ctrl->lvts_data; u32 id; =20 - lvts_write_config(lvts_ctrl, default_conn_cmds, ARRAY_SIZE(default_conn_c= mds)); + lvts_write_config(lvts_ctrl, lvts_data->conn_cmd, lvts_data->num_conn_cmd= ); =20 /* * LVTS_ID : Get ID and status of the thermal controller @@ -995,7 +989,9 @@ static int lvts_ctrl_connect(struct device *dev, struct= lvts_ctrl *lvts_ctrl) =20 static int lvts_ctrl_initialize(struct device *dev, struct lvts_ctrl *lvts= _ctrl) { - lvts_write_config(lvts_ctrl, default_init_cmds, ARRAY_SIZE(default_init_c= mds)); + const struct lvts_data *lvts_data =3D lvts_ctrl->lvts_data; + + lvts_write_config(lvts_ctrl, lvts_data->init_cmd, lvts_data->num_init_cmd= ); =20 return 0; } @@ -1424,6 +1420,17 @@ static int lvts_resume(struct device *dev) return 0; } =20 +static const u32 default_conn_cmds[] =3D { 0xC103FFFF, 0xC502FF55 }; +/* + * Write device mask: 0xC1030000 + */ +static const u32 default_init_cmds[] =3D { + 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1, + 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300, + 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC, + 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1 +}; + /* * The MT8186 calibration data is stored as packed 3-byte little-endian * values using a weird layout that makes sense only when viewed as a 32-b= it @@ -1718,7 +1725,11 @@ static const struct lvts_ctrl_data mt8195_lvts_ap_da= ta_ctrl[] =3D { =20 static const struct lvts_data mt7988_lvts_ap_data =3D { .lvts_ctrl =3D mt7988_lvts_ap_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt7988_lvts_ap_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT7988, .temp_offset =3D LVTS_COEFF_B_MT7988, .gt_calib_bit_offset =3D 24, @@ -1726,7 +1737,11 @@ static const struct lvts_data mt7988_lvts_ap_data = =3D { =20 static const struct lvts_data mt8186_lvts_data =3D { .lvts_ctrl =3D mt8186_lvts_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8186_lvts_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT7988, .temp_offset =3D LVTS_COEFF_B_MT7988, .gt_calib_bit_offset =3D 24, @@ -1735,7 +1750,11 @@ static const struct lvts_data mt8186_lvts_data =3D { =20 static const struct lvts_data mt8188_lvts_mcu_data =3D { .lvts_ctrl =3D mt8188_lvts_mcu_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8188_lvts_mcu_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 20, @@ -1744,7 +1763,11 @@ static const struct lvts_data mt8188_lvts_mcu_data = =3D { =20 static const struct lvts_data mt8188_lvts_ap_data =3D { .lvts_ctrl =3D mt8188_lvts_ap_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8188_lvts_ap_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 20, @@ -1753,7 +1776,11 @@ static const struct lvts_data mt8188_lvts_ap_data = =3D { =20 static const struct lvts_data mt8192_lvts_mcu_data =3D { .lvts_ctrl =3D mt8192_lvts_mcu_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8192_lvts_mcu_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 24, @@ -1762,7 +1789,11 @@ static const struct lvts_data mt8192_lvts_mcu_data = =3D { =20 static const struct lvts_data mt8192_lvts_ap_data =3D { .lvts_ctrl =3D mt8192_lvts_ap_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8192_lvts_ap_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 24, @@ -1771,7 +1802,11 @@ static const struct lvts_data mt8192_lvts_ap_data = =3D { =20 static const struct lvts_data mt8195_lvts_mcu_data =3D { .lvts_ctrl =3D mt8195_lvts_mcu_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 24, @@ -1780,7 +1815,11 @@ static const struct lvts_data mt8195_lvts_mcu_data = =3D { =20 static const struct lvts_data mt8195_lvts_ap_data =3D { .lvts_ctrl =3D mt8195_lvts_ap_data_ctrl, + .conn_cmd =3D default_conn_cmds, + .init_cmd =3D default_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt8195_lvts_ap_data_ctrl), + .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT8195, .temp_offset =3D LVTS_COEFF_B_MT8195, .gt_calib_bit_offset =3D 24, --=20 2.51.0 From nobody Fri Oct 3 13:23:16 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99D7D27E1AC; Sat, 30 Aug 2025 15:57:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569448; cv=none; b=u3qtH70XCbzANZRKpr/aYHSPWxogDFmeU2bOGyDwaT0uwL3dHSt4sUpa5KJRn6hM0xl4U2AADVD/4yuwkp8SpwvG4g7+4a4SrSvg3T0BcmY12Y311cJEzkuUnmwNSFY/vBgtATCSS0bhiNWhS14Q1Fa5J2Q+hJiGikD4/76L0S0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756569448; c=relaxed/simple; bh=wESNMmETSujCZDADuk72y+hfY7Tabce4sDTR2e+7eYk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=tPilXwLUgBZsQ6RVa/HW1bRw56O01w6mHn/r4YTI1EmAOvHFGjscUdkTKzzchBYKGsfxbWpp907XD+kvvjYxqz7OdCOD2N97SbsNr+p0kl81/RZFigIc2LMuJrOkHsu6MKhW3VpmuQNV1d/Q7lwLhb6R9UmXIuuHqk6wyEWI6jk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usNxA-000000007rf-2P6a; Sat, 30 Aug 2025 15:57:20 +0000 Date: Sat, 30 Aug 2025 16:57:17 +0100 From: Daniel Golle To: "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Matthias Brugger , AngeloGioacchino Del Regno , Daniel Golle , =?iso-8859-1?Q?N=EDcolas_F=2E_R=2E_A=2E?= Prado , Greg Kroah-Hartman , Mason Chang , Arnd Bergmann , Frank Wunderlich , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stable@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Chad Monroe Subject: [PATCH linux-stable 6.12 3/3] thermal/drivers/mediatek/lvts_thermal: Add mt7988 lvts commands Message-ID: <253c49132453481a74fa3ef59f0b85a51bc9d4c6.1756568900.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mason Chang [ Upstream commit 685a755089f95b7e205c0202567d9a647f9de096 ] These commands are necessary to avoid severely abnormal and inaccurate temperature readings that are caused by using the default commands. Fixes: 585e92e6a79f ("thermal/drivers/mediatek/lvts_thermal: Add mt7988 sup= port") Signed-off-by: Mason Chang Link: https://lore.kernel.org/r/20250526102659.30225-4-mason-cw.chang@media= tek.com Signed-off-by: Daniel Lezcano Signed-off-by: Daniel Golle --- drivers/thermal/mediatek/lvts_thermal.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/medi= atek/lvts_thermal.c index 239476152bab..017191b9f864 100644 --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c @@ -1421,6 +1421,8 @@ static int lvts_resume(struct device *dev) } =20 static const u32 default_conn_cmds[] =3D { 0xC103FFFF, 0xC502FF55 }; +static const u32 mt7988_conn_cmds[] =3D { 0xC103FFFF, 0xC502FC55 }; + /* * Write device mask: 0xC1030000 */ @@ -1431,6 +1433,12 @@ static const u32 default_init_cmds[] =3D { 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1 }; =20 +static const u32 mt7988_init_cmds[] =3D { + 0xC1030300, 0xC1030420, 0xC1030500, 0xC10307A6, 0xC1030CFC, + 0xC1030A8C, 0xC103098D, 0xC10308F1, 0xC1030B04, 0xC1030E01, + 0xC10306B8 +}; + /* * The MT8186 calibration data is stored as packed 3-byte little-endian * values using a weird layout that makes sense only when viewed as a 32-b= it @@ -1725,11 +1733,11 @@ static const struct lvts_ctrl_data mt8195_lvts_ap_d= ata_ctrl[] =3D { =20 static const struct lvts_data mt7988_lvts_ap_data =3D { .lvts_ctrl =3D mt7988_lvts_ap_data_ctrl, - .conn_cmd =3D default_conn_cmds, - .init_cmd =3D default_init_cmds, + .conn_cmd =3D mt7988_conn_cmds, + .init_cmd =3D mt7988_init_cmds, .num_lvts_ctrl =3D ARRAY_SIZE(mt7988_lvts_ap_data_ctrl), - .num_conn_cmd =3D ARRAY_SIZE(default_conn_cmds), - .num_init_cmd =3D ARRAY_SIZE(default_init_cmds), + .num_conn_cmd =3D ARRAY_SIZE(mt7988_conn_cmds), + .num_init_cmd =3D ARRAY_SIZE(mt7988_init_cmds), .temp_factor =3D LVTS_COEFF_A_MT7988, .temp_offset =3D LVTS_COEFF_B_MT7988, .gt_calib_bit_offset =3D 24, --=20 2.51.0