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);
526 (struct cyapa_pip_report_data *)pip->empty_buf);
540 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
544 init_completion(&pip->cmd_ready);
546 atomic_inc(&pip->cmd_issued);
549 atomic_dec(&pip->cmd_issued);
554 timeout = wait_for_completion_timeout(&pip->cmd_ready,
557 atomic_dec(&pip->cmd_issued);
571 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
576 atomic_inc(&pip->cmd_issued);
579 atomic_dec(&pip->cmd_issued);
600 atomic_dec(&pip->cmd_issued);
612 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
619 error = mutex_lock_interruptible(&pip->cmd_lock);
623 pip->resp_sort_func = func;
624 pip->resp_data = resp_data;
625 pip->resp_len = resp_len;
630 pip->in_progress_cmd = cmd[6] & 0x7f;
634 pip->in_progress_cmd = cmd[7];
639 pip->is_irq_mode = true;
655 pip->is_irq_mode = false;
660 pip->resp_sort_func = NULL;
661 pip->resp_data = NULL;
662 pip->resp_len = NULL;
663 pip->in_progress_cmd = PIP_INVALID_CMD;
665 mutex_unlock(&pip->cmd_lock);
687 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
698 data[5] == pip->in_progress_cmd) {
702 pip->in_progress_cmd) {
924 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
934 ret = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length);
950 } else if ((pip->empty_buf[PIP_RESP_REPORT_ID_OFFSET] ==
952 (pip->empty_buf[PIP_RESP_RSVD_OFFSET] ==
954 (pip->empty_buf[PIP_RESP_BL_SOP_OFFSET] ==
956 (pip->empty_buf[length - 1] ==
961 } else if (pip->empty_buf[PIP_RESP_REPORT_ID_OFFSET] ==
963 pip->empty_buf[PIP_RESP_RSVD_OFFSET] ==
1719 * Disable pip report for a little time, firmware will
2607 struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
2610 if (atomic_read(&pip->cmd_issued)) {
2612 if (pip->is_irq_mode == false)
2620 cyapa_i2c_pip_read(cyapa, pip->irq_cmd_buf,
2622 length = get_unaligned_le16(pip->irq_cmd_buf);
2627 pip->irq_cmd_buf, length);
2628 if (!(pip->resp_sort_func &&
2629 pip->resp_sort_func(cyapa,
2630 pip->irq_cmd_buf, length))) {
2645 if (pip->resp_len)
2646 length = *pip->resp_len;
2648 pip->resp_data,
2650 pip->resp_sort_func);
2651 if (pip->resp_len && length != 0) {
2652 *pip->resp_len = length;
2653 atomic_dec(&pip->cmd_issued);
2654 complete(&pip->cmd_ready);
2659 if (pip->resp_data && pip->resp_len) {
2660 *pip->resp_len = (*pip->resp_len < length) ?
2661 *pip->resp_len : length;
2662 memcpy(pip->resp_data, pip->irq_cmd_buf,
2663 *pip->resp_len);
2665 atomic_dec(&pip->cmd_issued);
2666 complete(&pip->cmd_ready);