return -ENOMEM;
        }
 
-       priv->tx_ring = (struct adm8211_desc *)(priv->rx_ring +
-                                               priv->rx_ring_size);
+       priv->tx_ring = priv->rx_ring + priv->rx_ring_size;
        priv->tx_ring_dma = priv->rx_ring_dma +
                            sizeof(struct adm8211_desc) * priv->rx_ring_size;
 
 
  *                         ------------------------------------------------
  */
 
-       memcpy((char *)ai->txfids[0].virtual_host_addr,
+       memcpy(ai->txfids[0].virtual_host_addr,
                (char *)&wifictlhdr8023, sizeof(wifictlhdr8023));
 
        payloadLen = (__le16 *)(ai->txfids[0].virtual_host_addr +
                        airo_print_err(ai->dev->name, "%s: len=%d", __func__, len);
                        rc = -1;
                } else {
-                       memcpy((char *)ai->config_desc.virtual_host_addr,
+                       memcpy(ai->config_desc.virtual_host_addr,
                                pBuf, len);
 
                        rc = issuecommand(ai, &cmd, &rsp);
 
                                mdata_size, length);
                        return -1;
                }
-               memcpy(mptr, (u8 *) (word + COMP_HDR_LEN), length);
+               memcpy(mptr, word + COMP_HDR_LEN, length);
                ath_dbg(common, EEPROM,
                        "restored eeprom %d: uncompressed, length %d\n",
                        it, length);
                        "restore eeprom %d: block, reference %d, length %d\n",
                        it, reference, length);
                ar9300_uncompress_block(ah, mptr, mdata_size,
-                                       (u8 *) (word + COMP_HDR_LEN), length);
+                                       (word + COMP_HDR_LEN), length);
                break;
        default:
                ath_dbg(common, EEPROM, "unknown compression code %d\n", code);
 
 {
 #define EEPROM_4K_SIZE (sizeof(struct ar5416_eeprom_4k) / sizeof(u16))
        struct ath_common *common = ath9k_hw_common(ah);
-       struct ar5416_eeprom_4k *eep =
-               (struct ar5416_eeprom_4k *) &ah->eeprom.map4k;
+       struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k;
        u16 *eepdata, temp, magic, magic2;
        u32 sum = 0, el;
        bool need_swap = false;
 
 
 static int ath9k_hw_def_check_eeprom(struct ath_hw *ah)
 {
-       struct ar5416_eeprom_def *eep =
-               (struct ar5416_eeprom_def *) &ah->eeprom.def;
+       struct ar5416_eeprom_def *eep = &ah->eeprom.def;
        struct ath_common *common = ath9k_hw_common(ah);
        u16 *eepdata, temp, magic, magic2;
        u32 sum = 0, el;
 
        if (!cmd)
                return -ENOMEM;
 
-       err = __carl9170_exec_cmd(ar, (struct carl9170_cmd *)cmd, true);
+       err = __carl9170_exec_cmd(ar, cmd, true);
        return err;
 }
 
 
 
 void carl9170_handle_command_response(struct ar9170 *ar, void *buf, u32 len)
 {
-       struct carl9170_rsp *cmd = (void *) buf;
+       struct carl9170_rsp *cmd = buf;
        struct ieee80211_vif *vif;
 
        if (carl9170_check_sequence(ar, cmd->hdr.seq))
  */
 static void carl9170_ps_beacon(struct ar9170 *ar, void *data, unsigned int len)
 {
-       struct ieee80211_hdr *hdr = (void *) data;
+       struct ieee80211_hdr *hdr = data;
        struct ieee80211_tim_ie *tim_ie;
        u8 *tim;
        u8 tim_len;
 
        /* current AP address - only in reassoc frame */
        if (is_reassoc) {
                memcpy(body.ap, priv->CurrentBSSID, 6);
-               ssid_el_p = (u8 *)&body.ssid_el_id;
+               ssid_el_p = &body.ssid_el_id;
                bodysize = 18 + priv->SSID_size;
        } else {
-               ssid_el_p = (u8 *)&body.ap[0];
+               ssid_el_p = &body.ap[0];
                bodysize = 12 + priv->SSID_size;
        }
 
 
        desc = ring->descbase;
        desc = &(desc[slot]);
 
-       return (struct b43legacy_dmadesc32 *)desc;
+       return desc;
 }
 
 static void op32_fill_descriptor(struct b43legacy_dmaring *ring,
 
        b43legacy_generate_plcp_hdr((struct b43legacy_plcp_hdr4 *)
                                    (&txhdr->plcp), plcp_fragment_len,
                                    rate);
-       b43legacy_generate_plcp_hdr((struct b43legacy_plcp_hdr4 *)
-                                   (&txhdr->plcp_fb), plcp_fragment_len,
+       b43legacy_generate_plcp_hdr(&txhdr->plcp_fb, plcp_fragment_len,
                                    rate_fb->hw_value);
 
        /* PHY TX Control word */
                b43legacy_generate_plcp_hdr((struct b43legacy_plcp_hdr4 *)
                                            (&txhdr->rts_plcp),
                                            len, rts_rate);
-               b43legacy_generate_plcp_hdr((struct b43legacy_plcp_hdr4 *)
-                                           (&txhdr->rts_plcp_fb),
+               b43legacy_generate_plcp_hdr(&txhdr->rts_plcp_fb,
                                            len, rts_rate_fb);
                hdr = (struct ieee80211_hdr *)(&txhdr->rts_frame);
                txhdr->rts_dur_fb = hdr->duration_id;
 
                int ret, i;
 
                ret = brcmf_sdcard_send_buf(bus->sdiodev, bus->sdiodev->sbwad,
-                       SDIO_FUNC_2, F2SYNC, (u8 *) bus->ctrl_frame_buf,
+                       SDIO_FUNC_2, F2SYNC, bus->ctrl_frame_buf,
                        (u32) bus->ctrl_frame_len);
 
                if (ret < 0) {
        len = brcmf_sdbrcm_get_image(memblock, MEMBLOCK, bus);
 
        if (len > 0 && len < MEMBLOCK) {
-               bufp = (char *)memblock;
+               bufp = memblock;
                bufp[len] = 0;
                len = brcmf_process_nvram_vars(bufp, len);
                bufp += len;
 
        struct ieee80211_tx_info *tx_info;
 
        while (i != end) {
-               skb = (struct sk_buff *)di->txp[i];
+               skb = di->txp[i];
                if (skb != NULL) {
                        tx_info = (struct ieee80211_tx_info *)skb->cb;
                        (callback_fnc)(tx_info, arg_a);
 
        struct brcms_pub *pub;
 
        /* allocate struct brcms_c_info state and its substructures */
-       wlc = (struct brcms_c_info *) brcms_c_attach_malloc(unit, &err, 0);
+       wlc = brcms_c_attach_malloc(unit, &err, 0);
        if (wlc == NULL)
                goto fail;
        wlc->wiphy = wl->wiphy;
 
 {
        char *p = page;
        local_info_t *local = (local_info_t *) data;
-       struct comm_tallies_sums *sums = (struct comm_tallies_sums *)
-               &local->comm_tallies;
+       struct comm_tallies_sums *sums = &local->comm_tallies;
 
        if (off != 0) {
                *eof = 1;
 
        }
 
        IPW_DEBUG_QOS("QoS sending IPW_CMD_QOS_PARAMETERS\n");
-       err = ipw_send_qos_params_command(priv,
-                                         (struct libipw_qos_parameters *)
-                                         &(qos_parameters[0]));
+       err = ipw_send_qos_params_command(priv, &qos_parameters[0]);
        if (err)
                IPW_DEBUG_QOS("QoS IPW_CMD_QOS_PARAMETERS failed\n");
 
 
        void *data;
        int length;
 
-       data = (void *)rxb_addr(rxb);
+       data = rxb_addr(rxb);
        length = get_event_length(rxb);
 
        if (!data || length == 0)
 
                        DMA_BIDIRECTIONAL);
 
        trace_iwlwifi_dev_tx(trans->dev,
-                            &((struct iwl_tfd *)txq->tfds)[txq->q.write_ptr],
+                            &txq->tfds[txq->q.write_ptr],
                             sizeof(struct iwl_tfd),
                             &dev_cmd->hdr, firstlen,
                             skb->data + hdr_len, secondlen);
 
                res = -EFAULT;
                goto out_unlock;
        }
-       priv->mac_offset = simple_strtoul((char *)buf, NULL, 16);
+       priv->mac_offset = simple_strtoul(buf, NULL, 16);
        res = count;
 out_unlock:
        free_page(addr);
                res = -EFAULT;
                goto out_unlock;
        }
-       priv->bbp_offset = simple_strtoul((char *)buf, NULL, 16);
+       priv->bbp_offset = simple_strtoul(buf, NULL, 16);
        res = count;
 out_unlock:
        free_page(addr);
 
 static void if_usb_disconnect(struct usb_interface *intf)
 {
        struct if_usb_card *cardp = usb_get_intfdata(intf);
-       struct lbs_private *priv = (struct lbs_private *) cardp->priv;
+       struct lbs_private *priv = cardp->priv;
 
        lbs_deb_enter(LBS_DEB_MAIN);
 
 
 static void if_usb_disconnect(struct usb_interface *intf)
 {
        struct if_usb_card *cardp = usb_get_intfdata(intf);
-       struct lbtf_private *priv = (struct lbtf_private *) cardp->priv;
+       struct lbtf_private *priv = cardp->priv;
 
        lbtf_deb_enter(LBTF_DEB_MAIN);
 
 
 {
        int tid;
        struct mwifiex_tx_ba_stream_tbl *tx_ba_tbl;
-       struct host_cmd_ds_11n_delba *del_ba =
-               (struct host_cmd_ds_11n_delba *) &resp->params.del_ba;
+       struct host_cmd_ds_11n_delba *del_ba = &resp->params.del_ba;
        uint16_t del_ba_param_set = le16_to_cpu(del_ba->del_ba_param_set);
 
        tid = del_ba_param_set >> DELBA_TID_POS;
                              struct host_cmd_ds_command *resp)
 {
        int tid;
-       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp =
-               (struct host_cmd_ds_11n_addba_rsp *) &resp->params.add_ba_rsp;
+       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp = &resp->params.add_ba_rsp;
        struct mwifiex_tx_ba_stream_tbl *tx_ba_tbl;
 
        add_ba_rsp->ssn = cpu_to_le16((le16_to_cpu(add_ba_rsp->ssn))
 
                memcpy((u8 *) bss_co_2040 +
                       sizeof(struct mwifiex_ie_types_header),
-                      (u8 *) bss_desc->bcn_bss_co_2040 +
+                      bss_desc->bcn_bss_co_2040 +
                       sizeof(struct ieee_types_header),
                       le16_to_cpu(bss_co_2040->header.len));
 
                ext_cap->header.type = cpu_to_le16(WLAN_EID_EXT_CAPABILITY);
                ext_cap->header.len = cpu_to_le16(sizeof(ext_cap->ext_cap));
 
-               memcpy((u8 *) ext_cap +
-                      sizeof(struct mwifiex_ie_types_header),
-                      (u8 *) bss_desc->bcn_ext_cap +
-                      sizeof(struct ieee_types_header),
+               memcpy((u8 *)ext_cap + sizeof(struct mwifiex_ie_types_header),
+                      bss_desc->bcn_ext_cap + sizeof(struct ieee_types_header),
                       le16_to_cpu(ext_cap->header.len));
 
                *buffer += sizeof(struct mwifiex_ie_types_extcap);
 
                priv = adapter->priv[i];
                if (priv)
                        ba_stream_num += mwifiex_wmm_list_len(
-                                               (struct list_head *)
-                                               &priv->tx_ba_stream_tbl_ptr);
+                               &priv->tx_ba_stream_tbl_ptr);
        }
 
        return ((ba_stream_num <
 
  */
 int mwifiex_cmd_11n_addba_req(struct host_cmd_ds_command *cmd, void *data_buf)
 {
-       struct host_cmd_ds_11n_addba_req *add_ba_req =
-               (struct host_cmd_ds_11n_addba_req *)
-               &cmd->params.add_ba_req;
+       struct host_cmd_ds_11n_addba_req *add_ba_req = &cmd->params.add_ba_req;
 
        cmd->command = cpu_to_le16(HostCmd_CMD_11N_ADDBA_REQ);
        cmd->size = cpu_to_le16(sizeof(*add_ba_req) + S_DS_GEN);
                                  struct host_cmd_ds_11n_addba_req
                                  *cmd_addba_req)
 {
-       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp =
-               (struct host_cmd_ds_11n_addba_rsp *)
-               &cmd->params.add_ba_rsp;
+       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp = &cmd->params.add_ba_rsp;
        u8 tid;
        int win_size;
        uint16_t block_ack_param_set;
  */
 int mwifiex_cmd_11n_delba(struct host_cmd_ds_command *cmd, void *data_buf)
 {
-       struct host_cmd_ds_11n_delba *del_ba = (struct host_cmd_ds_11n_delba *)
-               &cmd->params.del_ba;
+       struct host_cmd_ds_11n_delba *del_ba = &cmd->params.del_ba;
 
        cmd->command = cpu_to_le16(HostCmd_CMD_11N_DELBA);
        cmd->size = cpu_to_le16(sizeof(*del_ba) + S_DS_GEN);
        int start_win, end_win, win_size;
        u16 pkt_index;
 
-       tbl = mwifiex_11n_get_rx_reorder_tbl((struct mwifiex_private *) priv,
-                                            tid, ta);
+       tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta);
        if (!tbl) {
                if (pkt_type != PKT_TYPE_BAR)
                        mwifiex_process_rx_packet(priv->adapter, payload);
 int mwifiex_ret_11n_addba_resp(struct mwifiex_private *priv,
                               struct host_cmd_ds_command *resp)
 {
-       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp =
-               (struct host_cmd_ds_11n_addba_rsp *)
-               &resp->params.add_ba_rsp;
+       struct host_cmd_ds_11n_addba_rsp *add_ba_rsp = &resp->params.add_ba_rsp;
        int tid, win_size;
        struct mwifiex_rx_reorder_tbl *tbl;
        uint16_t block_ack_param_set;
 
        wdev_priv = wiphy_priv(wiphy);
        *(unsigned long *)wdev_priv = (unsigned long)adapter;
 
-       set_wiphy_dev(wiphy, (struct device *)priv->adapter->dev);
+       set_wiphy_dev(wiphy, priv->adapter->dev);
 
        ret = wiphy_register(wiphy);
        if (ret < 0) {
 
 {
        u8 mac_address[ETH_ALEN];
        int ret;
-       u8 zero_mac[ETH_ALEN] = { 0, 0, 0, 0, 0, 0 };
 
-       if (mac) {
-               if (!memcmp(mac, zero_mac, sizeof(zero_mac)))
-                       memcpy((u8 *) &mac_address,
-                              (u8 *) &priv->curr_bss_params.bss_descriptor.
-                              mac_address, ETH_ALEN);
-               else
-                       memcpy((u8 *) &mac_address, (u8 *) mac, ETH_ALEN);
-       } else {
-               memcpy((u8 *) &mac_address, (u8 *) &priv->curr_bss_params.
-                      bss_descriptor.mac_address, ETH_ALEN);
-       }
+       if (!mac || is_zero_ether_addr(mac))
+               memcpy(mac_address,
+                      priv->curr_bss_params.bss_descriptor.mac_address,
+                      ETH_ALEN);
+       else
+               memcpy(mac_address, mac, ETH_ALEN);
 
        ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_DEAUTHENTICATE,
-                                   HostCmd_ACT_GEN_SET, 0, &mac_address);
+                                   HostCmd_ACT_GEN_SET, 0, mac_address);
 
        return ret;
 }
 
                        case TLV_TYPE_TSFTIMESTAMP:
                                dev_dbg(adapter->dev, "info: SCAN_RESP: TSF "
                                        "timestamp TLV, len = %d\n", tlv_len);
-                               *tlv_data = (struct mwifiex_ie_types_data *)
-                                       current_tlv;
+                               *tlv_data = current_tlv;
                                break;
                        case TLV_TYPE_CHANNELBANDLIST:
                                dev_dbg(adapter->dev, "info: SCAN_RESP: channel"
                                        " band list TLV, len = %d\n", tlv_len);
-                               *tlv_data = (struct mwifiex_ie_types_data *)
-                                       current_tlv;
+                               *tlv_data = current_tlv;
                                break;
                        default:
                                dev_err(adapter->dev,
                                        bss_entry->beacon_buf);
                        break;
                case WLAN_EID_BSS_COEX_2040:
-                       bss_entry->bcn_bss_co_2040 = (u8 *) (current_ptr +
-                                       sizeof(struct ieee_types_header));
+                       bss_entry->bcn_bss_co_2040 = current_ptr +
+                               sizeof(struct ieee_types_header);
                        bss_entry->bss_co_2040_offset = (u16) (current_ptr +
                                        sizeof(struct ieee_types_header) -
                                                bss_entry->beacon_buf);
                        break;
                case WLAN_EID_EXT_CAPABILITY:
-                       bss_entry->bcn_ext_cap = (u8 *) (current_ptr +
-                                       sizeof(struct ieee_types_header));
+                       bss_entry->bcn_ext_cap = current_ptr +
+                               sizeof(struct ieee_types_header);
                        bss_entry->ext_cap_offset = (u16) (current_ptr +
                                        sizeof(struct ieee_types_header) -
                                        bss_entry->beacon_buf);
                                goto done;
                        }
                        if (element_id == WLAN_EID_DS_PARAMS) {
-                               channel = *(u8 *) (current_ptr +
-                                       sizeof(struct ieee_types_header));
+                               channel = *(current_ptr + sizeof(struct ieee_types_header));
                                break;
                        }
 
 
        if (curr_bss->bcn_bss_co_2040)
                curr_bss->bcn_bss_co_2040 =
-                       (u8 *) (curr_bss->beacon_buf +
-                                       curr_bss->bss_co_2040_offset);
+                       (curr_bss->beacon_buf + curr_bss->bss_co_2040_offset);
 
        if (curr_bss->bcn_ext_cap)
-               curr_bss->bcn_ext_cap = (u8 *) (curr_bss->beacon_buf +
-                               curr_bss->ext_cap_offset);
+               curr_bss->bcn_ext_cap = curr_bss->beacon_buf +
+                       curr_bss->ext_cap_offset;
 }
 
 /*
 
                struct host_cmd_ds_mac_reg_access *mac_reg;
 
                cmd->size = cpu_to_le16(sizeof(*mac_reg) + S_DS_GEN);
-               mac_reg = (struct host_cmd_ds_mac_reg_access *) &cmd->
-                                                               params.mac_reg;
+               mac_reg = &cmd->params.mac_reg;
                mac_reg->action = cpu_to_le16(cmd_action);
                mac_reg->offset =
                        cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
                struct host_cmd_ds_bbp_reg_access *bbp_reg;
 
                cmd->size = cpu_to_le16(sizeof(*bbp_reg) + S_DS_GEN);
-               bbp_reg = (struct host_cmd_ds_bbp_reg_access *)
-                                                       &cmd->params.bbp_reg;
+               bbp_reg = &cmd->params.bbp_reg;
                bbp_reg->action = cpu_to_le16(cmd_action);
                bbp_reg->offset =
                        cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
                struct host_cmd_ds_rf_reg_access *rf_reg;
 
                cmd->size = cpu_to_le16(sizeof(*rf_reg) + S_DS_GEN);
-               rf_reg = (struct host_cmd_ds_rf_reg_access *)
-                                                       &cmd->params.rf_reg;
+               rf_reg = &cmd->params.rf_reg;
                rf_reg->action = cpu_to_le16(cmd_action);
                rf_reg->offset = cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
                rf_reg->value = (u8) le32_to_cpu(reg_rw->value);
                struct host_cmd_ds_pmic_reg_access *pmic_reg;
 
                cmd->size = cpu_to_le16(sizeof(*pmic_reg) + S_DS_GEN);
-               pmic_reg = (struct host_cmd_ds_pmic_reg_access *) &cmd->
-                               params.pmic_reg;
+               pmic_reg = &cmd->params.pmic_reg;
                pmic_reg->action = cpu_to_le16(cmd_action);
                pmic_reg->offset =
                                cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
                struct host_cmd_ds_rf_reg_access *cau_reg;
 
                cmd->size = cpu_to_le16(sizeof(*cau_reg) + S_DS_GEN);
-               cau_reg = (struct host_cmd_ds_rf_reg_access *)
-                                                       &cmd->params.rf_reg;
+               cau_reg = &cmd->params.rf_reg;
                cau_reg->action = cpu_to_le16(cmd_action);
                cau_reg->offset =
                                cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
        {
                struct mwifiex_ds_read_eeprom *rd_eeprom = data_buf;
                struct host_cmd_ds_802_11_eeprom_access *cmd_eeprom =
-                       (struct host_cmd_ds_802_11_eeprom_access *)
                        &cmd->params.eeprom;
 
                cmd->size = cpu_to_le16(sizeof(*cmd_eeprom) + S_DS_GEN);
 
                               struct mwifiex_ds_get_stats *stats)
 {
        struct host_cmd_ds_802_11_get_log *get_log =
-               (struct host_cmd_ds_802_11_get_log *) &resp->params.get_log;
+               &resp->params.get_log;
 
        if (stats) {
                stats->mcast_tx_frame = le32_to_cpu(get_log->mcast_tx_frame);
        u32 i;
        int ret = 0;
 
-       tlv_buf = (u8 *) ((u8 *) rate_cfg) +
+       tlv_buf = ((u8 *)rate_cfg) +
                        sizeof(struct host_cmd_ds_tx_rate_cfg);
        tlv_buf_len = *(u16 *) (tlv_buf + sizeof(u16));
 
        eeprom = data_buf;
        switch (type) {
        case HostCmd_CMD_MAC_REG_ACCESS:
-               r.mac = (struct host_cmd_ds_mac_reg_access *)
-                       &resp->params.mac_reg;
+               r.mac = &resp->params.mac_reg;
                reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.mac->offset));
                reg_rw->value = r.mac->value;
                break;
        case HostCmd_CMD_BBP_REG_ACCESS:
-               r.bbp = (struct host_cmd_ds_bbp_reg_access *)
-                       &resp->params.bbp_reg;
+               r.bbp = &resp->params.bbp_reg;
                reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.bbp->offset));
                reg_rw->value = cpu_to_le32((u32) r.bbp->value);
                break;
 
        case HostCmd_CMD_RF_REG_ACCESS:
-               r.rf = (struct host_cmd_ds_rf_reg_access *)
-                      &resp->params.rf_reg;
+               r.rf = &resp->params.rf_reg;
                reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf->offset));
                reg_rw->value = cpu_to_le32((u32) r.bbp->value);
                break;
        case HostCmd_CMD_PMIC_REG_ACCESS:
-               r.pmic = (struct host_cmd_ds_pmic_reg_access *)
-                        &resp->params.pmic_reg;
+               r.pmic = &resp->params.pmic_reg;
                reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.pmic->offset));
                reg_rw->value = cpu_to_le32((u32) r.pmic->value);
                break;
        case HostCmd_CMD_CAU_REG_ACCESS:
-               r.rf = (struct host_cmd_ds_rf_reg_access *)
-                      &resp->params.rf_reg;
+               r.rf = &resp->params.rf_reg;
                reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf->offset));
                reg_rw->value = cpu_to_le32((u32) r.rf->value);
                break;
        case HostCmd_CMD_802_11_EEPROM_ACCESS:
-               r.eeprom = (struct host_cmd_ds_802_11_eeprom_access *)
-                          &resp->params.eeprom;
+               r.eeprom = &resp->params.eeprom;
                pr_debug("info: EEPROM read len=%x\n", r.eeprom->byte_count);
                if (le16_to_cpu(eeprom->byte_count) <
                    le16_to_cpu(r.eeprom->byte_count)) {
                                 struct mwifiex_ds_misc_subsc_evt *sub_event)
 {
        struct host_cmd_ds_802_11_subsc_evt *cmd_sub_event =
-               (struct host_cmd_ds_802_11_subsc_evt *)&resp->params.subsc_evt;
+               &resp->params.subsc_evt;
 
        /* For every subscribe event command (Get/Set/Clear), FW reports the
         * current set of subscribed events*/
 
 
                        if (len != -1) {
                                sinfo.filled = STATION_INFO_ASSOC_REQ_IES;
-                               sinfo.assoc_req_ies = (u8 *)&event->data[len];
+                               sinfo.assoc_req_ies = &event->data[len];
                                len = (u8 *)sinfo.assoc_req_ies -
                                      (u8 *)&event->frame_control;
                                sinfo.assoc_req_ies_len =
 
 
        while (eeprom_size) {
                blocksize = min(eeprom_size, maxblocksize);
-               ret = p54_download_eeprom(priv, (void *) (eeprom + offset),
+               ret = p54_download_eeprom(priv, eeprom + offset,
                                          offset, blocksize);
                if (unlikely(ret))
                        goto free;
 
 
                if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) {
                        memcpy(&body->longbow.curve_data,
-                               (void *) entry + sizeof(__le16),
+                               entry + sizeof(__le16),
                                priv->curve_data->entry_size);
                } else {
                        struct p54_scan_body *chan = &body->normal;
 
                              "Error mapping DMA address\n");
 
                        /* free the skbuf structure before aborting */
-                       dev_kfree_skb_irq((struct sk_buff *) skb);
+                       dev_kfree_skb_irq(skb);
                        skb = NULL;
                        break;
                }
 
        pr_debug("ray_cs: interrupt for *dev=%p\n", dev);
 
        local = netdev_priv(dev);
-       link = (struct pcmcia_device *)local->finder;
+       link = local->finder;
        if (!pcmcia_dev_present(link)) {
                pr_debug(
                        "ray_cs interrupt from device not present or suspended.\n");
 
        struct ieee80211_hdr *hdr = rtl_get_hdr(skb);
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        __le16 fc = hdr->frame_control;
-       u8 *act = (u8 *) (((u8 *) skb->data + MAC80211_3ADDR_LEN));
+       u8 *act = (u8 *)skb->data + MAC80211_3ADDR_LEN;
        u8 category;
 
        if (!ieee80211_is_action(fc))
 
        }
 
        rtl_cam_program_entry(hw, ul_entry_idx, mac_addr,
-                             (u8 *) key_content, us_config);
+                             key_content, us_config);
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "<===\n");
 
 
 
                mac->short_preamble = bss_conf->use_short_preamble;
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACK_PREAMBLE,
-                                             (u8 *) (&mac->short_preamble));
+                                             &mac->short_preamble);
        }
 
        if (changed & BSS_CHANGED_ERP_SLOT) {
                        mac->slot_time = RTL_SLOT_TIME_20;
 
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-                                             (u8 *) (&mac->slot_time));
+                                             &mac->slot_time);
        }
 
        if (changed & BSS_CHANGED_HT) {
                rcu_read_unlock();
 
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SHORTGI_DENSITY,
-                                             (u8 *) (&mac->max_mss_density));
+                                             &mac->max_mss_density);
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_FACTOR,
                                              &mac->current_ampdu_factor);
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_MIN_SPACE,
                                u8 mstatus = RT_MEDIA_CONNECT;
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                      HW_VAR_H2C_FW_JOINBSSRPT,
-                                                     (u8 *) (&mstatus));
+                                                     &mstatus);
                                ppsc->report_linked = true;
                        }
                } else {
                                u8 mstatus = RT_MEDIA_DISCONNECT;
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                      HW_VAR_H2C_FW_JOINBSSRPT,
-                                                     (u8 *)(&mstatus));
+                                                     &mstatus);
                                ppsc->report_linked = false;
                        }
                }
        u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0;
 
        mac->tsf = tsf;
