qcacmn: Fix the incorrect check in is_service_enabled_tlv

Many firmware do not send wmi_ext_service bitmap in wmi_ready event
so the ext_service_bitmap will be empty in such cases. So the condition
in the is_service_enabled_tlv to check for wmi_ext_service bitmap
and return false is wrong as wmi_ext_service bitmap support is not
necessity. This condition leads to incorrect behavior in cases when
firmware do not support wmi_ext_service bitmap as is_service_enabled_tlv
returns false for every service.

Fix the above failure by addition of condition check for wmi_ext_service
bitmap only when wmi_ext2_service bitmap is supported by firmware.

Change-Id: I94d0b65e640d44f41d14de889955a6d6330e88b2
CRs-Fixed: 2786491
This commit is contained in:
Surabhi Vishnoi
2020-10-06 11:59:23 +05:30
committad av snandini
förälder 766838ebaa
incheckning e906b00a65

Visa fil

@@ -8676,19 +8676,19 @@ static bool is_service_enabled_tlv(wmi_unified_t wmi_handle,
return false;
}
if (!soc->wmi_ext_service_bitmap) {
wmi_err("WMI service ext bit map is not saved yet");
return false;
}
/* if wmi_service_enabled was received with extended2 bitmap,
* use WMI_SERVICE_EXT2_IS_ENABLED to check the services.
*/
if (soc->wmi_ext2_service_bitmap)
if (soc->wmi_ext2_service_bitmap) {
if (!soc->wmi_ext_service_bitmap) {
wmi_err("WMI service ext bit map is not saved yet");
return false;
}
return WMI_SERVICE_EXT2_IS_ENABLED(soc->wmi_service_bitmap,
soc->wmi_ext_service_bitmap,
soc->wmi_ext2_service_bitmap,
service_id);
}
if (service_id >= WMI_MAX_EXT_SERVICE) {
wmi_err("Service id %d but WMI ext2 service bitmap is NULL",