summaryrefslogtreecommitdiff
path: root/aic/ipu3_isp_pipe.h
blob: 95540ab22e39334a7aaed8b8b849beace8667227 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* SPDX-License-Identifier: Apache-2.0 */
/*
 * IPU3ISPPipe: Derived class from ISPPipe storing the AIC config
 */

#ifndef IPU3ISPPIPE_H
#define IPU3ISPPIPE_H

/* Included first to bring in our type wrapper */
#include "kbl_aic.h"

#include "IPU3AICCommon.h"
#include "Pipe.h"

namespace libcamera::ipa::ipu3::aic {

#define NUM_ISP_PIPES 1

typedef enum AicMode {
	AIC_MODE_STILL = 0,
	AIC_MODE_VIDEO,
	AIC_MODE_MAX,
} AicMode;

class IPU3ISPPipe : public ISPPipe
{
public:
	IPU3ISPPipe();

public:
	// This function configures the HW/FW pipe via CSS interface
	virtual void SetPipeConfig(const aic_output_t pipe_config);

	virtual pipe_ver GetPipeVer() { return Czero; }

	virtual const ia_aiq_rgbs_grid *GetAWBStats();
	virtual const ia_aiq_af_grid *GetAFStats();
	virtual const ia_aiq_histogram *GetAEStats();
	virtual aic_config *GetAicConfig();

	virtual void dump();

private:
	aic_output_t AicOutput;

	aic_config AicConfig; /* Config to driver */
};

} /* namespace libcamera::ipa::ipu3::aic */

#endif /* IPU3ISPPIPE_H */