-       rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_CORRECT_TSF, (u8 *) (&bibss));
+       rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_CORRECT_TSF, &bibss);
 }
 
 static void rtl_op_reset_tsf(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u8 tmp = 0;
 
-       rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_DUAL_TSF_RST, (u8 *) (&tmp));
+       rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_DUAL_TSF_RST, &tmp);
 }
 
 static void rtl_op_sta_notify(struct ieee80211_hw *hw,
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_BYTES,
                                      (u8 *)&efuse_utilized);
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_USAGE,
-                                     (u8 *)&efuse_usage);
+                                     &efuse_usage);
 done:
        for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++)
                kfree(efuse_word[i]);
        else if (type == 2)
                efuse_shadow_read_2byte(hw, offset, (u16 *) value);
        else if (type == 4)
-               efuse_shadow_read_4byte(hw, offset, (u32 *) value);
+               efuse_shadow_read_4byte(hw, offset, value);
 
 }
 
 
                if (index == rtlpci->rxringcount - 1)
                        rtlpriv->cfg->ops->set_desc((u8 *)pdesc, false,
                                                    HW_DESC_RXERO,
-                                                   (u8 *)&tmp_one);
+                                                   &tmp_one);
 
                rtlpriv->cfg->ops->set_desc((u8 *)pdesc, false, HW_DESC_RXOWN,
-                                           (u8 *)&tmp_one);
+                                           &tmp_one);
 
                index = (index + 1) % rtlpci->rxringcount;
        }
        __skb_queue_tail(&ring->queue, pskb);
 
        rtlpriv->cfg->ops->set_desc((u8 *) pdesc, true, HW_DESC_OWN,
-                                   (u8 *)&temp_one);
+                                   &temp_one);
 
        return;
 }
                                                    rxbuffersize);
                        rtlpriv->cfg->ops->set_desc((u8 *) entry, false,
                                                    HW_DESC_RXOWN,
-                                                   (u8 *)&tmp_one);
+                                                   &tmp_one);
                }
 
                rtlpriv->cfg->ops->set_desc((u8 *) entry, false,
-                                           HW_DESC_RXERO, (u8 *)&tmp_one);
+                                           HW_DESC_RXERO, &tmp_one);
        }
        return 0;
 }
                                rtlpriv->cfg->ops->set_desc((u8 *) entry,
                                                            false,
                                                            HW_DESC_RXOWN,
-                                                           (u8 *)&tmp_one);
+                                                           &tmp_one);
                        }
                        rtlpci->rx_ring[rx_queue_idx].idx = 0;
                }
        __skb_queue_tail(&ring->queue, skb);
 
        rtlpriv->cfg->ops->set_desc((u8 *)pdesc, true,
-                                   HW_DESC_OWN, (u8 *)&temp_one);
+                                   HW_DESC_OWN, &temp_one);
 
 
        if ((ring->entries - skb_queue_len(&ring->queue)) < 2 &&
 
                        rpwm_val = 0x0C;        /* RF on */
                        fw_pwrmode = FW_PS_ACTIVE_MODE;
                        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM,
-                                       (u8 *) (&rpwm_val));
+                                       &rpwm_val);
                        rtlpriv->cfg->ops->set_hw_reg(hw,
                                        HW_VAR_H2C_FW_PWRMODE,
-                                       (u8 *) (&fw_pwrmode));
+                                       &fw_pwrmode);
                        fw_current_inps = false;
 
                        rtlpriv->cfg->ops->set_hw_reg(hw,
                                                (u8 *) (&fw_current_inps));
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                HW_VAR_H2C_FW_PWRMODE,
-                                               (u8 *) (&ppsc->fwctrl_psmode));
+                                               &ppsc->fwctrl_psmode);
 
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                HW_VAR_SET_RPWM,
-                                               (u8 *) (&rpwm_val));
+                                               &rpwm_val);
                        } else {
                                /* Reset the power save related parameters. */
                                ppsc->dot11_psmode = EACTIVE;
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-       struct ieee80211_hdr *hdr = (void *) data;
+       struct ieee80211_hdr *hdr = data;
        struct ieee80211_tim_ie *tim_ie;
        u8 *tim;
        u8 tim_len;
 
        } else {
                if (rtlpriv->dm.current_turbo_edca) {
                        u8 tmp = AC0_BE;
-                       rtlpriv->cfg->ops->set_hw_reg(hw,
-                                                     HW_VAR_AC_PARAM,
-                                                     (u8 *) (&tmp));
+                       rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM,
+                                                     &tmp);
                        rtlpriv->dm.current_turbo_edca = false;
                }
        }
 
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-       u8 *bufferPtr = (u8 *) buffer;
+       u8 *bufferPtr = buffer;
 
        RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "FW size is %d bytes\n", size);
 
                return 1;
 
        pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
