Lines Matching refs:cl

139 	struct hsi_client	*cl;  member
217 struct ssi_protocol *ssi = hsi_client_drvdata(msg->cl); in ssip_release_cmd()
219 dev_dbg(&msg->cl->device, "Release cmd 0x%08x\n", ssip_get_cmd(msg)); in ssip_release_cmd()
331 if (slave->device.parent == ssi->cl->device.parent) { in ssip_slave_get_master()
332 master = ssi->cl; in ssip_slave_get_master()
385 static void ssip_reset(struct hsi_client *cl) in ssip_reset() argument
387 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_reset()
393 hsi_flush(cl); in ssip_reset()
396 hsi_stop_tx(cl); in ssip_reset()
399 ssi_waketest(cl, 0); /* FIXME: To be removed */ in ssip_reset()
412 dev_dbg(&cl->device, "Pending TX data\n"); in ssip_reset()
420 static void ssip_dump_state(struct hsi_client *cl) in ssip_dump_state() argument
422 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_dump_state()
426 dev_err(&cl->device, "Main state: %d\n", ssi->main_state); in ssip_dump_state()
427 dev_err(&cl->device, "Recv state: %d\n", ssi->recv_state); in ssip_dump_state()
428 dev_err(&cl->device, "Send state: %d\n", ssi->send_state); in ssip_dump_state()
429 dev_err(&cl->device, "CMT %s\n", (ssi->main_state == ACTIVE) ? in ssip_dump_state()
431 dev_err(&cl->device, "Wake test %d\n", in ssip_dump_state()
433 dev_err(&cl->device, "Data RX id: %d\n", ssi->rxid); in ssip_dump_state()
434 dev_err(&cl->device, "Data TX id: %d\n", ssi->txid); in ssip_dump_state()
437 dev_err(&cl->device, "pending TX data (%p)\n", msg); in ssip_dump_state()
441 static void ssip_error(struct hsi_client *cl) in ssip_error() argument
443 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_error()
446 ssip_dump_state(cl); in ssip_error()
447 ssip_reset(cl); in ssip_error()
450 hsi_async_read(cl, msg); in ssip_error()
456 struct hsi_client *cl = ssi->cl; in ssip_keep_alive() local
458 dev_dbg(&cl->device, "Keep alive kick in: m(%d) r(%d) s(%d)\n", in ssip_keep_alive()
483 struct hsi_client *cl = ssi->cl; in ssip_rx_wd() local
485 dev_err(&cl->device, "Watchdog triggered\n"); in ssip_rx_wd()
486 ssip_error(cl); in ssip_rx_wd()
492 struct hsi_client *cl = ssi->cl; in ssip_tx_wd() local
494 dev_err(&cl->device, "Watchdog triggered\n"); in ssip_tx_wd()
495 ssip_error(cl); in ssip_tx_wd()
498 static void ssip_send_bootinfo_req_cmd(struct hsi_client *cl) in ssip_send_bootinfo_req_cmd() argument
500 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_send_bootinfo_req_cmd()
503 dev_dbg(&cl->device, "Issuing BOOT INFO REQ command\n"); in ssip_send_bootinfo_req_cmd()
507 hsi_async_write(cl, msg); in ssip_send_bootinfo_req_cmd()
508 dev_dbg(&cl->device, "Issuing RX command\n"); in ssip_send_bootinfo_req_cmd()
511 hsi_async_read(cl, msg); in ssip_send_bootinfo_req_cmd()
514 static void ssip_start_rx(struct hsi_client *cl) in ssip_start_rx() argument
516 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_start_rx()
519 dev_dbg(&cl->device, "RX start M(%d) R(%d)\n", ssi->main_state, in ssip_start_rx()
536 dev_dbg(&cl->device, "Send READY\n"); in ssip_start_rx()
537 hsi_async_write(cl, msg); in ssip_start_rx()
540 static void ssip_stop_rx(struct hsi_client *cl) in ssip_stop_rx() argument
542 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_stop_rx()
544 dev_dbg(&cl->device, "RX stop M(%d)\n", ssi->main_state); in ssip_stop_rx()
559 struct hsi_client *cl = msg->cl; in ssip_strans_complete() local
560 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_strans_complete()
568 hsi_async_write(cl, data); in ssip_strans_complete()
571 static int ssip_xmit(struct hsi_client *cl) in ssip_xmit() argument
573 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_xmit()
600 dev_dbg(&cl->device, "Send STRANS (%d frames)\n", in ssip_xmit()
603 return hsi_async_write(cl, msg); in ssip_xmit()
640 struct hsi_client *cl = msg->cl; in ssip_rx_data_complete() local
641 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_data_complete()
645 dev_err(&cl->device, "RX data error\n"); in ssip_rx_data_complete()
647 ssip_error(cl); in ssip_rx_data_complete()
656 static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd) in ssip_rx_bootinforeq() argument
658 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_bootinforeq()
667 dev_err(&cl->device, "Boot info req on active state\n"); in ssip_rx_bootinforeq()
668 ssip_error(cl); in ssip_rx_bootinforeq()
677 ssi_waketest(cl, 1); /* FIXME: To be removed */ in ssip_rx_bootinforeq()
683 dev_dbg(&cl->device, "Send BOOTINFO_RESP\n"); in ssip_rx_bootinforeq()
685 dev_warn(&cl->device, "boot info req verid mismatch\n"); in ssip_rx_bootinforeq()
689 hsi_async_write(cl, msg); in ssip_rx_bootinforeq()
692 dev_dbg(&cl->device, "Wrong state M(%d)\n", ssi->main_state); in ssip_rx_bootinforeq()
697 static void ssip_rx_bootinforesp(struct hsi_client *cl, u32 cmd) in ssip_rx_bootinforesp() argument
699 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_bootinforesp()
702 dev_warn(&cl->device, "boot info resp verid mismatch\n"); in ssip_rx_bootinforesp()
709 dev_dbg(&cl->device, "boot info resp ignored M(%d)\n", in ssip_rx_bootinforesp()
714 static void ssip_rx_waketest(struct hsi_client *cl, u32 cmd) in ssip_rx_waketest() argument
716 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_waketest()
721 dev_dbg(&cl->device, "wake lines test ignored M(%d)\n", in ssip_rx_waketest()
729 ssi_waketest(cl, 0); /* FIXME: To be removed */ in ssip_rx_waketest()
736 dev_notice(&cl->device, "WAKELINES TEST %s\n", in ssip_rx_waketest()
739 ssip_error(cl); in ssip_rx_waketest()
742 dev_dbg(&cl->device, "CMT is ONLINE\n"); in ssip_rx_waketest()
747 static void ssip_rx_ready(struct hsi_client *cl) in ssip_rx_ready() argument
749 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_ready()
753 dev_dbg(&cl->device, "READY on wrong state: S(%d) M(%d)\n", in ssip_rx_ready()
759 dev_dbg(&cl->device, "Ignore spurious READY command\n"); in ssip_rx_ready()
765 ssip_xmit(cl); in ssip_rx_ready()
768 static void ssip_rx_strans(struct hsi_client *cl, u32 cmd) in ssip_rx_strans() argument
770 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_rx_strans()
775 dev_dbg(&cl->device, "RX strans: %d frames\n", len); in ssip_rx_strans()
778 dev_err(&cl->device, "START TRANS wrong state: S(%d) M(%d)\n", in ssip_rx_strans()
785 dev_err(&cl->device, "START TRANS id %d expected %d\n", in ssip_rx_strans()
794 dev_err(&cl->device, "No memory for rx skb\n"); in ssip_rx_strans()
800 dev_err(&cl->device, "No memory for RX data msg\n"); in ssip_rx_strans()
804 hsi_async_read(cl, msg); in ssip_rx_strans()
810 ssip_error(cl); in ssip_rx_strans()
815 struct hsi_client *cl = msg->cl; in ssip_rxcmd_complete() local
820 dev_err(&cl->device, "RX error detected\n"); in ssip_rxcmd_complete()
822 ssip_error(cl); in ssip_rxcmd_complete()
825 hsi_async_read(cl, msg); in ssip_rxcmd_complete()
826 dev_dbg(&cl->device, "RX cmd: 0x%08x\n", cmd); in ssip_rxcmd_complete()
832 ssip_rx_bootinforeq(cl, cmd); in ssip_rxcmd_complete()
835 ssip_rx_bootinforesp(cl, cmd); in ssip_rxcmd_complete()
838 ssip_rx_waketest(cl, cmd); in ssip_rxcmd_complete()
841 ssip_rx_strans(cl, cmd); in ssip_rxcmd_complete()
844 ssip_rx_ready(cl); in ssip_rxcmd_complete()
847 dev_warn(&cl->device, "command 0x%08x not supported\n", cmd); in ssip_rxcmd_complete()
854 struct hsi_client *cl = msg->cl; in ssip_swbreak_complete() local
855 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_swbreak_complete()
864 hsi_stop_tx(cl); in ssip_swbreak_complete()
869 ssip_xmit(cl); in ssip_swbreak_complete()
876 struct hsi_client *cl = msg->cl; in ssip_tx_data_complete() local
877 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_tx_data_complete()
881 dev_err(&cl->device, "TX data error\n"); in ssip_tx_data_complete()
882 ssip_error(cl); in ssip_tx_data_complete()
892 dev_dbg(&cl->device, "Send SWBREAK\n"); in ssip_tx_data_complete()
893 hsi_async_write(cl, cmsg); in ssip_tx_data_complete()
896 ssip_xmit(cl); in ssip_tx_data_complete()
902 static void ssip_port_event(struct hsi_client *cl, unsigned long event) in ssip_port_event() argument
906 ssip_start_rx(cl); in ssip_port_event()
909 ssip_stop_rx(cl); in ssip_port_event()
918 struct hsi_client *cl = to_hsi_client(dev->dev.parent); in ssip_pn_open() local
919 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_pn_open()
922 err = hsi_claim_port(cl, 1); in ssip_pn_open()
924 dev_err(&cl->device, "SSI port already claimed\n"); in ssip_pn_open()
927 err = hsi_register_port_event(cl, ssip_port_event); in ssip_pn_open()
929 dev_err(&cl->device, "Register HSI port event failed (%d)\n", in ssip_pn_open()
931 hsi_release_port(cl); in ssip_pn_open()
934 dev_dbg(&cl->device, "Configuring SSI port\n"); in ssip_pn_open()
935 hsi_setup(cl); in ssip_pn_open()
938 ssi_waketest(cl, 1); /* FIXME: To be removed */ in ssip_pn_open()
944 ssip_send_bootinfo_req_cmd(cl); in ssip_pn_open()
951 struct hsi_client *cl = to_hsi_client(dev->dev.parent); in ssip_pn_stop() local
953 ssip_reset(cl); in ssip_pn_stop()
954 hsi_unregister_port_event(cl); in ssip_pn_stop()
955 hsi_release_port(cl); in ssip_pn_stop()
964 struct hsi_client *cl = ssi->cl; in ssip_xmit_work() local
966 ssip_xmit(cl); in ssip_xmit_work()
971 struct hsi_client *cl = to_hsi_client(dev->dev.parent); in ssip_pn_xmit() local
972 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssip_pn_xmit()
994 dev_dbg(&cl->device, "Dropping tx data: No memory\n"); in ssip_pn_xmit()
1002 dev_dbg(&cl->device, "Dropping tx data: CMT is OFFLINE\n"); in ssip_pn_xmit()
1008 dev_info(&cl->device, "TX queue full %d\n", ssi->txqueue_len); in ssip_pn_xmit()
1014 dev_dbg(&cl->device, "Start TX qlen %d\n", ssi->txqueue_len); in ssip_pn_xmit()
1015 hsi_start_tx(cl); in ssip_pn_xmit()
1018 dev_dbg(&cl->device, "Start TX on SEND READY qlen %d\n", in ssip_pn_xmit()
1043 dev_err(&ssi->cl->device, "CMT reset detected!\n"); in ssip_reset_event()
1044 ssip_error(ssi->cl); in ssip_reset_event()
1075 struct hsi_client *cl = to_hsi_client(dev); in ssi_protocol_probe() local
1090 hsi_client_set_drvdata(cl, ssi); in ssi_protocol_probe()
1091 ssi->cl = cl; in ssi_protocol_probe()
1094 ssi->channel_id_cmd = hsi_get_channel_id_by_name(cl, "mcsaab-control"); in ssi_protocol_probe()
1101 ssi->channel_id_data = hsi_get_channel_id_by_name(cl, "mcsaab-data"); in ssi_protocol_probe()
1151 struct hsi_client *cl = to_hsi_client(dev); in ssi_protocol_remove() local
1152 struct ssi_protocol *ssi = hsi_client_drvdata(cl); in ssi_protocol_remove()
1157 hsi_client_set_drvdata(cl, NULL); in ssi_protocol_remove()