vendor: Introduce wlan-legacy component

LA.VENDOR.1.0 cnss-daemon breaks Wi-Fi on older
SoCs.

Change-Id: I8e50fe07983381a52297e5a7e6b384662e43bd82
This commit is contained in:
Jake Weinstein 2023-02-24 02:26:49 +09:00
parent e6f634e232
commit 6e2b66614e
10 changed files with 255 additions and 2 deletions

View File

@ -129,5 +129,9 @@ ifneq (,$(filter wfd, $(TARGET_COMMON_QTI_COMPONENTS)))
endif
ifneq (,$(filter wlan, $(TARGET_COMMON_QTI_COMPONENTS)))
include $(QCOM_COMMON_PATH)/vendor/wlan/qti-wlan.mk
ifeq ($(call is-board-platform-in-list,$(5_10_FAMILY)),true)
include $(QCOM_COMMON_PATH)/vendor/wlan/qti-wlan.mk
else
include $(QCOM_COMMON_PATH)/vendor/wlan-legacy/qti-wlan-legacy.mk
endif
endif

51
vendor/wlan-legacy/Android.bp vendored Normal file
View File

@ -0,0 +1,51 @@
// Copyright (C) 2021 Paranoid Android
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
soong_namespace {
}
prebuilt_etc {
name: "init.vendor.wlan.rc",
src: "init.vendor.wlan.rc",
sub_dir: "init",
vendor: true,
}
prebuilt_hidl_interfaces {
name: "hidl_SuppTunnelProvider_interface",
interfaces: [
"vendor.qti.hardware.wigig.supptunnel@1.0::ISuppTunnelProvider",
],
}
prebuilt_hidl_interfaces {
name: "hidl_Wificfr_interface",
interfaces: [
"vendor.qti.hardware.wifi.wificfr@1.0::IWificfr",
],
}
prebuilt_hidl_interfaces {
name: "hidl_WifiMyFtm_interface",
interfaces: [
"vendor.qti.hardware.wifi.wifimyftm@1.0::IWifiMyFtm",
],
}
prebuilt_hidl_interfaces {
name: "hidl_WifiStats_interface",
interfaces: [
"vendor.qti.hardware.wifi.wifilearner@1.0::IWifiStats"
],
}

29
vendor/wlan-legacy/Android.mk vendored Normal file
View File

@ -0,0 +1,29 @@
# Copyright (C) 2020 Paranoid Android
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_WLAN_COMPONENT_VARIANT),wlan-legacy)
include $(CLEAR_VARS)
ifeq ($(call is-board-platform-in-list,msm8998 sdm660),true)
-include device/qcom/wlan/sdm660_64/AndroidBoardWlan.mk
else ifeq ($(call is-board-platform-in-list,sm6150),true)
-include device/qcom/wlan/talos/AndroidBoardWlan.mk
else
-include device/qcom/wlan/$(TARGET_BOARD_PLATFORM)/AndroidBoardWlan.mk
endif
endif

31
vendor/wlan-legacy/extract-files.sh vendored Executable file
View File

@ -0,0 +1,31 @@
#!/bin/bash
#
# Copyright (C) 2018-2019 The LineageOS Project
# Copyright (C) 2020 Paranoid Android
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# If we're being sourced by the common script that we called,
# stop right here. No need to go down the rabbit hole.
if [ "${BASH_SOURCE[0]}" != "${0}" ]; then
return
fi
set -e
# Required!
export COMPONENT=wlan-legacy
export VENDOR=qcom/common/vendor
"../extract-files.sh" "$@"

View File

@ -0,0 +1,9 @@
#
# Copyright (c) 2021 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
#
on early-boot
write /sys/kernel/icnss/wpss_boot 1

View File

