Lines Matching refs:pip

350 	struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
352 init_completion(&pip->cmd_ready);
353 atomic_set(&pip->cmd_issued, 0);
354 mutex_init(&pip->cmd_lock);
356 mutex_init(&pip->pm_stage_lock);
357 pip->pm_stage = CYAPA_PM_DEACTIVE;
359 pip->resp_sort_func = NULL;
360 pip->in_progress_cmd = PIP_INVALID_CMD;
361 pip->resp_data = NULL;
362 pip->resp_len = NULL;
409 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
411 mutex_lock(&pip->pm_stage_lock);
412 pip->pm_stage = pm_stage;
413 mutex_unlock(&pip->pm_stage_lock);
418 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
420 /* Indicates the pip->pm_stage is not valid. */
421 mutex_lock(&pip->pm_stage_lock);
422 pip->pm_stage = CYAPA_PM_DEACTIVE;
423 mutex_unlock(&pip->pm_stage_lock);
428 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
431 mutex_lock(&pip->pm_stage_lock);
432 pm_stage = pip->pm_stage;
433 mutex_unlock(&pip->pm_stage_lock);
446 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
479 error = cyapa_i2c_pip_read(cyapa, pip->empty_buf,
484 length = get_unaligned_le16(pip->empty_buf);
495 func(cyapa, pip->empty_buf, length)) {
497 memcpy(buf, pip->empty_buf, length);
505 error = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length);
511 length = get_unaligned_le16(pip->empty_buf);
515 func(cyapa, pip->empty_buf, length)) {
517 memcpy(buf, pip->empty_buf, length);
527 (struct cyapa_pip_report_data *)pip->empty_buf);
541 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
545 init_completion(&pip->cmd_ready);
547 atomic_inc(&pip->cmd_issued);
550 atomic_dec(&pip->cmd_issued);
555 timeout = wait_for_completion_timeout(&pip->cmd_ready,
558 atomic_dec(&pip->cmd_issued);
572 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
577 atomic_inc(&pip->cmd_issued);
580 atomic_dec(&pip->cmd_issued);
601 atomic_dec(&pip->cmd_issued);
613 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
620 error = mutex_lock_interruptible(&pip->cmd_lock);
624 pip->resp_sort_func = func;
625 pip->resp_data = resp_data;
626 pip->resp_len = resp_len;
631 pip->in_progress_cmd = cmd[6] & 0x7f;
635 pip->in_progress_cmd = cmd[7];
640 pip->is_irq_mode = true;
656 pip->is_irq_mode = false;
661 pip->resp_sort_func = NULL;
662 pip->resp_data = NULL;
663 pip->resp_len = NULL;
664 pip->in_progress_cmd = PIP_INVALID_CMD;
666 mutex_unlock(&pip->cmd_lock);
688 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
699 data[5] == pip->in_progress_cmd) {
703 pip->in_progress_cmd) {
925 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
935 ret = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length);
951 } else if ((pip->empty_buf[PIP_RESP_REPORT_ID_OFFSET] ==
953 (pip->empty_buf[PIP_RESP_RSVD_OFFSET] ==
955 (pip->empty_buf[PIP_RESP_BL_SOP_OFFSET] ==
957 (pip->empty_buf[length - 1] ==
962 } else if (pip->empty_buf[PIP_RESP_REPORT_ID_OFFSET] ==
964 pip->empty_buf[PIP_RESP_RSVD_OFFSET] ==
1720 * Disable pip report for a little time, firmware will
2608 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
2611 if (atomic_read(&pip->cmd_issued)) {
2613 if (pip->is_irq_mode == false)
2621 cyapa_i2c_pip_read(cyapa, pip->irq_cmd_buf,
2623 length = get_unaligned_le16(pip->irq_cmd_buf);
2628 pip->irq_cmd_buf, length);
2629 if (!(pip->resp_sort_func &&
2630 pip->resp_sort_func(cyapa,
2631 pip->irq_cmd_buf, length))) {
2646 if (pip->resp_len)
2647 length = *pip->resp_len;
2649 pip->resp_data,
2651 pip->resp_sort_func);
2652 if (pip->resp_len && length != 0) {
2653 *pip->resp_len = length;
2654 atomic_dec(&pip->cmd_issued);
2655 complete(&pip->cmd_ready);
2660 if (pip->resp_data && pip->resp_len) {
2661 *pip->resp_len = (*pip->resp_len < length) ?
2662 *pip->resp_len : length;
2663 memcpy(pip->resp_data, pip->irq_cmd_buf,
2664 *pip->resp_len);
2666 atomic_dec(&pip->cmd_issued);
2667 complete(&pip->cmd_ready);