-       pfwdata = (u8 *) rtlhal->pfirmware;
+       pfwdata = rtlhal->pfirmware;
        fwsize = rtlhal->fwsize;
 
        if (IS_FW_HEADER_EXIST(pfwheader)) {
 
                        for (e_aci = 0; e_aci < AC_MAX; e_aci++) {
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                              HW_VAR_AC_PARAM,
-                                                             (u8 *) (&e_aci));
+                                                             &e_aci);
                        }
                        break;
                }
        case HW_VAR_ACK_PREAMBLE:{
                        u8 reg_tmp;
-                       u8 short_preamble = (bool) (*(u8 *) val);
+                       u8 short_preamble = (bool)*val;
                        reg_tmp = (mac->cur_40_prime_sc) << 5;
                        if (short_preamble)
                                reg_tmp |= 0x80;
                        u8 min_spacing_to_set;
                        u8 sec_min_space;
 
-                       min_spacing_to_set = *((u8 *) val);
+                       min_spacing_to_set = *val;
                        if (min_spacing_to_set <= 7) {
                                sec_min_space = 0;
 
        case HW_VAR_SHORTGI_DENSITY:{
                        u8 density_to_set;
 
-                       density_to_set = *((u8 *) val);
+                       density_to_set = *val;
                        mac->min_space_cfg |= (density_to_set << 3);
 
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
                        else
                                p_regtoset = regtoset_normal;
 
-                       factor_toset = *((u8 *) val);
+                       factor_toset = *(val);
                        if (factor_toset <= 3) {
                                factor_toset = (1 << (factor_toset + 2));
                                if (factor_toset > 0xf)
                        break;
                }
        case HW_VAR_AC_PARAM:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *(val);
                        rtl92c_dm_init_edca_turbo(hw);
 
                        if (rtlpci->acm_method != eAcmWay2_SW)
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                              HW_VAR_ACM_CTRL,
-                                                             (u8 *) (&e_aci));
+                                                             (&e_aci));
                        break;
                }
        case HW_VAR_ACM_CTRL:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *(val);
                        union aci_aifsn *p_aci_aifsn =
                            (union aci_aifsn *)(&(mac->ac[0].aifs));
                        u8 acm = p_aci_aifsn->f.acm;
                        break;
                }
        case HW_VAR_RETRY_LIMIT:{
-                       u8 retry_limit = ((u8 *) (val))[0];
+                       u8 retry_limit = val[0];
 
                        rtl_write_word(rtlpriv, REG_RL,
                                       retry_limit << RETRY_LIMIT_SHORT_SHIFT |
                rtlefuse->efuse_usedbytes = *((u16 *) val);
                break;
        case HW_VAR_EFUSE_USAGE:
-               rtlefuse->efuse_usedpercentage = *((u8 *) val);
+               rtlefuse->efuse_usedpercentage = *val;
                break;
        case HW_VAR_IO_CMD:
                rtl92c_phy_set_io_cmd(hw, (*(enum io_type *)val));
                break;
        case HW_VAR_WPA_CONFIG:
-               rtl_write_byte(rtlpriv, REG_SECCFG, *((u8 *) val));
+               rtl_write_byte(rtlpriv, REG_SECCFG, *val);
                break;
        case HW_VAR_SET_RPWM:{
                        u8 rpwm_val;
                        udelay(1);
 
                        if (rpwm_val & BIT(7)) {
-                               rtl_write_byte(rtlpriv, REG_PCIE_HRPWM,
-                                              (*(u8 *) val));
+                               rtl_write_byte(rtlpriv, REG_PCIE_HRPWM, *val);
                        } else {
                                rtl_write_byte(rtlpriv, REG_PCIE_HRPWM,
-                                              ((*(u8 *) val) | BIT(7)));
+                                              *val | BIT(7));
                        }
 
                        break;
                }
        case HW_VAR_H2C_FW_PWRMODE:{
-                       u8 psmode = (*(u8 *) val);
+                       u8 psmode = *val;
 
                        if ((psmode != FW_PS_ACTIVE_MODE) &&
                            (!IS_92C_SERIAL(rtlhal->version))) {
                                rtl92c_dm_rf_saving(hw, true);
                        }
 
-                       rtl92c_set_fw_pwrmode_cmd(hw, (*(u8 *) val));
+                       rtl92c_set_fw_pwrmode_cmd(hw, *val);
                        break;
                }
        case HW_VAR_FW_PSMODE_STATUS:
                ppsc->fw_current_inpsmode = *((bool *) val);
                break;
        case HW_VAR_H2C_FW_JOINBSSRPT:{
-                       u8 mstatus = (*(u8 *) val);
+                       u8 mstatus = *val;
                        u8 tmp_regcr, tmp_reg422;
                        bool recover = false;
 
                                rtl_write_byte(rtlpriv, REG_CR + 1,
                                               (tmp_regcr & ~(BIT(0))));
                        }
-                       rtl92c_set_fw_joinbss_report_cmd(hw, (*(u8 *) val));
+                       rtl92c_set_fw_joinbss_report_cmd(hw, *val);
 
                        break;
                }
                        break;
                }
        case HW_VAR_CORRECT_TSF:{
-                       u8 btype_ibss = ((u8 *) (val))[0];
+                       u8 btype_ibss = val[0];
 
                        if (btype_ibss)
                                _rtl92ce_stop_tx_beacon(hw);
                                                 rtlefuse->autoload_failflag,
                                                 hwinfo);
 
