drivers/gpu/drm/amd/amdgpu/ta_secureDisplay_if.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/amdgpu/ta_secureDisplay_if.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/amdgpu/ta_secureDisplay_if.h
Extension
.h
Size
7261 bytes
Lines
176
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ta_securedisplay_send_roi_crc_input {
	/* Physical ID */
	uint32_t  phy_id;
};

struct ta_securedisplay_send_roi_crc_v2_input {
	/* Physical ID */
	uint32_t phy_id;
	/* Region of interest index */
	uint8_t  roi_idx;
};

/** @union ta_securedisplay_cmd_input
 *    Input buffer
 */
union ta_securedisplay_cmd_input {
	/* send ROI and CRC input buffer format */
	struct ta_securedisplay_send_roi_crc_input        send_roi_crc;
	/* send ROI and CRC input buffer format, v2 adds a ROI index */
	struct ta_securedisplay_send_roi_crc_v2_input     send_roi_crc_v2;
	uint32_t                                          reserved[4];
};

/**
 * Output structures
 */

/** @struct ta_securedisplay_query_ta_output
 *  Output buffer format for query TA whether TA is responding used only for validation purpose
 */
struct ta_securedisplay_query_ta_output {
	/* return value from TA when it is queried for validation purpose only */
	uint32_t  query_cmd_ret;
};

/** @struct ta_securedisplay_send_roi_crc_output
 *  Output buffer format for send ROI CRC command which will pass I2c buffer created inside TA
 *  and used to write to I2C used only for validation purpose
 */
struct ta_securedisplay_send_roi_crc_output {
	uint8_t  i2c_buf[TA_SECUREDISPLAY_I2C_BUFFER_SIZE];  /* I2C buffer */
	uint8_t  reserved;
};

struct ta_securedisplay_send_roi_crc_v2_output {
	uint8_t  i2c_buf[TA_SECUREDISPLAY_V2_I2C_BUFFER_SIZE];  /* I2C buffer */
};

/** @union ta_securedisplay_cmd_output
 *    Output buffer
 */
union ta_securedisplay_cmd_output {
	/* Query TA output buffer format used only for validation purpose*/
	struct ta_securedisplay_query_ta_output            query_ta;
	/* Send ROI CRC output buffer format used only for validation purpose */
	struct ta_securedisplay_send_roi_crc_output        send_roi_crc;
	/* Send ROI CRC output buffer format used only for validation purpose */
	struct ta_securedisplay_send_roi_crc_v2_output     send_roi_crc_v2;
	uint32_t                                           reserved[4];
};

/** @struct ta_securedisplay_cmd
*    Secure display command which is shared buffer memory
*/
struct ta_securedisplay_cmd {
    uint32_t                                           cmd_id;                         /**< +0  Bytes Command ID */
    enum ta_securedisplay_status                       status;                         /**< +4  Bytes Status code returned by the secure display TA */
    uint32_t                                           reserved[2];                    /**< +8  Bytes Reserved */
    union ta_securedisplay_cmd_input                   securedisplay_in_message;       /**< +16 Bytes Command input buffer */
    union ta_securedisplay_cmd_output                  securedisplay_out_message;      /**< +32 Bytes Command output buffer */
    /**@note Total 48 Bytes */
};

#endif   //_TA_SECUREDISPLAY_IF_H

Annotation

Implementation Notes