ssi 48 arch/s390/include/asm/scsw.h __u32 ssi : 1; ssi 239 drivers/hsi/clients/cmt_speech.c static struct hsi_msg *cs_claim_cmd(struct cs_hsi_iface* ssi) ssi 243 drivers/hsi/clients/cmt_speech.c BUG_ON(list_empty(&ssi->cmdqueue)); ssi 245 drivers/hsi/clients/cmt_speech.c msg = list_first_entry(&ssi->cmdqueue, struct hsi_msg, link); ssi 252 drivers/hsi/clients/cmt_speech.c static void cs_free_cmds(struct cs_hsi_iface *ssi) ssi 256 drivers/hsi/clients/cmt_speech.c list_for_each_entry_safe(msg, tmp, &ssi->cmdqueue, link) { ssi 201 drivers/hsi/clients/ssi_protocol.c static struct hsi_msg *ssip_alloc_data(struct ssi_protocol *ssi, ssi 211 drivers/hsi/clients/ssi_protocol.c msg->channel = ssi->channel_id_data; ssi 219 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(msg->cl); ssi 222 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 223 drivers/hsi/clients/ssi_protocol.c list_add_tail(&msg->link, &ssi->cmdqueue); ssi 224 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 227 drivers/hsi/clients/ssi_protocol.c static struct hsi_msg *ssip_claim_cmd(struct ssi_protocol *ssi) ssi 231 drivers/hsi/clients/ssi_protocol.c BUG_ON(list_empty(&ssi->cmdqueue)); ssi 233 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 234 drivers/hsi/clients/ssi_protocol.c msg = list_first_entry(&ssi->cmdqueue, struct hsi_msg, link); ssi 236 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 242 drivers/hsi/clients/ssi_protocol.c static void ssip_free_cmds(struct ssi_protocol *ssi) ssi 246 drivers/hsi/clients/ssi_protocol.c list_for_each_entry_safe(msg, tmp, &ssi->cmdqueue, link) { ssi 254 drivers/hsi/clients/ssi_protocol.c static int ssip_alloc_cmds(struct ssi_protocol *ssi) ssi 270 drivers/hsi/clients/ssi_protocol.c msg->channel = ssi->channel_id_cmd; ssi 271 drivers/hsi/clients/ssi_protocol.c list_add_tail(&msg->link, &ssi->cmdqueue); ssi 276 drivers/hsi/clients/ssi_protocol.c ssip_free_cmds(ssi); ssi 281 drivers/hsi/clients/ssi_protocol.c static void ssip_set_rxstate(struct ssi_protocol *ssi, unsigned int state) ssi 283 drivers/hsi/clients/ssi_protocol.c ssi->recv_state = state; ssi 286 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->rx_wd); ssi 287 drivers/hsi/clients/ssi_protocol.c if (ssi->send_state == SEND_IDLE) ssi 288 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->keep_alive); ssi 292 drivers/hsi/clients/ssi_protocol.c if (atomic_read(&ssi->tx_usecnt)) ssi 296 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->keep_alive, jiffies + ssi 298 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->rx_wd, jiffies + msecs_to_jiffies(SSIP_WDTOUT)); ssi 305 drivers/hsi/clients/ssi_protocol.c static void ssip_set_txstate(struct ssi_protocol *ssi, unsigned int state) ssi 307 drivers/hsi/clients/ssi_protocol.c ssi->send_state = state; ssi 311 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->tx_wd); ssi 312 drivers/hsi/clients/ssi_protocol.c if (ssi->recv_state == RECV_IDLE) ssi 313 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->keep_alive); ssi 318 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->keep_alive, ssi 320 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->tx_wd, jiffies + msecs_to_jiffies(SSIP_WDTOUT)); ssi 330 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi; ssi 332 drivers/hsi/clients/ssi_protocol.c list_for_each_entry(ssi, &ssip_list, link) ssi 333 drivers/hsi/clients/ssi_protocol.c if (slave->device.parent == ssi->cl->device.parent) { ssi 334 drivers/hsi/clients/ssi_protocol.c master = ssi->cl; ssi 344 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(master); ssi 346 drivers/hsi/clients/ssi_protocol.c dev_dbg(&master->device, "start TX %d\n", atomic_read(&ssi->tx_usecnt)); ssi 347 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 348 drivers/hsi/clients/ssi_protocol.c if (ssi->send_state == SEND_IDLE) { ssi 349 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, WAIT4READY); ssi 352 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 353 drivers/hsi/clients/ssi_protocol.c atomic_inc(&ssi->tx_usecnt); ssi 361 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(master); ssi 363 drivers/hsi/clients/ssi_protocol.c WARN_ON_ONCE(atomic_read(&ssi->tx_usecnt) == 0); ssi 365 drivers/hsi/clients/ssi_protocol.c if (atomic_dec_and_test(&ssi->tx_usecnt)) { ssi 366 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 367 drivers/hsi/clients/ssi_protocol.c if ((ssi->send_state == SEND_READY) || ssi 368 drivers/hsi/clients/ssi_protocol.c (ssi->send_state == WAIT4READY)) { ssi 369 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SEND_IDLE); ssi 372 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 374 drivers/hsi/clients/ssi_protocol.c dev_dbg(&master->device, "stop TX %d\n", atomic_read(&ssi->tx_usecnt)); ssi 382 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(master); ssi 383 drivers/hsi/clients/ssi_protocol.c return netif_running(ssi->netdev); ssi 389 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 393 drivers/hsi/clients/ssi_protocol.c if (netif_running(ssi->netdev)) ssi 394 drivers/hsi/clients/ssi_protocol.c netif_carrier_off(ssi->netdev); ssi 396 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 397 drivers/hsi/clients/ssi_protocol.c if (ssi->send_state != SEND_IDLE) ssi 399 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 400 drivers/hsi/clients/ssi_protocol.c if (test_and_clear_bit(SSIP_WAKETEST_FLAG, &ssi->flags)) ssi 402 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 403 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->rx_wd); ssi 404 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->tx_wd); ssi 405 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->keep_alive); ssi 406 drivers/hsi/clients/ssi_protocol.c ssi->main_state = 0; ssi 407 drivers/hsi/clients/ssi_protocol.c ssi->send_state = 0; ssi 408 drivers/hsi/clients/ssi_protocol.c ssi->recv_state = 0; ssi 409 drivers/hsi/clients/ssi_protocol.c ssi->flags = 0; ssi 410 drivers/hsi/clients/ssi_protocol.c ssi->rxid = 0; ssi 411 drivers/hsi/clients/ssi_protocol.c ssi->txid = 0; ssi 412 drivers/hsi/clients/ssi_protocol.c list_for_each_safe(head, tmp, &ssi->txqueue) { ssi 418 drivers/hsi/clients/ssi_protocol.c ssi->txqueue_len = 0; ssi 419 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 424 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 427 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 428 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "Main state: %d\n", ssi->main_state); ssi 429 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "Recv state: %d\n", ssi->recv_state); ssi 430 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "Send state: %d\n", ssi->send_state); ssi 431 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "CMT %s\n", (ssi->main_state == ACTIVE) ? ssi 434 drivers/hsi/clients/ssi_protocol.c test_bit(SSIP_WAKETEST_FLAG, &ssi->flags)); ssi 435 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "Data RX id: %d\n", ssi->rxid); ssi 436 drivers/hsi/clients/ssi_protocol.c dev_err(&cl->device, "Data TX id: %d\n", ssi->txid); ssi 438 drivers/hsi/clients/ssi_protocol.c list_for_each_entry(msg, &ssi->txqueue, link) ssi 440 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 445 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 450 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 457 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = from_timer(ssi, t, keep_alive); ssi 458 drivers/hsi/clients/ssi_protocol.c struct hsi_client *cl = ssi->cl; ssi 461 drivers/hsi/clients/ssi_protocol.c ssi->main_state, ssi->recv_state, ssi->send_state); ssi 463 drivers/hsi/clients/ssi_protocol.c spin_lock(&ssi->lock); ssi 464 drivers/hsi/clients/ssi_protocol.c if (ssi->recv_state == RECV_IDLE) ssi 465 drivers/hsi/clients/ssi_protocol.c switch (ssi->send_state) { ssi 467 drivers/hsi/clients/ssi_protocol.c if (atomic_read(&ssi->tx_usecnt) == 0) ssi 475 drivers/hsi/clients/ssi_protocol.c spin_unlock(&ssi->lock); ssi 478 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->keep_alive, jiffies + msecs_to_jiffies(SSIP_KATOUT)); ssi 479 drivers/hsi/clients/ssi_protocol.c spin_unlock(&ssi->lock); ssi 484 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = from_timer(ssi, t, rx_wd); ssi 485 drivers/hsi/clients/ssi_protocol.c struct hsi_client *cl = ssi->cl; ssi 493 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = from_timer(ssi, t, tx_wd); ssi 494 drivers/hsi/clients/ssi_protocol.c struct hsi_client *cl = ssi->cl; ssi 502 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 506 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 511 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 518 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 521 drivers/hsi/clients/ssi_protocol.c dev_dbg(&cl->device, "RX start M(%d) R(%d)\n", ssi->main_state, ssi 522 drivers/hsi/clients/ssi_protocol.c ssi->recv_state); ssi 523 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 528 drivers/hsi/clients/ssi_protocol.c if ((ssi->main_state != ACTIVE) || (ssi->recv_state == RECV_READY)) { ssi 529 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 532 drivers/hsi/clients/ssi_protocol.c ssip_set_rxstate(ssi, RECV_READY); ssi 533 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 535 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 544 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 546 drivers/hsi/clients/ssi_protocol.c dev_dbg(&cl->device, "RX stop M(%d)\n", ssi->main_state); ssi 547 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 548 drivers/hsi/clients/ssi_protocol.c if (likely(ssi->main_state == ACTIVE)) ssi 549 drivers/hsi/clients/ssi_protocol.c ssip_set_rxstate(ssi, RECV_IDLE); ssi 550 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 562 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 567 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 568 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SENDING); ssi 569 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 575 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 579 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 580 drivers/hsi/clients/ssi_protocol.c if (list_empty(&ssi->txqueue)) { ssi 581 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 584 drivers/hsi/clients/ssi_protocol.c dmsg = list_first_entry(&ssi->txqueue, struct hsi_msg, link); ssi 586 drivers/hsi/clients/ssi_protocol.c ssi->txqueue_len--; ssi 587 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 589 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 595 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 597 drivers/hsi/clients/ssi_protocol.c ssi->txid)); ssi 598 drivers/hsi/clients/ssi_protocol.c ssi->txid++; ssi 599 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SENDING); ssi 600 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 643 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 652 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->rx_wd); /* FIXME: Revisit */ ssi 660 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 667 drivers/hsi/clients/ssi_protocol.c switch (ssi->main_state) { ssi 674 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 675 drivers/hsi/clients/ssi_protocol.c ssi->main_state = HANDSHAKE; ssi 676 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 678 drivers/hsi/clients/ssi_protocol.c if (!test_and_set_bit(SSIP_WAKETEST_FLAG, &ssi->flags)) ssi 681 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 683 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->tx_wd, jiffies + msecs_to_jiffies(SSIP_WDTOUT)); ssi 684 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 688 drivers/hsi/clients/ssi_protocol.c msg = ssip_claim_cmd(ssi); ssi 694 drivers/hsi/clients/ssi_protocol.c dev_dbg(&cl->device, "Wrong state M(%d)\n", ssi->main_state); ssi 701 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 706 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 707 drivers/hsi/clients/ssi_protocol.c if (ssi->main_state != ACTIVE) ssi 709 drivers/hsi/clients/ssi_protocol.c mod_timer(&ssi->tx_wd, jiffies + msecs_to_jiffies(SSIP_WDTOUT)); ssi 712 drivers/hsi/clients/ssi_protocol.c ssi->main_state); ssi 713 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 718 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 721 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 722 drivers/hsi/clients/ssi_protocol.c if (ssi->main_state != HANDSHAKE) { ssi 724 drivers/hsi/clients/ssi_protocol.c ssi->main_state); ssi 725 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 728 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 730 drivers/hsi/clients/ssi_protocol.c if (test_and_clear_bit(SSIP_WAKETEST_FLAG, &ssi->flags)) ssi 733 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 734 drivers/hsi/clients/ssi_protocol.c ssi->main_state = ACTIVE; ssi 735 drivers/hsi/clients/ssi_protocol.c del_timer(&ssi->tx_wd); /* Stop boot handshake timer */ ssi 736 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 745 drivers/hsi/clients/ssi_protocol.c netif_wake_queue(ssi->netdev); ssi 746 drivers/hsi/clients/ssi_protocol.c netif_carrier_on(ssi->netdev); ssi 751 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 753 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 754 drivers/hsi/clients/ssi_protocol.c if (unlikely(ssi->main_state != ACTIVE)) { ssi 756 drivers/hsi/clients/ssi_protocol.c ssi->send_state, ssi->main_state); ssi 757 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 760 drivers/hsi/clients/ssi_protocol.c if (ssi->send_state != WAIT4READY) { ssi 762 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 765 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SEND_READY); ssi 766 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 772 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 778 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 779 drivers/hsi/clients/ssi_protocol.c if (unlikely(ssi->main_state != ACTIVE)) { ssi 781 drivers/hsi/clients/ssi_protocol.c ssi->send_state, ssi->main_state); ssi 782 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 785 drivers/hsi/clients/ssi_protocol.c ssip_set_rxstate(ssi, RECEIVING); ssi 786 drivers/hsi/clients/ssi_protocol.c if (unlikely(SSIP_MSG_ID(cmd) != ssi->rxid)) { ssi 788 drivers/hsi/clients/ssi_protocol.c SSIP_MSG_ID(cmd), ssi->rxid); ssi 789 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 792 drivers/hsi/clients/ssi_protocol.c ssi->rxid++; ssi 793 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 794 drivers/hsi/clients/ssi_protocol.c skb = netdev_alloc_skb(ssi->netdev, len * 4); ssi 799 drivers/hsi/clients/ssi_protocol.c skb->dev = ssi->netdev; ssi 801 drivers/hsi/clients/ssi_protocol.c msg = ssip_alloc_data(ssi, skb, GFP_ATOMIC); ssi 858 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 861 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 862 drivers/hsi/clients/ssi_protocol.c if (list_empty(&ssi->txqueue)) { ssi 863 drivers/hsi/clients/ssi_protocol.c if (atomic_read(&ssi->tx_usecnt)) { ssi 864 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SEND_READY); ssi 866 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SEND_IDLE); ssi 869 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 871 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 874 drivers/hsi/clients/ssi_protocol.c netif_wake_queue(ssi->netdev); ssi 880 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 888 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 889 drivers/hsi/clients/ssi_protocol.c if (list_empty(&ssi->txqueue)) { ssi 890 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, SENDING_SWBREAK); ssi 891 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 892 drivers/hsi/clients/ssi_protocol.c cmsg = ssip_claim_cmd(ssi); ssi 898 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 922 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 939 drivers/hsi/clients/ssi_protocol.c if (!test_and_set_bit(SSIP_WAKETEST_FLAG, &ssi->flags)) ssi 942 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 943 drivers/hsi/clients/ssi_protocol.c ssi->main_state = HANDSHAKE; ssi 944 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 964 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = ssi 966 drivers/hsi/clients/ssi_protocol.c struct hsi_client *cl = ssi->cl; ssi 974 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 994 drivers/hsi/clients/ssi_protocol.c msg = ssip_alloc_data(ssi, skb, GFP_ATOMIC); ssi 1001 drivers/hsi/clients/ssi_protocol.c spin_lock_bh(&ssi->lock); ssi 1002 drivers/hsi/clients/ssi_protocol.c if (unlikely(ssi->main_state != ACTIVE)) { ssi 1003 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 1007 drivers/hsi/clients/ssi_protocol.c list_add_tail(&msg->link, &ssi->txqueue); ssi 1008 drivers/hsi/clients/ssi_protocol.c ssi->txqueue_len++; ssi 1009 drivers/hsi/clients/ssi_protocol.c if (dev->tx_queue_len < ssi->txqueue_len) { ssi 1010 drivers/hsi/clients/ssi_protocol.c dev_info(&cl->device, "TX queue full %d\n", ssi->txqueue_len); ssi 1013 drivers/hsi/clients/ssi_protocol.c if (ssi->send_state == SEND_IDLE) { ssi 1014 drivers/hsi/clients/ssi_protocol.c ssip_set_txstate(ssi, WAIT4READY); ssi 1015 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 1016 drivers/hsi/clients/ssi_protocol.c dev_dbg(&cl->device, "Start TX qlen %d\n", ssi->txqueue_len); ssi 1018 drivers/hsi/clients/ssi_protocol.c } else if (ssi->send_state == SEND_READY) { ssi 1021 drivers/hsi/clients/ssi_protocol.c ssi->txqueue_len); ssi 1022 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 1023 drivers/hsi/clients/ssi_protocol.c schedule_work(&ssi->work); ssi 1025 drivers/hsi/clients/ssi_protocol.c spin_unlock_bh(&ssi->lock); ssi 1044 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(master); ssi 1045 drivers/hsi/clients/ssi_protocol.c dev_err(&ssi->cl->device, "CMT reset detected!\n"); ssi 1046 drivers/hsi/clients/ssi_protocol.c ssip_error(ssi->cl); ssi 1076 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi; ssi 1079 drivers/hsi/clients/ssi_protocol.c ssi = kzalloc(sizeof(*ssi), GFP_KERNEL); ssi 1080 drivers/hsi/clients/ssi_protocol.c if (!ssi) ssi 1083 drivers/hsi/clients/ssi_protocol.c spin_lock_init(&ssi->lock); ssi 1084 drivers/hsi/clients/ssi_protocol.c timer_setup(&ssi->rx_wd, ssip_rx_wd, TIMER_DEFERRABLE); ssi 1085 drivers/hsi/clients/ssi_protocol.c timer_setup(&ssi->tx_wd, ssip_tx_wd, TIMER_DEFERRABLE); ssi 1086 drivers/hsi/clients/ssi_protocol.c timer_setup(&ssi->keep_alive, ssip_keep_alive, 0); ssi 1087 drivers/hsi/clients/ssi_protocol.c INIT_LIST_HEAD(&ssi->txqueue); ssi 1088 drivers/hsi/clients/ssi_protocol.c INIT_LIST_HEAD(&ssi->cmdqueue); ssi 1089 drivers/hsi/clients/ssi_protocol.c atomic_set(&ssi->tx_usecnt, 0); ssi 1090 drivers/hsi/clients/ssi_protocol.c hsi_client_set_drvdata(cl, ssi); ssi 1091 drivers/hsi/clients/ssi_protocol.c ssi->cl = cl; ssi 1092 drivers/hsi/clients/ssi_protocol.c INIT_WORK(&ssi->work, ssip_xmit_work); ssi 1094 drivers/hsi/clients/ssi_protocol.c ssi->channel_id_cmd = hsi_get_channel_id_by_name(cl, "mcsaab-control"); ssi 1095 drivers/hsi/clients/ssi_protocol.c if (ssi->channel_id_cmd < 0) { ssi 1096 drivers/hsi/clients/ssi_protocol.c err = ssi->channel_id_cmd; ssi 1101 drivers/hsi/clients/ssi_protocol.c ssi->channel_id_data = hsi_get_channel_id_by_name(cl, "mcsaab-data"); ssi 1102 drivers/hsi/clients/ssi_protocol.c if (ssi->channel_id_data < 0) { ssi 1103 drivers/hsi/clients/ssi_protocol.c err = ssi->channel_id_data; ssi 1108 drivers/hsi/clients/ssi_protocol.c err = ssip_alloc_cmds(ssi); ssi 1114 drivers/hsi/clients/ssi_protocol.c ssi->netdev = alloc_netdev(0, ifname, NET_NAME_UNKNOWN, ssip_pn_setup); ssi 1115 drivers/hsi/clients/ssi_protocol.c if (!ssi->netdev) { ssi 1122 drivers/hsi/clients/ssi_protocol.c ssi->netdev->min_mtu = PHONET_MIN_MTU; ssi 1123 drivers/hsi/clients/ssi_protocol.c ssi->netdev->max_mtu = SSIP_MAX_MTU; ssi 1125 drivers/hsi/clients/ssi_protocol.c SET_NETDEV_DEV(ssi->netdev, dev); ssi 1126 drivers/hsi/clients/ssi_protocol.c netif_carrier_off(ssi->netdev); ssi 1127 drivers/hsi/clients/ssi_protocol.c err = register_netdev(ssi->netdev); ssi 1133 drivers/hsi/clients/ssi_protocol.c list_add(&ssi->link, &ssip_list); ssi 1136 drivers/hsi/clients/ssi_protocol.c ssi->channel_id_cmd, ssi->channel_id_data); ssi 1140 drivers/hsi/clients/ssi_protocol.c free_netdev(ssi->netdev); ssi 1142 drivers/hsi/clients/ssi_protocol.c ssip_free_cmds(ssi); ssi 1144 drivers/hsi/clients/ssi_protocol.c kfree(ssi); ssi 1152 drivers/hsi/clients/ssi_protocol.c struct ssi_protocol *ssi = hsi_client_drvdata(cl); ssi 1154 drivers/hsi/clients/ssi_protocol.c list_del(&ssi->link); ssi 1155 drivers/hsi/clients/ssi_protocol.c unregister_netdev(ssi->netdev); ssi 1156 drivers/hsi/clients/ssi_protocol.c ssip_free_cmds(ssi); ssi 1158 drivers/hsi/clients/ssi_protocol.c kfree(ssi); ssi 159 drivers/hsi/controllers/omap_ssi.h void omap_ssi_port_update_fclk(struct hsi_controller *ssi, ssi 40 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = m->private; ssi 41 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 44 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_get_sync(ssi->device.parent); ssi 48 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(ssi->device.parent); ssi 55 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = m->private; ssi 56 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 61 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_get_sync(ssi->device.parent); ssi 102 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(ssi->device.parent); ssi 110 drivers/hsi/controllers/omap_ssi_core.c static int ssi_debug_add_ctrl(struct hsi_controller *ssi) ssi 112 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 116 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->dir = debugfs_create_dir(dev_name(&ssi->device), NULL); ssi 120 drivers/hsi/controllers/omap_ssi_core.c debugfs_create_file("regs", S_IRUGO, omap_ssi->dir, ssi, ssi 126 drivers/hsi/controllers/omap_ssi_core.c debugfs_create_file("regs", S_IRUGO, dir, ssi, &ssi_gdd_regs_fops); ssi 135 drivers/hsi/controllers/omap_ssi_core.c static void ssi_debug_remove_ctrl(struct hsi_controller *ssi) ssi 137 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 151 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 152 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 156 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_get_sync(ssi->device.parent); ssi 162 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(ssi->device.parent); ssi 167 drivers/hsi/controllers/omap_ssi_core.c static void ssi_gdd_complete(struct hsi_controller *ssi, unsigned int lch) ssi 169 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 192 drivers/hsi/controllers/omap_ssi_core.c dma_unmap_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, dir); ssi 220 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = (struct hsi_controller *)dev; ssi 221 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 226 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_get(ssi->device.parent); ssi 228 drivers/hsi/controllers/omap_ssi_core.c if (!pm_runtime_active(ssi->device.parent)) { ssi 229 drivers/hsi/controllers/omap_ssi_core.c dev_warn(ssi->device.parent, "ssi_gdd_tasklet called without runtime PM!\n"); ssi 230 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(ssi->device.parent); ssi 237 drivers/hsi/controllers/omap_ssi_core.c ssi_gdd_complete(ssi, lch); ssi 242 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(ssi->device.parent); ssi 251 drivers/hsi/controllers/omap_ssi_core.c static irqreturn_t ssi_gdd_isr(int irq, void *ssi) ssi 253 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 261 drivers/hsi/controllers/omap_ssi_core.c static unsigned long ssi_get_clk_rate(struct hsi_controller *ssi) ssi 263 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 273 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = to_hsi_controller(omap_ssi->dev); ssi 280 drivers/hsi/controllers/omap_ssi_core.c dev_dbg(&ssi->device, "pre rate change\n"); ssi 282 drivers/hsi/controllers/omap_ssi_core.c for (i = 0; i < ssi->num_ports; i++) { ssi 298 drivers/hsi/controllers/omap_ssi_core.c dev_dbg(&ssi->device, "abort rate change\n"); ssi 301 drivers/hsi/controllers/omap_ssi_core.c dev_dbg(&ssi->device, "post rate change (%lu -> %lu)\n", ssi 305 drivers/hsi/controllers/omap_ssi_core.c for (i = 0; i < ssi->num_ports; i++) { ssi 311 drivers/hsi/controllers/omap_ssi_core.c omap_ssi_port_update_fclk(ssi, omap_port); ssi 331 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = platform_get_drvdata(pd); ssi 334 drivers/hsi/controllers/omap_ssi_core.c base = devm_ioremap_resource(&ssi->device, mem); ssi 346 drivers/hsi/controllers/omap_ssi_core.c static int ssi_add_controller(struct hsi_controller *ssi, ssi 352 drivers/hsi/controllers/omap_ssi_core.c omap_ssi = devm_kzalloc(&ssi->device, sizeof(*omap_ssi), GFP_KERNEL); ssi 359 drivers/hsi/controllers/omap_ssi_core.c ssi->id = err; ssi 361 drivers/hsi/controllers/omap_ssi_core.c ssi->owner = THIS_MODULE; ssi 362 drivers/hsi/controllers/omap_ssi_core.c ssi->device.parent = &pd->dev; ssi 363 drivers/hsi/controllers/omap_ssi_core.c dev_set_name(&ssi->device, "ssi%d", ssi->id); ssi 364 drivers/hsi/controllers/omap_ssi_core.c hsi_controller_set_drvdata(ssi, omap_ssi); ssi 365 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->dev = &ssi->device; ssi 377 drivers/hsi/controllers/omap_ssi_core.c (unsigned long)ssi); ssi 378 drivers/hsi/controllers/omap_ssi_core.c err = devm_request_irq(&ssi->device, omap_ssi->gdd_irq, ssi_gdd_isr, ssi 379 drivers/hsi/controllers/omap_ssi_core.c 0, "gdd_mpu", ssi); ssi 381 drivers/hsi/controllers/omap_ssi_core.c dev_err(&ssi->device, "Request GDD IRQ %d failed (%d)", ssi 386 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->port = devm_kcalloc(&ssi->device, ssi->num_ports, ssi 393 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->fck = devm_clk_get(&ssi->device, "ssi_ssr_fck"); ssi 410 drivers/hsi/controllers/omap_ssi_core.c err = hsi_register_controller(ssi); ssi 418 drivers/hsi/controllers/omap_ssi_core.c ida_simple_remove(&platform_omap_ssi_ida, ssi->id); ssi 422 drivers/hsi/controllers/omap_ssi_core.c static int ssi_hw_init(struct hsi_controller *ssi) ssi 424 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 427 drivers/hsi/controllers/omap_ssi_core.c err = pm_runtime_get_sync(ssi->device.parent); ssi 429 drivers/hsi/controllers/omap_ssi_core.c dev_err(&ssi->device, "runtime PM failed %d\n", err); ssi 435 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->fck_rate = DIV_ROUND_CLOSEST(ssi_get_clk_rate(ssi), 1000); ssi 436 drivers/hsi/controllers/omap_ssi_core.c dev_dbg(&ssi->device, "SSI fck rate %lu kHz\n", omap_ssi->fck_rate); ssi 440 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put_sync(ssi->device.parent); ssi 445 drivers/hsi/controllers/omap_ssi_core.c static void ssi_remove_controller(struct hsi_controller *ssi) ssi 447 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 448 drivers/hsi/controllers/omap_ssi_core.c int id = ssi->id; ssi 450 drivers/hsi/controllers/omap_ssi_core.c hsi_unregister_controller(ssi); ssi 485 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi; ssi 496 drivers/hsi/controllers/omap_ssi_core.c ssi = hsi_alloc_controller(num_ports, GFP_KERNEL); ssi 497 drivers/hsi/controllers/omap_ssi_core.c if (!ssi) { ssi 502 drivers/hsi/controllers/omap_ssi_core.c platform_set_drvdata(pd, ssi); ssi 504 drivers/hsi/controllers/omap_ssi_core.c err = ssi_add_controller(ssi, pd); ssi 510 drivers/hsi/controllers/omap_ssi_core.c err = ssi_hw_init(ssi); ssi 514 drivers/hsi/controllers/omap_ssi_core.c err = ssi_debug_add_ctrl(ssi); ssi 532 drivers/hsi/controllers/omap_ssi_core.c ssi->id, num_ports); ssi 537 drivers/hsi/controllers/omap_ssi_core.c ssi_remove_controller(ssi); ssi 547 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = platform_get_drvdata(pd); ssi 553 drivers/hsi/controllers/omap_ssi_core.c ssi_debug_remove_ctrl(ssi); ssi 555 drivers/hsi/controllers/omap_ssi_core.c ssi_remove_controller(ssi); ssi 566 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = dev_get_drvdata(dev); ssi 567 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 573 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->get_loss(ssi->device.parent); ssi 580 drivers/hsi/controllers/omap_ssi_core.c struct hsi_controller *ssi = dev_get_drvdata(dev); ssi 581 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 586 drivers/hsi/controllers/omap_ssi_core.c omap_ssi->get_loss(ssi->device.parent))) ssi 51 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 52 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 193 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 194 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 211 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 212 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 231 drivers/hsi/controllers/omap_ssi_port.c err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, ssi 234 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "DMA map SG failed !\n"); ssi 248 drivers/hsi/controllers/omap_ssi_port.c err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, ssi 251 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "DMA map SG failed !\n"); ssi 265 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "lch %d cdsp %08x ccr %04x s_addr %08x d_addr %08x\n", ssi 290 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 291 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 342 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 343 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 418 drivers/hsi/controllers/omap_ssi_port.c static u32 ssi_calculate_div(struct hsi_controller *ssi) ssi 420 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 427 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "TX div %d for fck_rate %lu Khz speed %d Kb/s\n", ssi 458 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 459 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 470 drivers/hsi/controllers/omap_ssi_port.c div = ssi_calculate_div(ssi); ssi 523 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 524 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 590 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 591 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 620 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 621 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 670 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 671 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 727 drivers/hsi/controllers/omap_ssi_port.c static void ssi_cleanup_gdd(struct hsi_controller *ssi, struct hsi_client *cl) ssi 729 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 773 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 778 drivers/hsi/controllers/omap_ssi_port.c ssi_cleanup_gdd(ssi, cl); ssi 808 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 809 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 866 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 867 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 895 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 896 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 960 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 962 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 999 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1001 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1013 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "Wake in high\n"); ssi 1020 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&ssi->device, "Wake in low\n"); ssi 1130 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = dev_get_drvdata(pd->dev.parent); ssi 1131 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1138 drivers/hsi/controllers/omap_ssi_port.c if (!ssi->port || !omap_ssi->port) { ssi 1145 drivers/hsi/controllers/omap_ssi_port.c for (port_id = 0; port_id < ssi->num_ports && omap_ssi->port[port_id]; ssi 1149 drivers/hsi/controllers/omap_ssi_port.c if (port_id >= ssi->num_ports) { ssi 1155 drivers/hsi/controllers/omap_ssi_port.c port = ssi->port[port_id]; ssi 1241 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1242 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1276 drivers/hsi/controllers/omap_ssi_port.c void omap_ssi_port_update_fclk(struct hsi_controller *ssi, ssi 1280 drivers/hsi/controllers/omap_ssi_port.c u32 div = ssi_calculate_div(ssi); ssi 1289 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1290 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1301 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1302 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1341 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1342 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1349 drivers/hsi/controllers/omap_ssi_port.c omap_ssi->get_loss(ssi->device.parent); ssi 1359 drivers/hsi/controllers/omap_ssi_port.c struct hsi_controller *ssi = to_hsi_controller(port->device.parent); ssi 1360 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); ssi 1365 drivers/hsi/controllers/omap_ssi_port.c omap_ssi->get_loss(ssi->device.parent))) ssi 1787 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c int rf_lvl, u8 *ssi) ssi 1795 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c if (!tnr_dmd || !ssi) ssi 1825 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c *ssi = (temp_ssi > 100) ? 100 : (u8)temp_ssi; ssi 1831 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c u8 *ssi) ssi 1836 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c if (!tnr_dmd || !ssi) ssi 1852 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c return dvbt2_calc_ssi(tnr_dmd, rf_lvl, ssi); ssi 1856 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c *tnr_dmd, u8 *ssi) ssi 1861 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c if (!tnr_dmd || !ssi) ssi 1877 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.c return dvbt2_calc_ssi(tnr_dmd, rf_lvl, ssi); ssi 130 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.h u8 *ssi); ssi 133 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt2_mon.h *tnr_dmd, u8 *ssi); ssi 669 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c int rf_lvl, u8 *ssi) ssi 676 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c if (!tnr_dmd || !ssi) ssi 700 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c *ssi = (temp_ssi > 100) ? 100 : (u8)temp_ssi; ssi 706 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c u8 *ssi) ssi 711 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c if (!tnr_dmd || !ssi) ssi 727 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c return dvbt_calc_ssi(tnr_dmd, rf_lvl, ssi); ssi 731 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c u8 *ssi) ssi 736 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c if (!tnr_dmd || !ssi) ssi 752 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.c return dvbt_calc_ssi(tnr_dmd, rf_lvl, ssi); ssi 72 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.h u8 *ssi); ssi 75 drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd_dvbt_mon.h u8 *ssi); ssi 1260 drivers/net/ethernet/chelsio/cxgb4/sge.c const struct skb_shared_info *ssi = skb_shinfo(skb); ssi 1307 drivers/net/ethernet/chelsio/cxgb4/sge.c tnl_lso->IpIdSplit_to_Mss = htons(CPL_TX_TNL_LSO_MSS_V(ssi->gso_size)); ssi 1374 drivers/net/ethernet/chelsio/cxgb4/sge.c const struct skb_shared_info *ssi; ssi 1404 drivers/net/ethernet/chelsio/cxgb4/sge.c ssi = skb_shinfo(skb); ssi 1406 drivers/net/ethernet/chelsio/cxgb4/sge.c if (xfrm_offload(skb) && !ssi->gso_size) ssi 1488 drivers/net/ethernet/chelsio/cxgb4/sge.c if (ssi->gso_size) { ssi 1490 drivers/net/ethernet/chelsio/cxgb4/sge.c bool v6 = (ssi->gso_type & SKB_GSO_TCPV6) != 0; ssi 1526 drivers/net/ethernet/chelsio/cxgb4/sge.c lso->mss = htons(ssi->gso_size); ssi 1558 drivers/net/ethernet/chelsio/cxgb4/sge.c q->tx_cso += ssi->gso_segs; ssi 1708 drivers/net/ethernet/chelsio/cxgb4/sge.c const struct skb_shared_info *ssi; ssi 1812 drivers/net/ethernet/chelsio/cxgb4/sge.c ssi = skb_shinfo(skb); ssi 1813 drivers/net/ethernet/chelsio/cxgb4/sge.c if (ssi->gso_size) { ssi 1815 drivers/net/ethernet/chelsio/cxgb4/sge.c bool v6 = (ssi->gso_type & SKB_GSO_TCPV6) != 0; ssi 1833 drivers/net/ethernet/chelsio/cxgb4/sge.c lso->mss = cpu_to_be16(ssi->gso_size); ssi 1854 drivers/net/ethernet/chelsio/cxgb4/sge.c txq->tx_cso += ssi->gso_segs; ssi 1168 drivers/net/ethernet/chelsio/cxgb4vf/sge.c const struct skb_shared_info *ssi; ssi 1278 drivers/net/ethernet/chelsio/cxgb4vf/sge.c ssi = skb_shinfo(skb); ssi 1279 drivers/net/ethernet/chelsio/cxgb4vf/sge.c if (ssi->gso_size) { ssi 1281 drivers/net/ethernet/chelsio/cxgb4vf/sge.c bool v6 = (ssi->gso_type & SKB_GSO_TCPV6) != 0; ssi 1301 drivers/net/ethernet/chelsio/cxgb4vf/sge.c lso->mss = cpu_to_be16(ssi->gso_size); ssi 1323 drivers/net/ethernet/chelsio/cxgb4vf/sge.c txq->tx_cso += ssi->gso_segs; ssi 1367 drivers/net/ethernet/chelsio/cxgb4vf/sge.c ndesc, credits, txq->q.pidx, skb->len, ssi->nr_frags); ssi 647 drivers/net/wan/lmc/lmc_media.c av = &ictl->cardspec.ssi; ssi 660 drivers/net/wan/lmc/lmc_media.c av = &ctl->cardspec.ssi; ssi 666 drivers/net/wan/lmc/lmc_media.c ictl->cardspec.ssi = *av; ssi 174 drivers/net/wan/lmc/lmc_var.h lmc_av9110_t ssi; ssi 2086 drivers/pinctrl/sh-pfc/pfc-r8a7778.c SH_PFC_FUNCTION(ssi), ssi 4740 drivers/pinctrl/sh-pfc/pfc-r8a7790.c SH_PFC_FUNCTION(ssi), ssi 5416 drivers/pinctrl/sh-pfc/pfc-r8a7791.c SH_PFC_FUNCTION(ssi), ssi 4612 drivers/pinctrl/sh-pfc/pfc-r8a7794.c SH_PFC_FUNCTION(ssi), ssi 4739 drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c SH_PFC_FUNCTION(ssi), ssi 5082 drivers/pinctrl/sh-pfc/pfc-r8a7795.c SH_PFC_FUNCTION(ssi), ssi 5045 drivers/pinctrl/sh-pfc/pfc-r8a7796.c SH_PFC_FUNCTION(ssi), ssi 5292 drivers/pinctrl/sh-pfc/pfc-r8a77965.c SH_PFC_FUNCTION(ssi), ssi 4507 drivers/pinctrl/sh-pfc/pfc-r8a77990.c SH_PFC_FUNCTION(ssi), ssi 2370 drivers/pinctrl/sh-pfc/pfc-r8a77995.c SH_PFC_FUNCTION(ssi), ssi 249 drivers/s390/cio/device_status.c cdev_irb->scsw.cmd.ssi = irb->scsw.cmd.ssi; ssi 3550 drivers/scsi/hpsa.c struct bmic_sense_subsystem_info *ssi; ssi 3552 drivers/scsi/hpsa.c ssi = kzalloc(sizeof(*ssi), GFP_KERNEL); ssi 3553 drivers/scsi/hpsa.c if (!ssi) ssi 3557 drivers/scsi/hpsa.c scsi3addr, 0, ssi, sizeof(*ssi)); ssi 3559 drivers/scsi/hpsa.c sa = get_unaligned_be64(ssi->primary_world_wide_id); ssi 3563 drivers/scsi/hpsa.c kfree(ssi); ssi 898 drivers/target/iscsi/cxgbit/cxgbit_target.c struct skb_shared_info *ssi = skb_shinfo(csk->skb); ssi 899 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_frag_t *dfrag = &ssi->frags[pdu_cb->dfrag_idx]; ssi 1388 drivers/target/iscsi/cxgbit/cxgbit_target.c struct skb_shared_info *ssi = skb_shinfo(skb); ssi 1395 drivers/target/iscsi/cxgbit/cxgbit_target.c ssi->nr_frags); ssi 1404 drivers/target/iscsi/cxgbit/cxgbit_target.c for (i = 0; i < ssi->nr_frags; i++) ssi 1406 drivers/target/iscsi/cxgbit/cxgbit_target.c skb, i, skb_frag_off(&ssi->frags[i]), ssi 1407 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_frag_size(&ssi->frags[i])); ssi 1413 drivers/target/iscsi/cxgbit/cxgbit_target.c struct skb_shared_info *ssi = skb_shinfo(skb); ssi 1417 drivers/target/iscsi/cxgbit/cxgbit_target.c for (i = 0; i < ssi->nr_frags; i++) ssi 1418 drivers/target/iscsi/cxgbit/cxgbit_target.c put_page(skb_frag_page(&ssi->frags[i])); ssi 1419 drivers/target/iscsi/cxgbit/cxgbit_target.c ssi->nr_frags = 0; ssi 1432 drivers/target/iscsi/cxgbit/cxgbit_target.c struct skb_shared_info *ssi = skb_shinfo(skb); ssi 1443 drivers/target/iscsi/cxgbit/cxgbit_target.c memcpy(&hssi->frags[hfrag_idx], &ssi->frags[pdu_cb->hfrag_idx], ssi 1466 drivers/target/iscsi/cxgbit/cxgbit_target.c &ssi->frags[pdu_cb->dfrag_idx + i], ssi 4055 fs/jfs/jfs_dtree.c int ssi, next; /* src slot index */ ssi 4088 fs/jfs/jfs_dtree.c ssi = sstbl[si]; ssi 4092 fs/jfs/jfs_dtree.c if (ssi != xssi + 1) { ssi 4105 fs/jfs/jfs_dtree.c slv->offset = ssi; ssi 4116 fs/jfs/jfs_dtree.c s = &sp->slot[ssi]; ssi 4152 fs/jfs/jfs_dtree.c sfsi = ssi; ssi 4156 fs/jfs/jfs_dtree.c xssi = ssi; ssi 4162 fs/jfs/jfs_dtree.c while ((ssi = next) >= 0) { ssi 4164 fs/jfs/jfs_dtree.c if (ssi != xssi + 1) { ssi 4179 fs/jfs/jfs_dtree.c slv->offset = ssi; ssi 4184 fs/jfs/jfs_dtree.c s = &sp->slot[ssi]; ssi 4194 fs/jfs/jfs_dtree.c xssi = ssi; ssi 4203 fs/jfs/jfs_dtree.c sfsi = ssi; ssi 358 sound/soc/fsl/fsl_ssi.c static bool fsl_ssi_is_ac97(struct fsl_ssi *ssi) ssi 360 sound/soc/fsl/fsl_ssi.c return (ssi->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK) == ssi 364 sound/soc/fsl/fsl_ssi.c static bool fsl_ssi_is_i2s_master(struct fsl_ssi *ssi) ssi 366 sound/soc/fsl/fsl_ssi.c return (ssi->dai_fmt & SND_SOC_DAIFMT_MASTER_MASK) == ssi 370 sound/soc/fsl/fsl_ssi.c static bool fsl_ssi_is_i2s_cbm_cfs(struct fsl_ssi *ssi) ssi 372 sound/soc/fsl/fsl_ssi.c return (ssi->dai_fmt & SND_SOC_DAIFMT_MASTER_MASK) == ssi 381 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = dev_id; ssi 382 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 387 sound/soc/fsl/fsl_ssi.c sisr2 = sisr & ssi->soc->sisr_write_mask; ssi 392 sound/soc/fsl/fsl_ssi.c fsl_ssi_dbg_isr(&ssi->dbg_stats, sisr); ssi 405 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_config_enable(struct fsl_ssi *ssi, bool tx) ssi 407 sound/soc/fsl/fsl_ssi.c struct fsl_ssi_regvals *vals = ssi->regvals; ssi 412 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SOR, ssi 420 sound/soc/fsl/fsl_ssi.c if (ssi->soc->offline_config && ssi->streams) ssi 423 sound/soc/fsl/fsl_ssi.c if (ssi->soc->offline_config) { ssi 439 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SRCR, srcr, srcr); ssi 440 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_STCR, stcr, stcr); ssi 441 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SIER, sier, sier); ssi 450 sound/soc/fsl/fsl_ssi.c if (ssi->use_dma && tx) { ssi 455 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, ssi 460 sound/soc/fsl/fsl_ssi.c regmap_read(ssi->regs, REG_SSI_SFCSR, &sfcsr); ssi 467 sound/soc/fsl/fsl_ssi.c dev_warn(ssi->dev, "Timeout waiting TX FIFO filling\n"); ssi 470 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, ssi 474 sound/soc/fsl/fsl_ssi.c ssi->streams |= BIT(dir); ssi 505 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_config_disable(struct fsl_ssi *ssi, bool tx) ssi 514 sound/soc/fsl/fsl_ssi.c aactive = ssi->streams & BIT(adir); ssi 516 sound/soc/fsl/fsl_ssi.c vals = &ssi->regvals[dir]; ssi 519 sound/soc/fsl/fsl_ssi.c avals = &ssi->regvals[adir]; ssi 528 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, scr, 0); ssi 531 sound/soc/fsl/fsl_ssi.c ssi->streams &= ~BIT(dir); ssi 537 sound/soc/fsl/fsl_ssi.c if (ssi->soc->offline_config && aactive) ssi 540 sound/soc/fsl/fsl_ssi.c if (ssi->soc->offline_config) { ssi 556 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SRCR, srcr, 0); ssi 557 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_STCR, stcr, 0); ssi 558 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SIER, sier, 0); ssi 562 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SOR, ssi 566 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_tx_ac97_saccst_setup(struct fsl_ssi *ssi) ssi 568 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 571 sound/soc/fsl/fsl_ssi.c if (!ssi->soc->imx21regs) { ssi 582 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_setup_regvals(struct fsl_ssi *ssi) ssi 584 sound/soc/fsl/fsl_ssi.c struct fsl_ssi_regvals *vals = ssi->regvals; ssi 594 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) ssi 597 sound/soc/fsl/fsl_ssi.c if (ssi->use_dual_fifo) { ssi 602 sound/soc/fsl/fsl_ssi.c if (ssi->use_dma) { ssi 611 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_setup_ac97(struct fsl_ssi *ssi) ssi 613 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 634 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(rtd->cpu_dai); ssi 637 sound/soc/fsl/fsl_ssi.c ret = clk_prepare_enable(ssi->clk); ssi 647 sound/soc/fsl/fsl_ssi.c if (ssi->use_dual_fifo) ssi 658 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(rtd->cpu_dai); ssi 660 sound/soc/fsl/fsl_ssi.c clk_disable_unprepare(ssi->clk); ssi 677 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 678 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 689 sound/soc/fsl/fsl_ssi.c if (ssi->slots) ssi 690 sound/soc/fsl/fsl_ssi.c slots = ssi->slots; ssi 692 sound/soc/fsl/fsl_ssi.c if (ssi->slot_width && slots != 2) ssi 693 sound/soc/fsl/fsl_ssi.c slot_width = ssi->slot_width; ssi 699 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->baudclk)) ssi 706 sound/soc/fsl/fsl_ssi.c if (freq * 5 > clk_get_rate(ssi->clk)) { ssi 711 sound/soc/fsl/fsl_ssi.c baudclk_is_used = ssi->baudclk_streams & ~(BIT(substream->stream)); ssi 723 sound/soc/fsl/fsl_ssi.c clkrate = clk_get_rate(ssi->baudclk); ssi 725 sound/soc/fsl/fsl_ssi.c clkrate = clk_round_rate(ssi->baudclk, tmprate); ssi 765 sound/soc/fsl/fsl_ssi.c tx2 = tx || ssi->synchronous; ssi 769 sound/soc/fsl/fsl_ssi.c ret = clk_set_rate(ssi->baudclk, baudrate); ssi 795 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 796 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 802 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_i2s_master(ssi)) { ssi 808 sound/soc/fsl/fsl_ssi.c if (!(ssi->baudclk_streams & BIT(substream->stream))) { ssi 809 sound/soc/fsl/fsl_ssi.c ret = clk_prepare_enable(ssi->baudclk); ssi 813 sound/soc/fsl/fsl_ssi.c ssi->baudclk_streams |= BIT(substream->stream); ssi 823 sound/soc/fsl/fsl_ssi.c if (ssi->streams && ssi->synchronous) ssi 826 sound/soc/fsl/fsl_ssi.c if (!fsl_ssi_is_ac97(ssi)) { ssi 832 sound/soc/fsl/fsl_ssi.c u8 i2s_net = ssi->i2s_net; ssi 835 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_i2s_cbm_cfs(ssi) && sample_size == 16) ssi 847 sound/soc/fsl/fsl_ssi.c tx2 = tx || ssi->synchronous; ssi 857 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(rtd->cpu_dai); ssi 859 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_i2s_master(ssi) && ssi 860 sound/soc/fsl/fsl_ssi.c ssi->baudclk_streams & BIT(substream->stream)) { ssi 861 sound/soc/fsl/fsl_ssi.c clk_disable_unprepare(ssi->baudclk); ssi 862 sound/soc/fsl/fsl_ssi.c ssi->baudclk_streams &= ~BIT(substream->stream); ssi 868 sound/soc/fsl/fsl_ssi.c static int _fsl_ssi_set_dai_fmt(struct fsl_ssi *ssi, unsigned int fmt) ssi 872 sound/soc/fsl/fsl_ssi.c ssi->dai_fmt = fmt; ssi 881 sound/soc/fsl/fsl_ssi.c ssi->i2s_net = SSI_SCR_NET; ssi 886 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->baudclk)) { ssi 887 sound/soc/fsl/fsl_ssi.c dev_err(ssi->dev, ssi 893 sound/soc/fsl/fsl_ssi.c ssi->i2s_net |= SSI_SCR_I2S_MODE_MASTER; ssi 896 sound/soc/fsl/fsl_ssi.c ssi->i2s_net |= SSI_SCR_I2S_MODE_SLAVE; ssi 902 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_STCCR, ssi 904 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SRCCR, ssi 930 sound/soc/fsl/fsl_ssi.c scr |= ssi->i2s_net; ssi 976 sound/soc/fsl/fsl_ssi.c if (ssi->synchronous || fsl_ssi_is_ac97(ssi)) { ssi 984 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_STCR, mask, stcr); ssi 985 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SRCR, mask, srcr); ssi 989 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, mask, scr); ssi 999 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 1002 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) ssi 1005 sound/soc/fsl/fsl_ssi.c return _fsl_ssi_set_dai_fmt(ssi, fmt); ssi 1014 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 1015 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 1025 sound/soc/fsl/fsl_ssi.c if (ssi->i2s_net && slots < 2) { ssi 1046 sound/soc/fsl/fsl_ssi.c ssi->slot_width = slot_width; ssi 1047 sound/soc/fsl/fsl_ssi.c ssi->slots = slots; ssi 1062 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(rtd->cpu_dai); ssi 1076 sound/soc/fsl/fsl_ssi.c if (tx && fsl_ssi_is_ac97(ssi)) ssi 1077 sound/soc/fsl/fsl_ssi.c fsl_ssi_tx_ac97_saccst_setup(ssi); ssi 1078 sound/soc/fsl/fsl_ssi.c fsl_ssi_config_enable(ssi, tx); ssi 1084 sound/soc/fsl/fsl_ssi.c fsl_ssi_config_disable(ssi, tx); ssi 1096 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 1098 sound/soc/fsl/fsl_ssi.c if (ssi->soc->imx && ssi->use_dma) ssi 1099 sound/soc/fsl/fsl_ssi.c snd_soc_dai_init_dma_data(dai, &ssi->dma_params_tx, ssi 1100 sound/soc/fsl/fsl_ssi.c &ssi->dma_params_rx); ssi 1240 sound/soc/fsl/fsl_ssi.c static int fsl_ssi_hw_init(struct fsl_ssi *ssi) ssi 1242 sound/soc/fsl/fsl_ssi.c u32 wm = ssi->fifo_watermark; ssi 1245 sound/soc/fsl/fsl_ssi.c fsl_ssi_setup_regvals(ssi); ssi 1248 sound/soc/fsl/fsl_ssi.c regmap_write(ssi->regs, REG_SSI_SFCSR, ssi 1253 sound/soc/fsl/fsl_ssi.c if (ssi->use_dual_fifo) ssi 1254 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, ssi 1258 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) { ssi 1259 sound/soc/fsl/fsl_ssi.c _fsl_ssi_set_dai_fmt(ssi, ssi->dai_fmt); ssi 1260 sound/soc/fsl/fsl_ssi.c fsl_ssi_setup_ac97(ssi); ssi 1269 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_hw_clean(struct fsl_ssi *ssi) ssi 1272 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) { ssi 1274 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, ssi 1277 sound/soc/fsl/fsl_ssi.c regmap_write(ssi->regs, REG_SSI_SACNT, 0); ssi 1279 sound/soc/fsl/fsl_ssi.c regmap_write(ssi->regs, REG_SSI_SOR, 0); ssi 1281 sound/soc/fsl/fsl_ssi.c regmap_update_bits(ssi->regs, REG_SSI_SCR, SSI_SCR_SSIEN, 0); ssi 1296 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi, void __iomem *iomem) ssi 1302 sound/soc/fsl/fsl_ssi.c if (ssi->has_ipg_clk_name) ssi 1303 sound/soc/fsl/fsl_ssi.c ssi->clk = devm_clk_get(dev, "ipg"); ssi 1305 sound/soc/fsl/fsl_ssi.c ssi->clk = devm_clk_get(dev, NULL); ssi 1306 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->clk)) { ssi 1307 sound/soc/fsl/fsl_ssi.c ret = PTR_ERR(ssi->clk); ssi 1313 sound/soc/fsl/fsl_ssi.c if (!ssi->has_ipg_clk_name) { ssi 1314 sound/soc/fsl/fsl_ssi.c ret = clk_prepare_enable(ssi->clk); ssi 1322 sound/soc/fsl/fsl_ssi.c ssi->baudclk = devm_clk_get(dev, "baud"); ssi 1323 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->baudclk)) ssi 1325 sound/soc/fsl/fsl_ssi.c PTR_ERR(ssi->baudclk)); ssi 1327 sound/soc/fsl/fsl_ssi.c ssi->dma_params_tx.maxburst = ssi->dma_maxburst; ssi 1328 sound/soc/fsl/fsl_ssi.c ssi->dma_params_rx.maxburst = ssi->dma_maxburst; ssi 1329 sound/soc/fsl/fsl_ssi.c ssi->dma_params_tx.addr = ssi->ssi_phys + REG_SSI_STX0; ssi 1330 sound/soc/fsl/fsl_ssi.c ssi->dma_params_rx.addr = ssi->ssi_phys + REG_SSI_SRX0; ssi 1333 sound/soc/fsl/fsl_ssi.c if (ssi->use_dual_fifo) { ssi 1334 sound/soc/fsl/fsl_ssi.c ssi->dma_params_tx.maxburst &= ~0x1; ssi 1335 sound/soc/fsl/fsl_ssi.c ssi->dma_params_rx.maxburst &= ~0x1; ssi 1338 sound/soc/fsl/fsl_ssi.c if (!ssi->use_dma) { ssi 1343 sound/soc/fsl/fsl_ssi.c ssi->fiq_params.irq = ssi->irq; ssi 1344 sound/soc/fsl/fsl_ssi.c ssi->fiq_params.base = iomem; ssi 1345 sound/soc/fsl/fsl_ssi.c ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx; ssi 1346 sound/soc/fsl/fsl_ssi.c ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx; ssi 1348 sound/soc/fsl/fsl_ssi.c ret = imx_pcm_fiq_init(pdev, &ssi->fiq_params); ssi 1360 sound/soc/fsl/fsl_ssi.c if (!ssi->has_ipg_clk_name) ssi 1361 sound/soc/fsl/fsl_ssi.c clk_disable_unprepare(ssi->clk); ssi 1366 sound/soc/fsl/fsl_ssi.c static void fsl_ssi_imx_clean(struct platform_device *pdev, struct fsl_ssi *ssi) ssi 1368 sound/soc/fsl/fsl_ssi.c if (!ssi->use_dma) ssi 1370 sound/soc/fsl/fsl_ssi.c if (!ssi->has_ipg_clk_name) ssi 1371 sound/soc/fsl/fsl_ssi.c clk_disable_unprepare(ssi->clk); ssi 1374 sound/soc/fsl/fsl_ssi.c static int fsl_ssi_probe_from_dt(struct fsl_ssi *ssi) ssi 1376 sound/soc/fsl/fsl_ssi.c struct device *dev = ssi->dev; ssi 1388 sound/soc/fsl/fsl_ssi.c ssi->soc = of_id->data; ssi 1392 sound/soc/fsl/fsl_ssi.c ssi->has_ipg_clk_name = ret >= 0; ssi 1397 sound/soc/fsl/fsl_ssi.c ssi->dai_fmt = FSLSSI_AC97_DAIFMT; ssi 1399 sound/soc/fsl/fsl_ssi.c ret = of_property_read_u32(np, "cell-index", &ssi->card_idx); ssi 1404 sound/soc/fsl/fsl_ssi.c strcpy(ssi->card_name, "ac97-codec"); ssi 1415 sound/soc/fsl/fsl_ssi.c ssi->synchronous = true; ssi 1419 sound/soc/fsl/fsl_ssi.c ssi->use_dma = !of_property_read_bool(np, "fsl,fiq-stream-filter"); ssi 1424 sound/soc/fsl/fsl_ssi.c ssi->fifo_depth = be32_to_cpup(iprop); ssi 1426 sound/soc/fsl/fsl_ssi.c ssi->fifo_depth = 8; ssi 1430 sound/soc/fsl/fsl_ssi.c if (ssi->use_dma && !ret && dmas[2] == IMX_DMATYPE_SSI_DUAL) ssi 1431 sound/soc/fsl/fsl_ssi.c ssi->use_dual_fifo = true; ssi 1441 sound/soc/fsl/fsl_ssi.c if (!ssi->card_name[0] && of_get_property(np, "codec-handle", NULL)) { ssi 1450 sound/soc/fsl/fsl_ssi.c snprintf(ssi->card_name, sizeof(ssi->card_name), ssi 1452 sound/soc/fsl/fsl_ssi.c make_lowercase(ssi->card_name); ssi 1453 sound/soc/fsl/fsl_ssi.c ssi->card_idx = 0; ssi 1463 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi; ssi 1468 sound/soc/fsl/fsl_ssi.c ssi = devm_kzalloc(dev, sizeof(*ssi), GFP_KERNEL); ssi 1469 sound/soc/fsl/fsl_ssi.c if (!ssi) ssi 1472 sound/soc/fsl/fsl_ssi.c ssi->dev = dev; ssi 1475 sound/soc/fsl/fsl_ssi.c ret = fsl_ssi_probe_from_dt(ssi); ssi 1479 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) { ssi 1480 sound/soc/fsl/fsl_ssi.c memcpy(&ssi->cpu_dai_drv, &fsl_ssi_ac97_dai, ssi 1482 sound/soc/fsl/fsl_ssi.c fsl_ac97_data = ssi; ssi 1484 sound/soc/fsl/fsl_ssi.c memcpy(&ssi->cpu_dai_drv, &fsl_ssi_dai_template, ssi 1487 sound/soc/fsl/fsl_ssi.c ssi->cpu_dai_drv.name = dev_name(dev); ssi 1493 sound/soc/fsl/fsl_ssi.c ssi->ssi_phys = res->start; ssi 1495 sound/soc/fsl/fsl_ssi.c if (ssi->soc->imx21regs) { ssi 1502 sound/soc/fsl/fsl_ssi.c if (ssi->has_ipg_clk_name) ssi 1503 sound/soc/fsl/fsl_ssi.c ssi->regs = devm_regmap_init_mmio_clk(dev, "ipg", iomem, ssi 1506 sound/soc/fsl/fsl_ssi.c ssi->regs = devm_regmap_init_mmio(dev, iomem, ®config); ssi 1507 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->regs)) { ssi 1509 sound/soc/fsl/fsl_ssi.c return PTR_ERR(ssi->regs); ssi 1512 sound/soc/fsl/fsl_ssi.c ssi->irq = platform_get_irq(pdev, 0); ssi 1513 sound/soc/fsl/fsl_ssi.c if (ssi->irq < 0) ssi 1514 sound/soc/fsl/fsl_ssi.c return ssi->irq; ssi 1517 sound/soc/fsl/fsl_ssi.c if (ssi->synchronous && !fsl_ssi_is_ac97(ssi)) { ssi 1518 sound/soc/fsl/fsl_ssi.c ssi->cpu_dai_drv.symmetric_rates = 1; ssi 1519 sound/soc/fsl/fsl_ssi.c ssi->cpu_dai_drv.symmetric_channels = 1; ssi 1520 sound/soc/fsl/fsl_ssi.c ssi->cpu_dai_drv.symmetric_samplebits = 1; ssi 1529 sound/soc/fsl/fsl_ssi.c switch (ssi->fifo_depth) { ssi 1539 sound/soc/fsl/fsl_ssi.c ssi->fifo_watermark = 8; ssi 1540 sound/soc/fsl/fsl_ssi.c ssi->dma_maxburst = 8; ssi 1545 sound/soc/fsl/fsl_ssi.c ssi->fifo_watermark = ssi->fifo_depth - 2; ssi 1546 sound/soc/fsl/fsl_ssi.c ssi->dma_maxburst = ssi->fifo_depth - 2; ssi 1550 sound/soc/fsl/fsl_ssi.c dev_set_drvdata(dev, ssi); ssi 1552 sound/soc/fsl/fsl_ssi.c if (ssi->soc->imx) { ssi 1553 sound/soc/fsl/fsl_ssi.c ret = fsl_ssi_imx_probe(pdev, ssi, iomem); ssi 1558 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) { ssi 1559 sound/soc/fsl/fsl_ssi.c mutex_init(&ssi->ac97_reg_lock); ssi 1568 sound/soc/fsl/fsl_ssi.c &ssi->cpu_dai_drv, 1); ssi 1574 sound/soc/fsl/fsl_ssi.c if (ssi->use_dma) { ssi 1575 sound/soc/fsl/fsl_ssi.c ret = devm_request_irq(dev, ssi->irq, fsl_ssi_isr, 0, ssi 1576 sound/soc/fsl/fsl_ssi.c dev_name(dev), ssi); ssi 1578 sound/soc/fsl/fsl_ssi.c dev_err(dev, "failed to claim irq %u\n", ssi->irq); ssi 1583 sound/soc/fsl/fsl_ssi.c fsl_ssi_debugfs_create(&ssi->dbg_stats, dev); ssi 1586 sound/soc/fsl/fsl_ssi.c fsl_ssi_hw_init(ssi); ssi 1589 sound/soc/fsl/fsl_ssi.c if (ssi->card_name[0]) { ssi 1597 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) ssi 1600 sound/soc/fsl/fsl_ssi.c ssi->card_pdev = platform_device_register_data(parent, ssi 1601 sound/soc/fsl/fsl_ssi.c ssi->card_name, ssi->card_idx, NULL, 0); ssi 1602 sound/soc/fsl/fsl_ssi.c if (IS_ERR(ssi->card_pdev)) { ssi 1603 sound/soc/fsl/fsl_ssi.c ret = PTR_ERR(ssi->card_pdev); ssi 1605 sound/soc/fsl/fsl_ssi.c ssi->card_name, ret); ssi 1613 sound/soc/fsl/fsl_ssi.c fsl_ssi_debugfs_remove(&ssi->dbg_stats); ssi 1615 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) ssi 1618 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) ssi 1619 sound/soc/fsl/fsl_ssi.c mutex_destroy(&ssi->ac97_reg_lock); ssi 1621 sound/soc/fsl/fsl_ssi.c if (ssi->soc->imx) ssi 1622 sound/soc/fsl/fsl_ssi.c fsl_ssi_imx_clean(pdev, ssi); ssi 1629 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = dev_get_drvdata(&pdev->dev); ssi 1631 sound/soc/fsl/fsl_ssi.c fsl_ssi_debugfs_remove(&ssi->dbg_stats); ssi 1633 sound/soc/fsl/fsl_ssi.c if (ssi->card_pdev) ssi 1634 sound/soc/fsl/fsl_ssi.c platform_device_unregister(ssi->card_pdev); ssi 1637 sound/soc/fsl/fsl_ssi.c fsl_ssi_hw_clean(ssi); ssi 1639 sound/soc/fsl/fsl_ssi.c if (ssi->soc->imx) ssi 1640 sound/soc/fsl/fsl_ssi.c fsl_ssi_imx_clean(pdev, ssi); ssi 1642 sound/soc/fsl/fsl_ssi.c if (fsl_ssi_is_ac97(ssi)) { ssi 1644 sound/soc/fsl/fsl_ssi.c mutex_destroy(&ssi->ac97_reg_lock); ssi 1653 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = dev_get_drvdata(dev); ssi 1654 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 1656 sound/soc/fsl/fsl_ssi.c regmap_read(regs, REG_SSI_SFCSR, &ssi->regcache_sfcsr); ssi 1657 sound/soc/fsl/fsl_ssi.c regmap_read(regs, REG_SSI_SACNT, &ssi->regcache_sacnt); ssi 1667 sound/soc/fsl/fsl_ssi.c struct fsl_ssi *ssi = dev_get_drvdata(dev); ssi 1668 sound/soc/fsl/fsl_ssi.c struct regmap *regs = ssi->regs; ssi 1675 sound/soc/fsl/fsl_ssi.c ssi->regcache_sfcsr); ssi 1676 sound/soc/fsl/fsl_ssi.c regmap_write(regs, REG_SSI_SACNT, ssi->regcache_sacnt); ssi 57 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); ssi 60 sound/soc/fsl/imx-ssi.c sccr = readl(ssi->base + SSI_STCCR); ssi 63 sound/soc/fsl/imx-ssi.c writel(sccr, ssi->base + SSI_STCCR); ssi 65 sound/soc/fsl/imx-ssi.c sccr = readl(ssi->base + SSI_SRCCR); ssi 68 sound/soc/fsl/imx-ssi.c writel(sccr, ssi->base + SSI_SRCCR); ssi 70 sound/soc/fsl/imx-ssi.c writel(~tx_mask, ssi->base + SSI_STMSK); ssi 71 sound/soc/fsl/imx-ssi.c writel(~rx_mask, ssi->base + SSI_SRMSK); ssi 82 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); ssi 85 sound/soc/fsl/imx-ssi.c scr = readl(ssi->base + SSI_SCR) & ~(SSI_SCR_SYN | SSI_SCR_NET); ssi 94 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_USE_I2S_SLAVE) { ssi 140 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_NET) ssi 142 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_SYN) ssi 145 sound/soc/fsl/imx-ssi.c writel(strcr, ssi->base + SSI_STCR); ssi 146 sound/soc/fsl/imx-ssi.c writel(strcr, ssi->base + SSI_SRCR); ssi 147 sound/soc/fsl/imx-ssi.c writel(scr, ssi->base + SSI_SCR); ssi 159 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); ssi 162 sound/soc/fsl/imx-ssi.c scr = readl(ssi->base + SSI_SCR); ssi 175 sound/soc/fsl/imx-ssi.c writel(scr, ssi->base + SSI_SCR); ssi 187 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); ssi 190 sound/soc/fsl/imx-ssi.c stccr = readl(ssi->base + SSI_STCCR); ssi 191 sound/soc/fsl/imx-ssi.c srccr = readl(ssi->base + SSI_SRCCR); ssi 222 sound/soc/fsl/imx-ssi.c writel(stccr, ssi->base + SSI_STCCR); ssi 223 sound/soc/fsl/imx-ssi.c writel(srccr, ssi->base + SSI_SRCCR); ssi 236 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); ssi 245 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_SYN) ssi 248 sound/soc/fsl/imx-ssi.c sccr = readl(ssi->base + reg) & ~SSI_STCCR_WL_MASK; ssi 263 sound/soc/fsl/imx-ssi.c writel(sccr, ssi->base + reg); ssi 271 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = snd_soc_dai_get_drvdata(dai); ssi 275 sound/soc/fsl/imx-ssi.c scr = readl(ssi->base + SSI_SCR); ssi 276 sound/soc/fsl/imx-ssi.c sier = readl(ssi->base + SSI_SIER); ssi 279 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_DMA) ssi 284 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_DMA) ssi 321 sound/soc/fsl/imx-ssi.c if (!(ssi->flags & IMX_SSI_USE_AC97)) ssi 323 sound/soc/fsl/imx-ssi.c writel(scr, ssi->base + SSI_SCR); ssi 325 sound/soc/fsl/imx-ssi.c writel(sier, ssi->base + SSI_SIER); ssi 341 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = dev_get_drvdata(dai->dev); ssi 344 sound/soc/fsl/imx-ssi.c snd_soc_dai_set_drvdata(dai, ssi); ssi 346 sound/soc/fsl/imx-ssi.c val = SSI_SFCSR_TFWM0(ssi->dma_params_tx.maxburst) | ssi 347 sound/soc/fsl/imx-ssi.c SSI_SFCSR_RFWM0(ssi->dma_params_rx.maxburst); ssi 348 sound/soc/fsl/imx-ssi.c writel(val, ssi->base + SSI_SFCSR); ssi 351 sound/soc/fsl/imx-ssi.c dai->playback_dma_data = &ssi->dma_params_tx; ssi 352 sound/soc/fsl/imx-ssi.c dai->capture_dma_data = &ssi->dma_params_rx; ssi 506 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi; ssi 511 sound/soc/fsl/imx-ssi.c ssi = devm_kzalloc(&pdev->dev, sizeof(*ssi), GFP_KERNEL); ssi 512 sound/soc/fsl/imx-ssi.c if (!ssi) ssi 514 sound/soc/fsl/imx-ssi.c dev_set_drvdata(&pdev->dev, ssi); ssi 517 sound/soc/fsl/imx-ssi.c ssi->ac97_reset = pdata->ac97_reset; ssi 518 sound/soc/fsl/imx-ssi.c ssi->ac97_warm_reset = pdata->ac97_warm_reset; ssi 519 sound/soc/fsl/imx-ssi.c ssi->flags = pdata->flags; ssi 522 sound/soc/fsl/imx-ssi.c ssi->irq = platform_get_irq(pdev, 0); ssi 523 sound/soc/fsl/imx-ssi.c if (ssi->irq < 0) ssi 524 sound/soc/fsl/imx-ssi.c return ssi->irq; ssi 526 sound/soc/fsl/imx-ssi.c ssi->clk = devm_clk_get(&pdev->dev, NULL); ssi 527 sound/soc/fsl/imx-ssi.c if (IS_ERR(ssi->clk)) { ssi 528 sound/soc/fsl/imx-ssi.c ret = PTR_ERR(ssi->clk); ssi 533 sound/soc/fsl/imx-ssi.c ret = clk_prepare_enable(ssi->clk); ssi 538 sound/soc/fsl/imx-ssi.c ssi->base = devm_ioremap_resource(&pdev->dev, res); ssi 539 sound/soc/fsl/imx-ssi.c if (IS_ERR(ssi->base)) { ssi 540 sound/soc/fsl/imx-ssi.c ret = PTR_ERR(ssi->base); ssi 544 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_USE_AC97) { ssi 550 sound/soc/fsl/imx-ssi.c ac97_ssi = ssi; ssi 551 sound/soc/fsl/imx-ssi.c setup_channel_to_ac97(ssi); ssi 556 sound/soc/fsl/imx-ssi.c writel(0x0, ssi->base + SSI_SIER); ssi 558 sound/soc/fsl/imx-ssi.c ssi->dma_params_rx.addr = res->start + SSI_SRX0; ssi 559 sound/soc/fsl/imx-ssi.c ssi->dma_params_tx.addr = res->start + SSI_STX0; ssi 561 sound/soc/fsl/imx-ssi.c ssi->dma_params_tx.maxburst = 6; ssi 562 sound/soc/fsl/imx-ssi.c ssi->dma_params_rx.maxburst = 4; ssi 564 sound/soc/fsl/imx-ssi.c ssi->dma_params_tx.filter_data = &ssi->filter_data_tx; ssi 565 sound/soc/fsl/imx-ssi.c ssi->dma_params_rx.filter_data = &ssi->filter_data_rx; ssi 569 sound/soc/fsl/imx-ssi.c imx_pcm_dma_params_init_data(&ssi->filter_data_tx, res->start, ssi 575 sound/soc/fsl/imx-ssi.c imx_pcm_dma_params_init_data(&ssi->filter_data_rx, res->start, ssi 579 sound/soc/fsl/imx-ssi.c platform_set_drvdata(pdev, ssi); ssi 594 sound/soc/fsl/imx-ssi.c ssi->fiq_params.irq = ssi->irq; ssi 595 sound/soc/fsl/imx-ssi.c ssi->fiq_params.base = ssi->base; ssi 596 sound/soc/fsl/imx-ssi.c ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx; ssi 597 sound/soc/fsl/imx-ssi.c ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx; ssi 599 sound/soc/fsl/imx-ssi.c ssi->fiq_init = imx_pcm_fiq_init(pdev, &ssi->fiq_params); ssi 600 sound/soc/fsl/imx-ssi.c ssi->dma_init = imx_pcm_dma_init(pdev, IMX_SSI_DMABUF_SIZE); ssi 602 sound/soc/fsl/imx-ssi.c if (ssi->fiq_init && ssi->dma_init) { ssi 603 sound/soc/fsl/imx-ssi.c ret = ssi->fiq_init; ssi 612 sound/soc/fsl/imx-ssi.c clk_disable_unprepare(ssi->clk); ssi 621 sound/soc/fsl/imx-ssi.c struct imx_ssi *ssi = platform_get_drvdata(pdev); ssi 623 sound/soc/fsl/imx-ssi.c if (!ssi->fiq_init) ssi 628 sound/soc/fsl/imx-ssi.c if (ssi->flags & IMX_SSI_USE_AC97) ssi 631 sound/soc/fsl/imx-ssi.c clk_disable_unprepare(ssi->clk); ssi 346 sound/soc/sh/rcar/dma.c struct rsnd_mod *ssi = rsnd_io_to_mod_ssi(io); ssi 354 sound/soc/sh/rcar/dma.c if ((mod == ssi) || ssi 559 sound/soc/sh/rcar/dma.c {{{ RDMA_SSI_O_N(ssi, id), 0 }, ssi 560 sound/soc/sh/rcar/dma.c { RDMA_SSIU_O_P(ssi, id, busif), 0 }, ssi 561 sound/soc/sh/rcar/dma.c { RDMA_SSIU_O_P(ssi, id, busif), 0 } }, ssi 563 sound/soc/sh/rcar/dma.c {{ 0, RDMA_SSI_I_N(ssi, id) }, ssi 564 sound/soc/sh/rcar/dma.c { 0, RDMA_SSIU_I_P(ssi, id, busif) }, ssi 565 sound/soc/sh/rcar/dma.c { 0, RDMA_SSIU_I_P(ssi, id, busif) } } ssi 569 sound/soc/sh/rcar/dma.c {{{ RDMA_SSIU_O_N(ssi, id, busif), 0 }, ssi 570 sound/soc/sh/rcar/dma.c { RDMA_SSIU_O_P(ssi, id, busif), 0 }, ssi 571 sound/soc/sh/rcar/dma.c { RDMA_SSIU_O_P(ssi, id, busif), 0 } }, ssi 573 sound/soc/sh/rcar/dma.c {{ 0, RDMA_SSIU_I_N(ssi, id, busif) }, ssi 574 sound/soc/sh/rcar/dma.c { 0, RDMA_SSIU_I_P(ssi, id, busif) }, ssi 575 sound/soc/sh/rcar/dma.c { 0, RDMA_SSIU_I_P(ssi, id, busif) } } }, ssi 626 sound/soc/sh/rcar/dma.c struct rsnd_mod *ssi; ssi 651 sound/soc/sh/rcar/dma.c ssi = ssiu; ssi 656 sound/soc/sh/rcar/dma.c ssi = rsnd_io_to_mod_ssi(io); ssi 659 sound/soc/sh/rcar/dma.c if (!ssi) ssi 683 sound/soc/sh/rcar/dma.c mod_start = (is_play) ? NULL : ssi; ssi 684 sound/soc/sh/rcar/dma.c mod_end = (is_play) ? ssi : NULL; ssi 711 sound/soc/sh/rcar/dma.c if ((this == ssi) == (is_play)) { ssi 638 sound/soc/sh/rcar/rsnd.h void *ssi; ssi 107 sound/soc/sh/rcar/ssi.c ((pos) = ((struct rsnd_ssi *)(priv)->ssi + i)); \ ssi 110 sound/soc/sh/rcar/ssi.c #define rsnd_ssi_get(priv, id) ((struct rsnd_ssi *)(priv->ssi) + id) ssi 113 sound/soc/sh/rcar/ssi.c #define rsnd_ssi_is_parent(ssi, io) ((ssi) == rsnd_io_to_mod_ssip(io)) ssi 125 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 131 sound/soc/sh/rcar/ssi.c if (!(rsnd_flags_has(ssi, RSND_SSI_NO_BUSIF))) ssi 272 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 294 sound/soc/sh/rcar/ssi.c if (ssi->usrcnt > 0) { ssi 295 sound/soc/sh/rcar/ssi.c if (ssi->rate != rate) { ssi 300 sound/soc/sh/rcar/ssi.c if (ssi->chan != chan) { ssi 328 sound/soc/sh/rcar/ssi.c ssi->cr_clk = FORCE | rsnd_rdai_width_to_swl(rdai) | ssi 330 sound/soc/sh/rcar/ssi.c ssi->wsr = CONT; ssi 331 sound/soc/sh/rcar/ssi.c ssi->rate = rate; ssi 332 sound/soc/sh/rcar/ssi.c ssi->chan = chan; ssi 344 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 352 sound/soc/sh/rcar/ssi.c if (ssi->usrcnt > 1) ssi 355 sound/soc/sh/rcar/ssi.c ssi->cr_clk = 0; ssi 356 sound/soc/sh/rcar/ssi.c ssi->rate = 0; ssi 357 sound/soc/sh/rcar/ssi.c ssi->chan = 0; ssi 369 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 370 sound/soc/sh/rcar/ssi.c u32 cr_own = ssi->cr_own; ssi 371 sound/soc/sh/rcar/ssi.c u32 cr_mode = ssi->cr_mode; ssi 372 sound/soc/sh/rcar/ssi.c u32 wsr = ssi->wsr; ssi 400 sound/soc/sh/rcar/ssi.c wsr = ssi->wsr; ssi 451 sound/soc/sh/rcar/ssi.c ssi->cr_own = cr_own; ssi 452 sound/soc/sh/rcar/ssi.c ssi->cr_mode = cr_mode; ssi 453 sound/soc/sh/rcar/ssi.c ssi->wsr = wsr; ssi 458 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 460 sound/soc/sh/rcar/ssi.c rsnd_mod_write(mod, SSIWSR, ssi->wsr); ssi 461 sound/soc/sh/rcar/ssi.c rsnd_mod_write(mod, SSICR, ssi->cr_own | ssi 462 sound/soc/sh/rcar/ssi.c ssi->cr_clk | ssi 463 sound/soc/sh/rcar/ssi.c ssi->cr_mode | ssi 464 sound/soc/sh/rcar/ssi.c ssi->cr_en); ssi 474 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 479 sound/soc/sh/rcar/ssi.c ssi->usrcnt++; ssi 497 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 503 sound/soc/sh/rcar/ssi.c if (!ssi->usrcnt) { ssi 512 sound/soc/sh/rcar/ssi.c ssi->usrcnt--; ssi 514 sound/soc/sh/rcar/ssi.c if (!ssi->usrcnt) { ssi 515 sound/soc/sh/rcar/ssi.c ssi->cr_own = 0; ssi 516 sound/soc/sh/rcar/ssi.c ssi->cr_mode = 0; ssi 517 sound/soc/sh/rcar/ssi.c ssi->wsr = 0; ssi 546 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 565 sound/soc/sh/rcar/ssi.c ssi->cr_en = EN; ssi 567 sound/soc/sh/rcar/ssi.c rsnd_mod_write(mod, SSICR, ssi->cr_own | ssi 568 sound/soc/sh/rcar/ssi.c ssi->cr_clk | ssi 569 sound/soc/sh/rcar/ssi.c ssi->cr_mode | ssi 570 sound/soc/sh/rcar/ssi.c ssi->cr_en); ssi 579 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 588 sound/soc/sh/rcar/ssi.c cr = ssi->cr_own | ssi 589 sound/soc/sh/rcar/ssi.c ssi->cr_clk; ssi 597 sound/soc/sh/rcar/ssi.c rsnd_mod_write(mod, SSICR, cr | ssi->cr_en); ssi 614 sound/soc/sh/rcar/ssi.c ssi->cr_en = 0; ssi 783 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 809 sound/soc/sh/rcar/ssi.c if (!rsnd_flags_has(ssi, RSND_SSI_PROBED)) { ssi 810 sound/soc/sh/rcar/ssi.c ret = request_irq(ssi->irq, ssi 815 sound/soc/sh/rcar/ssi.c rsnd_flags_set(ssi, RSND_SSI_PROBED); ssi 825 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 833 sound/soc/sh/rcar/ssi.c if (rsnd_flags_has(ssi, RSND_SSI_PROBED)) { ssi 834 sound/soc/sh/rcar/ssi.c free_irq(ssi->irq, mod); ssi 836 sound/soc/sh/rcar/ssi.c rsnd_flags_del(ssi, RSND_SSI_PROBED); ssi 849 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 850 sound/soc/sh/rcar/ssi.c u32 *buf = (u32 *)(runtime->dma_area + ssi->byte_pos); ssi 868 sound/soc/sh/rcar/ssi.c byte_pos = ssi->byte_pos + sizeof(*buf); ssi 870 sound/soc/sh/rcar/ssi.c if (byte_pos >= ssi->next_period_byte) { ssi 871 sound/soc/sh/rcar/ssi.c int period_pos = byte_pos / ssi->byte_per_period; ssi 878 sound/soc/sh/rcar/ssi.c ssi->next_period_byte = (period_pos + 1) * ssi->byte_per_period; ssi 883 sound/soc/sh/rcar/ssi.c WRITE_ONCE(ssi->byte_pos, byte_pos); ssi 893 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 896 sound/soc/sh/rcar/ssi.c ssi->byte_pos = 0; ssi 897 sound/soc/sh/rcar/ssi.c ssi->byte_per_period = runtime->period_size * ssi 900 sound/soc/sh/rcar/ssi.c ssi->next_period_byte = ssi->byte_per_period; ssi 910 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); ssi 913 sound/soc/sh/rcar/ssi.c *pointer = bytes_to_frames(runtime, READ_ONCE(ssi->byte_pos)); ssi 1111 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi; ssi 1125 sound/soc/sh/rcar/ssi.c ssi = devm_kcalloc(dev, nr, sizeof(*ssi), GFP_KERNEL); ssi 1126 sound/soc/sh/rcar/ssi.c if (!ssi) { ssi 1131 sound/soc/sh/rcar/ssi.c priv->ssi = ssi; ssi 1139 sound/soc/sh/rcar/ssi.c ssi = rsnd_ssi_get(priv, i); ssi 1152 sound/soc/sh/rcar/ssi.c rsnd_flags_set(ssi, RSND_SSI_CLK_PIN_SHARE); ssi 1155 sound/soc/sh/rcar/ssi.c rsnd_flags_set(ssi, RSND_SSI_NO_BUSIF); ssi 1157 sound/soc/sh/rcar/ssi.c ssi->irq = irq_of_parse_and_map(np, 0); ssi 1158 sound/soc/sh/rcar/ssi.c if (!ssi->irq) { ssi 1169 sound/soc/sh/rcar/ssi.c ret = rsnd_mod_init(priv, rsnd_mod_get(ssi), ops, clk, ssi 1189 sound/soc/sh/rcar/ssi.c struct rsnd_ssi *ssi; ssi 1192 sound/soc/sh/rcar/ssi.c for_each_rsnd_ssi(ssi, priv, i) { ssi 1193 sound/soc/sh/rcar/ssi.c rsnd_mod_quit(rsnd_mod_get(ssi)); ssi 62 sound/soc/sh/ssi.c #define SSIREG(reg) (*(unsigned long *)(ssi->mmio + (reg))) ssi 92 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; ssi 93 sound/soc/sh/ssi.c if (ssi->inuse) { ssi 97 sound/soc/sh/ssi.c ssi->inuse = 1; ssi 104 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; ssi 106 sound/soc/sh/ssi.c ssi->inuse = 0; ssi 112 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; ssi 132 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; ssi 211 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[cpu_dai->id]; ssi 213 sound/soc/sh/ssi.c ssi->sysclk = freq; ssi 224 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; ssi 247 sound/soc/sh/ssi.c struct ssi_priv *ssi = &ssi_cpu_data[dai->id];