-       rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN];
+       rtlefuse->eeprom_channelplan = *&hwinfo[EEPROM_CHANNELPLAN];
        rtlefuse->eeprom_version = *(u16 *)&hwinfo[EEPROM_VERSION];
        rtlefuse->txpwr_fromeprom = true;
-       rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
+       rtlefuse->eeprom_oemid = *&hwinfo[EEPROM_CUSTOMER_ID];
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
                 "EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid);
        u16 sifs_timer;
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-                                     (u8 *)&mac->slot_time);
+                                     &mac->slot_time);
        if (!mac->ht_enable)
                sifs_timer = 0x0a0a;
        else
 
        struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
        bool defaultadapter = true;
        struct ieee80211_sta *sta;
-       u8 *pdesc = (u8 *) pdesc_tx;
+       u8 *pdesc = pdesc_tx;
        u16 seq_number;
        __le16 fc = hdr->frame_control;
        u8 fw_qsel = _rtl92ce_map_hwqueue_to_fwqueue(skb, hw_queue);
 
        SET_TX_DESC_OWN(pdesc, 1);
 
-       SET_TX_DESC_PKT_SIZE((u8 *) pdesc, (u16) (skb->len));
+       SET_TX_DESC_PKT_SIZE(pdesc, (u16) (skb->len));
 
        SET_TX_DESC_FIRST_SEG(pdesc, 1);
        SET_TX_DESC_LAST_SEG(pdesc, 1);
 
        rtlefuse->eeprom_did = le16_to_cpu(*(__le16 *)&hwinfo[EEPROM_DID]);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, " VID = 0x%02x PID = 0x%02x\n",
                 rtlefuse->eeprom_vid, rtlefuse->eeprom_did);
