Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
127
sdk/hal/prc.c
Normal file
127
sdk/hal/prc.c
Normal file
@@ -0,0 +1,127 @@
|
||||
#include "typesdef.h"
|
||||
#include "list.h"
|
||||
#include "errno.h"
|
||||
#include "dev.h"
|
||||
#include "devid.h"
|
||||
#include "hal/prc.h"
|
||||
|
||||
|
||||
|
||||
|
||||
int32 prc_set_width(struct prc_device *p_prc, uint32 width)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_WIDTH, width,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_suspend(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->suspend) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->suspend(p_prc);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_resume(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->resume) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->resume(p_prc);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int32 prc_set_yuv_mode(struct prc_device *p_prc, uint32 mode)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_YUV_MODE, mode,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_set_yaddr(struct prc_device *p_prc, uint32 addr)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_Y_ADDR, addr,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_set_uaddr(struct prc_device *p_prc, uint32 addr)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_U_ADDR, addr,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_set_vaddr(struct prc_device *p_prc, uint32 addr)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_V_ADDR, addr,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_set_src_addr(struct prc_device *p_prc, uint32 addr)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_SET_SRC_ADDR, addr,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
|
||||
int32 prc_first_start(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_FIRST_KICK, 0,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
|
||||
int32 prc_run(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->ioctl(p_prc,PRC_IOCTL_CMD_KICK, 0,0);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_init(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->init) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->init(p_prc);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_deinit(struct prc_device *p_prc)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->deinit) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->deinit(p_prc);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_request_irq(struct prc_device *p_prc, uint32 irq_flags, prc_irq_hdl irq_hdl, uint32 irq_data)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->request_irq) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->request_irq(p_prc, irq_flags, irq_hdl, irq_data);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
int32 prc_release_irq(struct prc_device *p_prc, uint32 irq_flags)
|
||||
{
|
||||
if (p_prc && ((const struct prc_hal_ops *)p_prc->dev.ops)->release_irq) {
|
||||
return ((const struct prc_hal_ops *)p_prc->dev.ops)->release_irq(p_prc, irq_flags);
|
||||
}
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user