PDK API Guide for J721E
NF Interface

Introduction

Interface file for NF M2M FVID2 driver

Files

file  vhwa_m2mNf.h
 Defines the structures / control operations that could be used to configure / control NF M2M driver.
 

Data Structures

struct  Vhwa_M2mNfConfig
 Connfiguration parameters of NF. More...
 
struct  Vhwa_M2mNfCreatePrms
 Create Parameters for NF M2M Driver. More...
 
struct  Vhwa_M2mNfInitPrms
 Init Parameters for NF M2M Driver. More...
 
struct  Vhwa_M2mNfSl2AllocPrms
 Used for allocating SL2 memory. More...
 
struct  Vhwa_M2mNfPerf
 Structure for storing the performance numbers. More...
 
struct  Vhwa_M2mNfPsaSign
 Structure for storing PSA signatures. More...
 

Functions

int32_t Vhwa_m2mNfInit (Vhwa_M2mNfInitPrms *nfInitPrms)
 Initializes NF Init Parameters. More...
 
void Vhwa_m2mNfDeInit (void)
 DeInitializes NF Init Parameters. More...
 
int32_t Vhwa_m2mNfAllocSl2 (const Vhwa_M2mNfSl2AllocPrms *sl2allocPrms)
 Function to allocate Sl2 memory for the output buffers. More...
 
void Vhwa_m2mNfFreeSl2 (void)
 Function to free allocated SL2. More...
 
static void Vhwa_m2mNfInitPrmsInit (Vhwa_M2mNfInitPrms *ldcCfg)
 This function should be used to initialize variable of type Vhwa_M2mNfInitPrms. More...
 
static void Vhwa_M2mNfCreatePrmsInit (Vhwa_M2mNfCreatePrms *createArgs)
 This function should be used to initialize variable of type Vhwa_M2mNfCreatePrms. More...
 
static void Vhwa_M2mNfSl2AllocPrmsInit (Vhwa_M2mNfSl2AllocPrms *sl2Prms)
 This function should be used to initialize variable of type Vhwa_M2mNfSl2AllocPrms. More...
 
static void Vhwa_M2mNfConfigInit (Vhwa_M2mNfConfig *nfCfg)
 This function should be used to initialize variable of type Vhwa_M2mNfConfig. More...
 

Macros

#define VHWA_M2M_NF_DRV_INST_ID   (0U)
 
#define VHWA_M2M_NF_MAX_HANDLES   (4u)
 Max Number of handles supported by NF M2M Driver. More...
 
#define VHWA_M2M_NF_MIN_RD_BUFFER_DEPTH   (6U)
 Minimum supported depth value for read buffer in VHWA memory. More...
 
#define VHWA_M2M_NF_MIN_WR_BUFFER_DEPTH   (2U)
 Minimum supported depth value for write buffer in VHWA memory. More...
 
#define VHWA_M2M_NF_MAX_COMP   (2u)
 Maximum possible NF iteration for a simgle request (Luma + Chroma) More...
 
#define VHWA_NF_DEF_WIDTH   (1920U)
 Default width - Used to initialize configuration parameters. More...
 
#define VHWA_NF_DEF_HEIGHT   (1080U)
 Default Height - Used to initialize configuration parameters. More...
 

Ioctls for the NF memory to memory driver

Input/Output control MACRO's for NF memory to memory module

#define IOCTL_VHWA_M2M_NF_SET_PARAMS   (VHWA_IOCTL_M2M_NF_IOCTL_BASE)
 IOCTL for setting NF configuration. This IOCTL takes NF Configuration Nf_Config as input. More...
 
#define IOCTL_VHWA_M2M_NF_SET_FILTER_COEFF   (IOCTL_VHWA_M2M_NF_SET_PARAMS + 1U)
 IOCTL for setting the filter coefficients. More...
 
#define IOCTL_VHWA_M2M_NF_GET_PERFORMANCE
 IOCTL for getting module's performance numbers for the last frame submitted. More...
 
#define IOCTL_VHWA_M2M_NF_GET_PSA_SIGN
 IOCTL for getting LSE PSA Signature. More...
 
#define IOCTL_VHWA_M2M_NF_REGISTER_ERR_CB
 IOCTL for enabling error events and registering callbacks for the same. This IOCTL pointer to Nf_ErrEventParams as input. More...
 
#define IOCTL_VHWA_M2M_NF_SET_HTS_LIMIT
 IOCTL for enabling and setting HTS limiter. This is used to slowed down the HTS by introducing clock cycles between internal start signals. This IOCTL takes pointer to Vhwa_HtsLimiter as input. More...
 
#define IOCTL_VHWA_M2M_NF_SYNC_START
 IOCTL to sync start each module This IOCTL doesn't configure any register and only enable pipeline to start processing. More...
 

Macro Definition Documentation

◆ VHWA_M2M_NF_DRV_INST_ID

#define VHWA_M2M_NF_DRV_INST_ID   (0U)

< Instance ID for the NF M2m driver

◆ VHWA_M2M_NF_MAX_HANDLES

#define VHWA_M2M_NF_MAX_HANDLES   (4u)

Max Number of handles supported by NF M2M Driver.

◆ VHWA_M2M_NF_MIN_RD_BUFFER_DEPTH

#define VHWA_M2M_NF_MIN_RD_BUFFER_DEPTH   (6U)

Minimum supported depth value for read buffer in VHWA memory.

◆ VHWA_M2M_NF_MIN_WR_BUFFER_DEPTH

#define VHWA_M2M_NF_MIN_WR_BUFFER_DEPTH   (2U)