-       rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN];
+       rtlefuse->eeprom_channelplan = hwinfo[EEPROM_CHANNELPLAN];
        rtlefuse->eeprom_version =
                         le16_to_cpu(*(__le16 *)&hwinfo[EEPROM_VERSION]);
        rtlefuse->txpwr_fromeprom = true;
-       rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
+       rtlefuse->eeprom_oemid = hwinfo[EEPROM_CUSTOMER_ID];
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM Customer ID: 0x%2x\n",
                 rtlefuse->eeprom_oemid);
        if (rtlhal->oem_id == RT_CID_DEFAULT) {
                                for (e_aci = 0; e_aci < AC_MAX; e_aci++)
                                        rtlpriv->cfg->ops->set_hw_reg(hw,
                                                                HW_VAR_AC_PARAM,
-                                                               (u8 *)(&e_aci));
+                                                               &e_aci);
                        } else {
                                u8 sifstime = 0;
                                u8      u1bAIFS;
                }
        case HW_VAR_ACK_PREAMBLE:{
                        u8 reg_tmp;
-                       u8 short_preamble = (bool) (*(u8 *) val);
+                       u8 short_preamble = (bool)*val;
                        reg_tmp = 0;
                        if (short_preamble)
                                reg_tmp |= 0x80;
                        u8 min_spacing_to_set;
                        u8 sec_min_space;
 
-                       min_spacing_to_set = *((u8 *) val);
+                       min_spacing_to_set = *val;
                        if (min_spacing_to_set <= 7) {
                                switch (rtlpriv->sec.pairwise_enc_algorithm) {
                                case NO_ENCRYPTION:
        case HW_VAR_SHORTGI_DENSITY:{
                        u8 density_to_set;
 
-                       density_to_set = *((u8 *) val);
+                       density_to_set = *val;
                        density_to_set &= 0x1f;
                        mac->min_space_cfg &= 0x07;
                        mac->min_space_cfg |= (density_to_set << 3);
                        u8 index = 0;
 
                        p_regtoset = regtoset_normal;
-                       factor_toset = *((u8 *) val);
+                       factor_toset = *val;
                        if (factor_toset <= 3) {
                                factor_toset = (1 << (factor_toset + 2));
                                if (factor_toset > 0xf)
                        break;
                }
        case HW_VAR_AC_PARAM:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *val;
                        u32 u4b_ac_param;
                        u16 cw_min = le16_to_cpu(mac->ac[e_aci].cw_min);
                        u16 cw_max = le16_to_cpu(mac->ac[e_aci].cw_max);
                        }
                        if (rtlusb->acm_method != eAcmWay2_SW)
                                rtlpriv->cfg->ops->set_hw_reg(hw,
-                                        HW_VAR_ACM_CTRL, (u8 *)(&e_aci));
+                                        HW_VAR_ACM_CTRL, &e_aci);
                        break;
                }
        case HW_VAR_ACM_CTRL:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *val;
                        union aci_aifsn *p_aci_aifsn = (union aci_aifsn *)
                                                        (&(mac->ac[0].aifs));
                        u8 acm = p_aci_aifsn->f.acm;
                        break;
                }
        case HW_VAR_RETRY_LIMIT:{
-                       u8 retry_limit = ((u8 *) (val))[0];
+                       u8 retry_limit = val[0];
 
                        rtl_write_word(rtlpriv, REG_RL,
                                       retry_limit << RETRY_LIMIT_SHORT_SHIFT |
                rtlefuse->efuse_usedbytes = *((u16 *) val);
                break;
        case HW_VAR_EFUSE_USAGE:
-               rtlefuse->efuse_usedpercentage = *((u8 *) val);
+               rtlefuse->efuse_usedpercentage = *val;
                break;
        case HW_VAR_IO_CMD:
                rtl92c_phy_set_io_cmd(hw, (*(enum io_type *)val));
                break;
        case HW_VAR_WPA_CONFIG:
-               rtl_write_byte(rtlpriv, REG_SECCFG, *((u8 *) val));
+               rtl_write_byte(rtlpriv, REG_SECCFG, *val);
                break;
        case HW_VAR_SET_RPWM:{
                        u8 rpwm_val = rtl_read_byte(rtlpriv, REG_USB_HRPWM);
 
                        if (rpwm_val & BIT(7))
-                               rtl_write_byte(rtlpriv, REG_USB_HRPWM,
-                                              (*(u8 *)val));
+                               rtl_write_byte(rtlpriv, REG_USB_HRPWM, *val);
                        else
                                rtl_write_byte(rtlpriv, REG_USB_HRPWM,
-                                              ((*(u8 *)val) | BIT(7)));
+                                              *val | BIT(7));
                        break;
                }
        case HW_VAR_H2C_FW_PWRMODE:{
-                       u8 psmode = (*(u8 *) val);
+                       u8 psmode = *val;
 
                        if ((psmode != FW_PS_ACTIVE_MODE) &&
                           (!IS_92C_SERIAL(rtlhal->version)))
                                rtl92c_dm_rf_saving(hw, true);
-                       rtl92c_set_fw_pwrmode_cmd(hw, (*(u8 *) val));
+                       rtl92c_set_fw_pwrmode_cmd(hw, (*val));
                        break;
                }
        case HW_VAR_FW_PSMODE_STATUS:
                ppsc->fw_current_inpsmode = *((bool *) val);
                break;
        case HW_VAR_H2C_FW_JOINBSSRPT:{
-                       u8 mstatus = (*(u8 *) val);
+                       u8 mstatus = *val;
                        u8 tmp_reg422;
                        bool recover = false;
 
                                                tmp_reg422 | BIT(6));
                                rtl_write_byte(rtlpriv, REG_CR + 1, 0x02);
                        }
