FAILED: patch "[PATCH] iio: cros_ec: Use default frequencies when EC returns invalid" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 56e4f2dda23c6d39d327944faa89efaa4eb290d1 Mon Sep 17 00:00:00 2001
From: Gwendal Grignou <[email protected]>
Date: Tue, 30 Jun 2020 08:37:30 -0700
Subject: [PATCH] iio: cros_ec: Use default frequencies when EC returns invalid
information
Minimal and maximal frequencies supported by a sensor is queried. On some older machines, these frequencies are not returned properly and the EC returns 0 instead.
When returned maximal frequency is 0, ignore the information and use default frequencies instead.
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c +11 -5
@@ -256,7 +256,7 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,struct cros_ec_sensorhub *sensor_hub =dev_get_drvdata (dev->parent);struct cros_ec_dev *ec = sensor_hub->ec;struct cros_ec_sensor_platform *sensor_platform =dev_get_platdata (dev); -u32 ver_mask; +u32 ver_mask, temp;int frequencies[ARRAY_SIZE (state->frequencies) /2 ] = {0 };int ret, i;
@@ -311,10 +311,16 @@ int cros_ec_sensors_core_init(struct platform_device *pdev, &frequencies[2 ], &state->fifo_max_event_count); }else { - frequencies[1 ] = state->resp->info_3.min_frequency; - frequencies[2 ] = state->resp->info_3.max_frequency; - state->fifo_max_event_count = - state->resp->info_3.fifo_max_event_count; +if (state->resp->info_3.max_frequency ==0 ) { +get_default_min_max_freq (state->resp->info.type, + &frequencies[1 ], + &frequencies[2 ], + &temp); + }else { + frequencies[1 ] = state->resp->info_3.min_frequency; + frequencies[2 ] = state->resp->info_3.max_frequency; + } + state->fifo_max_event_count = state->resp->info_3.fifo_max_event_count; }for (i =0 ; i <ARRAY_SIZE (frequencies); i++) { state->frequencies[2 * i] = frequencies[i] /1000 ;