blob: 90ac5cf07f798c38665189b05aacb9c42825204b [file] [log] [blame]
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_JPEG_CONTEXT_H_
#define _CAM_JPEG_CONTEXT_H_
#include <uapi/media/cam_jpeg.h>
#include "cam_context.h"
#include "cam_jpeg_hw_mgr_intf.h"
#define CAM_JPEG_HW_EVENT_MAX 20
/**
* struct cam_jpeg_context - Jpeg context
* @base: Base jpeg cam context object
* @req_base: Common request structure
*/
struct cam_jpeg_context {
struct cam_context *base;
struct cam_ctx_request req_base[CAM_CTX_REQ_MAX];
};
/* cam jpeg context irq handling function type */
typedef int (*cam_jpeg_hw_event_cb_func)(
struct cam_jpeg_context *ctx_jpeg,
void *evt_data);
/**
* struct cam_jpeg_ctx_irq_ops - Function table for handling IRQ callbacks
*
* @irq_ops: Array of handle function pointers.
*
*/
struct cam_jpeg_ctx_irq_ops {
cam_jpeg_hw_event_cb_func irq_ops[CAM_JPEG_HW_EVENT_MAX];
};
/**
* cam_jpeg_context_init()
*
* @brief: Initialization function for the JPEG context
*
* @ctx: JPEG context obj to be initialized
* @ctx_base: Context base from cam_context
* @hw_intf: JPEG hw manager interface
*
*/
int cam_jpeg_context_init(struct cam_jpeg_context *ctx,
struct cam_context *ctx_base,
struct cam_hw_mgr_intf *hw_intf);
/**
* cam_jpeg_context_deinit()
*
* @brief: Deinitialize function for the JPEG context
*
* @ctx: JPEG context obj to be deinitialized
*
*/
int cam_jpeg_context_deinit(struct cam_jpeg_context *ctx);
#endif /* __CAM_JPEG_CONTEXT_H__ */