-                       rtl92c_set_fw_joinbss_report_cmd(hw, (*(u8 *) val));
+                       rtl92c_set_fw_joinbss_report_cmd(hw, (*val));
                        break;
                }
        case HW_VAR_AID:{
                        break;
                }
        case HW_VAR_CORRECT_TSF:{
-                       u8 btype_ibss = ((u8 *) (val))[0];
+                       u8 btype_ibss = val[0];
 
                        if (btype_ibss)
                                _rtl92cu_stop_tx_beacon(hw);
        u16 sifs_timer;
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-                                     (u8 *)&mac->slot_time);
+                                     &mac->slot_time);
        if (!mac->ht_enable)
                sifs_timer = 0x0a0a;
        else
 
        SET_TX_DESC_RATE_ID(pdesc, 7);
        SET_TX_DESC_MACID(pdesc, 0);
        SET_TX_DESC_OWN(pdesc, 1);
-       SET_TX_DESC_PKT_SIZE((u8 *) pdesc, (u16) (skb->len));
+       SET_TX_DESC_PKT_SIZE(pdesc, (u16)skb->len);
        SET_TX_DESC_FIRST_SEG(pdesc, 1);
        SET_TX_DESC_LAST_SEG(pdesc, 1);
        SET_TX_DESC_OFFSET(pdesc, 0x20);
 
                if (rtlpriv->dm.current_turbo_edca) {
                        u8 tmp = AC0_BE;
                        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM,
-                                                     (u8 *) (&tmp));
+                                                     &tmp);
                        rtlpriv->dm.current_turbo_edca = false;
                }
        }
 
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-       u8 *bufferPtr = (u8 *) buffer;
+       u8 *bufferPtr = buffer;
        u32 pagenums, remainSize;
        u32 page, offset;
 
        if (rtlpriv->max_fw_size == 0 || !rtlhal->pfirmware)
                return 1;
        fwsize = rtlhal->fwsize;
