Lines Matching refs:ph_data

89 usba_check_req(usba_pipe_handle_data_t *ph_data, usb_opaque_t req,
92 int rval = _usba_check_req(ph_data, req, flags, pipe_type);
96 "usba_check_req: ph_data=0x%p req=0x%p flags=0%x rval=%d",
97 (void *)ph_data, (void *)req, flags, rval);
105 _usba_check_req(usba_pipe_handle_data_t *ph_data, usb_opaque_t req,
118 uchar_t direction = ph_data->p_ep.bEndpointAddress &
120 uchar_t ep_attrs = ph_data->p_ep.bmAttributes &
125 "usba_check_req: ph_data=0x%p req=0x%p flags=0x%x",
126 (void *)ph_data, (void *)req, flags);
162 ASSERT(ph_data->p_usba_device);
164 if (ph_data->p_usba_device->usb_ph_list[0].usba_ph_data == NULL) {
170 if (usba_check_in_list(&(ph_data->p_usba_device->usb_allocated),
189 if (USBA_IS_DEFAULT_PIPE(ph_data)) {
229 if (usba_flags_attr_check(ph_data, attrs, flags) !=
355 wrp->wr_ph_data = ph_data;
413 usba_flags_attr_check(usba_pipe_handle_data_t *ph_data,
418 uchar_t ep_dir = ph_data->p_ep.bEndpointAddress & USB_EP_DIR_MASK;
419 uchar_t ep_attr = ph_data->p_ep.bmAttributes & USB_EP_ATTR_MASK;
494 * ph_data - pointer to pipe handle
499 usba_start_next_req(usba_pipe_handle_data_t *ph_data)
504 uchar_t ep_attrs = ph_data->p_ep.bmAttributes &
509 mutex_enter(&ph_data->p_mutex);
513 switch (usba_get_ph_state(ph_data)) {
520 mutex_exit(&ph_data->p_mutex);
529 mutex_exit(&ph_data->p_mutex);
535 usba_rm_first_pvt_from_list(&ph_data->p_queue)) != NULL) {
540 "usba_start_next_req: ph_data=0x%p state=%d",
541 (void *)ph_data, usba_get_ph_state(ph_data));
544 ph_data->p_active_cntrl_req_wrp = (usb_opaque_t)wrp;
547 if ((state = usba_get_ph_state(ph_data)) ==
549 usba_pipe_new_state(ph_data, USB_PIPE_STATE_ACTIVE);
557 mutex_exit(&ph_data->p_mutex);
560 rval = ph_data->p_usba_device->usb_hcdi_ops->
561 usba_hcdi_pipe_ctrl_xfer(ph_data,
563 mutex_enter(&ph_data->p_mutex);
566 mutex_exit(&ph_data->p_mutex);
569 rval = ph_data->p_usba_device->usb_hcdi_ops->
570 usba_hcdi_pipe_bulk_xfer(ph_data,
572 mutex_enter(&ph_data->p_mutex);
581 mutex_exit(&ph_data->p_mutex);
585 mutex_enter(&ph_data->p_mutex);
591 mutex_exit(&ph_data->p_mutex);
601 mutex_enter(&ph_data->p_mutex);
606 "usba_start_next_req done: ph_data=0x%p state=%d", (void *)ph_data,
607 usba_get_ph_state(ph_data));
609 mutex_exit(&ph_data->p_mutex);
683 usba_pipe_handle_data_t *ph_data;
690 ph_data = USBA_WRP2PH_DATA(wrp);
691 if (ph_data) {
692 (void) usba_rm_from_list(&ph_data->p_queue,
731 usba_pipe_handle_data_t *ph_data = req_wrp->wr_ph_data;
733 uint_t direction = ph_data->p_ep.bEndpointAddress &
737 pipe_handle = usba_get_pipe_handle(ph_data);
739 mutex_enter(&ph_data->p_mutex);
740 ASSERT(ph_data->p_req_count >= 0);
741 pipe_state = usba_get_ph_state(ph_data);
745 "ph_data=0x%p state=%d wrp=0x%p ref=%d req=%d",
746 (void *)ph_data, pipe_state, (void *)req_wrp,
747 usba_get_ph_ref_count(ph_data), ph_data->p_req_count);
761 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
767 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
769 (ph_data->p_req_count == 0)) {
770 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
774 if ((ph_data->p_req_count == 0) &&
776 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
784 ph_data->p_active_cntrl_req_wrp = NULL;
786 mutex_exit(&ph_data->p_mutex);
788 mutex_exit(&ph_data->p_mutex);
798 mutex_enter(&ph_data->p_mutex);
799 ph_data->p_active_cntrl_req_wrp = NULL;
800 mutex_exit(&ph_data->p_mutex);
818 mutex_enter(&ph_data->p_mutex);
819 ph_data->p_req_count--;
820 ASSERT(ph_data->p_req_count >= 0);
821 mutex_exit(&ph_data->p_mutex);
834 usba_pipe_handle_data_t *ph_data = req_wrp->wr_ph_data;
835 usb_pipe_handle_t pipe_handle = usba_get_pipe_handle(ph_data);
839 "usba_req_exc_cb: %s%d: ph_data=0x%p (ep%x) state=%d wrp=0x%p "
843 (void *)ph_data, ph_data->p_ep.bEndpointAddress,
844 usba_get_ph_state(ph_data), (void *)req_wrp,
845 usba_get_ph_ref_count(ph_data), ph_data->p_req_count,
895 if (ph_data->p_active_cntrl_req_wrp == (usb_opaque_t)req_wrp) {
896 ph_data->p_active_cntrl_req_wrp = NULL;
898 mutex_exit(&ph_data->p_mutex);
900 mutex_exit(&ph_data->p_mutex);
906 mutex_enter(&ph_data->p_mutex);
907 if (ph_data->p_active_cntrl_req_wrp ==
909 ph_data->p_active_cntrl_req_wrp = NULL;
911 mutex_exit(&ph_data->p_mutex);
929 mutex_enter(&ph_data->p_mutex);
930 ph_data->p_req_count--;
931 ASSERT(ph_data->p_req_count >= 0);
932 mutex_exit(&ph_data->p_mutex);
996 * ph_data - pointer to pipe handle data
1004 usba_pipe_sync_wait(usba_pipe_handle_data_t *ph_data,
1008 ASSERT(ph_data == wrp->wr_ph_data);
1010 mutex_enter(&ph_data->p_mutex);
1012 cv_wait(&wrp->wr_cv, &ph_data->p_mutex);
1015 mutex_exit(&ph_data->p_mutex);
1018 "usba_pipe_sync_wait: ph_data=0x%p cr=0x%x", (void *)ph_data,
1120 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
1132 if (ph_data == NULL) {
1137 mutex_enter(&ph_data->p_mutex);
1138 usba_device = ph_data->p_usba_device;
1140 if ((rval = usba_check_req(ph_data, (usb_opaque_t)req, usb_flags,
1144 mutex_exit(&ph_data->p_mutex);
1146 usba_release_ph_data(ph_data->p_ph_impl);
1151 ASSERT(ph_data == wrp->wr_ph_data);
1154 ph_data->p_req_count++;
1159 pipe_state = usba_get_ph_state(ph_data);
1170 if (ph_data->p_queue.next ||
1171 ph_data->p_active_cntrl_req_wrp) {
1176 usba_add_to_list(&ph_data->p_queue, &wrp->wr_queue);
1178 mutex_exit(&ph_data->p_mutex);
1180 usba_pipe_new_state(ph_data, USB_PIPE_STATE_ACTIVE);
1181 ph_data->p_active_cntrl_req_wrp = (usb_opaque_t)wrp;
1182 mutex_exit(&ph_data->p_mutex);
1186 usba_hcdi_pipe_ctrl_xfer(ph_data, req, usb_flags);
1193 usba_add_to_list(&ph_data->p_queue, &wrp->wr_queue);
1195 mutex_exit(&ph_data->p_mutex);
1198 if (USBA_IS_DEFAULT_PIPE(ph_data)) {
1203 usba_add_to_list(&ph_data->p_queue, &wrp->wr_queue);
1211 mutex_exit(&ph_data->p_mutex);
1218 mutex_exit(&ph_data->p_mutex);
1230 mutex_enter(&ph_data->p_mutex);
1232 ph_data->p_req_count--;
1233 ASSERT(ph_data->p_req_count >= 0);
1234 ph_data->p_active_cntrl_req_wrp = NULL;
1235 if ((ph_data->p_req_count == 0) &&
1236 (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ACTIVE)) {
1237 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
1239 mutex_exit(&ph_data->p_mutex);
1243 rval = usba_pipe_sync_wait(ph_data, wrp);
1249 usba_release_ph_data(ph_data->p_ph_impl);
1300 usba_pipe_handle_data_t *ph_data;
1314 if ((ph_data = usba_hold_ph_data(pipe_handle)) == NULL) {
1377 if (ph_data) {
1378 usba_release_ph_data(ph_data->p_ph_impl);
1520 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
1528 if (ph_data == NULL) {
1533 mutex_enter(&ph_data->p_mutex);
1534 usba_device = ph_data->p_usba_device;
1536 if ((rval = usba_check_req(ph_data, (usb_opaque_t)req, usb_flags,
1538 mutex_exit(&ph_data->p_mutex);
1540 usba_release_ph_data(ph_data->p_ph_impl);
1546 ph_data->p_req_count++;
1550 pipe_state = usba_get_ph_state(ph_data);
1558 if (ph_data->p_queue.next) {
1563 usba_add_to_list(&ph_data->p_queue, &wrp->wr_queue);
1565 mutex_exit(&ph_data->p_mutex);
1567 usba_pipe_new_state(ph_data, USB_PIPE_STATE_ACTIVE);
1568 mutex_exit(&ph_data->p_mutex);
1572 usba_hcdi_pipe_bulk_xfer(ph_data, req, usb_flags);
1579 usba_add_to_list(&ph_data->p_queue, &wrp->wr_queue);
1581 mutex_exit(&ph_data->p_mutex);
1588 mutex_exit(&ph_data->p_mutex);
1596 mutex_enter(&ph_data->p_mutex);
1598 ph_data->p_req_count--;
1599 ASSERT(ph_data->p_req_count >= 0);
1600 if ((ph_data->p_req_count == 0) &&
1601 (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ACTIVE)) {
1602 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
1604 mutex_exit(&ph_data->p_mutex);
1606 rval = usba_pipe_sync_wait(ph_data, wrp);
1612 usba_release_ph_data(ph_data->p_ph_impl);
1811 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
1821 if (ph_data == NULL) {
1825 usba_device = ph_data->p_usba_device;
1826 direction = ph_data->p_ep.bEndpointAddress & USB_EP_DIR_MASK;
1828 mutex_enter(&ph_data->p_mutex);
1829 if ((rval = usba_check_req(ph_data, (usb_opaque_t)req, usb_flags,
1831 mutex_exit(&ph_data->p_mutex);
1833 usba_release_ph_data(ph_data->p_ph_impl);
1839 pipe_state = usba_get_ph_state(ph_data);
1852 mutex_exit(&ph_data->p_mutex);
1853 usba_release_ph_data(ph_data->p_ph_impl);
1862 usba_pipe_new_state(ph_data, USB_PIPE_STATE_ACTIVE);
1876 mutex_exit(&ph_data->p_mutex);
1877 usba_release_ph_data(ph_data->p_ph_impl);
1887 mutex_exit(&ph_data->p_mutex);
1888 usba_release_ph_data(ph_data->p_ph_impl);
1895 ph_data->p_req_count++;
1897 mutex_exit(&ph_data->p_mutex);
1900 if ((rval = usba_device->usb_hcdi_ops->usba_hcdi_pipe_intr_xfer(ph_data,
1907 mutex_enter(&ph_data->p_mutex);
1909 ph_data->p_req_count--;
1910 ASSERT(ph_data->p_req_count >= 0);
1911 if ((ph_data->p_req_count == 0) &&
1912 (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ACTIVE)) {
1913 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
1915 mutex_exit(&ph_data->p_mutex);
1919 rval = usba_pipe_sync_wait(ph_data, wrp);
1925 usba_release_ph_data(ph_data->p_ph_impl);
1945 usba_pipe_handle_data_t *ph_data;
1951 ph_data = usba_get_ph_data((usb_pipe_handle_t)ph_impl);
1952 if (ph_data == NULL) {
1960 usba_device = ph_data->p_usba_device;
1962 mutex_enter(&ph_data->p_mutex);
1964 if (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ERROR) {
1967 mutex_exit(&ph_data->p_mutex);
1974 if (usba_get_ph_state(ph_data) == USB_PIPE_STATE_IDLE) {
1977 mutex_exit(&ph_data->p_mutex);
1983 mutex_exit(&ph_data->p_mutex);
1993 usba_hcdi_pipe_stop_intr_polling(ph_data, flags);
2001 mutex_enter(&ph_data->p_mutex);
2008 rval = usba_drain_cbs(ph_data, 0,
2010 mutex_exit(&ph_data->p_mutex);
2064 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
2069 if (ph_data == NULL) {
2076 if ((ph_data->p_ep.bmAttributes &
2081 usba_release_ph_data(ph_data->p_ph_impl);
2086 if ((ph_data->p_ep.bEndpointAddress & USB_EP_DIR_IN) == 0) {
2090 usba_release_ph_data(ph_data->p_ph_impl);
2099 usba_release_ph_data(ph_data->p_ph_impl);
2104 (void) usba_pipe_setup_func_call(ph_data->p_dip,
2367 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
2375 if (ph_data == NULL) {
2380 usba_device = ph_data->p_usba_device;
2381 direction = ph_data->p_ep.bEndpointAddress & USB_EP_DIR_MASK;
2383 mutex_enter(&ph_data->p_mutex);
2384 if ((rval = usba_check_req(ph_data, (usb_opaque_t)req, flags,
2386 mutex_exit(&ph_data->p_mutex);
2388 usba_release_ph_data(ph_data->p_ph_impl);
2396 pipe_state = usba_get_ph_state(ph_data);
2400 usba_pipe_new_state(ph_data, USB_PIPE_STATE_ACTIVE);
2408 mutex_exit(&ph_data->p_mutex);
2409 usba_release_ph_data(ph_data->p_ph_impl);
2418 mutex_exit(&ph_data->p_mutex);
2419 usba_release_ph_data(ph_data->p_ph_impl);
2425 ph_data->p_req_count++;
2426 mutex_exit(&ph_data->p_mutex);
2429 ph_data, req, flags)) != USB_SUCCESS) {
2433 mutex_enter(&ph_data->p_mutex);
2435 ph_data->p_req_count--;
2436 if ((ph_data->p_req_count == 0) &&
2437 (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ACTIVE)) {
2438 usba_pipe_new_state(ph_data, USB_PIPE_STATE_IDLE);
2440 mutex_exit(&ph_data->p_mutex);
2446 usba_release_ph_data(ph_data->p_ph_impl);
2471 usba_pipe_handle_data_t *ph_data = usba_get_ph_data(
2478 if (ph_data == NULL) {
2485 usba_device = ph_data->p_usba_device;
2487 mutex_enter(&ph_data->p_mutex);
2489 if (usba_get_ph_state(ph_data) == USB_PIPE_STATE_ERROR) {
2492 mutex_exit(&ph_data->p_mutex);
2499 if (usba_get_ph_state(ph_data) == USB_PIPE_STATE_IDLE) {
2502 mutex_exit(&ph_data->p_mutex);
2510 mutex_exit(&ph_data->p_mutex);
2516 usba_hcdi_pipe_stop_isoc_polling(ph_data, flags);
2524 mutex_enter(&ph_data->p_mutex);
2531 rval = usba_drain_cbs(ph_data, 0,
2533 mutex_exit(&ph_data->p_mutex);
2565 usba_pipe_handle_data_t *ph_data = usba_hold_ph_data(pipe_handle);
2570 if (ph_data == NULL) {
2577 if ((ph_data->p_ep.bmAttributes & USB_EP_ATTR_MASK) !=
2582 usba_release_ph_data(ph_data->p_ph_impl);
2586 if ((ph_data->p_ep.bEndpointAddress & USB_EP_DIR_IN) == 0) {
2590 usba_release_ph_data(ph_data->p_ph_impl);
2599 usba_release_ph_data(ph_data->p_ph_impl);
2604 (void) usba_pipe_setup_func_call(ph_data->p_dip,