diff options
author | Takashi Iwai | 2014-09-03 16:57:41 +0200 |
---|---|---|
committer | Takashi Iwai | 2014-09-03 16:57:41 +0200 |
commit | 05244d166739ae273fdc7a2151bdef61df49ca7d (patch) | |
tree | 9065482d33f445c90f0b99d29aa51485d1d96488 /drivers/staging/rtl8723au/os_dep/usb_intf.c | |
parent | ALSA: hda - Fix COEF setups for ALC1150 codec (diff) | |
parent | Merge remote-tracking branches 'asoc/fix/axi', 'asoc/fix/cs4265', 'asoc/fix/d... (diff) | |
download | kernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.tar.gz kernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.tar.xz kernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.zip |
Merge tag 'asoc-v3.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.17
A few more driver specific fixes on top of the currently pending fixes
(which are already in your tree but not Linus').
Diffstat (limited to 'drivers/staging/rtl8723au/os_dep/usb_intf.c')
-rw-r--r-- | drivers/staging/rtl8723au/os_dep/usb_intf.c | 93 |
1 files changed, 16 insertions, 77 deletions
diff --git a/drivers/staging/rtl8723au/os_dep/usb_intf.c b/drivers/staging/rtl8723au/os_dep/usb_intf.c index ebb19b22f47f..865743ecd855 100644 --- a/drivers/staging/rtl8723au/os_dep/usb_intf.c +++ b/drivers/staging/rtl8723au/os_dep/usb_intf.c @@ -59,79 +59,38 @@ static struct usb_driver rtl8723a_usb_drv = { static struct usb_driver *usb_drv = &rtl8723a_usb_drv; -static inline int RT_usb_endpoint_dir_in(const struct usb_endpoint_descriptor *epd) -{ - return (epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN; -} - -static inline int RT_usb_endpoint_dir_out(const struct usb_endpoint_descriptor *epd) -{ - return (epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT; -} - -static inline int RT_usb_endpoint_xfer_int(const struct usb_endpoint_descriptor *epd) -{ - return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT; -} - -static inline int RT_usb_endpoint_xfer_bulk(const struct usb_endpoint_descriptor *epd) -{ - return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK; -} - static inline int RT_usb_endpoint_is_bulk_in(const struct usb_endpoint_descriptor *epd) { - return RT_usb_endpoint_xfer_bulk(epd) && RT_usb_endpoint_dir_in(epd); + return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_in(epd); } static inline int RT_usb_endpoint_is_bulk_out(const struct usb_endpoint_descriptor *epd) { - return RT_usb_endpoint_xfer_bulk(epd) && RT_usb_endpoint_dir_out(epd); + return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_out(epd); } static inline int RT_usb_endpoint_is_int_in(const struct usb_endpoint_descriptor *epd) { - return RT_usb_endpoint_xfer_int(epd) && RT_usb_endpoint_dir_in(epd); -} - -static inline int RT_usb_endpoint_num(const struct usb_endpoint_descriptor *epd) -{ - return epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; + return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd); } static int rtw_init_intf_priv(struct dvobj_priv *dvobj) { - int rst = _SUCCESS; - mutex_init(&dvobj->usb_vendor_req_mutex); - dvobj->usb_alloc_vendor_req_buf = kzalloc(MAX_USB_IO_CTL_SIZE, - GFP_KERNEL); - if (dvobj->usb_alloc_vendor_req_buf == NULL) { - DBG_8723A("alloc usb_vendor_req_buf failed...\n"); - rst = _FAIL; - goto exit; - } - dvobj->usb_vendor_req_buf = - PTR_ALIGN(dvobj->usb_alloc_vendor_req_buf, ALIGNMENT_UNIT); -exit: - return rst; + + return _SUCCESS; } static int rtw_deinit_intf_priv(struct dvobj_priv *dvobj) { - int rst = _SUCCESS; - - kfree(dvobj->usb_alloc_vendor_req_buf); - mutex_destroy(&dvobj->usb_vendor_req_mutex); - return rst; + return _SUCCESS; } static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) { struct dvobj_priv *pdvobjpriv; - struct usb_device_descriptor *pdev_desc; struct usb_host_config *phost_conf; struct usb_config_descriptor *pconf_desc; struct usb_host_interface *phost_iface; @@ -159,8 +118,6 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) pdvobjpriv->RtNumInPipes = 0; pdvobjpriv->RtNumOutPipes = 0; - pdev_desc = &pusbd->descriptor; - phost_conf = pusbd->actconfig; pconf_desc = &phost_conf->desc; @@ -188,25 +145,25 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) if (RT_usb_endpoint_is_bulk_in(pendp_desc)) { DBG_8723A("RT_usb_endpoint_is_bulk_in = %x\n", - RT_usb_endpoint_num(pendp_desc)); + usb_endpoint_num(pendp_desc)); pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = - RT_usb_endpoint_num(pendp_desc); + usb_endpoint_num(pendp_desc); pdvobjpriv->RtNumInPipes++; } else if (RT_usb_endpoint_is_int_in(pendp_desc)) { DBG_8723A("RT_usb_endpoint_is_int_in = %x, Interval = %x\n", - RT_usb_endpoint_num(pendp_desc), + usb_endpoint_num(pendp_desc), pendp_desc->bInterval); pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = - RT_usb_endpoint_num(pendp_desc); + usb_endpoint_num(pendp_desc); pdvobjpriv->RtNumInPipes++; } else if (RT_usb_endpoint_is_bulk_out(pendp_desc)) { DBG_8723A("RT_usb_endpoint_is_bulk_out = %x\n", - RT_usb_endpoint_num(pendp_desc)); + usb_endpoint_num(pendp_desc)); pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] = - RT_usb_endpoint_num(pendp_desc); + usb_endpoint_num(pendp_desc); pdvobjpriv->RtNumOutPipes++; } - pdvobjpriv->ep_num[i] = RT_usb_endpoint_num(pendp_desc); + pdvobjpriv->ep_num[i] = usb_endpoint_num(pendp_desc); } } DBG_8723A("nr_endpoint =%d, in_num =%d, out_num =%d\n\n", @@ -318,7 +275,7 @@ static void rtw_dev_unload(struct rtw_adapter *padapter) /* s5. */ if (!padapter->bSurpriseRemoved) { - rtw_hal_deinit23a(padapter); + rtl8723au_hal_deinit(padapter); padapter->bSurpriseRemoved = true; } padapter->bup = false; @@ -416,7 +373,6 @@ int rtw_hw_resume23a(struct rtw_adapter *padapter) netif_tx_wake_all_queues(pnetdev); pwrpriv->bkeepfwalive = false; - pwrpriv->brfoffbyhw = false; pwrpriv->rf_pwrstate = rf_on; pwrpriv->bips_processing = false; @@ -504,15 +460,6 @@ static int rtw_resume(struct usb_interface *pusb_intf) { struct dvobj_priv *dvobj = usb_get_intfdata(pusb_intf); struct rtw_adapter *padapter = dvobj->if1; - int ret; - - ret = rtw_resume_process23a(padapter); - - return ret; -} - -int rtw_resume_process23a(struct rtw_adapter *padapter) -{ struct net_device *pnetdev; struct pwrctrl_priv *pwrpriv = NULL; int ret = -1; @@ -574,7 +521,7 @@ static struct rtw_adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, pnetdev = rtw_init_netdev23a(padapter); if (!pnetdev) - goto handle_dualmac; + goto free_adapter; padapter = netdev_priv(pnetdev); padapter->dvobj = dvobj; @@ -585,13 +532,10 @@ static struct rtw_adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, rtl8723au_set_hw_type(padapter); - if (rtw_handle_dualmac23a(padapter, 1) != _SUCCESS) - goto free_adapter; - SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj)); if (rtw_wdev_alloc(padapter, dvobj_to_dev(dvobj))) - goto handle_dualmac; + goto free_adapter; /* step 2. allocate HalData */ padapter->HalData = kzalloc(sizeof(struct hal_data_8723a), GFP_KERNEL); @@ -652,9 +596,6 @@ free_wdev: rtw_wdev_unregister(padapter->rtw_wdev); rtw_wdev_free(padapter->rtw_wdev); } -handle_dualmac: - if (status != _SUCCESS) - rtw_handle_dualmac23a(padapter, 0); free_adapter: if (status != _SUCCESS) { if (pnetdev) @@ -686,8 +627,6 @@ static void rtw_usb_if1_deinit(struct rtw_adapter *if1) DBG_8723A("+r871xu_dev_remove, hw_init_completed =%d\n", if1->hw_init_completed); - rtw_handle_dualmac23a(if1, 0); - if (if1->rtw_wdev) { rtw_wdev_unregister(if1->rtw_wdev); rtw_wdev_free(if1->rtw_wdev); |