| /OK3568_Linux_fs/u-boot/arch/arm/mach-tegra/ |
| H A D | ivc.c | 72 static inline void tegra_ivc_invalidate_counter(struct tegra_ivc *ivc, in tegra_ivc_invalidate_counter() argument 80 static inline void tegra_ivc_flush_counter(struct tegra_ivc *ivc, in tegra_ivc_flush_counter() argument 88 static inline ulong tegra_ivc_frame_addr(struct tegra_ivc *ivc, in tegra_ivc_frame_addr() argument 92 BUG_ON(frame >= ivc->nframes); in tegra_ivc_frame_addr() 95 (ivc->frame_size * frame); in tegra_ivc_frame_addr() 98 static inline void *tegra_ivc_frame_pointer(struct tegra_ivc *ivc, in tegra_ivc_frame_pointer() argument 102 return (void *)tegra_ivc_frame_addr(ivc, ch, frame); in tegra_ivc_frame_pointer() 105 static inline void tegra_ivc_invalidate_frame(struct tegra_ivc *ivc, in tegra_ivc_invalidate_frame() argument 109 ulong base = tegra_ivc_frame_addr(ivc, h, frame); in tegra_ivc_invalidate_frame() 110 invalidate_dcache_range(base, base + ivc->frame_size); in tegra_ivc_invalidate_frame() [all …]
|
| H A D | Makefile | 31 obj-$(CONFIG_TEGRA_IVC) += ivc.o
|
| /OK3568_Linux_fs/kernel/drivers/firmware/tegra/ |
| H A D | ivc.c | 71 static inline void tegra_ivc_invalidate(struct tegra_ivc *ivc, dma_addr_t phys) in tegra_ivc_invalidate() argument 73 if (!ivc->peer) in tegra_ivc_invalidate() 76 dma_sync_single_for_cpu(ivc->peer, phys, TEGRA_IVC_ALIGN, in tegra_ivc_invalidate() 80 static inline void tegra_ivc_flush(struct tegra_ivc *ivc, dma_addr_t phys) in tegra_ivc_flush() argument 82 if (!ivc->peer) in tegra_ivc_flush() 85 dma_sync_single_for_device(ivc->peer, phys, TEGRA_IVC_ALIGN, in tegra_ivc_flush() 89 static inline bool tegra_ivc_empty(struct tegra_ivc *ivc, in tegra_ivc_empty() argument 110 if (tx - rx > ivc->num_frames) in tegra_ivc_empty() 116 static inline bool tegra_ivc_full(struct tegra_ivc *ivc, in tegra_ivc_full() argument 126 return tx - rx >= ivc->num_frames; in tegra_ivc_full() [all …]
|
| H A D | bpmp-tegra186.c | 45 frame = tegra_ivc_read_get_next_frame(channel->ivc); in tegra186_bpmp_is_message_ready() 60 frame = tegra_ivc_write_get_next_frame(channel->ivc); in tegra186_bpmp_is_channel_free() 73 return tegra_ivc_read_advance(channel->ivc); in tegra186_bpmp_ack_message() 78 return tegra_ivc_write_advance(channel->ivc); in tegra186_bpmp_post_message() 95 static void tegra186_bpmp_ivc_notify(struct tegra_ivc *ivc, void *data) in tegra186_bpmp_ivc_notify() argument 115 channel->ivc = devm_kzalloc(bpmp->dev, sizeof(*channel->ivc), in tegra186_bpmp_channel_init() 117 if (!channel->ivc) in tegra186_bpmp_channel_init() 124 err = tegra_ivc_init(channel->ivc, NULL, in tegra186_bpmp_channel_init() 144 tegra_ivc_reset(channel->ivc); in tegra186_bpmp_channel_reset() 147 while (tegra_ivc_notified(channel->ivc)) in tegra186_bpmp_channel_reset() [all …]
|
| H A D | Makefile | 9 obj-$(CONFIG_TEGRA_IVC) += ivc.o
|
| /OK3568_Linux_fs/kernel/include/soc/tegra/ |
| H A D | ivc.h | 23 void (*notify)(struct tegra_ivc *ivc, void *data); 39 void *tegra_ivc_read_get_next_frame(struct tegra_ivc *ivc); 49 int tegra_ivc_read_advance(struct tegra_ivc *ivc); 59 void *tegra_ivc_write_get_next_frame(struct tegra_ivc *ivc); 69 int tegra_ivc_write_advance(struct tegra_ivc *ivc); 80 int tegra_ivc_notified(struct tegra_ivc *ivc); 90 void tegra_ivc_reset(struct tegra_ivc *ivc); 94 int tegra_ivc_init(struct tegra_ivc *ivc, struct device *peer, void *rx, 97 void (*notify)(struct tegra_ivc *ivc, void *data), 99 void tegra_ivc_cleanup(struct tegra_ivc *ivc);
|
| H A D | bpmp.h | 44 struct tegra_ivc *ivc; member
|
| /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-tegra/ |
| H A D | ivc.h | 96 int tegra_ivc_read_get_next_frame(struct tegra_ivc *ivc, void **frame); 110 int tegra_ivc_read_advance(struct tegra_ivc *ivc); 124 int tegra_ivc_write_get_next_frame(struct tegra_ivc *ivc, void **frame); 138 int tegra_ivc_write_advance(struct tegra_ivc *ivc); 150 int tegra_ivc_channel_notified(struct tegra_ivc *ivc); 162 void tegra_ivc_channel_reset(struct tegra_ivc *ivc); 175 int tegra_ivc_init(struct tegra_ivc *ivc, ulong rx_base, ulong tx_base,
|
| /OK3568_Linux_fs/u-boot/drivers/misc/ |
| H A D | tegra186_bpmp.c | 26 struct tegra_ivc ivc; member 45 ret = tegra_ivc_write_get_next_frame(&priv->ivc, &ivc_frame); in tegra186_bpmp_call() 56 ret = tegra_ivc_write_advance(&priv->ivc); in tegra186_bpmp_call() 64 ret = tegra_ivc_channel_notified(&priv->ivc); in tegra186_bpmp_call() 70 ret = tegra_ivc_read_get_next_frame(&priv->ivc, &ivc_frame); in tegra186_bpmp_call() 87 ret = tegra_ivc_read_advance(&priv->ivc); in tegra186_bpmp_call() 161 static void tegra186_bpmp_ivc_notify(struct tegra_ivc *ivc) in tegra186_bpmp_ivc_notify() argument 164 container_of(ivc, struct tegra186_bpmp, ivc); in tegra186_bpmp_ivc_notify() 198 ret = tegra_ivc_init(&priv->ivc, rx_base, tx_base, BPMP_IVC_FRAME_COUNT, in tegra186_bpmp_probe() 205 tegra_ivc_channel_reset(&priv->ivc); in tegra186_bpmp_probe() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/exynos4-is/ |
| H A D | fimc-isp-video.c | 305 struct fimc_is_video *ivc = &isp->video_capture; in isp_video_release() local 306 struct media_entity *entity = &ivc->ve.vdev.entity; in isp_video_release() 314 if (is_singular_file && ivc->streaming) { in isp_video_release() 316 ivc->streaming = 0; in isp_video_release() 322 fimc_pipeline_call(&ivc->ve, close); in isp_video_release()
|