aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/if_usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/libertas/if_usb.c')
-rw-r--r--drivers/net/wireless/libertas/if_usb.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index 53d479688ff9..364eae374b93 100644
--- a/drivers/net/wireless/libertas/if_usb.c
+++ b/drivers/net/wireless/libertas/if_usb.c
@@ -639,11 +639,13 @@ static void if_usb_receive(struct urb *urb)
639 639
640 int recvlength = urb->actual_length; 640 int recvlength = urb->actual_length;
641 u8 *recvbuff = NULL; 641 u8 *recvbuff = NULL;
642 u32 recvtype; 642 u32 recvtype = 0;
643 643
644 lbs_deb_enter(LBS_DEB_USB); 644 lbs_deb_enter(LBS_DEB_USB);
645 645
646 if (recvlength) { 646 if (recvlength) {
647 __le32 tmp;
648
647 if (urb->status) { 649 if (urb->status) {
648 lbs_deb_usbd(&cardp->udev->dev, 650 lbs_deb_usbd(&cardp->udev->dev,
649 "URB status is failed\n"); 651 "URB status is failed\n");
@@ -652,18 +654,14 @@ static void if_usb_receive(struct urb *urb)
652 } 654 }
653 655
654 recvbuff = skb->data + IPFIELD_ALIGN_OFFSET; 656 recvbuff = skb->data + IPFIELD_ALIGN_OFFSET;
655 memcpy(&recvtype, recvbuff, sizeof(u32)); 657 memcpy(&tmp, recvbuff, sizeof(u32));
656 lbs_deb_usbd(&cardp->udev->dev, 658 recvtype = le32_to_cpu(tmp);
657 "Recv length = 0x%x\n", recvlength);
658 lbs_deb_usbd(&cardp->udev->dev, 659 lbs_deb_usbd(&cardp->udev->dev,
659 "Receive type = 0x%X\n", recvtype); 660 "Recv length = 0x%x, Recv type = 0x%X\n",
660 recvtype = le32_to_cpu(recvtype); 661 recvlength, recvtype);
661 lbs_deb_usbd(&cardp->udev->dev,
662 "Receive type after = 0x%X\n", recvtype);
663 } else if (urb->status) 662 } else if (urb->status)
664 goto rx_exit; 663 goto rx_exit;
665 664
666
667 switch (recvtype) { 665 switch (recvtype) {
668 case CMD_TYPE_DATA: 666 case CMD_TYPE_DATA:
669 process_cmdtypedata(recvlength, skb, cardp, priv); 667 process_cmdtypedata(recvlength, skb, cardp, priv);
@@ -691,6 +689,8 @@ static void if_usb_receive(struct urb *urb)
691 spin_unlock(&priv->adapter->driver_lock); 689 spin_unlock(&priv->adapter->driver_lock);
692 goto rx_exit; 690 goto rx_exit;
693 default: 691 default:
692 lbs_deb_usbd(&cardp->udev->dev, "Unknown command type 0x%X\n",
693 recvtype);
694 kfree_skb(skb); 694 kfree_skb(skb);
695 break; 695 break;
696 } 696 }
@@ -711,21 +711,19 @@ rx_exit:
711 */ 711 */
712static int if_usb_host_to_card(wlan_private * priv, u8 type, u8 * payload, u16 nb) 712static int if_usb_host_to_card(wlan_private * priv, u8 type, u8 * payload, u16 nb)
713{ 713{
714 int ret = -1;
715 u32 tmp;
716 struct usb_card_rec *cardp = (struct usb_card_rec *)priv->card; 714 struct usb_card_rec *cardp = (struct usb_card_rec *)priv->card;
717 715
718 lbs_deb_usbd(&cardp->udev->dev,"*** type = %u\n", type); 716 lbs_deb_usbd(&cardp->udev->dev,"*** type = %u\n", type);
719 lbs_deb_usbd(&cardp->udev->dev,"size after = %d\n", nb); 717 lbs_deb_usbd(&cardp->udev->dev,"size after = %d\n", nb);
720 718
721 if (type == MVMS_CMD) { 719 if (type == MVMS_CMD) {
722 tmp = cpu_to_le32(CMD_TYPE_REQUEST); 720 __le32 tmp = cpu_to_le32(CMD_TYPE_REQUEST);
723 priv->dnld_sent = DNLD_CMD_SENT; 721 priv->dnld_sent = DNLD_CMD_SENT;
724 memcpy(cardp->bulk_out_buffer, (u8 *) & tmp, 722 memcpy(cardp->bulk_out_buffer, (u8 *) & tmp,
725 MESSAGE_HEADER_LEN); 723 MESSAGE_HEADER_LEN);
726 724
727 } else { 725 } else {
728 tmp = cpu_to_le32(CMD_TYPE_DATA); 726 __le32 tmp = cpu_to_le32(CMD_TYPE_DATA);
729 priv->dnld_sent = DNLD_DATA_SENT; 727 priv->dnld_sent = DNLD_DATA_SENT;
730 memcpy(cardp->bulk_out_buffer, (u8 *) & tmp, 728 memcpy(cardp->bulk_out_buffer, (u8 *) & tmp,
731 MESSAGE_HEADER_LEN); 729 MESSAGE_HEADER_LEN);
@@ -733,10 +731,8 @@ static int if_usb_host_to_card(wlan_private * priv, u8 type, u8 * payload, u16 n
733 731
734 memcpy((cardp->bulk_out_buffer + MESSAGE_HEADER_LEN), payload, nb); 732 memcpy((cardp->bulk_out_buffer + MESSAGE_HEADER_LEN), payload, nb);
735 733
736 ret = 734 return usb_tx_block(priv, cardp->bulk_out_buffer,
737 usb_tx_block(priv, cardp->bulk_out_buffer, nb + MESSAGE_HEADER_LEN); 735 nb + MESSAGE_HEADER_LEN);
738
739 return ret;
740} 736}
741 737
742/* called with adapter->driver_lock held */ 738/* called with adapter->driver_lock held */