Lines Matching refs:psdata
188 struct ps_data psdata; member
321 struct ps_data *psdata = &nxpdev->psdata; in nxp_drv_send_cmd() local
327 psdata->driver_sent_cmd = true; in nxp_drv_send_cmd()
329 psdata->driver_sent_cmd = false; in nxp_drv_send_cmd()
343 struct ps_data *psdata = &nxpdev->psdata; in ps_start_timer() local
345 if (!psdata) in ps_start_timer()
348 if (psdata->cur_psmode == PS_MODE_ENABLE) in ps_start_timer()
349 mod_timer(&psdata->ps_timer, jiffies + msecs_to_jiffies(psdata->h2c_ps_interval)); in ps_start_timer()
351 if (psdata->ps_state == PS_STATE_AWAKE && psdata->ps_cmd == PS_CMD_ENTER_PS) in ps_start_timer()
352 cancel_work_sync(&psdata->work); in ps_start_timer()
357 struct ps_data *psdata = &nxpdev->psdata; in ps_cancel_timer() local
359 flush_work(&psdata->work); in ps_cancel_timer()
360 timer_shutdown_sync(&psdata->ps_timer); in ps_cancel_timer()
366 struct ps_data *psdata = &nxpdev->psdata; in ps_control() local
369 if (psdata->ps_state == ps_state || in ps_control()
373 mutex_lock(&psdata->ps_lock); in ps_control()
374 switch (psdata->cur_h2c_wakeupmode) { in ps_control()
393 psdata->ps_state = ps_state; in ps_control()
394 mutex_unlock(&psdata->ps_lock); in ps_control()
427 struct ps_data *psdata = &nxpdev->psdata; in ps_setup() local
429 psdata->hdev = hdev; in ps_setup()
430 INIT_WORK(&psdata->work, ps_work_func); in ps_setup()
431 mutex_init(&psdata->ps_lock); in ps_setup()
432 timer_setup(&psdata->ps_timer, ps_timeout_func, 0); in ps_setup()
437 struct ps_data *psdata = &nxpdev->psdata; in ps_wakeup() local
440 mutex_lock(&psdata->ps_lock); in ps_wakeup()
441 ps_state = psdata->ps_state; in ps_wakeup()
442 mutex_unlock(&psdata->ps_lock); in ps_wakeup()
445 psdata->ps_cmd = PS_CMD_EXIT_PS; in ps_wakeup()
446 schedule_work(&psdata->work); in ps_wakeup()
454 struct ps_data *psdata = &nxpdev->psdata; in ps_cleanup() local
457 mutex_lock(&psdata->ps_lock); in ps_cleanup()
458 ps_state = psdata->ps_state; in ps_cleanup()
459 mutex_unlock(&psdata->ps_lock); in ps_cleanup()
462 ps_control(psdata->hdev, PS_STATE_AWAKE); in ps_cleanup()
465 cancel_work_sync(&psdata->work); in ps_cleanup()
466 mutex_destroy(&psdata->ps_lock); in ps_cleanup()
472 struct ps_data *psdata = &nxpdev->psdata; in send_ps_cmd() local
477 if (psdata->target_ps_mode == PS_MODE_ENABLE) in send_ps_cmd()
481 pcmd.c2h_ps_interval = __cpu_to_le16(psdata->c2h_ps_interval); in send_ps_cmd()
492 psdata->cur_psmode = psdata->target_ps_mode; in send_ps_cmd()
494 psdata->target_ps_mode = psdata->cur_psmode; in send_ps_cmd()
495 if (psdata->cur_psmode == PS_MODE_ENABLE) in send_ps_cmd()
500 *status, psdata->cur_psmode); in send_ps_cmd()
510 struct ps_data *psdata = &nxpdev->psdata; in send_wakeup_method_cmd() local
515 pcmd.c2h_wakeupmode = psdata->c2h_wakeupmode; in send_wakeup_method_cmd()
516 pcmd.c2h_wakeup_gpio = psdata->c2h_wakeup_gpio; in send_wakeup_method_cmd()
517 switch (psdata->h2c_wakeupmode) { in send_wakeup_method_cmd()
537 psdata->cur_h2c_wakeupmode = psdata->h2c_wakeupmode; in send_wakeup_method_cmd()
539 psdata->h2c_wakeupmode = psdata->cur_h2c_wakeupmode; in send_wakeup_method_cmd()
541 *status, psdata->cur_h2c_wakeupmode); in send_wakeup_method_cmd()
551 struct ps_data *psdata = &nxpdev->psdata; in ps_init() local
558 psdata->ps_state = PS_STATE_AWAKE; in ps_init()
559 psdata->c2h_wakeupmode = BT_HOST_WAKEUP_METHOD_NONE; in ps_init()
560 psdata->c2h_wakeup_gpio = 0xff; in ps_init()
562 psdata->cur_h2c_wakeupmode = WAKEUP_METHOD_INVALID; in ps_init()
563 psdata->h2c_ps_interval = PS_DEFAULT_TIMEOUT_PERIOD_MS; in ps_init()
566 psdata->h2c_wakeupmode = WAKEUP_METHOD_DTR; in ps_init()
572 psdata->h2c_wakeupmode = WAKEUP_METHOD_BREAK; in ps_init()
580 psdata->cur_psmode = PS_MODE_DISABLE; in ps_init()
581 psdata->target_ps_mode = DEFAULT_PS_MODE; in ps_init()
583 if (psdata->cur_h2c_wakeupmode != psdata->h2c_wakeupmode) in ps_init()
585 if (psdata->cur_psmode != psdata->target_ps_mode) in ps_init()
1099 struct ps_data *psdata = &nxpdev->psdata; in nxp_set_baudrate_cmd() local
1103 if (!psdata) in nxp_set_baudrate_cmd()
1241 struct ps_data *psdata = &nxpdev->psdata; in nxp_enqueue() local
1253 if (bt_cb(skb)->pkt_type == HCI_COMMAND_PKT && !psdata->driver_sent_cmd) { in nxp_enqueue()
1263 psdata->target_ps_mode = PS_MODE_ENABLE; in nxp_enqueue()
1265 psdata->target_ps_mode = PS_MODE_DISABLE; in nxp_enqueue()
1266 psdata->c2h_ps_interval = __le16_to_cpu(ps_parm.c2h_ps_interval); in nxp_enqueue()
1274 psdata->c2h_wakeupmode = wakeup_parm.c2h_wakeupmode; in nxp_enqueue()
1275 psdata->c2h_wakeup_gpio = wakeup_parm.c2h_wakeup_gpio; in nxp_enqueue()
1276 psdata->h2c_wakeup_gpio = wakeup_parm.h2c_wakeup_gpio; in nxp_enqueue()
1279 psdata->h2c_wakeupmode = WAKEUP_METHOD_DTR; in nxp_enqueue()
1283 psdata->h2c_wakeupmode = WAKEUP_METHOD_BREAK; in nxp_enqueue()
1546 struct ps_data *psdata = &nxpdev->psdata; in nxp_serdev_suspend() local
1548 ps_control(psdata->hdev, PS_STATE_SLEEP); in nxp_serdev_suspend()
1555 struct ps_data *psdata = &nxpdev->psdata; in nxp_serdev_resume() local
1557 ps_control(psdata->hdev, PS_STATE_AWAKE); in nxp_serdev_resume()