/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright ( C ) STMicroelectronics SA 2015
* Author : Hugues Fruchet < hugues . fruchet @ st . com > for STMicroelectronics .
*/
#ifndef DELTA_IPC_H
#define DELTA_IPC_H
int delta_ipc_init(struct delta_dev *delta);
void delta_ipc_exit(struct delta_dev *delta);
/*
* delta_ipc_open - open a decoding instance on firmware side
* @ ctx : ( in ) delta context
* @ name : ( in ) name of decoder to be used
* @ param : ( in ) open command parameters specific to decoder
* @ param . size : ( in ) size of parameter
* @ param . data : ( in ) virtual address of parameter
* @ ipc_buf_size : ( in ) size of IPC shared buffer between host
* and copro used to share command data .
* Client have to set here the size of the biggest
* command parameters ( + status if any ) .
* Allocation will be done in this function which
* will give back to client in @ ipc_buf the virtual
* & physical addresses & size of shared IPC buffer .
* All the further command data ( parameters + status )
* have to be written in this shared IPC buffer
* virtual memory . This is done to avoid
* unnecessary copies of command data .
* @ ipc_buf : ( out ) allocated IPC shared buffer
* @ ipc_buf . size : ( out ) allocated size
* @ ipc_buf . vaddr : ( out ) virtual address where to copy
* further command data
* @ hdl : ( out ) handle of decoding instance .
*/
int delta_ipc_open(struct delta_ctx *ctx, const char *name,
struct delta_ipc_param *param, u32 ipc_buf_size,
struct delta_buf **ipc_buf, void **hdl);
/*
* delta_ipc_set_stream - set information about stream to decoder
* @ hdl : ( in ) handle of decoding instance .
* @ param : ( in ) set stream command parameters specific to decoder
* @ param . size : ( in ) size of parameter
* @ param . data : ( in ) virtual address of parameter . Must be
* within IPC shared buffer range
*/
int delta_ipc_set_stream(void *hdl, struct delta_ipc_param *param);
/*
* delta_ipc_decode - frame decoding synchronous request , returns only
* after decoding completion on firmware side .
* @ hdl : ( in ) handle of decoding instance .
* @ param : ( in ) decode command parameters specific to decoder
* @ param . size : ( in ) size of parameter
* @ param . data : ( in ) virtual address of parameter . Must be
* within IPC shared buffer range
* @ status : ( in / out ) decode command status specific to decoder
* @ status . size : ( in ) size of status
* @ status . data : ( in / out ) virtual address of status . Must be
* within IPC shared buffer range .
* Status is filled by decoding instance
* after decoding completion .
*/
int delta_ipc_decode(void *hdl, struct delta_ipc_param *param,
struct delta_ipc_param *status);
/*
* delta_ipc_close - close decoding instance
* @ hdl : ( in ) handle of decoding instance to close .
*/
void delta_ipc_close(void *hdl);
#endif /* DELTA_IPC_H */
Messung V0.5 in Prozent C=92 H=100 G=95
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-10-04)
¤
*© Formatika GbR, Deutschland