@ -0,0 +1,21 @@
# WLAN
vendor/bin/athdiag
vendor/bin/cnss-daemon
vendor/bin/cnss_diag
vendor/bin/hal_proxy_daemon
vendor/bin/myftm
vendor/bin/pktlogconf
vendor/bin/spectraltool
vendor/bin/vendor_cmd_tool
vendor/bin/wificfrtool
vendor/bin/wifilearner
vendor/bin/wifimyftm
vendor/etc/init/vendor.qti.hardware.wifi.wificfr@1.0-service.rc
vendor/etc/init/vendor.qti.hardware.wifi.wifilearner@1.0-service.rc
vendor/etc/init/vendor.qti.hardware.wifi.wifimyftm@1.0-service.rc
vendor/etc/vintf/manifest/vendor.qti.hardware.wifi.wificfr@1.0-service.xml
vendor/etc/vintf/manifest/vendor.qti.hardware.wifi.wifimyftm@1.0-service.xml
vendor/lib64/libspectre.so
vendor/lib64/vendor.qti.hardware.wifi.wificfr@1.0.so
vendor/lib64/vendor.qti.hardware.wifi.wifilearner@1.0.so
vendor/lib64/vendor.qti.hardware.wifi.wifimyftm@1.0.so

81
vendor/wlan-legacy/qti-wlan-legacy.mk vendored Normal file
View File

@ -0,0 +1,81 @@
# Copyright (C) 2022 Paranoid Android
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
PRODUCT_SOONG_NAMESPACES += \
device/qcom/common/vendor/wlan-legacy
TARGET_WLAN_COMPONENT_VARIANT := wlan-legacy
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
WIFI_DRIVER_STATE_ON := "ON"
WIFI_DRIVER_STATE_OFF := "OFF"
WPA_SUPPLICANT_VERSION := VER_0_8_X
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
fstman \
fstman.ini \
hostapd \
hostapd.accept \
hostapd.deny \
hostapd_cli \
hostapd_default.conf \
libqsap_sdk \
libwifi-hal-qcom \
sigma_dut \
wpa_supplicant \
wpa_supplicant.conf
ifeq ($(call is-board-platform-in-list, lahaina),true)
PRODUCT_PACKAGES += \
init.vendor.wlan.rc
endif
# Enable IEEE 802.11ax support
ifeq ($(call is-board-platform-in-list, kona lahaina holi taro),true)
CONFIG_IEEE80211AX := true
endif
# IPACM
ifneq (,$(filter 5.10, $(TARGET_KERNEL_VERSION)))
PRODUCT_SOONG_NAMESPACES += vendor/qcom/opensource/data-ipa-cfg-mgr
$(call inherit-product, vendor/qcom/opensource/data-ipa-cfg-mgr/ipacm_vendor_product.mk)
else
PRODUCT_SOONG_NAMESPACES += vendor/qcom/opensource/data-ipa-cfg-mgr-legacy
$(call inherit-product, vendor/qcom/opensource/data-ipa-cfg-mgr-legacy/ipacm_vendor_product.mk)
endif
# Include QCOM WLAN makefiles.
ifeq ($(call is-board-platform-in-list,sdm845),true)
-include device/qcom/wlan/skunk/wlan.mk
else ifeq ($(call is-board-platform-in-list,msm8998 sdm660),true)
-include device/qcom/wlan/sdm660_64/wlan.mk
else ifeq ($(call is-board-platform-in-list,sm6150),true)
-include device/qcom/wlan/talos/wlan.mk
else
-include device/qcom/wlan/$(TARGET_BOARD_PLATFORM)/wlan.mk
endif
# Get non-open-source specific aspects.
$(call inherit-product-if-exists, vendor/qcom/common/vendor/wlan-legacy/wlan-legacy-vendor.mk)

25
vendor/wlan-legacy/setup-makefiles.sh vendored Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
#
# Copyright (C) 2018-2019 The LineageOS Project
# Copyright (C) 2020 Paranoid Android
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -e
# Required!
export COMPONENT=wlan-legacy
export VENDOR=qcom/common/vendor
"../setup-makefiles.sh" "$@"

View File

@ -14,7 +14,7 @@
LOCAL_PATH := $(call my-dir)
ifneq (,$(filter wlan, $(TARGET_COMMON_QTI_COMPONENTS)))
ifeq ($(TARGET_WLAN_COMPONENT_VARIANT),wlan)
include $(CLEAR_VARS)

View File

@ -15,6 +15,8 @@
PRODUCT_SOONG_NAMESPACES += \
device/qcom/common/vendor/wlan
TARGET_WLAN_COMPONENT_VARIANT := wlan
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)