-       pfwheader = (u8 *) rtlhal->pfirmware;
-       pfwdata = (u8 *) rtlhal->pfirmware;
+       pfwheader = rtlhal->pfirmware;
+       pfwdata = rtlhal->pfirmware;
        rtlhal->fw_version = (u16) GET_FIRMWARE_HDR_VERSION(pfwheader);
        rtlhal->fw_subversion = (u16) GET_FIRMWARE_HDR_SUB_VER(pfwheader);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
 
                for (e_aci = 0; e_aci < AC_MAX; e_aci++)
                        rtlpriv->cfg->ops->set_hw_reg(hw,
                                                      HW_VAR_AC_PARAM,
-                                                     (u8 *) (&e_aci));
+                                                     (&e_aci));
                break;
        }
        case HW_VAR_ACK_PREAMBLE: {
                u8 reg_tmp;
-               u8 short_preamble = (bool) (*(u8 *) val);
+               u8 short_preamble = (bool) (*val);
 
                reg_tmp = (mac->cur_40_prime_sc) << 5;
                if (short_preamble)
                u8 min_spacing_to_set;
                u8 sec_min_space;
 
-               min_spacing_to_set = *((u8 *) val);
+               min_spacing_to_set = *val;
                if (min_spacing_to_set <= 7) {
                        sec_min_space = 0;
                        if (min_spacing_to_set < sec_min_space)
        case HW_VAR_SHORTGI_DENSITY: {
                u8 density_to_set;
 
-               density_to_set = *((u8 *) val);
+               density_to_set = *val;
                mac->min_space_cfg = rtlpriv->rtlhal.minspace_cfg;
                mac->min_space_cfg |= (density_to_set << 3);
                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
                        regtoSet = 0x66626641;
                else
                        regtoSet = 0xb972a841;
-               factor_toset = *((u8 *) val);
+               factor_toset = *val;
                if (factor_toset <= 3) {
                        factor_toset = (1 << (factor_toset + 2));
                        if (factor_toset > 0xf)
                break;
        }
        case HW_VAR_AC_PARAM: {
-               u8 e_aci = *((u8 *) val);
+               u8 e_aci = *val;
                rtl92d_dm_init_edca_turbo(hw);
                if (rtlpci->acm_method != eAcmWay2_SW)
                        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL,
-                                                     (u8 *) (&e_aci));
+                                                     &e_aci);
                break;
        }
        case HW_VAR_ACM_CTRL: {
-               u8 e_aci = *((u8 *) val);
+               u8 e_aci = *val;
                union aci_aifsn *p_aci_aifsn =
                    (union aci_aifsn *)(&(mac->ac[0].aifs));
                u8 acm = p_aci_aifsn->f.acm;
                rtlpci->receive_config = ((u32 *) (val))[0];
                break;
        case HW_VAR_RETRY_LIMIT: {
-               u8 retry_limit = ((u8 *) (val))[0];
+               u8 retry_limit = val[0];
 
                rtl_write_word(rtlpriv, REG_RL,
                               retry_limit << RETRY_LIMIT_SHORT_SHIFT |
                rtlefuse->efuse_usedbytes = *((u16 *) val);
                break;
        case HW_VAR_EFUSE_USAGE:
-               rtlefuse->efuse_usedpercentage = *((u8 *) val);
+               rtlefuse->efuse_usedpercentage = *val;
                break;
        case HW_VAR_IO_CMD:
                rtl92d_phy_set_io_cmd(hw, (*(enum io_type *)val));
                break;
        case HW_VAR_WPA_CONFIG:
-               rtl_write_byte(rtlpriv, REG_SECCFG, *((u8 *) val));
+               rtl_write_byte(rtlpriv, REG_SECCFG, *val);
                break;
        case HW_VAR_SET_RPWM:
-               rtl92d_fill_h2c_cmd(hw, H2C_PWRM, 1, (u8 *) (val));
+               rtl92d_fill_h2c_cmd(hw, H2C_PWRM, 1, (val));
                break;
        case HW_VAR_H2C_FW_PWRMODE:
                break;
                ppsc->fw_current_inpsmode = *((bool *) val);
                break;
        case HW_VAR_H2C_FW_JOINBSSRPT: {
-               u8 mstatus = (*(u8 *) val);
+               u8 mstatus = (*val);
                u8 tmp_regcr, tmp_reg422;
                bool recover = false;
 
                        rtl_write_byte(rtlpriv, REG_CR + 1,
                                       (tmp_regcr & ~(BIT(0))));
                }
-               rtl92d_set_fw_joinbss_report_cmd(hw, (*(u8 *) val));
+               rtl92d_set_fw_joinbss_report_cmd(hw, (*val));
                break;
        }
        case HW_VAR_AID: {
                break;
        }
        case HW_VAR_CORRECT_TSF: {
-               u8 btype_ibss = ((u8 *) (val))[0];
+               u8 btype_ibss = val[0];
 
                if (btype_ibss)
                        _rtl92de_stop_tx_beacon(hw);
                         "RTL819X Not boot from eeprom, check it !!\n");
                return;
        }
-       rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
+       rtlefuse->eeprom_oemid = hwinfo[EEPROM_CUSTOMER_ID];
        _rtl92de_read_macphymode_and_bandtype(hw, hwinfo);
 
        /* VID, DID  SE     0xA-D */
        u16 sifs_timer;
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-                                     (u8 *)&mac->slot_time);
+                                     &mac->slot_time);
        if (!mac->ht_enable)
                sifs_timer = 0x0a0a;
        else
 
        struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
        struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
        struct ieee80211_sta *sta = info->control.sta;
-       u8 *pdesc = (u8 *) pdesc_tx;
+       u8 *pdesc = pdesc_tx;
        u16 seq_number;
        __le16 fc = hdr->frame_control;
        unsigned int buf_len = 0;
        SET_TX_DESC_QUEUE_SEL(pdesc, fw_queue);
        SET_TX_DESC_FIRST_SEG(pdesc, 1);
        SET_TX_DESC_LAST_SEG(pdesc, 1);
-       SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) (skb->len));
+       SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16)skb->len);
        SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, mapping);
        SET_TX_DESC_RATE_ID(pdesc, 7);
        SET_TX_DESC_MACID(pdesc, 0);
