| .. | .. |
|---|
| 4 | 4 | #ifndef _RKISPP_PARAMS_H |
|---|
| 5 | 5 | #define _RKISPP_PARAMS_H |
|---|
| 6 | 6 | |
|---|
| 7 | | -#include <linux/rkispp-config.h> |
|---|
| 7 | +#include <linux/fec-config.h> |
|---|
| 8 | +#include <linux/rk-ispp-config.h> |
|---|
| 8 | 9 | #include "common.h" |
|---|
| 9 | 10 | |
|---|
| 10 | 11 | enum rkispp_paramvdev_id { |
|---|
| .. | .. |
|---|
| 13 | 14 | PARAM_VDEV_FEC, |
|---|
| 14 | 15 | PARAM_VDEV_MAX |
|---|
| 15 | 16 | }; |
|---|
| 17 | + |
|---|
| 18 | +#define ISPP_PACK_4BYTE(a, b, c, d) \ |
|---|
| 19 | + (((a) & 0xFF) << 0 | ((b) & 0xFF) << 8 | \ |
|---|
| 20 | + ((c) & 0xFF) << 16 | ((d) & 0xFF) << 24) |
|---|
| 21 | + |
|---|
| 22 | +#define ISPP_PACK_4BIT(a, b, c, d, e, f, g, h) \ |
|---|
| 23 | + (((a) & 0xf) << 0 | ((b) & 0xf) << 4 | \ |
|---|
| 24 | + ((c) & 0xf) << 8 | ((d) & 0xf) << 12 | \ |
|---|
| 25 | + ((e) & 0xf) << 16 | ((f) & 0xf) << 20 | \ |
|---|
| 26 | + ((g) & 0xf) << 24 | ((h) & 0xf) << 28) |
|---|
| 27 | + |
|---|
| 28 | +#define ISPP_PACK_4BYTE(a, b, c, d) \ |
|---|
| 29 | + (((a) & 0xFF) << 0 | ((b) & 0xFF) << 8 | \ |
|---|
| 30 | + ((c) & 0xFF) << 16 | ((d) & 0xFF) << 24) |
|---|
| 31 | + |
|---|
| 32 | +#define ISPP_PACK_2SHORT(a, b) \ |
|---|
| 33 | + (((a) & 0xFFFF) << 0 | ((b) & 0xFFFF) << 16) |
|---|
| 34 | + |
|---|
| 35 | +#define ISPP_NOBIG_OVERFLOW_SIZE (2560 * 1440) |
|---|
| 16 | 36 | |
|---|
| 17 | 37 | /* rkispp parameters device |
|---|
| 18 | 38 | * config_lock: lock to protect config |
|---|
| .. | .. |
|---|
| 23 | 43 | struct rkispp_params_vdev { |
|---|
| 24 | 44 | struct rkispp_vdev_node vnode; |
|---|
| 25 | 45 | struct rkispp_device *dev; |
|---|
| 46 | + struct rkispp_params_ops *params_ops; |
|---|
| 26 | 47 | |
|---|
| 27 | 48 | spinlock_t config_lock; |
|---|
| 28 | 49 | struct list_head params; |
|---|
| .. | .. |
|---|
| 39 | 60 | enum rkispp_paramvdev_id vdev_id; |
|---|
| 40 | 61 | }; |
|---|
| 41 | 62 | |
|---|
| 63 | +struct rkispp_params_ops { |
|---|
| 64 | + void (*rkispp_params_cfg)(struct rkispp_params_vdev *params_vdev, u32 frame_id); |
|---|
| 65 | + void (*rkispp_params_vb2_buf_queue)(struct vb2_buffer *vb); |
|---|
| 66 | +}; |
|---|
| 67 | + |
|---|
| 42 | 68 | int rkispp_register_params_vdevs(struct rkispp_device *dev); |
|---|
| 43 | 69 | void rkispp_unregister_params_vdevs(struct rkispp_device *dev); |
|---|
| 44 | | -void rkispp_params_cfg(struct rkispp_params_vdev *params_vdev, u32 frame_id); |
|---|
| 45 | 70 | void rkispp_params_get_fecbuf_inf(struct rkispp_params_vdev *params_vdev, |
|---|
| 46 | 71 | struct rkispp_fecbuf_info *fecbuf); |
|---|
| 47 | 72 | void rkispp_params_set_fecbuf_size(struct rkispp_params_vdev *params_vdev, |
|---|
| 48 | 73 | struct rkispp_fecbuf_size *fecsize); |
|---|
| 74 | + |
|---|
| 49 | 75 | #endif |
|---|