staging: rtl8192e: Swap firmware endian in _rtl92e_fw_prepare()
Remove endian swap from _rtl92e_fw_download_code(), this way it can be replaced with _rtl92e_send_cmd_pkt(). Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
09b1893831
commit
f4c807d6d5
|
@ -36,9 +36,7 @@ static bool _rtl92e_fw_download_code(struct net_device *dev,
|
||||||
{
|
{
|
||||||
struct r8192_priv *priv = rtllib_priv(dev);
|
struct r8192_priv *priv = rtllib_priv(dev);
|
||||||
u16 frag_length, frag_offset = 0;
|
u16 frag_length, frag_offset = 0;
|
||||||
int i;
|
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
unsigned char *seg_ptr;
|
|
||||||
struct cb_desc *tcb_desc;
|
struct cb_desc *tcb_desc;
|
||||||
u8 bLastIniPkt;
|
u8 bLastIniPkt;
|
||||||
|
|
||||||
|
@ -59,20 +57,9 @@ static bool _rtl92e_fw_download_code(struct net_device *dev,
|
||||||
tcb_desc->queue_index = TXCMD_QUEUE;
|
tcb_desc->queue_index = TXCMD_QUEUE;
|
||||||
tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT;
|
tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT;
|
||||||
tcb_desc->bLastIniPkt = bLastIniPkt;
|
tcb_desc->bLastIniPkt = bLastIniPkt;
|
||||||
|
tcb_desc->txbuf_size = (u16)frag_length;
|
||||||
seg_ptr = skb->data;
|
memcpy(skb->data, code_virtual_address, frag_length);
|
||||||
for (i = 0; i < frag_length; i += 4) {
|
skb_put(skb, frag_length);
|
||||||
*seg_ptr++ = ((i+0) < frag_length) ?
|
|
||||||
code_virtual_address[i+3] : 0;
|
|
||||||
*seg_ptr++ = ((i+1) < frag_length) ?
|
|
||||||
code_virtual_address[i+2] : 0;
|
|
||||||
*seg_ptr++ = ((i+2) < frag_length) ?
|
|
||||||
code_virtual_address[i+1] : 0;
|
|
||||||
*seg_ptr++ = ((i+3) < frag_length) ?
|
|
||||||
code_virtual_address[i+0] : 0;
|
|
||||||
}
|
|
||||||
tcb_desc->txbuf_size = (u16)i;
|
|
||||||
skb_put(skb, i);
|
|
||||||
|
|
||||||
if (!priv->rtllib->check_nic_enough_desc(dev, tcb_desc->queue_index) ||
|
if (!priv->rtllib->check_nic_enough_desc(dev, tcb_desc->queue_index) ||
|
||||||
(!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index])) ||
|
(!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index])) ||
|
||||||
|
@ -192,6 +179,12 @@ static bool _rtl92e_fw_prepare(struct net_device *dev, struct rt_fw_blob *blob,
|
||||||
memcpy(blob->data + padding, fw->data, fw->size);
|
memcpy(blob->data + padding, fw->data, fw->size);
|
||||||
|
|
||||||
blob->size = round_up(fw->size, 4) + padding;
|
blob->size = round_up(fw->size, 4) + padding;
|
||||||
|
|
||||||
|
/* Swap endian - firmware is packaged in invalid endiannes*/
|
||||||
|
for (i = padding; i < blob->size; i += 4) {
|
||||||
|
u32 *data = (u32 *)(blob->data + i);
|
||||||
|
*data = swab32p(data);
|
||||||
|
}
|
||||||
out:
|
out:
|
||||||
release_firmware(fw);
|
release_firmware(fw);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue