include: linux: Update rkisp1 header

Refresh the RkISP1 user-space header to match the latest state in the
media-tree [1]. This requires update of symbol names in the RkISP1 IPA
but there is no functional change.

Unfortunately the upstream header has a few problems that needs to be
fixed before it can be used.

1. The SPDX header does not satisfy the Linux scripts/headers_install.sh
   so the installation step have to be done manually (dropping _UAPI
   prefix from header include guard). Issue is reported upstream.

2. The BIT() macro is used in the header but unfortunately this macro
   is not accessible in user-space headers. Fix this by reverting back
   to open code setting the bit without macro. Fix submitted upstream
   and acked by maintainer.

1. d7a81a5b07313535 ("media: staging: rkisp1: uapi: remove __packed")
2. [PATCH v2] staging: rkisp1: uapi: Do not use BIT() macro

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Niklas Söderlund 2020-09-28 17:15:47 +02:00
parent 3baedef8ce
commit bd542ae775
2 changed files with 423 additions and 351 deletions

File diff suppressed because it is too large Load diff

View file

@ -50,7 +50,7 @@ public:
void processEvent(const IPAOperationData &event) override; void processEvent(const IPAOperationData &event) override;
private: private:
void queueRequest(unsigned int frame, rkisp1_isp_params_cfg *params, void queueRequest(unsigned int frame, rkisp1_params_cfg *params,
const ControlList &controls); const ControlList &controls);
void updateStatistics(unsigned int frame, void updateStatistics(unsigned int frame,
const rkisp1_stat_buffer *stats); const rkisp1_stat_buffer *stats);
@ -176,8 +176,8 @@ void IPARkISP1::processEvent(const IPAOperationData &event)
unsigned int frame = event.data[0]; unsigned int frame = event.data[0];
unsigned int bufferId = event.data[1]; unsigned int bufferId = event.data[1];
rkisp1_isp_params_cfg *params = rkisp1_params_cfg *params =
static_cast<rkisp1_isp_params_cfg *>(buffersMemory_[bufferId]); static_cast<rkisp1_params_cfg *>(buffersMemory_[bufferId]);
queueRequest(frame, params, event.controls[0]); queueRequest(frame, params, event.controls[0]);
break; break;
@ -188,7 +188,7 @@ void IPARkISP1::processEvent(const IPAOperationData &event)
} }
} }
void IPARkISP1::queueRequest(unsigned int frame, rkisp1_isp_params_cfg *params, void IPARkISP1::queueRequest(unsigned int frame, rkisp1_params_cfg *params,
const ControlList &controls) const ControlList &controls)
{ {
/* Prepare parameters buffer. */ /* Prepare parameters buffer. */
@ -198,9 +198,9 @@ void IPARkISP1::queueRequest(unsigned int frame, rkisp1_isp_params_cfg *params,
if (controls.contains(controls::AeEnable)) { if (controls.contains(controls::AeEnable)) {
autoExposure_ = controls.get(controls::AeEnable); autoExposure_ = controls.get(controls::AeEnable);
if (autoExposure_) if (autoExposure_)
params->module_ens = CIFISP_MODULE_AEC; params->module_ens = RKISP1_CIF_ISP_MODULE_AEC;
params->module_en_update = CIFISP_MODULE_AEC; params->module_en_update = RKISP1_CIF_ISP_MODULE_AEC;
} }
IPAOperationData op; IPAOperationData op;
@ -212,17 +212,17 @@ void IPARkISP1::queueRequest(unsigned int frame, rkisp1_isp_params_cfg *params,
void IPARkISP1::updateStatistics(unsigned int frame, void IPARkISP1::updateStatistics(unsigned int frame,
const rkisp1_stat_buffer *stats) const rkisp1_stat_buffer *stats)
{ {
const cifisp_stat *params = &stats->params; const rkisp1_cif_isp_stat *params = &stats->params;
unsigned int aeState = 0; unsigned int aeState = 0;
if (stats->meas_type & CIFISP_STAT_AUTOEXP) { if (stats->meas_type & RKISP1_CIF_ISP_STAT_AUTOEXP) {
const cifisp_ae_stat *ae = &params->ae; const rkisp1_cif_isp_ae_stat *ae = &params->ae;
const unsigned int target = 60; const unsigned int target = 60;
unsigned int value = 0; unsigned int value = 0;
unsigned int num = 0; unsigned int num = 0;
for (int i = 0; i < CIFISP_AE_MEAN_MAX; i++) { for (int i = 0; i < RKISP1_CIF_ISP_AE_MEAN_MAX; i++) {
if (ae->exp_mean[i] <= 15) if (ae->exp_mean[i] <= 15)
continue; continue;