omap_port 160 drivers/hsi/controllers/omap_ssi.h struct omap_ssi_port *omap_port); omap_port 150 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 154 drivers/hsi/controllers/omap_ssi_core.c omap_port->wktest = !!enable; omap_port 155 drivers/hsi/controllers/omap_ssi_core.c if (omap_port->wktest) { omap_port 172 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 186 drivers/hsi/controllers/omap_ssi_core.c pm_runtime_put(omap_port->pdev); omap_port 201 drivers/hsi/controllers/omap_ssi_core.c spin_lock(&omap_port->lock); omap_port 203 drivers/hsi/controllers/omap_ssi_core.c spin_unlock(&omap_port->lock); omap_port 205 drivers/hsi/controllers/omap_ssi_core.c list_add_tail(&msg->link, &omap_port->errqueue); omap_port 206 drivers/hsi/controllers/omap_ssi_core.c schedule_delayed_work(&omap_port->errqueue_work, 0); omap_port 209 drivers/hsi/controllers/omap_ssi_core.c spin_lock(&omap_port->lock); omap_port 212 drivers/hsi/controllers/omap_ssi_core.c spin_unlock(&omap_port->lock); omap_port 275 drivers/hsi/controllers/omap_ssi_core.c struct omap_ssi_port *omap_port; omap_port 283 drivers/hsi/controllers/omap_ssi_core.c omap_port = omap_ssi->port[i]; omap_port 285 drivers/hsi/controllers/omap_ssi_core.c if (!omap_port) omap_port 289 drivers/hsi/controllers/omap_ssi_core.c disable_irq(omap_port->wake_irq); omap_port 292 drivers/hsi/controllers/omap_ssi_core.c pinctrl_pm_select_idle_state(omap_port->pdev); omap_port 306 drivers/hsi/controllers/omap_ssi_core.c omap_port = omap_ssi->port[i]; omap_port 308 drivers/hsi/controllers/omap_ssi_core.c if (!omap_port) omap_port 311 drivers/hsi/controllers/omap_ssi_core.c omap_ssi_port_update_fclk(ssi, omap_port); omap_port 314 drivers/hsi/controllers/omap_ssi_core.c pinctrl_pm_select_default_state(omap_port->pdev); omap_port 315 drivers/hsi/controllers/omap_ssi_core.c enable_irq(omap_port->wake_irq); omap_port 35 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 36 drivers/hsi/controllers/omap_ssi_port.c return gpiod_get_value(omap_port->wake_gpio); omap_port 42 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 44 drivers/hsi/controllers/omap_ssi_port.c debugfs_remove_recursive(omap_port->dir); omap_port 50 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 56 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 57 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->wake_irq > 0) omap_port 66 drivers/hsi/controllers/omap_ssi_port.c base = omap_port->sst_base; omap_port 86 drivers/hsi/controllers/omap_ssi_port.c for (ch = 0; ch < omap_port->channels; ch++) { omap_port 91 drivers/hsi/controllers/omap_ssi_port.c base = omap_port->ssr_base; omap_port 113 drivers/hsi/controllers/omap_ssi_port.c for (ch = 0; ch < omap_port->channels; ch++) { omap_port 117 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 127 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 129 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 130 drivers/hsi/controllers/omap_ssi_port.c *val = readl(omap_port->sst_base + SSI_SST_DIVISOR_REG); omap_port 131 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 139 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 144 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 145 drivers/hsi/controllers/omap_ssi_port.c writel(val, omap_port->sst_base + SSI_SST_DIVISOR_REG); omap_port 146 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.divisor = val; omap_port 147 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 154 drivers/hsi/controllers/omap_ssi_port.c static int ssi_debug_add_port(struct omap_ssi_port *omap_port, omap_port 157 drivers/hsi/controllers/omap_ssi_port.c struct hsi_port *port = to_hsi_port(omap_port->dev); omap_port 159 drivers/hsi/controllers/omap_ssi_port.c dir = debugfs_create_dir(dev_name(omap_port->dev), dir); omap_port 162 drivers/hsi/controllers/omap_ssi_port.c omap_port->dir = dir; omap_port 176 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port; omap_port 180 drivers/hsi/controllers/omap_ssi_port.c omap_port = container_of(work, struct omap_ssi_port, errqueue_work.work); omap_port 182 drivers/hsi/controllers/omap_ssi_port.c list_for_each_safe(head, tmp, &omap_port->errqueue) { omap_port 210 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 222 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get(omap_port->pdev); omap_port 224 drivers/hsi/controllers/omap_ssi_port.c if (!pm_runtime_active(omap_port->pdev)) { omap_port 226 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 235 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 244 drivers/hsi/controllers/omap_ssi_port.c s_addr = omap_port->ssr_dma + omap_port 252 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 262 drivers/hsi/controllers/omap_ssi_port.c d_addr = omap_port->sst_dma + omap_port 289 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 294 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get(omap_port->pdev); omap_port 296 drivers/hsi/controllers/omap_ssi_port.c if (!pm_runtime_active(omap_port->pdev)) { omap_port 298 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 305 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get(omap_port->pdev); omap_port 313 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 341 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 347 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 349 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->sst.mode != SSI_MODE_FRAME) { omap_port 353 drivers/hsi/controllers/omap_ssi_port.c writel(1, omap_port->sst_base + SSI_SST_BREAK_REG); omap_port 357 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->ssr.mode != SSI_MODE_FRAME) { omap_port 361 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 367 drivers/hsi/controllers/omap_ssi_port.c list_add_tail(&msg->link, &omap_port->brkqueue); omap_port 368 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 371 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 372 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 380 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 393 drivers/hsi/controllers/omap_ssi_port.c BUG_ON(msg->channel >= omap_port->sst.channels); omap_port 394 drivers/hsi/controllers/omap_ssi_port.c queue = &omap_port->txqueue[msg->channel]; omap_port 396 drivers/hsi/controllers/omap_ssi_port.c BUG_ON(msg->channel >= omap_port->ssr.channels); omap_port 397 drivers/hsi/controllers/omap_ssi_port.c queue = &omap_port->rxqueue[msg->channel]; omap_port 401 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 402 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 409 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 410 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 411 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 457 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 460 drivers/hsi/controllers/omap_ssi_port.c void __iomem *sst = omap_port->sst_base; omap_port 461 drivers/hsi/controllers/omap_ssi_port.c void __iomem *ssr = omap_port->ssr_base; omap_port 466 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 467 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 493 drivers/hsi/controllers/omap_ssi_port.c if ((omap_port->ssr.mode == SSI_MODE_FRAME) && omap_port 495 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->brkqueue, cl); omap_port 497 drivers/hsi/controllers/omap_ssi_port.c omap_port->channels = max(cl->rx_cfg.num_hw_channels, omap_port 501 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.divisor = div; omap_port 502 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.frame_size = 31; omap_port 503 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.channels = cl->tx_cfg.num_hw_channels; omap_port 504 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.arb_mode = cl->tx_cfg.arb_mode; omap_port 505 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.mode = cl->tx_cfg.mode; omap_port 507 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr.frame_size = 31; omap_port 508 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr.timeout = 0; omap_port 509 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr.channels = cl->rx_cfg.num_hw_channels; omap_port 510 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr.mode = cl->rx_cfg.mode; omap_port 512 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 513 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 514 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 522 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 526 drivers/hsi/controllers/omap_ssi_port.c void __iomem *sst = omap_port->sst_base; omap_port 527 drivers/hsi/controllers/omap_ssi_port.c void __iomem *ssr = omap_port->ssr_base; omap_port 531 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 532 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 535 drivers/hsi/controllers/omap_ssi_port.c pinctrl_pm_select_idle_state(omap_port->pdev); omap_port 545 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 566 drivers/hsi/controllers/omap_ssi_port.c for (i = 0; i < omap_port->channels; i++) { omap_port 568 drivers/hsi/controllers/omap_ssi_port.c if (!list_empty(&omap_port->txqueue[i])) omap_port 569 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 570 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->txqueue[i], NULL); omap_port 571 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->rxqueue[i], NULL); omap_port 573 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->brkqueue, NULL); omap_port 576 drivers/hsi/controllers/omap_ssi_port.c pinctrl_pm_select_default_state(omap_port->pdev); omap_port 578 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 579 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 580 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 587 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = omap_port 589 drivers/hsi/controllers/omap_ssi_port.c struct hsi_port *port = to_hsi_port(omap_port->dev); omap_port 593 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); /* Grab clocks */ omap_port 600 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 602 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&port->device, "Wake out high %d\n", omap_port->wk_refcount); omap_port 604 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->wk_lock); omap_port 605 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->wk_refcount++) { omap_port 606 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->wk_lock); omap_port 609 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->wk_lock); omap_port 611 drivers/hsi/controllers/omap_ssi_port.c schedule_work(&omap_port->work); omap_port 619 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 623 drivers/hsi/controllers/omap_ssi_port.c dev_dbg(&port->device, "Wake out low %d\n", omap_port->wk_refcount); omap_port 625 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->wk_lock); omap_port 626 drivers/hsi/controllers/omap_ssi_port.c BUG_ON(!omap_port->wk_refcount); omap_port 627 drivers/hsi/controllers/omap_ssi_port.c if (--omap_port->wk_refcount) { omap_port 628 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->wk_lock); omap_port 632 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->wk_lock); omap_port 634 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 635 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); /* Release clocks */ omap_port 641 drivers/hsi/controllers/omap_ssi_port.c static void ssi_transfer(struct omap_ssi_port *omap_port, omap_port 647 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get(omap_port->pdev); omap_port 648 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 656 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 658 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 661 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 662 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 663 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 669 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 679 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->brkqueue, cl); omap_port 680 drivers/hsi/controllers/omap_ssi_port.c if (list_empty(&omap_port->brkqueue)) omap_port 683 drivers/hsi/controllers/omap_ssi_port.c for (i = 0; i < omap_port->channels; i++) { omap_port 684 drivers/hsi/controllers/omap_ssi_port.c if (list_empty(&omap_port->txqueue[i])) omap_port 686 drivers/hsi/controllers/omap_ssi_port.c msg = list_first_entry(&omap_port->txqueue[i], struct hsi_msg, omap_port 692 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 693 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 695 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->txqueue[i], cl); omap_port 697 drivers/hsi/controllers/omap_ssi_port.c for (i = 0; i < omap_port->channels; i++) { omap_port 698 drivers/hsi/controllers/omap_ssi_port.c if (list_empty(&omap_port->rxqueue[i])) omap_port 700 drivers/hsi/controllers/omap_ssi_port.c msg = list_first_entry(&omap_port->rxqueue[i], struct hsi_msg, omap_port 706 drivers/hsi/controllers/omap_ssi_port.c ssi_flush_queue(&omap_port->rxqueue[i], cl); omap_port 708 drivers/hsi/controllers/omap_ssi_port.c if (!list_empty(&omap_port->rxqueue[i])) omap_port 712 drivers/hsi/controllers/omap_ssi_port.c tmp = readl(omap_port->sst_base + SSI_SST_BUFSTATE_REG); omap_port 714 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(tmp, omap_port->sst_base + SSI_SST_BUFSTATE_REG); omap_port 716 drivers/hsi/controllers/omap_ssi_port.c tmp = readl(omap_port->ssr_base + SSI_SSR_BUFSTATE_REG); omap_port 718 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(tmp, omap_port->ssr_base + SSI_SSR_BUFSTATE_REG); omap_port 731 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 748 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 749 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 759 drivers/hsi/controllers/omap_ssi_port.c static int ssi_set_port_mode(struct omap_ssi_port *omap_port, u32 mode) omap_port 761 drivers/hsi/controllers/omap_ssi_port.c writel(mode, omap_port->sst_base + SSI_SST_MODE_REG); omap_port 762 drivers/hsi/controllers/omap_ssi_port.c writel(mode, omap_port->ssr_base + SSI_SSR_MODE_REG); omap_port 764 drivers/hsi/controllers/omap_ssi_port.c mode = readl(omap_port->ssr_base + SSI_SSR_MODE_REG); omap_port 772 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 775 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 776 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 787 drivers/hsi/controllers/omap_ssi_port.c if (test_and_clear_bit(SSI_WAKE_EN, &omap_port->flags)) omap_port 788 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_sync(omap_port->pdev); omap_port 789 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get(omap_port->pdev); omap_port 791 drivers/hsi/controllers/omap_ssi_port.c ssi_set_port_mode(omap_port, SSI_MODE_SLEEP); omap_port 792 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.mode = SSI_MODE_SLEEP; omap_port 793 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr.mode = SSI_MODE_SLEEP; omap_port 794 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put(omap_port->pdev); omap_port 795 drivers/hsi/controllers/omap_ssi_port.c WARN_ON(omap_port->wk_refcount != 0); omap_port 797 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 798 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_sync(omap_port->pdev); omap_port 807 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 817 drivers/hsi/controllers/omap_ssi_port.c err = readl(omap_port->ssr_base + SSI_SSR_ERROR_REG); omap_port 838 drivers/hsi/controllers/omap_ssi_port.c spin_lock(&omap_port->lock); omap_port 843 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(err, omap_port->ssr_base + SSI_SSR_ERRORACK_REG); omap_port 847 drivers/hsi/controllers/omap_ssi_port.c for (i = 0; i < omap_port->channels; i++) { omap_port 848 drivers/hsi/controllers/omap_ssi_port.c if (list_empty(&omap_port->rxqueue[i])) omap_port 850 drivers/hsi/controllers/omap_ssi_port.c msg = list_first_entry(&omap_port->rxqueue[i], struct hsi_msg, omap_port 854 drivers/hsi/controllers/omap_ssi_port.c spin_unlock(&omap_port->lock); omap_port 857 drivers/hsi/controllers/omap_ssi_port.c ssi_transfer(omap_port, &omap_port->rxqueue[i]); omap_port 858 drivers/hsi/controllers/omap_ssi_port.c spin_lock(&omap_port->lock); omap_port 860 drivers/hsi/controllers/omap_ssi_port.c spin_unlock(&omap_port->lock); omap_port 865 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 874 drivers/hsi/controllers/omap_ssi_port.c spin_lock(&omap_port->lock); omap_port 878 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(0, omap_port->ssr_base + SSI_SSR_BREAK_REG); omap_port 881 drivers/hsi/controllers/omap_ssi_port.c spin_unlock(&omap_port->lock); omap_port 883 drivers/hsi/controllers/omap_ssi_port.c list_for_each_entry_safe(msg, tmp, &omap_port->brkqueue, link) { omap_port 885 drivers/hsi/controllers/omap_ssi_port.c spin_lock(&omap_port->lock); omap_port 887 drivers/hsi/controllers/omap_ssi_port.c spin_unlock(&omap_port->lock); omap_port 897 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 903 drivers/hsi/controllers/omap_ssi_port.c spin_lock_bh(&omap_port->lock); omap_port 916 drivers/hsi/controllers/omap_ssi_port.c writel(*buf, omap_port->sst_base + omap_port 919 drivers/hsi/controllers/omap_ssi_port.c *buf = readl(omap_port->ssr_base + omap_port 935 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 945 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 946 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 952 drivers/hsi/controllers/omap_ssi_port.c spin_unlock_bh(&omap_port->lock); omap_port 954 drivers/hsi/controllers/omap_ssi_port.c ssi_transfer(omap_port, queue); omap_port 961 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 967 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 973 drivers/hsi/controllers/omap_ssi_port.c for (ch = 0; ch < omap_port->channels; ch++) { omap_port 975 drivers/hsi/controllers/omap_ssi_port.c ssi_pio_complete(port, &omap_port->txqueue[ch]); omap_port 977 drivers/hsi/controllers/omap_ssi_port.c ssi_pio_complete(port, &omap_port->rxqueue[ch]); omap_port 990 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 991 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 1000 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1011 drivers/hsi/controllers/omap_ssi_port.c if (!test_and_set_bit(SSI_WAKE_EN, &omap_port->flags)) omap_port 1012 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_get_sync(omap_port->pdev); omap_port 1014 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->wktest) { /* FIXME: HACK ! To be removed */ omap_port 1021 drivers/hsi/controllers/omap_ssi_port.c if (omap_port->wktest) { /* FIXME: HACK ! To be removed */ omap_port 1026 drivers/hsi/controllers/omap_ssi_port.c if (test_and_clear_bit(SSI_WAKE_EN, &omap_port->flags)) { omap_port 1027 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_mark_last_busy(omap_port->pdev); omap_port 1028 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_put_autosuspend(omap_port->pdev); omap_port 1037 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1043 drivers/hsi/controllers/omap_ssi_port.c omap_port->irq = err; omap_port 1044 drivers/hsi/controllers/omap_ssi_port.c err = devm_request_threaded_irq(&port->device, omap_port->irq, NULL, omap_port 1048 drivers/hsi/controllers/omap_ssi_port.c omap_port->irq, err); omap_port 1054 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1058 drivers/hsi/controllers/omap_ssi_port.c if (!omap_port->wake_gpio) { omap_port 1059 drivers/hsi/controllers/omap_ssi_port.c omap_port->wake_irq = -1; omap_port 1063 drivers/hsi/controllers/omap_ssi_port.c cawake_irq = gpiod_to_irq(omap_port->wake_gpio); omap_port 1064 drivers/hsi/controllers/omap_ssi_port.c omap_port->wake_irq = cawake_irq; omap_port 1081 drivers/hsi/controllers/omap_ssi_port.c static void ssi_queues_init(struct omap_ssi_port *omap_port) omap_port 1086 drivers/hsi/controllers/omap_ssi_port.c INIT_LIST_HEAD(&omap_port->txqueue[ch]); omap_port 1087 drivers/hsi/controllers/omap_ssi_port.c INIT_LIST_HEAD(&omap_port->rxqueue[ch]); omap_port 1089 drivers/hsi/controllers/omap_ssi_port.c INIT_LIST_HEAD(&omap_port->brkqueue); omap_port 1129 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port; omap_port 1170 drivers/hsi/controllers/omap_ssi_port.c omap_port = devm_kzalloc(&port->device, sizeof(*omap_port), GFP_KERNEL); omap_port 1171 drivers/hsi/controllers/omap_ssi_port.c if (!omap_port) { omap_port 1175 drivers/hsi/controllers/omap_ssi_port.c omap_port->wake_gpio = cawake_gpio; omap_port 1176 drivers/hsi/controllers/omap_ssi_port.c omap_port->pdev = &pd->dev; omap_port 1177 drivers/hsi/controllers/omap_ssi_port.c omap_port->port_id = port_id; omap_port 1179 drivers/hsi/controllers/omap_ssi_port.c INIT_DEFERRABLE_WORK(&omap_port->errqueue_work, ssi_process_errqueue); omap_port 1180 drivers/hsi/controllers/omap_ssi_port.c INIT_WORK(&omap_port->work, start_tx_work); omap_port 1189 drivers/hsi/controllers/omap_ssi_port.c hsi_port_set_drvdata(port, omap_port); omap_port 1190 drivers/hsi/controllers/omap_ssi_port.c omap_ssi->port[port_id] = omap_port; omap_port 1194 drivers/hsi/controllers/omap_ssi_port.c err = ssi_port_get_iomem(pd, "tx", &omap_port->sst_base, omap_port 1195 drivers/hsi/controllers/omap_ssi_port.c &omap_port->sst_dma); omap_port 1198 drivers/hsi/controllers/omap_ssi_port.c err = ssi_port_get_iomem(pd, "rx", &omap_port->ssr_base, omap_port 1199 drivers/hsi/controllers/omap_ssi_port.c &omap_port->ssr_dma); omap_port 1210 drivers/hsi/controllers/omap_ssi_port.c ssi_queues_init(omap_port); omap_port 1211 drivers/hsi/controllers/omap_ssi_port.c spin_lock_init(&omap_port->lock); omap_port 1212 drivers/hsi/controllers/omap_ssi_port.c spin_lock_init(&omap_port->wk_lock); omap_port 1213 drivers/hsi/controllers/omap_ssi_port.c omap_port->dev = &port->device; omap_port 1215 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_use_autosuspend(omap_port->pdev); omap_port 1216 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_set_autosuspend_delay(omap_port->pdev, 250); omap_port 1217 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_enable(omap_port->pdev); omap_port 1220 drivers/hsi/controllers/omap_ssi_port.c err = ssi_debug_add_port(omap_port, omap_ssi->dir); omap_port 1222 drivers/hsi/controllers/omap_ssi_port.c pm_runtime_disable(omap_port->pdev); omap_port 1240 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1248 drivers/hsi/controllers/omap_ssi_port.c cancel_delayed_work_sync(&omap_port->errqueue_work); omap_port 1259 drivers/hsi/controllers/omap_ssi_port.c omap_ssi->port[omap_port->port_id] = NULL; omap_port 1268 drivers/hsi/controllers/omap_ssi_port.c static int ssi_restore_divisor(struct omap_ssi_port *omap_port) omap_port 1270 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sst.divisor, omap_port 1271 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst_base + SSI_SST_DIVISOR_REG); omap_port 1277 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port) omap_port 1281 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst.divisor = div; omap_port 1282 drivers/hsi/controllers/omap_ssi_port.c ssi_restore_divisor(omap_port); omap_port 1286 drivers/hsi/controllers/omap_ssi_port.c static int ssi_save_port_ctx(struct omap_ssi_port *omap_port) omap_port 1288 drivers/hsi/controllers/omap_ssi_port.c struct hsi_port *port = to_hsi_port(omap_port->dev); omap_port 1292 drivers/hsi/controllers/omap_ssi_port.c omap_port->sys_mpu_enable = readl(omap_ssi->sys + omap_port 1298 drivers/hsi/controllers/omap_ssi_port.c static int ssi_restore_port_ctx(struct omap_ssi_port *omap_port) omap_port 1300 drivers/hsi/controllers/omap_ssi_port.c struct hsi_port *port = to_hsi_port(omap_port->dev); omap_port 1305 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sys_mpu_enable, omap_port 1309 drivers/hsi/controllers/omap_ssi_port.c base = omap_port->sst_base; omap_port 1310 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sst.frame_size, base + SSI_SST_FRAMESIZE_REG); omap_port 1311 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sst.channels, base + SSI_SST_CHANNELS_REG); omap_port 1312 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sst.arb_mode, base + SSI_SST_ARBMODE_REG); omap_port 1315 drivers/hsi/controllers/omap_ssi_port.c base = omap_port->ssr_base; omap_port 1316 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->ssr.frame_size, base + SSI_SSR_FRAMESIZE_REG); omap_port 1317 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->ssr.channels, base + SSI_SSR_CHANNELS_REG); omap_port 1318 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->ssr.timeout, base + SSI_SSR_TIMEOUT_REG); omap_port 1323 drivers/hsi/controllers/omap_ssi_port.c static int ssi_restore_port_mode(struct omap_ssi_port *omap_port) omap_port 1327 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->sst.mode, omap_port 1328 drivers/hsi/controllers/omap_ssi_port.c omap_port->sst_base + SSI_SST_MODE_REG); omap_port 1329 drivers/hsi/controllers/omap_ssi_port.c writel_relaxed(omap_port->ssr.mode, omap_port 1330 drivers/hsi/controllers/omap_ssi_port.c omap_port->ssr_base + SSI_SSR_MODE_REG); omap_port 1332 drivers/hsi/controllers/omap_ssi_port.c mode = readl(omap_port->ssr_base + SSI_SSR_MODE_REG); omap_port 1340 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1346 drivers/hsi/controllers/omap_ssi_port.c ssi_set_port_mode(omap_port, SSI_MODE_SLEEP); omap_port 1348 drivers/hsi/controllers/omap_ssi_port.c omap_port->loss_count = omap_port 1350 drivers/hsi/controllers/omap_ssi_port.c ssi_save_port_ctx(omap_port); omap_port 1358 drivers/hsi/controllers/omap_ssi_port.c struct omap_ssi_port *omap_port = hsi_port_drvdata(port); omap_port 1364 drivers/hsi/controllers/omap_ssi_port.c if ((omap_ssi->get_loss) && (omap_port->loss_count == omap_port 1368 drivers/hsi/controllers/omap_ssi_port.c ssi_restore_port_ctx(omap_port); omap_port 1371 drivers/hsi/controllers/omap_ssi_port.c ssi_restore_divisor(omap_port); omap_port 1372 drivers/hsi/controllers/omap_ssi_port.c ssi_restore_port_mode(omap_port);