Lines Matching defs:dev

73  * @dev: Device object for our driver
82 heci_ioctl_get_version(struct iamt_heci_device *dev, int if_num,
92 if ((if_num < HECI_MINOR_NUMBER) || (!dev) ||
136 * @dev: Device object for our driver
145 heci_ioctl_connect_client(struct iamt_heci_device *dev, int if_num,
162 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file))
221 mutex_enter(&dev->device_lock);
222 if (dev->heci_state != HECI_ENABLED) {
224 mutex_exit(&dev->device_lock);
230 mutex_exit(&dev->device_lock);
236 for (i = 0; i < dev->num_heci_me_clients; i++) {
238 dev->me_clients[i].props.protocol_name.data1,
239 dev->me_clients[i].client_id);
241 &dev->me_clients[i].props.protocol_name,
243 if (dev->me_clients[i].props.fixed_address == 0) {
245 dev->me_clients[i].client_id;
257 if (dev->iamthif_file_ext.state != HECI_FILE_CONNECTED) {
259 mutex_exit(&dev->device_lock);
262 dev->heci_host_clients[file_ext->host_client_id / 8] &=
265 file_next, &dev->file_list, link,
279 file->private_data = &dev->iamthif_file_ext;
282 dev->me_clients[i].props.max_msg_length;
284 dev->me_clients[i].props.protocol_version;
285 rets = dev->iamthif_file_ext.status;
286 mutex_exit(&dev->device_lock);
306 mutex_exit(&dev->device_lock);
312 client->max_message_length = dev->me_clients[i].props.max_msg_length;
313 client->protocol_version = dev->me_clients[i].props.protocol_version;
314 if (dev->host_buffer_is_empty &&
315 !other_client_is_connecting(dev, file_ext)) {
316 dev->host_buffer_is_empty = 0;
317 if (!heci_connect(dev, file_ext)) {
319 mutex_exit(&dev->device_lock);
325 &dev->ctrl_rd_list.heci_cb.
334 &dev->ctrl_wr_list.heci_cb.cb_list);
339 err = cv_reltimedwait(&dev->wait_recvd_msg,
340 &dev->device_lock, timeout * HZ, TR_CLOCK_TICK);
342 mutex_exit(&dev->device_lock);
376 mutex_enter(&dev->device_lock);
377 heci_flush_list(&dev->ctrl_rd_list, file_ext);
378 heci_flush_list(&dev->ctrl_wr_list, file_ext);
379 mutex_exit(&dev->device_lock);
397 * @dev: Device object for our driver
405 heci_ioctl_wd(struct iamt_heci_device *dev, int if_num,
439 mutex_enter(&dev->device_lock);
440 if (dev->heci_state != HECI_ENABLED) {
442 mutex_exit(&dev->device_lock);
446 if (dev->wd_file_ext.state != HECI_FILE_CONNECTED) {
448 mutex_exit(&dev->device_lock);
451 if (!dev->asf_mode) {
453 mutex_exit(&dev->device_lock);
457 (void) memcpy(&dev->wd_data[HECI_WD_PARAMS_SIZE], req_msg.data,
460 dev->wd_timeout = (req_msg.data[1] << 8) + req_msg.data[0];
461 dev->wd_pending = 0;
462 dev->wd_due_counter = 1; /* next timer */
463 if (dev->wd_timeout == 0) {
464 (void) memcpy(dev->wd_data, &stop_wd_params,
467 (void) memcpy(dev->wd_data, &start_wd_params,
469 dev->wd_timer = timeout(heci_wd_timer, dev, 1);
471 mutex_exit(&dev->device_lock);
481 * @dev: Device object for our driver
489 heci_ioctl_bypass_wd(struct iamt_heci_device *dev, int if_num,
511 mutex_enter(&dev->device_lock);
513 dev->wd_bypass = flag;
514 mutex_exit(&dev->device_lock);
522 * @dev: Device object for our driver
529 struct iamt_heci_device *dev,
536 if ((dev->pthi_read_complete_list.status == 0) &&
537 !list_empty(&dev->pthi_read_complete_list.heci_cb.cb_list)) {
540 &dev->pthi_read_complete_list.heci_cb.cb_list, cb_list,
546 (file_ext_temp == &dev->iamthif_file_ext) &&
557 * @dev: Device object for our driver
570 pthi_read(struct iamt_heci_device *dev, int if_num, struct heci_file *file,
580 if ((if_num < HECI_MINOR_NUMBER) || (!dev))
583 if ((file_ext == NULL) || (file_ext != &dev->iamthif_file_ext))
586 mutex_enter(&dev->device_lock);
587 for (i = 0; i < dev->num_heci_me_clients; i++) {
588 if (dev->me_clients[i].client_id ==
589 dev->iamthif_file_ext.me_client_id)
592 ASSERT(dev->me_clients[i].client_id == file_ext->me_client_id);
593 if ((i == dev->num_heci_me_clients) ||
594 (dev->me_clients[i].client_id !=
595 dev->iamthif_file_ext.me_client_id)) {
597 mutex_exit(&dev->device_lock);
600 priv_cb = find_pthi_read_list_entry(dev, file);
602 mutex_exit(&dev->device_lock);
609 mutex_exit(&dev->device_lock);
626 mutex_exit(&dev->device_lock);
638 mutex_exit(&dev->device_lock);
654 * @dev: Device object for our driver
661 heci_start_read(struct iamt_heci_device *dev, int if_num,
668 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file_ext)) {
675 mutex_enter(&dev->device_lock);
676 if (dev->heci_state != HECI_ENABLED) {
677 mutex_exit(&dev->device_lock);
680 mutex_exit(&dev->device_lock);
693 mutex_enter(&dev->device_lock);
694 for (i = 0; i < dev->num_heci_me_clients; i++) {
695 if (dev->me_clients[i].client_id == file_ext->me_client_id)
700 ASSERT(dev->me_clients[i].client_id == file_ext->me_client_id);
701 if (i == dev->num_heci_me_clients) {
706 priv_cb->response_buffer.size = dev->me_clients[i].props.max_msg_length;
707 mutex_exit(&dev->device_lock);
720 mutex_enter(&dev->device_lock);
721 if (dev->host_buffer_is_empty) {
722 dev->host_buffer_is_empty = 0;
723 if (!heci_send_flow_control(dev, file_ext)) {
728 &dev->read_list.heci_cb.cb_list);
732 &dev->ctrl_wr_list.heci_cb.cb_list);
734 mutex_exit(&dev->device_lock);
737 mutex_exit(&dev->device_lock);
746 * @dev: Device object for our driver
752 pthi_write(struct iamt_heci_device *dev,
758 if ((!dev) || (!priv_cb))
763 dev->iamthif_state = HECI_IAMTHIF_WRITING;
764 dev->iamthif_current_cb = priv_cb;
765 dev->iamthif_file_object = priv_cb->file_object;
766 dev->iamthif_canceled = 0;
767 dev->iamthif_ioctl = 1;
768 dev->iamthif_msg_buf_size = priv_cb->request_buffer.size;
769 (void) memcpy(dev->iamthif_msg_buf, priv_cb->request_buffer.data,
772 if (flow_ctrl_creds(dev, &dev->iamthif_file_ext) &&
773 dev->host_buffer_is_empty) {
774 dev->host_buffer_is_empty = 0;
776 (((dev->host_hw_state & H_CBD) >> 24) *
779 (((dev->host_hw_state & H_CBD) >> 24) *
787 heci_hdr.host_addr = dev->iamthif_file_ext.host_client_id;
788 heci_hdr.me_addr = dev->iamthif_file_ext.me_client_id;
790 dev->iamthif_msg_buf_index += heci_hdr.length;
791 if (!heci_write_message(dev, &heci_hdr,
792 (unsigned char *)(dev->iamthif_msg_buf),
797 flow_ctrl_reduce(dev, &dev->iamthif_file_ext);
798 dev->iamthif_flow_control_pending = 1;
799 dev->iamthif_state = HECI_IAMTHIF_FLOW_CONTROL;
801 dev->iamthif_current_cb = priv_cb;
802 dev->iamthif_file_object = priv_cb->file_object;
804 &dev->write_waiting_list.heci_cb.cb_list);
809 &dev->write_list.heci_cb.cb_list);
812 if (!(dev->host_buffer_is_empty))
818 &dev->write_list.heci_cb.cb_list);
826 * @dev: Device object for our driver
831 run_next_iamthif_cmd(struct iamt_heci_device *dev)
838 if (!dev)
841 dev->iamthif_msg_buf_size = 0;
842 dev->iamthif_msg_buf_index = 0;
843 dev->iamthif_canceled = 0;
844 dev->iamthif_ioctl = 1;
845 dev->iamthif_state = HECI_IAMTHIF_IDLE;
846 dev->iamthif_timer = 0;
847 dev->iamthif_file_object = NULL;
849 if (dev->pthi_cmd_list.status == 0 &&
850 !list_empty(&dev->pthi_cmd_list.heci_cb.cb_list)) {
854 &dev->pthi_cmd_list.heci_cb.cb_list, cb_list,
862 (file_ext_tmp == &dev->iamthif_file_ext)) {
863 status = pthi_write(dev, priv_cb_pos);