fei 36 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c struct c8sectpfei *fei) fei 54 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "dvb_dmx_init failed (errno = %d)\n", fei 65 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "dvb_dmxdev_init failed (errno = %d)\n", fei 76 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "add_frontend failed (errno = %d)\n", result); fei 84 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "add_frontend failed (%d)\n", result); fei 91 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "connect_frontend (%d)\n", result); fei 126 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c static struct c8sectpfe *c8sectpfe_create(struct c8sectpfei *fei, fei 142 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c c8sectpfe->device = fei->dev; fei 145 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c THIS_MODULE, fei->dev, ids); fei 147 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "dvb_register_adapter failed (errno = %d)\n", fei 152 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c c8sectpfe->adapter.priv = fei; fei 154 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c for (i = 0; i < fei->tsin_count; i++) { fei 157 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c c8sectpfe->demux[i].c8sectpfei = fei; fei 160 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c start_feed, stop_feed, fei); fei 162 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, fei 173 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c c8sectpfe->num_feeds = fei->tsin_count; fei 200 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c struct c8sectpfei *fei) fei 205 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c for (n = 0; n < fei->tsin_count; n++) { fei 207 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c tsin = fei->channel_data[n]; fei 228 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c struct c8sectpfei *fei, fei 236 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c *c8sectpfe = c8sectpfe_create(fei, start_feed, stop_feed); fei 240 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c for (n = 0; n < fei->tsin_count; n++) { fei 241 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c tsin = fei->channel_data[n]; fei 249 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c dev_err(fei->dev, "dvb_register_frontend failed (%d)\n", fei 260 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c c8sectpfe_tuner_unregister_frontend(*c8sectpfe, fei); fei 54 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.h struct c8sectpfei *fei, fei 59 drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.h struct c8sectpfei *fei); fei 49 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static int load_c8sectpfe_fw(struct c8sectpfei *fei); fei 63 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = from_timer(fei, t, timer); fei 68 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c for (chan_num = 0; chan_num < fei->tsin_count; chan_num++) { fei 69 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c channel = fei->channel_data[chan_num]; fei 76 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->timer.expires = jiffies + msecs_to_jiffies(POLL_MSECS); fei 77 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c add_timer(&fei->timer); fei 83 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei; fei 91 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei = channel->fei; fei 106 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_sync_single_for_cpu(fei->dev, fei 113 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, fei 119 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c &fei->c8sectpfe[0]-> fei 138 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = stdemux->c8sectpfei; fei 150 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "%s:%d Error bailing\n" fei 164 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "%s:%d Error bailing\n" fei 170 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!atomic_read(&fei->fw_loaded)) { fei 171 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = load_c8sectpfe_fw(fei); fei 176 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c mutex_lock(&fei->lock); fei 178 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c channel = fei->channel_data[stdemux->tsin_index]; fei 184 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tmp = readl(fei->io + C8SECTPFE_IB_PID_SET(channel->tsin_id)); fei 186 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tmp, fei->io + C8SECTPFE_IB_PID_SET(channel->tsin_id)); fei 193 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_sync_single_for_device(fei->dev, fei 200 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->global_feed_count == 0) { fei 201 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->timer.expires = jiffies + fei 204 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c add_timer(&fei->timer); fei 209 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "Starting channel=%p\n", channel); fei 216 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_BUFF_STRT(channel->tsin_id)); fei 218 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_BUFF_END(channel->tsin_id)); fei 221 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_READ_PNT(channel->tsin_id)); fei 223 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_WRT_PNT(channel->tsin_id)); fei 238 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c , fei->io + C8SECTPFE_IB_SYS(channel->tsin_id)); fei 243 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "%s:%d Starting DMA feed on stdemux=%p\n" fei 248 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->global_feed_count++; fei 250 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c mutex_unlock(&fei->lock); fei 260 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = stdemux->c8sectpfei; fei 267 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!atomic_read(&fei->fw_loaded)) { fei 268 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = load_c8sectpfe_fw(fei); fei 273 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c mutex_lock(&fei->lock); fei 275 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c channel = fei->channel_data[stdemux->tsin_index]; fei 280 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tmp = readl(fei->io + C8SECTPFE_IB_PID_SET(channel->tsin_id)); fei 282 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tmp, fei->io + C8SECTPFE_IB_PID_SET(channel->tsin_id)); fei 288 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_sync_single_for_device(fei->dev, fei 295 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c channel = fei->channel_data[stdemux->tsin_index]; fei 300 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0, fei->io + C8SECTPFE_IB_SYS(channel->tsin_id)); fei 309 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(idlereq, fei->io + DMA_IDLE_REQ); fei 316 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_warn(fei->dev, fei 333 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, fei 342 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_sync_single_for_device(fei->dev, fei 350 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (--fei->global_feed_count == 0) { fei 351 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "%s:%d global_feed_count=%d\n" fei 352 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c , __func__, __LINE__, fei->global_feed_count); fei 354 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c del_timer(&fei->timer); fei 357 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c mutex_unlock(&fei->lock); fei 362 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static struct channel_info *find_channel(struct c8sectpfei *fei, int tsin_num) fei 367 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fei->channel_data[i]) fei 370 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->channel_data[i]->tsin_id == tsin_num) fei 371 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return fei->channel_data[i]; fei 377 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static void c8sectpfe_getconfig(struct c8sectpfei *fei) fei 379 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfe_hw *hw = &fei->hw_stats; fei 381 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_ib = readl(fei->io + SYS_CFG_NUM_IB); fei 382 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_mib = readl(fei->io + SYS_CFG_NUM_MIB); fei 383 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_swts = readl(fei->io + SYS_CFG_NUM_SWTS); fei 384 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_tsout = readl(fei->io + SYS_CFG_NUM_TSOUT); fei 385 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_ccsc = readl(fei->io + SYS_CFG_NUM_CCSC); fei 386 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_ram = readl(fei->io + SYS_CFG_NUM_RAM); fei 387 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c hw->num_tp = readl(fei->io + SYS_CFG_NUM_TP); fei 389 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "C8SECTPFE hw supports the following:\n"); fei 390 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Input Blocks: %d\n", hw->num_ib); fei 391 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Merged Input Blocks: %d\n", hw->num_mib); fei 392 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Software Transport Stream Inputs: %d\n" fei 394 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Transport Stream Output: %d\n", hw->num_tsout); fei 395 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Cable Card Converter: %d\n", hw->num_ccsc); fei 396 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "RAMs supported by C8SECTPFE: %d\n", hw->num_ram); fei 397 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Tango TPs supported by C8SECTPFE: %d\n" fei 403 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = priv; fei 406 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c unsigned long tmp = readl(fei->io + DMA_IDLE_REQ); fei 412 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c for_each_set_bit(bit, &tmp, fei->hw_stats.num_ib) { fei 414 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c chan = find_channel(fei, bit); fei 420 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0, fei->io + DMA_IDLE_REQ); fei 426 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static void free_input_block(struct c8sectpfei *fei, struct channel_info *tsin) fei 428 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fei || !tsin) fei 432 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!dma_mapping_error(fei->dev, tsin->back_buffer_busaddr)) fei 433 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_unmap_single(fei->dev, tsin->back_buffer_busaddr, fei 439 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!dma_mapping_error(fei->dev, tsin->pid_buffer_busaddr)) fei 440 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_unmap_single(fei->dev, tsin->pid_buffer_busaddr, fei 448 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static int configure_memdma_and_inputblock(struct c8sectpfei *fei, fei 455 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fei || !tsin) fei 458 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "%s:%d Configuring channel=%p tsin=%d\n" fei 478 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->back_buffer_busaddr = dma_map_single(fei->dev, fei 483 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (dma_mapping_error(fei->dev, tsin->back_buffer_busaddr)) { fei 484 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "failed to map back_buffer\n"); fei 514 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->pid_buffer_busaddr = dma_map_single(fei->dev, fei 519 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (dma_mapping_error(fei->dev, tsin->pid_buffer_busaddr)) { fei 520 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "failed to map pid_bitmap\n"); fei 526 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dma_sync_single_for_device(fei->dev, fei 534 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->pstate = pinctrl_lookup_state(fei->pinctrl, tsin_pin_name); fei 536 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "%s: pinctrl_lookup_state couldn't find %s state\n" fei 542 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = pinctrl_select_state(fei->pinctrl, tsin->pstate); fei 545 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "%s: pinctrl_select_state failed\n" fei 551 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tmp = readl(fei->io + SYS_INPUT_CLKEN); fei 553 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tmp, fei->io + SYS_INPUT_CLKEN); fei 566 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tmp, fei->io + C8SECTPFE_IB_IP_FMT_CFG(tsin->tsin_id)); fei 571 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_SYNCLCKDRP_CFG(tsin->tsin_id)); fei 573 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(TS_PKT_SIZE, fei->io + C8SECTPFE_IB_PKT_LEN(tsin->tsin_id)); fei 579 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tsin->fifo, fei->io + C8SECTPFE_IB_BUFF_STRT(tsin->tsin_id)); fei 581 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + C8SECTPFE_IB_BUFF_END(tsin->tsin_id)); fei 583 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tsin->fifo, fei->io + C8SECTPFE_IB_READ_PNT(tsin->tsin_id)); fei 584 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tsin->fifo, fei->io + C8SECTPFE_IB_WRT_PNT(tsin->tsin_id)); fei 587 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io + PIDF_BASE(tsin->tsin_id)); fei 589 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "chan=%d PIDF_BASE=0x%x pid_bus_addr=%pad\n", fei 590 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->tsin_id, readl(fei->io + PIDF_BASE(tsin->tsin_id)), fei 604 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(tmp, fei->io + C8SECTPFE_IB_PID_SET(tsin->tsin_id)); fei 606 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, "chan=%d setting wp: %d, rp: %d, buf: %d-%d\n", fei 608 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c readl(fei->io + C8SECTPFE_IB_WRT_PNT(tsin->tsin_id)), fei 609 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c readl(fei->io + C8SECTPFE_IB_READ_PNT(tsin->tsin_id)), fei 610 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c readl(fei->io + C8SECTPFE_IB_BUFF_STRT(tsin->tsin_id)), fei 611 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c readl(fei->io + C8SECTPFE_IB_BUFF_END(tsin->tsin_id))); fei 614 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->irec = fei->io + DMA_MEMDMA_OFFSET + DMA_DMEM_OFFSET + fei 615 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c readl(fei->io + DMA_PTRREC_BASE); fei 647 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c free_input_block(fei, tsin); fei 653 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = priv; fei 655 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "%s: error handling not yet implemented\n" fei 670 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei; fei 676 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei = devm_kzalloc(dev, sizeof(struct c8sectpfei), GFP_KERNEL); fei 677 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fei) fei 680 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->dev = dev; fei 683 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->io = devm_ioremap_resource(dev, res); fei 684 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (IS_ERR(fei->io)) fei 685 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return PTR_ERR(fei->io); fei 689 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->sram = devm_ioremap_resource(dev, res); fei 690 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (IS_ERR(fei->sram)) fei 691 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return PTR_ERR(fei->sram); fei 693 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->sram_size = resource_size(res); fei 695 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->idle_irq = platform_get_irq_byname(pdev, "c8sectpfe-idle-irq"); fei 696 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->idle_irq < 0) fei 697 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return fei->idle_irq; fei 699 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->error_irq = platform_get_irq_byname(pdev, "c8sectpfe-error-irq"); fei 700 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->error_irq < 0) fei 701 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return fei->error_irq; fei 703 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c platform_set_drvdata(pdev, fei); fei 705 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->c8sectpfeclk = devm_clk_get(dev, "c8sectpfe"); fei 706 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (IS_ERR(fei->c8sectpfeclk)) { fei 708 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c return PTR_ERR(fei->c8sectpfeclk); fei 711 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = clk_prepare_enable(fei->c8sectpfeclk); fei 718 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0, fei->io + SYS_INPUT_CLKEN); fei 721 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(MEMDMAENABLE, fei->io + SYS_OTHER_CLKEN); fei 724 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c memset_io(fei->sram, 0x0, fei->sram_size); fei 726 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c c8sectpfe_getconfig(fei); fei 728 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = devm_request_irq(dev, fei->idle_irq, c8sectpfe_idle_irq_handler, fei 729 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c 0, "c8sectpfe-idle-irq", fei); fei 735 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = devm_request_irq(dev, fei->error_irq, fei 737 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c "c8sectpfe-error-irq", fei); fei 743 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->tsin_count = of_get_child_count(np); fei 745 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->tsin_count > C8SECTPFE_MAX_TSIN_CHAN || fei 746 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->tsin_count > fei->hw_stats.num_ib) { fei 753 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->pinctrl = devm_pinctrl_get(dev); fei 755 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (IS_ERR(fei->pinctrl)) { fei 757 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = PTR_ERR(fei->pinctrl); fei 764 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->channel_data[index] = devm_kzalloc(dev, fei 768 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fei->channel_data[index]) { fei 773 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin = fei->channel_data[index]; fei 775 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->fei = fei; fei 784 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (tsin->tsin_id > fei->hw_stats.num_ib) { fei 787 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin->tsin_id, fei->hw_stats.num_ib); fei 838 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c , fei->channel_data[index]->tsin_id); fei 852 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, fei 854 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->channel_data[index], index, fei 863 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c timer_setup(&fei->timer, c8sectpfe_timer_interrupt, 0); fei 865 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c mutex_init(&fei->lock); fei 868 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = c8sectpfe_tuner_register_frontend(&fei->c8sectpfe[0], fei 869 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c (void *)fei, fei 878 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c c8sectpfe_debugfs_init(fei); fei 883 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c clk_disable_unprepare(fei->c8sectpfeclk); fei 889 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct c8sectpfei *fei = platform_get_drvdata(pdev); fei 893 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c wait_for_completion(&fei->fw_ack); fei 895 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c c8sectpfe_tuner_unregister_frontend(fei->c8sectpfe[0], fei); fei 900 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c for (i = 0; i < fei->tsin_count; i++) { fei 901 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c channel = fei->channel_data[i]; fei 902 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c free_input_block(fei, channel); fei 905 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c c8sectpfe_debugfs_exit(fei); fei 907 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Stopping memdma SLIM core\n"); fei 908 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (readl(fei->io + DMA_CPU_RUN)) fei 909 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0x0, fei->io + DMA_CPU_RUN); fei 912 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (readl(fei->io + SYS_INPUT_CLKEN)) fei 913 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0, fei->io + SYS_INPUT_CLKEN); fei 915 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (readl(fei->io + SYS_OTHER_CLKEN)) fei 916 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0, fei->io + SYS_OTHER_CLKEN); fei 918 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (fei->c8sectpfeclk) fei 919 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c clk_disable_unprepare(fei->c8sectpfeclk); fei 925 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static int configure_channels(struct c8sectpfei *fei) fei 929 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c struct device_node *child, *np = fei->dev->of_node; fei 934 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin = fei->channel_data[index]; fei 936 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c ret = configure_memdma_and_inputblock(fei, fei 937 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c fei->channel_data[index]); fei 940 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, fei 950 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c for (index = 0; index < fei->tsin_count; index++) { fei 951 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c tsin = fei->channel_data[index]; fei 952 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c free_input_block(fei, tsin); fei 958 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c c8sectpfe_elf_sanity_check(struct c8sectpfei *fei, const struct firmware *fw) fei 964 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "failed to load %s\n", FIRMWARE_MEMDMA); fei 969 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Image is too small\n"); fei 978 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Unsupported class: %d\n", class); fei 983 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Unsupported firmware endianness\n"); fei 988 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Image is too small\n"); fei 993 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Image is corrupted (bad magic)\n"); fei 1003 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Invalid ELF magic\n"); fei 1008 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Unsupported ELF header type\n"); fei 1013 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "Firmware size is too small\n"); fei 1021 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static void load_imem_segment(struct c8sectpfei *fei, Elf32_Phdr *phdr, fei 1035 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, fei 1057 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static void load_dmem_segment(struct c8sectpfei *fei, Elf32_Phdr *phdr, fei 1065 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_dbg(fei->dev, fei 1077 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static int load_slim_core_fw(const struct firmware *fw, struct c8sectpfei *fei) fei 1084 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c if (!fw || !fei) fei 1101 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, fei 1114 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dst = (u8 __iomem *) fei->io + DMA_MEMDMA_IMEM; fei 1120 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c load_imem_segment(fei, phdr, fw, dst, i); fei 1122 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dst = (u8 __iomem *) fei->io + DMA_MEMDMA_DMEM; fei 1128 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c load_dmem_segment(fei, phdr, fw, dst, i); fei 1136 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c static int load_c8sectpfe_fw(struct c8sectpfei *fei) fei 1141 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Loading firmware: %s\n", FIRMWARE_MEMDMA); fei 1143 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c err = request_firmware(&fw, FIRMWARE_MEMDMA, fei->dev); fei 1147 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c err = c8sectpfe_elf_sanity_check(fei, fw); fei 1149 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "c8sectpfe_elf_sanity_check failed err=(%d)\n" fei 1155 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c err = load_slim_core_fw(fw, fei); fei 1157 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "load_slim_core_fw failed err=(%d)\n", err); fei 1162 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c err = configure_channels(fei); fei 1164 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_err(fei->dev, "configure_channels failed err=(%d)\n", err); fei 1172 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0x1, fei->io + DMA_PER_STBUS_SYNC); fei 1174 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c dev_info(fei->dev, "Boot the memdma SLIM core\n"); fei 1175 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c writel(0x1, fei->io + DMA_CPU_RUN); fei 1177 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c atomic_set(&fei->fw_loaded, 1); fei 54 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.h struct c8sectpfei *fei; fei 226 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c void c8sectpfe_debugfs_init(struct c8sectpfei *fei) fei 235 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->root = root; fei 237 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->regset = devm_kzalloc(fei->dev, sizeof(*fei->regset), GFP_KERNEL); fei 238 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c if (!fei->regset) fei 241 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->regset->regs = fei_sys_regs; fei 242 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->regset->nregs = ARRAY_SIZE(fei_sys_regs); fei 243 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->regset->base = fei->io; fei 246 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->regset); fei 248 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c dev_err(fei->dev, fei 260 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c void c8sectpfe_debugfs_exit(struct c8sectpfei *fei) fei 262 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c debugfs_remove_recursive(fei->root); fei 263 drivers/media/platform/sti/c8sectpfe/c8sectpfe-debugfs.c fei->root = NULL; fei 2135 fs/cifs/inode.c int cifs_fiemap(struct inode *inode, struct fiemap_extent_info *fei, u64 start, fei 2163 fs/cifs/inode.c rc = server->ops->fiemap(tcon, cfile, fei, start, len); fei 3230 fs/cifs/smb2ops.c struct fiemap_extent_info *fei, u64 start, u64 len) fei 3238 fs/cifs/smb2ops.c if (fiemap_check_flags(fei, FIEMAP_FLAG_SYNC)) fei 3275 fs/cifs/smb2ops.c rc = fiemap_fill_next_extent(fei, fei 117 include/linux/nvme-tcp.h __le32 fei;