Minimum supported depth value for write buffer in VHWA memory.

◆ VHWA_M2M_NF_MAX_COMP

#define VHWA_M2M_NF_MAX_COMP   (2u)

Maximum possible NF iteration for a simgle request (Luma + Chroma)

◆ VHWA_NF_DEF_WIDTH

#define VHWA_NF_DEF_WIDTH   (1920U)

Default width - Used to initialize configuration parameters.

◆ VHWA_NF_DEF_HEIGHT

#define VHWA_NF_DEF_HEIGHT   (1080U)

Default Height - Used to initialize configuration parameters.

◆ IOCTL_VHWA_M2M_NF_SET_PARAMS

#define IOCTL_VHWA_M2M_NF_SET_PARAMS   (VHWA_IOCTL_M2M_NF_IOCTL_BASE)

IOCTL for setting NF configuration. This IOCTL takes NF Configuration Nf_Config as input.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_SET_FILTER_COEFF

#define IOCTL_VHWA_M2M_NF_SET_FILTER_COEFF   (IOCTL_VHWA_M2M_NF_SET_PARAMS + 1U)

IOCTL for setting the filter coefficients.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_GET_PERFORMANCE

#define IOCTL_VHWA_M2M_NF_GET_PERFORMANCE
Value:
( \
IOCTL_VHWA_M2M_NF_SET_FILTER_COEFF + 1U)

IOCTL for getting module's performance numbers for the last frame submitted.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_GET_PSA_SIGN

#define IOCTL_VHWA_M2M_NF_GET_PSA_SIGN
Value:
( \
IOCTL_VHWA_M2M_NF_GET_PERFORMANCE + 1U)

IOCTL for getting LSE PSA Signature.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_REGISTER_ERR_CB

#define IOCTL_VHWA_M2M_NF_REGISTER_ERR_CB
Value:
1U)
#define IOCTL_VHWA_M2M_NF_GET_PSA_SIGN
IOCTL for getting LSE PSA Signature.
Definition: vhwa_m2mNf.h:150

IOCTL for enabling error events and registering callbacks for the same. This IOCTL pointer to Nf_ErrEventParams as input.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_SET_HTS_LIMIT

#define IOCTL_VHWA_M2M_NF_SET_HTS_LIMIT
Value:
( \
IOCTL_VHWA_M2M_NF_REGISTER_ERR_CB + 1U)

IOCTL for enabling and setting HTS limiter. This is used to slowed down the HTS by introducing clock cycles between internal start signals. This IOCTL takes pointer to Vhwa_HtsLimiter as input.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_VHWA_M2M_NF_SYNC_START

#define IOCTL_VHWA_M2M_NF_SYNC_START
Value:
( \
IOCTL_VHWA_M2M_NF_SET_HTS_LIMIT + 1U)

IOCTL to sync start each module This IOCTL doesn't configure any register and only enable pipeline to start processing.

Returns
FVID2_SOK on success, else error code.

Function Documentation

◆ Vhwa_m2mNfInit()

int32_t Vhwa_m2mNfInit ( Vhwa_M2mNfInitPrms nfInitPrms)

Initializes NF Init Parameters.

Parameters
nfInitPrmsPointer to NF initialization structure Vhwa_M2mNfInitPrms. This parameter should not be 0.
Returns
Returns 0 on success else returns error value

◆ Vhwa_m2mNfDeInit()

void Vhwa_m2mNfDeInit ( void  )

DeInitializes NF Init Parameters.

◆ Vhwa_m2mNfAllocSl2()

int32_t Vhwa_m2mNfAllocSl2 ( const Vhwa_M2mNfSl2AllocPrms sl2allocPrms)

Function to allocate Sl2 memory for the output buffers.

Parameters
sl2allocPrmsPointer to a Vhwa_M2mNfSl2AllocPrms structure containing the SL2 allocation parameters
Returns
FVID2_SOK if successful, else suitable error code

◆ Vhwa_m2mNfFreeSl2()

void Vhwa_m2mNfFreeSl2 ( void  )

Function to free allocated SL2.

◆ Vhwa_m2mNfInitPrmsInit()

static void Vhwa_m2mNfInitPrmsInit ( Vhwa_M2mNfInitPrms ldcCfg)
inlinestatic

This function should be used to initialize variable of type Vhwa_M2mNfInitPrms.

Parameters
ldcCfgPointer to structure of type Vhwa_M2mNfInitPrms
Returns
None

◆ Vhwa_M2mNfCreatePrmsInit()

static void Vhwa_M2mNfCreatePrmsInit ( Vhwa_M2mNfCreatePrms createArgs)
inlinestatic

This function should be used to initialize variable of type Vhwa_M2mNfCreatePrms.

Parameters
createArgsPointer to structure of type Vhwa_M2mNfCreatePrms
Returns
None

◆ Vhwa_M2mNfSl2AllocPrmsInit()

static void Vhwa_M2mNfSl2AllocPrmsInit ( Vhwa_M2mNfSl2AllocPrms sl2Prms)
inlinestatic

This function should be used to initialize variable of type Vhwa_M2mNfSl2AllocPrms.

Parameters
sl2PrmsPointer to structure of type Vhwa_M2mNfSl2AllocPrms
Returns
None

◆ Vhwa_M2mNfConfigInit()

static void Vhwa_M2mNfConfigInit ( Vhwa_M2mNfConfig nfCfg)
inlinestatic

This function should be used to initialize variable of type Vhwa_M2mNfConfig.

Parameters
nfCfgPointer to structure of type Vhwa_M2mNfConfig
Returns
None