Searched refs:dmfc (Results 1 - 6 of 6) sorted by relevance

/linux-4.4.14/drivers/gpu/ipu-v3/
H A Dipu-dmfc.c125 int ipu_dmfc_enable_channel(struct dmfc_channel *dmfc) ipu_dmfc_enable_channel() argument
127 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_enable_channel()
155 void ipu_dmfc_disable_channel(struct dmfc_channel *dmfc) ipu_dmfc_disable_channel() argument
157 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_disable_channel()
175 static int ipu_dmfc_setup_channel(struct dmfc_channel *dmfc, int slots, ipu_dmfc_setup_channel() argument
178 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_setup_channel()
182 "dmfc: using %d slots starting from segment %d for IPU channel %d\n", ipu_dmfc_setup_channel()
183 slots, segment, dmfc->data->ipu_channel); ipu_dmfc_setup_channel()
219 val = readl(priv->base + dmfc->data->channel_reg); ipu_dmfc_setup_channel()
221 val &= ~(0xff << dmfc->data->shift); ipu_dmfc_setup_channel()
222 val |= field << dmfc->data->shift; ipu_dmfc_setup_channel()
224 writel(val, priv->base + dmfc->data->channel_reg); ipu_dmfc_setup_channel()
226 dmfc->slots = slots; ipu_dmfc_setup_channel()
227 dmfc->segment = segment; ipu_dmfc_setup_channel()
228 dmfc->burstsize = burstsize; ipu_dmfc_setup_channel()
229 dmfc->slotmask = ((1 << slots) - 1) << segment; ipu_dmfc_setup_channel()
266 void ipu_dmfc_free_bandwidth(struct dmfc_channel *dmfc) ipu_dmfc_free_bandwidth() argument
268 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_free_bandwidth()
271 dev_dbg(priv->dev, "dmfc: freeing %d slots starting from segment %d\n", ipu_dmfc_free_bandwidth()
272 dmfc->slots, dmfc->segment); ipu_dmfc_free_bandwidth()
276 if (!dmfc->slots) ipu_dmfc_free_bandwidth()
279 dmfc->slotmask = 0; ipu_dmfc_free_bandwidth()
280 dmfc->slots = 0; ipu_dmfc_free_bandwidth()
281 dmfc->segment = 0; ipu_dmfc_free_bandwidth()
308 int ipu_dmfc_alloc_bandwidth(struct dmfc_channel *dmfc, ipu_dmfc_alloc_bandwidth() argument
311 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_alloc_bandwidth()
315 dev_dbg(priv->dev, "dmfc: trying to allocate %ldMpixel/s for IPU channel %d\n", ipu_dmfc_alloc_bandwidth()
317 dmfc->data->ipu_channel); ipu_dmfc_alloc_bandwidth()
319 ipu_dmfc_free_bandwidth(dmfc); ipu_dmfc_alloc_bandwidth()
329 if (dmfc->data->ipu_channel == IPUV3_CHANNEL_MEM_BG_SYNC) ipu_dmfc_alloc_bandwidth()
344 ipu_dmfc_setup_channel(dmfc, slots, segment, burstsize); ipu_dmfc_alloc_bandwidth()
353 int ipu_dmfc_init_channel(struct dmfc_channel *dmfc, int width) ipu_dmfc_init_channel() argument
355 struct ipu_dmfc_priv *priv = dmfc->priv; ipu_dmfc_init_channel()
360 if ((dmfc->slots * 64 * 4) / width > dmfc->data->max_fifo_lines) ipu_dmfc_init_channel()
361 dmfc_gen1 |= 1 << dmfc->data->eot_shift; ipu_dmfc_init_channel()
363 dmfc_gen1 &= ~(1 << dmfc->data->eot_shift); ipu_dmfc_init_channel()
383 void ipu_dmfc_put(struct dmfc_channel *dmfc) ipu_dmfc_put() argument
385 ipu_dmfc_free_bandwidth(dmfc); ipu_dmfc_put()
424 dev_dbg(dev, "dmfc: 8 slots with %ldMpixel/s bandwidth each\n", ipu_dmfc_init()
H A DMakefile4 ipu-dp.o ipu-dmfc.o ipu-ic.o ipu-smfc.o
H A Dipu-common.c860 unit = "dmfc"; ipu_submodules_init()
1268 dev_dbg(&pdev->dev, "dmfc: 0x%08lx\n", ipu_probe()
/linux-4.4.14/drivers/gpu/drm/imx/
H A Dipuv3-plane.c203 ret = ipu_dmfc_init_channel(ipu_plane->dmfc, crtc_w); ipu_plane_mode_set()
205 dev_err(dev, "initializing dmfc channel failed with %d\n", ret); ipu_plane_mode_set()
209 ret = ipu_dmfc_alloc_bandwidth(ipu_plane->dmfc, ipu_plane_mode_set()
213 dev_err(dev, "allocating dmfc bandwidth failed with %d\n", ret); ipu_plane_mode_set()
245 if (!IS_ERR_OR_NULL(ipu_plane->dmfc)) ipu_plane_put_resources()
246 ipu_dmfc_put(ipu_plane->dmfc); ipu_plane_put_resources()
262 ipu_plane->dmfc = ipu_dmfc_get(ipu_plane->ipu, ipu_plane->dma); ipu_plane_get_resources()
263 if (IS_ERR(ipu_plane->dmfc)) { ipu_plane_get_resources()
264 ret = PTR_ERR(ipu_plane->dmfc); ipu_plane_get_resources()
265 DRM_ERROR("failed to get dmfc: ret %d\n", ret); ipu_plane_get_resources()
289 ipu_dmfc_enable_channel(ipu_plane->dmfc); ipu_plane_enable()
306 ipu_dmfc_disable_channel(ipu_plane->dmfc); ipu_plane_disable()
H A Dipuv3-plane.h21 struct dmfc_channel *dmfc; member in struct:ipu_plane
/linux-4.4.14/include/video/
H A Dimx-ipu-v3.h232 * IPU Display Multi FIFO Controller (dmfc) functions
235 int ipu_dmfc_enable_channel(struct dmfc_channel *dmfc);
236 void ipu_dmfc_disable_channel(struct dmfc_channel *dmfc);
237 int ipu_dmfc_alloc_bandwidth(struct dmfc_channel *dmfc,
239 void ipu_dmfc_free_bandwidth(struct dmfc_channel *dmfc);
240 int ipu_dmfc_init_channel(struct dmfc_channel *dmfc, int width);
242 void ipu_dmfc_put(struct dmfc_channel *dmfc);

Completed in 147 milliseconds