-       SET_TX_DESC_PKT_SIZE((u8 *) pdesc, (u16) (skb->len));
+       SET_TX_DESC_PKT_SIZE(pdesc, (u16) (skb->len));
        SET_TX_DESC_FIRST_SEG(pdesc, 1);
        SET_TX_DESC_LAST_SEG(pdesc, 1);
        SET_TX_DESC_OFFSET(pdesc, 0x20);
 
                if (rtlpriv->dm.current_turbo_edca) {
                        u8 tmp = AC0_BE;
                        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM,
-                                                     (u8 *)(&tmp));
+                                                     &tmp);
                        rtlpriv->dm.current_turbo_edca = false;
                }
        }
 
                        for (e_aci = 0; e_aci < AC_MAX; e_aci++) {
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                HW_VAR_AC_PARAM,
-                                               (u8 *)(&e_aci));
+                                               (&e_aci));
                        }
                        break;
                }
        case HW_VAR_ACK_PREAMBLE:{
                        u8 reg_tmp;
-                       u8 short_preamble = (bool) (*(u8 *) val);
+                       u8 short_preamble = (bool) (*val);
                        reg_tmp = (mac->cur_40_prime_sc) << 5;
                        if (short_preamble)
                                reg_tmp |= 0x80;
                        u8 min_spacing_to_set;
                        u8 sec_min_space;
 
-                       min_spacing_to_set = *((u8 *)val);
+                       min_spacing_to_set = *val;
                        if (min_spacing_to_set <= 7) {
                                if (rtlpriv->sec.pairwise_enc_algorithm ==
                                    NO_ENCRYPTION)
        case HW_VAR_SHORTGI_DENSITY:{
                        u8 density_to_set;
 
-                       density_to_set = *((u8 *) val);
+                       density_to_set = *val;
                        mac->min_space_cfg = rtlpriv->rtlhal.minspace_cfg;
                        mac->min_space_cfg |= (density_to_set << 3);
 
                                15, 15, 15, 15, 0};
                        u8 index = 0;
 
-                       factor_toset = *((u8 *) val);
+                       factor_toset = *val;
                        if (factor_toset <= 3) {
                                factor_toset = (1 << (factor_toset + 2));
                                if (factor_toset > 0xf)
                        break;
                }
        case HW_VAR_AC_PARAM:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *val;
                        rtl92s_dm_init_edca_turbo(hw);
 
                        if (rtlpci->acm_method != eAcmWay2_SW)
                                rtlpriv->cfg->ops->set_hw_reg(hw,
                                                 HW_VAR_ACM_CTRL,
-                                                (u8 *)(&e_aci));
+                                                &e_aci);
                        break;
                }
        case HW_VAR_ACM_CTRL:{
-                       u8 e_aci = *((u8 *) val);
+                       u8 e_aci = *val;
                        union aci_aifsn *p_aci_aifsn = (union aci_aifsn *)(&(
                                                        mac->ac[0].aifs));
                        u8 acm = p_aci_aifsn->f.acm;
                        break;
                }
        case HW_VAR_RETRY_LIMIT:{
-                       u8 retry_limit = ((u8 *) (val))[0];
+                       u8 retry_limit = val[0];
 
                        rtl_write_word(rtlpriv, RETRY_LIMIT,
                                       retry_limit << RETRY_LIMIT_SHORT_SHIFT |
                        break;
                }
        case HW_VAR_EFUSE_USAGE: {
-                       rtlefuse->efuse_usedpercentage = *((u8 *) val);
+                       rtlefuse->efuse_usedpercentage = *val;
                        break;
                }
        case HW_VAR_IO_CMD: {
                        break;
                }
        case HW_VAR_WPA_CONFIG: {
-                       rtl_write_byte(rtlpriv, REG_SECR, *((u8 *) val));
+                       rtl_write_byte(rtlpriv, REG_SECR, *val);
                        break;
                }
        case HW_VAR_SET_RPWM:{
                else
                        index = 2;
 
-               tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_HT20_DIFF +
-                          index]) & 0xff;
+               tempval = hwinfo[EEPROM_TX_PWR_HT20_DIFF + index] & 0xff;
                rtlefuse->txpwr_ht20diff[RF90_PATH_A][i] = (tempval & 0xF);
                rtlefuse->txpwr_ht20diff[RF90_PATH_B][i] =
                                                 ((tempval >> 4) & 0xF);
                else
                        index = 1;
 
-               tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_OFDM_DIFF + index])
-                                 & 0xff;
+               tempval = hwinfo[EEPROM_TX_PWR_OFDM_DIFF + index] & 0xff;
                rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i] =
                                 (tempval & 0xF);
                rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i] =
                                 ((tempval >> 4) & 0xF);
 
-               tempval = (*(u8 *)&hwinfo[TX_PWR_SAFETY_CHK]);
+               tempval = hwinfo[TX_PWR_SAFETY_CHK];
                rtlefuse->txpwr_safetyflag = (tempval & 0x01);
        }
 
 
        /* Read RF-indication and Tx Power gain
         * index diff of legacy to HT OFDM rate. */
-       tempval = (*(u8 *)&hwinfo[EEPROM_RFIND_POWERDIFF]) & 0xff;
+       tempval = hwinfo[EEPROM_RFIND_POWERDIFF] & 0xff;
        rtlefuse->eeprom_txpowerdiff = tempval;
        rtlefuse->legacy_httxpowerdiff =
                rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][0];
        /* Get TSSI value for each path. */
        usvalue = *(u16 *)&hwinfo[EEPROM_TSSI_A];
        rtlefuse->eeprom_tssi[RF90_PATH_A] = (u8)((usvalue & 0xff00) >> 8);
-       usvalue = *(u8 *)&hwinfo[EEPROM_TSSI_B];
+       usvalue = hwinfo[EEPROM_TSSI_B];
        rtlefuse->eeprom_tssi[RF90_PATH_B] = (u8)(usvalue & 0xff);
 
        RTPRINT(rtlpriv, FINIT, INIT_TxPower, "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
 
        /* Read antenna tx power offset of B/C/D to A  from EEPROM */
        /* and read ThermalMeter from EEPROM */
-       tempval = *(u8 *)&hwinfo[EEPROM_THERMALMETER];
+       tempval = hwinfo[EEPROM_THERMALMETER];
        rtlefuse->eeprom_thermalmeter = tempval;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
                "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
        rtlefuse->tssi_13dbm = rtlefuse->eeprom_thermalmeter * 100;
 
        /* Read CrystalCap from EEPROM */
-       tempval = (*(u8 *)&hwinfo[EEPROM_CRYSTALCAP]) >> 4;
+       tempval = hwinfo[EEPROM_CRYSTALCAP] >> 4;
        rtlefuse->eeprom_crystalcap = tempval;
        /* CrystalCap, BIT(12)~15 */
        rtlefuse->crystalcap = rtlefuse->eeprom_crystalcap;
 
        /* Read IC Version && Channel Plan */
        /* Version ID, Channel plan */
-       rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN];
+       rtlefuse->eeprom_channelplan = hwinfo[EEPROM_CHANNELPLAN];
        rtlefuse->txpwr_fromeprom = true;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
                "EEPROM ChannelPlan = 0x%4x\n", rtlefuse->eeprom_channelplan);
 
        /* Read Customer ID or Board Type!!! */
-       tempval = *(u8 *)&hwinfo[EEPROM_BOARDTYPE];
+       tempval = hwinfo[EEPROM_BOARDTYPE];
        /* Change RF type definition */
        if (tempval == 0)
                rtlphy->rf_type = RF_2T2R;
                }
        }
        rtlefuse->b1ss_support = rtlefuse->b1x1_recvcombine;
-       rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMID];
+       rtlefuse->eeprom_oemid = *&hwinfo[EEPROM_CUSTOMID];
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM Customer ID: 0x%2x",
                 rtlefuse->eeprom_oemid);
        u16 sifs_timer;
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-                                     (u8 *)&mac->slot_time);
+                                     &mac->slot_time);
        sifs_timer = 0x0e0e;
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SIFS, (u8 *)&sifs_timer);
 
 
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        struct ieee80211_sta *sta = info->control.sta;
-       u8 *pdesc = (u8 *) pdesc_tx;
+       u8 *pdesc = pdesc_tx;
        u16 seq_number;
        __le16 fc = hdr->frame_control;
        u8 reserved_macid = 0;
 
 /* Called upon reception of a TX complete interrupt */
 void wl1271_tx_complete(struct wl1271 *wl)
 {
-       struct wl1271_acx_mem_map *memmap =
-               (struct wl1271_acx_mem_map *)wl->target_mem_map;
+       struct wl1271_acx_mem_map *memmap = wl->target_mem_map;
        u32 count, fw_counter;
        u32 i;
 
 
 static inline int zd_ioread32_locked(struct zd_chip *chip, u32 *value,
                                     const zd_addr_t addr)
 {
-       return zd_ioread32v_locked(chip, value, (const zd_addr_t *)&addr, 1);
+       return zd_ioread32v_locked(chip, value, &addr, 1);
 }
 
 static inline int zd_iowrite16_locked(struct zd_chip *chip, u16 value,
 
 static inline int zd_usb_ioread16(struct zd_usb *usb, u16 *value,
                              const zd_addr_t addr)
 {
-       return zd_usb_ioread16v(usb, value, (const zd_addr_t *)&addr, 1);
+       return zd_usb_ioread16v(usb, value, &addr, 1);
 }
 
 void zd_usb_iowrite16v_async_start(struct zd_usb *usb);