mirror of
https://github.com/team-infusion-developers/android_hardware_samsung.git
synced 2024-11-06 21:55:41 +00:00
wifiloader: Make sure WiFi firmware path is writable
Change-Id: Ib0ae2a004d4207a4ccb3d551c9a6a092920595ca
This commit is contained in:
parent
5b6ec5682e
commit
56508259a6
2 changed files with 21 additions and 0 deletions
|
@ -9,6 +9,9 @@ LOCAL_SRC_FILES := \
|
|||
LOCAL_SHARED_LIBRARIES := \
|
||||
libcutils liblog libutils
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
system/core/include
|
||||
|
||||
ifneq ($(WIFI_DRIVER_MODULE_NAME),)
|
||||
LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_NAME=\"$(WIFI_DRIVER_MODULE_NAME)\"
|
||||
endif
|
||||
|
@ -17,6 +20,10 @@ ifneq ($(WIFI_DRIVER_MODULE_PATH),)
|
|||
LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_PATH=\"$(WIFI_DRIVER_MODULE_PATH)\"
|
||||
endif
|
||||
|
||||
ifneq ($(WIFI_DRIVER_FW_PATH_PARAM),)
|
||||
LOCAL_CFLAGS += -DWIFI_DRIVER_FW_PATH_PARAM=\"$(WIFI_DRIVER_FW_PATH_PARAM)\"
|
||||
endif
|
||||
|
||||
LOCAL_MODULE := wifiloader
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#include <sys/stat.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include <private/android_filesystem_config.h>
|
||||
|
||||
#define DEFERRED_INITCALLS "/proc/deferred_initcalls"
|
||||
|
||||
#ifndef WIFI_DRIVER_MODULE_NAME
|
||||
|
@ -38,6 +40,10 @@
|
|||
#define WIFI_DRIVER_MODULE_PATH "/system/lib/modules/" WIFI_DRIVER_MODULE_NAME ".ko"
|
||||
#endif
|
||||
|
||||
#ifndef WIFI_DRIVER_FW_PATH_PARAM
|
||||
#define WIFI_DRIVER_FW_PATH_PARAM "/sys/module/wlan/parameters/fwpath"
|
||||
#endif
|
||||
|
||||
#define finit_module(fd, params, flags) syscall(__NR_finit_module, fd, params, flags)
|
||||
|
||||
|
||||
|
@ -84,6 +90,14 @@ static int load_module(char const *path)
|
|||
return -errno;
|
||||
}
|
||||
|
||||
// setup proper permissions for firmware change
|
||||
if (chown(WIFI_DRIVER_FW_PATH_PARAM, AID_WIFI, AID_WIFI) != 0) {
|
||||
ALOGE("Failed to chown firmware path %s - error: %s",
|
||||
WIFI_DRIVER_FW_PATH_PARAM, strerror(errno));
|
||||
close(fd);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
// let wifi HAL know we succeeded
|
||||
ALOGV("Successfully loaded WLAN module: %s", WIFI_DRIVER_MODULE_NAME);
|
||||
property_set("wlan.driver.status", "ok");
|
||||
|
|
Loading…
Reference in a new issue