[NEUS7920-133]Revert "[RAMEN9610-11445][9610] wlbt : update MAC addr scheme to avoid...
authorIvan Priest <i.priest@samsung.com>
Wed, 13 Feb 2019 18:48:29 +0000 (18:48 +0000)
committerYoungmin Nam <youngmin.nam@samsung.com>
Tue, 21 May 2019 10:45:22 +0000 (19:45 +0900)
This reverts commit b697b8ad545faae6442a3cf9d633bdac1cf963bb.

Note MAC address can now be read from /proc in generic driver code

Change-Id: I2f60e624085ccd8a2af8c28a284b1583d5e727e8
SCSC-Bug-Id: SSB-49343
Signed-off-by: Ivan Priest <i.priest@samsung.com>
drivers/misc/samsung/scsc/mx140_file.c [changed mode: 0755->0644]
drivers/misc/samsung/scsc_bt/scsc_bt_module.c
drivers/misc/samsung/scsc_bt/scsc_bt_priv.h
drivers/net/wireless/scsc/mgt.c
drivers/net/wireless/scsc/mgt.h
include/scsc/scsc_mx.h

old mode 100755 (executable)
new mode 100644 (file)
index 182caa4..40e918e
@@ -52,8 +52,6 @@
 
 #define MX140_FW_VARIANT_DEFAULT        "mx140"
 
