Lines Matching refs:softc_p

83 static int	dcam_reset(dcam_state_t *softc_p);
192 dcam_state_t *softc_p; in dcam_attach() local
207 if ((softc_p = ddi_get_soft_state(dcam_state_p, instance)) == in dcam_attach()
216 softc_p->dip = dip; in dcam_attach()
217 softc_p->instance = instance; in dcam_attach()
218 softc_p->usr_model = -1; in dcam_attach()
219 softc_p->ixlp = NULL; in dcam_attach()
221 softc_p->seq_count = 0; in dcam_attach()
222 softc_p->param_status = 0; in dcam_attach()
227 softc_p->cur_vid_mode = 1; in dcam_attach()
228 softc_p->cur_frame_rate = 3; in dcam_attach()
229 softc_p->cur_ring_buff_capacity = 10; in dcam_attach()
230 softc_p->camera_online = 1; in dcam_attach()
252 &(softc_p->attachinfo), in dcam_attach()
253 &(softc_p->sl_handle)) != DDI_SUCCESS) { in dcam_attach()
260 if (t1394_get_targetinfo(softc_p->sl_handle, in dcam_attach()
261 softc_p->attachinfo.localinfo.bus_generation, 0, in dcam_attach()
262 &(softc_p->targetinfo)) != DDI_SUCCESS) { in dcam_attach()
269 (void) t1394_detach(&softc_p->sl_handle, 0); in dcam_attach()
278 softc_p, &softc_p->event_id) != DDI_SUCCESS) { in dcam_attach()
279 (void) t1394_detach(&softc_p->sl_handle, 0); in dcam_attach()
287 mutex_init(&softc_p->softc_mutex, NULL, MUTEX_DRIVER, in dcam_attach()
288 softc_p->attachinfo.iblock_cookie); in dcam_attach()
290 mutex_init(&softc_p->dcam_frame_is_done_mutex, NULL, in dcam_attach()
291 MUTEX_DRIVER, softc_p->attachinfo.iblock_cookie); in dcam_attach()
296 if (param_attr_init(softc_p, softc_p->param_attr) != in dcam_attach()
298 (void) ddi_remove_event_handler(softc_p->event_id); in dcam_attach()
299 (void) t1394_detach(&softc_p->sl_handle, 0); in dcam_attach()
323 softc_p->flags |= DCAM1394_FLAG_ATTACH_COMPLETE; in dcam_attach()
331 if ((softc_p = ddi_get_soft_state(dcam_state_p, instance)) == in dcam_attach()
337 mutex_enter(&softc_p->softc_mutex); in dcam_attach()
339 if (softc_p->flags & DCAM1394_FLAG_FRAME_RCV_INIT) { in dcam_attach()
340 (void) dcam1394_ioctl_frame_rcv_start(softc_p); in dcam_attach()
343 softc_p->suspended = 0; in dcam_attach()
345 mutex_exit(&softc_p->softc_mutex); in dcam_attach()
366 dcam_state_t *softc_p; in dcam_power() local
370 softc_p = (dcam_state_t *)ddi_get_soft_state(dcam_state_p, instance); in dcam_power()
372 if (softc_p == NULL) in dcam_power()
375 softc_p->pm_cable_power = level; in dcam_power()
390 dcam_state_t *softc_p; in dcam_getinfo() local
399 softc_p = (dcam_state_t *) in dcam_getinfo()
402 if (softc_p == NULL) { in dcam_getinfo()
406 *result = (void *)softc_p->dip; in dcam_getinfo()
433 dcam_state_t *softc_p; in dcam_detach() local
437 softc_p = (dcam_state_t *)ddi_get_soft_state(dcam_state_p, instance); in dcam_detach()
438 if (softc_p == NULL) { in dcam_detach()
446 mutex_enter(&softc_p->softc_mutex); in dcam_detach()
448 softc_p->suspended = 1; in dcam_detach()
450 if (softc_p->flags & DCAM1394_FLAG_FRAME_RCV_INIT) { in dcam_detach()
451 (void) dcam_frame_rcv_stop(softc_p); in dcam_detach()
454 mutex_exit(&softc_p->softc_mutex); in dcam_detach()
468 if (t1394_detach(&softc_p->sl_handle, 0) != DDI_SUCCESS) { in dcam_detach()
472 (void) ddi_remove_event_handler(softc_p->event_id); in dcam_detach()
478 mutex_destroy(&softc_p->softc_mutex); in dcam_detach()
479 mutex_destroy(&softc_p->dcam_frame_is_done_mutex); in dcam_detach()
505 dcam_state_t *softc_p; in dcam_open() local
512 if ((softc_p = ddi_get_soft_state(dcam_state_p, instance)) == NULL) { in dcam_open()
520 if (!(softc_p->flags & DCAM1394_FLAG_ATTACH_COMPLETE)) { in dcam_open()
532 mutex_enter(&softc_p->softc_mutex); in dcam_open()
544 if (softc_p->flags & DCAM1394_FLAG_OPEN_CAPTURE) { in dcam_open()
545 mutex_exit(&softc_p->softc_mutex); in dcam_open()
553 softc_p->flags |= new_flags; in dcam_open()
555 mutex_exit(&softc_p->softc_mutex); in dcam_open()
560 if (softc_p->pm_open_count == 0) { in dcam_open()
561 if (ddi_prop_exists(DDI_DEV_T_ANY, softc_p->dip, 0, in dcam_open()
563 (void) pm_busy_component(softc_p->dip, 0); in dcam_open()
564 if (softc_p->pm_cable_power == 0) { in dcam_open()
567 (void) pm_raise_power(softc_p->dip, 0, 1); in dcam_open()
577 if (param_power_set(softc_p, 1) == 0) { in dcam_open()
585 softc_p->pm_open_count++; in dcam_open()
668 dcam_state_t *softc_p; in dcam_read() local
683 softc_p = (dcam_state_t *)ddi_get_soft_state(dcam_state_p, instance); in dcam_read()
684 if (softc_p == NULL) { in dcam_read()
688 if ((ring_buff_p = softc_p->ring_buff_p) == NULL) { in dcam_read()
694 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
696 softc_p->reader_flags[read_ptr_id] |= DCAM1394_FLAG_READ_REQ_PROC; in dcam_read()
726 vid_mode = softc_p->cur_vid_mode; in dcam_read()
731 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
763 softc_p->usr_model, index, &index)) { in dcam_read()
769 if (softc_p->usr_model == ILP32_PTR_SIZE) { in dcam_read()
784 g_vid_mode_frame_num_bytes[softc_p->cur_vid_mode], in dcam_read()
796 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
798 read_req_invalid = softc_p->reader_flags[read_ptr_id] & in dcam_read()
801 softc_p->reader_flags[read_ptr_id] &= in dcam_read()
804 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
807 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
811 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
817 uio_p->uio_resid -= g_vid_mode_frame_num_bytes[softc_p->cur_vid_mode]; in dcam_read()
819 softc_p->reader_flags[read_ptr_id] &= ~(DCAM1394_FLAG_READ_REQ_PROC); in dcam_read()
824 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_read()
838 dcam_state_t *softc_p; in dcam_ioctl() local
848 if ((softc_p = ddi_get_soft_state(dcam_state_p, instance)) == NULL) { in dcam_ioctl()
857 softc_p->usr_model = ILP32_PTR_SIZE; in dcam_ioctl()
859 softc_p->usr_model = LP64_PTR_SIZE; in dcam_ioctl()
871 if (dcam_reg_read(softc_p, &dcam_reg_io)) { in dcam_ioctl()
890 if (dcam_reg_write(softc_p, &dcam_reg_io)) { in dcam_ioctl()
903 if (dcam_reset(softc_p)) { in dcam_ioctl()
919 if (dcam1394_ioctl_param_get(softc_p, *param_list)) { in dcam_ioctl()
943 if (dcam1394_ioctl_param_set(softc_p, is_ctrl_file, in dcam_ioctl()
949 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_ioctl()
950 softc_p->param_status |= DCAM1394_STATUS_PARAM_CHANGE; in dcam_ioctl()
951 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_ioctl()
962 if (dcam1394_ioctl_frame_rcv_start(softc_p)) { in dcam_ioctl()
968 if (dcam_frame_rcv_stop(softc_p)) { in dcam_ioctl()
974 if (softc_p->ring_buff_p == NULL) { in dcam_ioctl()
982 for (i = 0; i < softc_p->ring_buff_p->num_read_ptrs; i++) { in dcam_ioctl()
983 softc_p->ring_buff_p->read_ptr_pos[i] = in dcam_ioctl()
984 softc_p->ring_buff_p->write_ptr_pos; in dcam_ioctl()
990 if (softc_p->reader_flags[i] & in dcam_ioctl()
997 softc_p->reader_flags[i] |= in dcam_ioctl()
1004 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_ioctl()
1005 softc_p->seq_count = 0; in dcam_ioctl()
1006 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_ioctl()
1028 dcam_state_t *softc_p; in dcam_chpoll() local
1041 softc_p = (dcam_state_t *)ddi_get_soft_state(dcam_state_p, instance); in dcam_chpoll()
1042 if (softc_p == NULL) { in dcam_chpoll()
1046 if (softc_p->ring_buff_p != NULL) { in dcam_chpoll()
1049 mutex_enter(&softc_p->dcam_frame_is_done_mutex); in dcam_chpoll()
1051 ring_buff_read_ptr_pos_get(softc_p->ring_buff_p, 0); in dcam_chpoll()
1053 ring_buff_write_ptr_pos_get(softc_p->ring_buff_p); in dcam_chpoll()
1054 mutex_exit(&softc_p->dcam_frame_is_done_mutex); in dcam_chpoll()
1061 if ((events & POLLPRI) && softc_p->param_status) { in dcam_chpoll()
1086 dcam_state_t *softc_p; in dcam_bus_reset_notify() local
1090 softc_p = arg; in dcam_bus_reset_notify()
1097 (softc_p->sl_handle == NULL)) { in dcam_bus_reset_notify()
1106 if (t1394_get_targetinfo(softc_p->sl_handle, in dcam_bus_reset_notify()
1110 if (localinfo->local_nodeID == softc_p->targetinfo.target_nodeID) { in dcam_bus_reset_notify()
1111 softc_p->param_status |= DCAM1394_STATUS_CAM_UNPLUG; in dcam_bus_reset_notify()
1113 softc_p->param_status &= ~DCAM1394_STATUS_CAM_UNPLUG; in dcam_bus_reset_notify()
1117 softc_p->attachinfo.localinfo = *localinfo; in dcam_bus_reset_notify()
1120 softc_p->targetinfo.current_max_payload = in dcam_bus_reset_notify()
1123 softc_p->targetinfo.current_max_speed = in dcam_bus_reset_notify()
1126 softc_p->targetinfo.target_nodeID = in dcam_bus_reset_notify()
1203 dcam_reset(dcam_state_t *softc_p) in dcam_reset() argument
1210 if (dcam_reg_write(softc_p, &dcam_reg_io)) { in dcam_reset()
1222 if (dcam_reg_write(softc_p, &dcam_reg_io)) { in dcam_reset()