|
@@ -31,21 +31,36 @@ typedef void (*ipi_handler_t) (void *data,
|
|
|
* enum ipi_id - the id of inter-processor interrupt
|
|
|
*
|
|
|
* @IPI_VPU_INIT: The interrupt from vpu is to notfiy kernel
|
|
|
- VPU initialization completed.
|
|
|
- IPI_VPU_INIT is sent from VPU when firmware is
|
|
|
- loaded. AP doesn't need to send IPI_VPU_INIT
|
|
|
- command to VPU.
|
|
|
- For other IPI below, AP should send the request
|
|
|
- to VPU to trigger the interrupt.
|
|
|
+ * VPU initialization completed.
|
|
|
+ * IPI_VPU_INIT is sent from VPU when firmware is
|
|
|
+ * loaded. AP doesn't need to send IPI_VPU_INIT
|
|
|
+ * command to VPU.
|
|
|
+ * For other IPI below, AP should send the request
|
|
|
+ * to VPU to trigger the interrupt.
|
|
|
+ * @IPI_VDEC_H264: The interrupt from vpu is to notify kernel to
|
|
|
+ * handle H264 vidoe decoder job, and vice versa.
|
|
|
+ * Decode output format is always MT21 no matter what
|
|
|
+ * the input format is.
|
|
|
+ * @IPI_VDEC_VP8: The interrupt from is to notify kernel to
|
|
|
+ * handle VP8 video decoder job, and vice versa.
|
|
|
+ * Decode output format is always MT21 no matter what
|
|
|
+ * the input format is.
|
|
|
+ * @IPI_VDEC_VP9: The interrupt from vpu is to notify kernel to
|
|
|
+ * handle VP9 video decoder job, and vice versa.
|
|
|
+ * Decode output format is always MT21 no matter what
|
|
|
+ * the input format is.
|
|
|
* @IPI_VENC_H264: The interrupt from vpu is to notify kernel to
|
|
|
- handle H264 video encoder job, and vice versa.
|
|
|
+ * handle H264 video encoder job, and vice versa.
|
|
|
* @IPI_VENC_VP8: The interrupt fro vpu is to notify kernel to
|
|
|
- handle VP8 video encoder job,, and vice versa.
|
|
|
+ * handle VP8 video encoder job,, and vice versa.
|
|
|
* @IPI_MAX: The maximum IPI number
|
|
|
*/
|
|
|
|
|
|
enum ipi_id {
|
|
|
IPI_VPU_INIT = 0,
|
|
|
+ IPI_VDEC_H264,
|
|
|
+ IPI_VDEC_VP8,
|
|
|
+ IPI_VDEC_VP9,
|
|
|
IPI_VENC_H264,
|
|
|
IPI_VENC_VP8,
|
|
|
IPI_MAX,
|
|
@@ -55,10 +70,12 @@ enum ipi_id {
|
|
|
* enum rst_id - reset id to register reset function for VPU watchdog timeout
|
|
|
*
|
|
|
* @VPU_RST_ENC: encoder reset id
|
|
|
+ * @VPU_RST_DEC: decoder reset id
|
|
|
* @VPU_RST_MAX: maximum reset id
|
|
|
*/
|
|
|
enum rst_id {
|
|
|
VPU_RST_ENC,
|
|
|
+ VPU_RST_DEC,
|
|
|
VPU_RST_MAX,
|
|
|
};
|
|
|
|
|
@@ -125,6 +142,16 @@ struct platform_device *vpu_get_plat_device(struct platform_device *pdev);
|
|
|
int vpu_wdt_reg_handler(struct platform_device *pdev,
|
|
|
void vpu_wdt_reset_func(void *),
|
|
|
void *priv, enum rst_id id);
|
|
|
+
|
|
|
+/**
|
|
|
+ * vpu_get_vdec_hw_capa - get video decoder hardware capability
|
|
|
+ *
|
|
|
+ * @pdev: VPU platform device
|
|
|
+ *
|
|
|
+ * Return: video decoder hardware capability
|
|
|
+ **/
|
|
|
+unsigned int vpu_get_vdec_hw_capa(struct platform_device *pdev);
|
|
|
+
|
|
|
/**
|
|
|
* vpu_get_venc_hw_capa - get video encoder hardware capability
|
|
|
*
|