-#define MX140_FW_MAC_FILE_SIZE          (24)
-
 /* Table of suffixes to append to f/w name */
 struct fw_suffix {
        char suffix[6];
@@ -468,89 +466,6 @@ int mx140_request_file(struct scsc_mx *mx, char *path, const struct firmware **f
 }
 EXPORT_SYMBOL(mx140_request_file);
 
-int mx140_request_proc_file(struct scsc_mx *mx, char *path, const struct firmware **firmp)
-{
-       struct file *f;
-       mm_segment_t fs;
-       struct kstat stat;
-       int r;
-       struct firmware *firm;
-       char *buf;
-
-       SCSC_TAG_DEBUG(MX_FILE, "request proc %s\n", path);
-
-       *firmp = NULL;
-
-       /* Current segment. */
-       fs = get_fs();
-       /* Set to kernel segment. */
-       set_fs(get_ds());
-
-       /* Check f/w bin */
-       r = vfs_stat(path, &stat);
-       if (r != 0) {
-               set_fs(fs);
-               SCSC_TAG_ERR(MX_FILE, "vfs_stat() failed for %s\n", path);
-               return -ENOENT;
-       }
-       /* Revert to original segment. */
-       set_fs(fs);
-
-       /* Get memory for file contents. */
-       buf = vzalloc(MX140_FW_MAC_FILE_SIZE);
-       if (!buf) {
-               SCSC_TAG_ERR(MX_FILE, "kzalloc(%d) failed for %s\n", MX140_FW_MAC_FILE_SIZE, path);
-               return -ENOMEM;
-       }
-
-       /* Get firmware structure. */
-       firm = kzalloc(sizeof(*firm), GFP_KERNEL);
-       if (!firm) {
-               vfree(buf);
-               SCSC_TAG_ERR(MX_FILE, "kzalloc(%zu) failed for %s\n", sizeof(*firmp), path);
-               return -ENOMEM;
-       }
-
-       /* Open the file for reading. */
-       f = filp_open(path, O_RDONLY, 0);
-       if (IS_ERR(f)) {
-               vfree(buf);
-               kfree(firm);
-               SCSC_TAG_ERR(MX_FILE, "filp_open() failed for %s with %ld\n", path, PTR_ERR(f));
-               return -ENOENT;
-       }
-
-       fs = get_fs();
-       set_fs(get_ds());
-
-       r = vfs_read(f, buf, MX140_FW_MAC_FILE_SIZE, &f->f_pos);
-       if (r < 0) {
-               SCSC_TAG_ERR(MX_FILE, "error reading %s\n", path);
-       }
-
-       set_fs(fs);
-       filp_close(f, NULL);
-
-       if (r >= 0) {
-               r = 0;
-               /* Pass to caller. Caller will free allocated memory through
-                * mx140_release_file().
-                */
-               firm->size = MX140_FW_MAC_FILE_SIZE;
-               firm->data = buf;
-               *firmp = firm;
-       } else {
-               vfree(buf);
-               kfree(firm);
-       }
-       if (r < 0)
-               return -ENOENT;
-       else
-               return r;
-}
-EXPORT_SYMBOL(mx140_request_proc_file);
-
-
 int mx140_release_file(struct scsc_mx *mx, const struct firmware *firmp)
 {
        if (!firmp || !firmp->data) {
index bde380a87ca2fbbd113a2f9f322efc856462674a..62365edfa120c245711b1f384d2fd682b567189c 100755 (executable)
@@ -643,7 +643,7 @@ static int setup_bhcs(struct scsc_service *service,
        SCSC_TAG_DEBUG(BT_COMMON,
                "loading Bluetooth address configuration file: "
                SCSC_BT_ADDR "\n");
-       err = mx140_request_proc_file(common_service.maxwell_core, SCSC_BT_ADDR, &firm);
+       err = mx140_request_file(common_service.maxwell_core, SCSC_BT_ADDR, &firm);
        if (err) {
                /* Not found - just silently ignore this */
                SCSC_TAG_DEBUG(BT_COMMON, "Bluetooth address not found\n");
index acda5a600ae5f43ac4378b04549898df783ba40d..c2c7cc3af241ab2c4bca6bd14e17c5d57cf1b19c 100755 (executable)
@@ -53,7 +53,7 @@
 #define SCSC_BT_ADDR      "/csa/bluetooth/.bd_addr"
 #define SCSC_BT_ADDR_LEN  (3)
 #else
-#define SCSC_BT_ADDR      "/proc/config/bt_mac/ascii"
+#define SCSC_BT_ADDR      "/mnt/vendor/efs/bluetooth/bt_addr"
 #define SCSC_BT_ADDR_LEN  (6)
 #endif
 
index b55c129480d3590497f733ba60b0ac8678085e42..ed0d3e1d1ec1ad21b2fce4be57f4cc71992d71a5 100755 (executable)
@@ -194,26 +194,29 @@ void slsi_get_hw_mac_address(struct slsi_dev *sdev, u8 *addr)
        int                   r;
 
        /* read maddr_file */
-       r = mx140_request_proc_file(sdev->maxwell_core, SLSI_WIFI_ADDR, &e);
+       if (sdev->maddr_file_name) {
+               scnprintf(path_name, MX_WLAN_FILE_PATH_LEN_MAX, "wlan/%s", sdev->maddr_file_name);
+               SLSI_DBG1(sdev, SLSI_INIT_DEINIT, "MAC address file : %s\n", path_name);
 
-       if (r != 0)
-               goto mac_efs;
+               r = mx140_file_request_device_conf(sdev->maxwell_core, &e, path_name);
+               if (r != 0)
+                       goto mac_efs;
 
-       if (!e) {
-               SLSI_ERR(sdev, "mx140_file_request_device_conf() returned succes, but firmware was null\n");
-               goto mac_efs;
-       }
-       r = sscanf(e->data, "%02X:%02X:%02X:%02X:%02X:%02X", &u[0], &u[1], &u[2], &u[3], &u[4], &u[5]);
-       mx140_file_release_conf(sdev->maxwell_core, e);
-       if (r != ETH_ALEN) {
-               SLSI_ERR(sdev, "%s exists, but format is incorrect (should be e.g. xx:xx:xx:xx:xx:xx)\n", SLSI_WIFI_ADDR);
-               goto mac_efs;
+               if (!e) {
+                       SLSI_ERR(sdev, "mx140_file_request_device_conf() returned succes, but firmware was null\n");
+                       goto mac_efs;
+               }
+               r = sscanf(e->data, "%02X:%02X:%02X:%02X:%02X:%02X", &u[0], &u[1], &u[2], &u[3], &u[4], &u[5]);
+               mx140_file_release_conf(sdev->maxwell_core, e);
+               if (r != ETH_ALEN) {
+                       SLSI_ERR(sdev, "%s exists, but format is incorrect (should be e.g. xx:xx:xx:xx:xx:xx)\n", path_name);
+                       goto mac_efs;
+               }
+               for (i = 0; i < ETH_ALEN; i++)
+                       addr[i] = u[i] & 0xff;
+               SLSI_INFO(sdev, "MAC address loaded from %s: %02X:%02X:%02X:%02X:%02X:%02X\n", path_name, u[0], u[1], u[2], u[3], u[4], u[5]);
+               return;
        }
-       for (i = 0; i < ETH_ALEN; i++)
-               addr[i] = u[i] & 0xff;
-       SLSI_INFO(sdev, "MAC address loaded from %s: %02X:%02X:%02X:%02X:%02X:%02X\n", path_name, u[0], u[1], u[2], u[3], u[4], u[5]);
-       return;
-
 mac_efs:
 #ifdef CONFIG_SCSC_WLAN_MAC_ADDRESS_FILENAME
        r = mx140_request_file(sdev->maxwell_core, CONFIG_SCSC_WLAN_MAC_ADDRESS_FILENAME, &e);
@@ -231,12 +234,6 @@ mac_efs:
        for (i = 0; i < ETH_ALEN; i++)
                addr[i] = u[i] & 0xff;
        SLSI_INFO(sdev, "MAC address loaded from %s: %02X:%02X:%02X:%02X:%02X:%02X\n", CONFIG_SCSC_WLAN_MAC_ADDRESS_FILENAME, u[0], u[1], u[2], u[3], u[4], u[5]);
-
-       /* MAC address in efs could be invalid, try to fix it to normal address */
-       if (addr[0] & 0x01) {
-               addr[0] = addr[0] & 0xfe;
-               SLSI_INFO(sdev, "MAC address invalid, fixed address: %pM", addr);
-       }
        mx140_release_file(sdev->maxwell_core, e);
        return;
 #endif
index 694ebfcfc6d28037a1180c9eb6c0236888b71d00..3a9ac0e92c9e6a4a993dc4425b5848e5804e343b 100755 (executable)
 #define SLSI_RX_SEQ_NUM_MASK        0xFFF
 #define SLSI_RX_VIA_TDLS_LINK       0x8000
 
-#define SLSI_WIFI_ADDR      "/proc/config/wifi_mac/ascii"
-
 #define SET_ETHERTYPE_PATTERN_DESC(pd, ethertype) \
        pd.offset  = 0x0C; \
        pd.mask_length = 2; \
index f5587fd2f285cb7739f73ce9e3782040abb7a2ae..f05514c518b70ba97b6b9a558195e9c778d460e9 100755 (executable)
@@ -307,14 +307,6 @@ void mx140_file_release_conf(struct scsc_mx *mx, const struct firmware *conf);
  */
 int mx140_request_file(struct scsc_mx *mx, char *path, const struct firmware **firmp);
 
-/* Read device configuration proc file into memory.
- *
- * Path is absolute.
- * Returns pointer to data or NULL if file not found.
- * Call mx140_release_file() to release the memory.
- */
-int mx140_request_proc_file(struct scsc_mx *mx, char *path, const struct firmware **firmp);
-
 /* Release configuration file memory allocated with mx140_request_file()
  *
  * If firmp is NULL, has no effect.