Commit 85303db3 authored by Shravan S's avatar Shravan S Committed by Hans de Goede

platform/x86: int1092: Fix non sequential device mode handling

SAR information from BIOS may come in non sequential pattern.

To overcome the issue, a check is made to extract the right SAR
information using the device mode which is currently being used.

Remove .owner field if calls are used which set it automatically.
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
Signed-off-by: default avatarShravan S <s.shravan@intel.com>
Link: https://lore.kernel.org/r/20211006073525.1332925-1-s.shravan@intel.comSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 0b243c00
...@@ -9302,7 +9302,7 @@ S: Maintained ...@@ -9302,7 +9302,7 @@ S: Maintained
F: drivers/platform/x86/intel/atomisp2/led.c F: drivers/platform/x86/intel/atomisp2/led.c
INTEL BIOS SAR INT1092 DRIVER INTEL BIOS SAR INT1092 DRIVER
M: Shravan S <s.shravan@intel.com> M: Shravan Sudhakar <s.shravan@intel.com>
M: Intel Corporation <linuxwwan@intel.com> M: Intel Corporation <linuxwwan@intel.com>
L: platform-driver-x86@vger.kernel.org L: platform-driver-x86@vger.kernel.org
S: Maintained S: Maintained
......
...@@ -42,12 +42,20 @@ static void update_sar_data(struct wwan_sar_context *context) ...@@ -42,12 +42,20 @@ static void update_sar_data(struct wwan_sar_context *context)
if (config->device_mode_info && if (config->device_mode_info &&
context->sar_data.device_mode < config->total_dev_mode) { context->sar_data.device_mode < config->total_dev_mode) {
struct wwan_device_mode_info *dev_mode = int itr = 0;
&config->device_mode_info[context->sar_data.device_mode];
for (itr = 0; itr < config->total_dev_mode; itr++) {
context->sar_data.antennatable_index = dev_mode->antennatable_index; if (context->sar_data.device_mode ==
context->sar_data.bandtable_index = dev_mode->bandtable_index; config->device_mode_info[itr].device_mode) {
context->sar_data.sartable_index = dev_mode->sartable_index; struct wwan_device_mode_info *dev_mode =
&config->device_mode_info[itr];
context->sar_data.antennatable_index = dev_mode->antennatable_index;
context->sar_data.bandtable_index = dev_mode->bandtable_index;
context->sar_data.sartable_index = dev_mode->sartable_index;
break;
}
}
} }
} }
...@@ -305,7 +313,6 @@ static struct platform_driver sar_driver = { ...@@ -305,7 +313,6 @@ static struct platform_driver sar_driver = {
.remove = sar_remove, .remove = sar_remove,
.driver = { .driver = {
.name = DRVNAME, .name = DRVNAME,
.owner = THIS_MODULE,
.acpi_match_table = ACPI_PTR(sar_device_ids) .acpi_match_table = ACPI_PTR(sar_device_ids)
} }
}; };
...@@ -313,4 +320,4 @@ module_platform_driver(sar_driver); ...@@ -313,4 +320,4 @@ module_platform_driver(sar_driver);
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("Platform device driver for INTEL MODEM BIOS SAR"); MODULE_DESCRIPTION("Platform device driver for INTEL MODEM BIOS SAR");
MODULE_AUTHOR("Shravan S <s.shravan@intel.com>"); MODULE_AUTHOR("Shravan Sudhakar <s.shravan@intel.com>");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment