/***************************************************************************
 * Copyright (c) 2005-2009, Broadcom Corporation.
 *
 *  Name: crystalhd_fw_if . h
 *
 *  Description:
 *		BCM70012 Firmware interface definitions.
 *
 *  HISTORY:
 *
 **********************************************************************
 * This file is part of the crystalhd device driver.
 *
 * This driver is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2 of the License.
 *
 * This driver 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this driver.  If not, see <http://www.gnu.org/licenses/>.
 **********************************************************************/

#ifndef _CRYSTALHD_FW_IF_H_
#define _CRYSTALHD_FW_IF_H_

/* TBD: Pull in only required defs into this file.. */

/* User Data Header */
struct user_data {
	struct user_data	*next;
	uint32_t		type;
	uint32_t		size;
};

/*------------------------------------------------------*
 *    MPEG Extension to the PPB			 *
 *------------------------------------------------------*/
struct ppb_mpeg {
	uint32_t		to_be_defined;
	uint32_t		valid;

	/* Always valid, defaults to picture size if no
	   sequence display extension in the stream. */
	uint32_t		display_horizontal_size;
	uint32_t		display_vertical_size;

	/* MPEG_VALID_PANSCAN
	   Offsets are a copy values from the MPEG stream. */
	uint32_t		offset_count;
	int32_t		horizontal_offset[3];
	int32_t		vertical_offset[3];

	/* MPEG_VALID_USERDATA
	   User data is in the form of a linked list. */
	int32_t		userDataSize;
	struct user_data	*userData;

};


/*------------------------------------------------------*
 *    VC1 Extension to the PPB			  *
 *------------------------------------------------------*/
struct ppb_vc1 {
	uint32_t		to_be_defined;
	uint32_t		valid;

	/* Always valid, defaults to picture size if no
	   sequence display extension in the stream. */
	uint32_t		display_horizontal_size;
	uint32_t		display_vertical_size;

	/* VC1 pan scan windows */
	uint32_t		num_panscan_windows;
	int32_t		ps_horiz_offset[4];
	int32_t		ps_vert_offset[4];
	int32_t		ps_width[4];
	int32_t		ps_height[4];

	/* VC1_VALID_USERDATA
	   User data is in the form of a linked list. */
	int32_t		userDataSize;
	struct user_data	*userData;

};

/*------------------------------------------------------*
 *    H.264 Extension to the PPB			*
 *------------------------------------------------------*/

/**
 * @brief Film grain SEI message.
 *
 * Content of the film grain SEI message.
 */

/* maximum number of model-values as for Thomson spec(standard says 5) */
#define MAX_FGT_MODEL_VALUE	 (3)

/* maximum number of intervals(as many as 256 intervals?) */
#define MAX_FGT_VALUE_INTERVAL	(256)

struct fgt_sei {
	struct fgt_sei *next;
	unsigned char model_values[3][MAX_FGT_VALUE_INTERVAL][MAX_FGT_MODEL_VALUE];
	unsigned char upper_bound[3][MAX_FGT_VALUE_INTERVAL];
	unsigned char lower_bound[3][MAX_FGT_VALUE_INTERVAL];

	unsigned char cancel_flag;	/* Cancel flag: 1 no film grain. */
	unsigned char model_id;	/* Model id. */

	/* +unused SE based on Thomson spec */
	unsigned char color_desc_flag;	/* Separate color descrition flag. */
	unsigned char bit_depth_luma;	/* Bit depth luma minus 8. */
	unsigned char bit_depth_chroma;	/* Bit depth chroma minus 8. */
	unsigned char full_range_flag;	/* Full range flag. */
	unsigned char color_primaries;	/* Color primaries. */
	unsigned char transfer_charact;	/* Transfer characteristics. */
	unsigned char matrix_coeff;		/*< Matrix coefficients. */
	/* -unused SE based on Thomson spec */

	unsigned char blending_mode_id;	/* Blending mode. */
	unsigned char log2_scale_factor;	/* Log2 scale factor (2-7). */
	unsigned char comp_flag[3];		/* Components [0,2] parameters present flag. */
	unsigned char num_intervals_minus1[3]; /* Number of intensity level intervals. */
	unsigned char num_model_values[3];	/* Number of model values. */
	uint16_t      repetition_period;	/* Repetition period (0-16384) */

};

struct ppb_h264 {
	/* 'valid' specifies which fields (or sets of
	 * fields) below are valid.  If the corresponding
	 * bit in 'valid' is NOT set then that field(s)
	 * is (are) not initialized. */
	uint32_t	valid;

	int32_t		poc_top;	/* POC for Top Field/Frame */
	int32_t		poc_bottom;	/* POC for Bottom Field    */
	uint32_t		idr_pic_id;

	/* H264_VALID_PANSCAN */
	uint32_t		pan_scan_count;
	int32_t		pan_scan_left[3];
	int32_t		pan_scan_right[3];
	int32_t		pan_scan_top[3];
	int32_t		pan_scan_bottom[3];

	/* H264_VALID_CT_TYPE */
	uint32_t		ct_type_count;
	uint32_t		ct_type[3];

	/* H264_VALID_SPS_CROP */
	int32_t		sps_crop_left;
	int32_t		sps_crop_right;
	int32_t		sps_crop_top;
	int32_t		sps_crop_bottom;

	/* H264_VALID_VUI */
	uint32_t		chroma_top;
	uint32_t		chroma_bottom;

	/* H264_VALID_USER */
	uint32_t		user_data_size;
	struct user_data	*user_data;

	/* H264 VALID FGT */
	struct fgt_sei	*pfgt;

};

struct ppb {
	/* Common fields. */
	uint32_t	picture_number;	/* Ordinal display number */
	uint32_t	video_buffer;	/* Video (picbuf) number */
	uint32_t	video_address;	/* Address of picbuf Y */
	uint32_t	video_address_uv; /* Address of picbuf UV */
	uint32_t	video_stripe;	/* Picbuf stripe */
	uint32_t	video_width;	/* Picbuf width */
	uint32_t	video_height;	/* Picbuf height */

	uint32_t	channel_id;	/* Decoder channel ID */
	uint32_t	status;		/* reserved */
	uint32_t	width;		/* pixels */
	uint32_t	height;		/* pixels */
	uint32_t	chroma_format;	/* see above */
	uint32_t	pulldown;	/* see above */
	uint32_t	flags;		/* see above */
	uint32_t	pts;		/* 32 LSBs of PTS */
	uint32_t	protocol;	/* protocolXXX (above) */

	uint32_t	frame_rate;	/* see above */
	uint32_t	matrix_coeff;	/* see above */
	uint32_t	aspect_ratio;	/* see above */
	uint32_t	colour_primaries; /* see above */
	uint32_t	transfer_char;	/* see above */
	uint32_t	pcr_offset;	/* 45kHz if PCR type; else 27MHz */
	uint32_t	n_drop;		/* Number of pictures to be dropped */

	uint32_t	custom_aspect_ratio_width_height;
	/* upper 16-bits is Y and lower 16-bits is X */

	uint32_t	picture_tag;	/* Indexing tag from BUD packets */
	uint32_t	picture_done_payload;
	uint32_t	picture_meta_payload;
	uint32_t	reserved[1];

	/* Protocol-specific extensions. */
	union {
		struct ppb_h264	h264;
		struct ppb_mpeg	mpeg;
		struct ppb_vc1	 vc1;
	} other;

};

struct c011_pib {
	uint32_t	bFormatChange;
	uint32_t	resolution;
	uint32_t	channelId;
	uint32_t	ppbPtr;
	int32_t	ptsStcOffset;
	uint32_t	zeroPanscanValid;
	uint32_t	dramOutBufAddr;
	uint32_t	yComponent;
	struct ppb	ppb;

};

struct dec_rsp_channel_start_video {
	uint32_t	command;
	uint32_t	sequence;
	uint32_t	status;
	uint32_t	picBuf;
	uint32_t	picRelBuf;
	uint32_t	picInfoDeliveryQ;
	uint32_t	picInfoReleaseQ;
	uint32_t	channelStatus;
	uint32_t	userDataDeliveryQ;
	uint32_t	userDataReleaseQ;
	uint32_t	transportStreamCaptureAddr;
	uint32_t	asyncEventQ;

};

#define eCMD_C011_CMD_BASE	  (0x73763000)

/* host commands */
enum  c011_ts_cmd {
	eCMD_TS_GET_NEXT_PIC	= 0x7376F100, /* debug get next picture */
	eCMD_TS_GET_LAST_PIC	= 0x7376F102, /* debug get last pic status */
	eCMD_TS_READ_WRITE_MEM	= 0x7376F104, /* debug read write memory */

	/* New API commands */
	/* General commands */
	eCMD_C011_INIT		= eCMD_C011_CMD_BASE + 0x01,
	eCMD_C011_RESET		= eCMD_C011_CMD_BASE + 0x02,
	eCMD_C011_SELF_TEST		= eCMD_C011_CMD_BASE + 0x03,
	eCMD_C011_GET_VERSION	= eCMD_C011_CMD_BASE + 0x04,
	eCMD_C011_GPIO		= eCMD_C011_CMD_BASE + 0x05,
	eCMD_C011_DEBUG_SETUP	= eCMD_C011_CMD_BASE + 0x06,

	/* Decoding commands */
	eCMD_C011_DEC_CHAN_OPEN			= eCMD_C011_CMD_BASE + 0x100,
	eCMD_C011_DEC_CHAN_CLOSE			= eCMD_C011_CMD_BASE + 0x101,
	eCMD_C011_DEC_CHAN_ACTIVATE			= eCMD_C011_CMD_BASE + 0x102,
	eCMD_C011_DEC_CHAN_STATUS			= eCMD_C011_CMD_BASE + 0x103,
	eCMD_C011_DEC_CHAN_FLUSH			= eCMD_C011_CMD_BASE + 0x104,
	eCMD_C011_DEC_CHAN_TRICK_PLAY		= eCMD_C011_CMD_BASE + 0x105,
	eCMD_C011_DEC_CHAN_TS_PIDS			= eCMD_C011_CMD_BASE + 0x106,
	eCMD_C011_DEC_CHAN_PS_STREAM_ID		= eCMD_C011_CMD_BASE + 0x107,
	eCMD_C011_DEC_CHAN_INPUT_PARAMS		= eCMD_C011_CMD_BASE + 0x108,
	eCMD_C011_DEC_CHAN_VIDEO_OUTPUT		= eCMD_C011_CMD_BASE + 0x109,
	eCMD_C011_DEC_CHAN_OUTPUT_FORMAT		= eCMD_C011_CMD_BASE + 0x10A,
	eCMD_C011_DEC_CHAN_SCALING_FILTERS		= eCMD_C011_CMD_BASE + 0x10B,
	eCMD_C011_DEC_CHAN_OSD_MODE			= eCMD_C011_CMD_BASE + 0x10D,
	eCMD_C011_DEC_CHAN_DROP			= eCMD_C011_CMD_BASE + 0x10E,
	eCMD_C011_DEC_CHAN_RELEASE			= eCMD_C011_CMD_BASE + 0x10F,
	eCMD_C011_DEC_CHAN_STREAM_SETTINGS		= eCMD_C011_CMD_BASE + 0x110,
	eCMD_C011_DEC_CHAN_PAUSE_OUTPUT		= eCMD_C011_CMD_BASE + 0x111,
	eCMD_C011_DEC_CHAN_CHANGE			= eCMD_C011_CMD_BASE + 0x112,
	eCMD_C011_DEC_CHAN_SET_STC			= eCMD_C011_CMD_BASE + 0x113,
	eCMD_C011_DEC_CHAN_SET_PTS			= eCMD_C011_CMD_BASE + 0x114,
	eCMD_C011_DEC_CHAN_CC_MODE			= eCMD_C011_CMD_BASE + 0x115,
	eCMD_C011_DEC_CREATE_AUDIO_CONTEXT		= eCMD_C011_CMD_BASE + 0x116,
	eCMD_C011_DEC_COPY_AUDIO_CONTEXT		= eCMD_C011_CMD_BASE + 0x117,
	eCMD_C011_DEC_DELETE_AUDIO_CONTEXT		= eCMD_C011_CMD_BASE + 0x118,
	eCMD_C011_DEC_CHAN_SET_DECYPTION		= eCMD_C011_CMD_BASE + 0x119,
	eCMD_C011_DEC_CHAN_START_VIDEO		= eCMD_C011_CMD_BASE + 0x11A,
	eCMD_C011_DEC_CHAN_STOP_VIDEO		= eCMD_C011_CMD_BASE + 0x11B,
	eCMD_C011_DEC_CHAN_PIC_CAPTURE		= eCMD_C011_CMD_BASE + 0x11C,
	eCMD_C011_DEC_CHAN_PAUSE			= eCMD_C011_CMD_BASE + 0x11D,
	eCMD_C011_DEC_CHAN_PAUSE_STATE		= eCMD_C011_CMD_BASE + 0x11E,
	eCMD_C011_DEC_CHAN_SET_SLOWM_RATE		= eCMD_C011_CMD_BASE + 0x11F,
	eCMD_C011_DEC_CHAN_GET_SLOWM_RATE		= eCMD_C011_CMD_BASE + 0x120,
	eCMD_C011_DEC_CHAN_SET_FF_RATE		= eCMD_C011_CMD_BASE + 0x121,
	eCMD_C011_DEC_CHAN_GET_FF_RATE		= eCMD_C011_CMD_BASE + 0x122,
	eCMD_C011_DEC_CHAN_FRAME_ADVANCE		= eCMD_C011_CMD_BASE + 0x123,
	eCMD_C011_DEC_CHAN_SET_SKIP_PIC_MODE	= eCMD_C011_CMD_BASE + 0x124,
	eCMD_C011_DEC_CHAN_GET_SKIP_PIC_MODE	= eCMD_C011_CMD_BASE + 0x125,
	eCMD_C011_DEC_CHAN_FILL_PIC_BUF		= eCMD_C011_CMD_BASE + 0x126,
	eCMD_C011_DEC_CHAN_SET_CONTINUITY_CHECK	= eCMD_C011_CMD_BASE + 0x127,
	eCMD_C011_DEC_CHAN_GET_CONTINUITY_CHECK	= eCMD_C011_CMD_BASE + 0x128,
	eCMD_C011_DEC_CHAN_SET_BRCM_TRICK_MODE	= eCMD_C011_CMD_BASE + 0x129,
	eCMD_C011_DEC_CHAN_GET_BRCM_TRICK_MODE	= eCMD_C011_CMD_BASE + 0x12A,
	eCMD_C011_DEC_CHAN_REVERSE_FIELD_STATUS	= eCMD_C011_CMD_BASE + 0x12B,
	eCMD_C011_DEC_CHAN_I_PICTURE_FOUND		= eCMD_C011_CMD_BASE + 0x12C,
	eCMD_C011_DEC_CHAN_SET_PARAMETER		= eCMD_C011_CMD_BASE + 0x12D,
	eCMD_C011_DEC_CHAN_SET_USER_DATA_MODE	= eCMD_C011_CMD_BASE + 0x12E,
	eCMD_C011_DEC_CHAN_SET_PAUSE_DISPLAY_MODE	= eCMD_C011_CMD_BASE + 0x12F,
	eCMD_C011_DEC_CHAN_SET_SLOW_DISPLAY_MODE	= eCMD_C011_CMD_BASE + 0x130,
	eCMD_C011_DEC_CHAN_SET_FF_DISPLAY_MODE	= eCMD_C011_CMD_BASE + 0x131,
	eCMD_C011_DEC_CHAN_SET_DISPLAY_TIMING_MODE	= eCMD_C011_CMD_BASE + 0x132,
	eCMD_C011_DEC_CHAN_SET_DISPLAY_MODE		= eCMD_C011_CMD_BASE + 0x133,
	eCMD_C011_DEC_CHAN_GET_DISPLAY_MODE		= eCMD_C011_CMD_BASE + 0x134,
	eCMD_C011_DEC_CHAN_SET_REVERSE_FIELD	= eCMD_C011_CMD_BASE + 0x135,
	eCMD_C011_DEC_CHAN_STREAM_OPEN		= eCMD_C011_CMD_BASE + 0x136,
	eCMD_C011_DEC_CHAN_SET_PCR_PID		= eCMD_C011_CMD_BASE + 0x137,
	eCMD_C011_DEC_CHAN_SET_VID_PID		= eCMD_C011_CMD_BASE + 0x138,
	eCMD_C011_DEC_CHAN_SET_PAN_SCAN_MODE	= eCMD_C011_CMD_BASE + 0x139,
	eCMD_C011_DEC_CHAN_START_DISPLAY_AT_PTS	= eCMD_C011_CMD_BASE + 0x140,
	eCMD_C011_DEC_CHAN_STOP_DISPLAY_AT_PTS	= eCMD_C011_CMD_BASE + 0x141,
	eCMD_C011_DEC_CHAN_SET_DISPLAY_ORDER	= eCMD_C011_CMD_BASE + 0x142,
	eCMD_C011_DEC_CHAN_GET_DISPLAY_ORDER	= eCMD_C011_CMD_BASE + 0x143,
	eCMD_C011_DEC_CHAN_SET_HOST_TRICK_MODE	= eCMD_C011_CMD_BASE + 0x144,
	eCMD_C011_DEC_CHAN_SET_OPERATION_MODE	= eCMD_C011_CMD_BASE + 0x145,
	eCMD_C011_DEC_CHAN_DISPLAY_PAUSE_UNTO_PTS	= eCMD_C011_CMD_BASE + 0x146,
	eCMD_C011_DEC_CHAN_SET_PTS_STC_DIFF_THRESHOLD = eCMD_C011_CMD_BASE + 0x147,
	eCMD_C011_DEC_CHAN_SEND_COMPRESSED_BUF	= eCMD_C011_CMD_BASE + 0x148,
	eCMD_C011_DEC_CHAN_SET_CLIPPING		= eCMD_C011_CMD_BASE + 0x149,
	eCMD_C011_DEC_CHAN_SET_PARAMETERS_FOR_HARD_RESET_INTERRUPT_TO_HOST
		= eCMD_C011_CMD_BASE + 0x150,

	/* Decoder RevD commands */
	eCMD_C011_DEC_CHAN_SET_CSC	= eCMD_C011_CMD_BASE + 0x180, /* color space conversion */
	eCMD_C011_DEC_CHAN_SET_RANGE_REMAP	= eCMD_C011_CMD_BASE + 0x181,
	eCMD_C011_DEC_CHAN_SET_FGT		= eCMD_C011_CMD_BASE + 0x182,
	/* Note: 0x183 not implemented yet in Rev D main */
	eCMD_C011_DEC_CHAN_SET_LASTPICTURE_PADDING = eCMD_C011_CMD_BASE + 0x183,

	/* Decoder 7412 commands (7412-only) */
	eCMD_C011_DEC_CHAN_SET_CONTENT_KEY	= eCMD_C011_CMD_BASE + 0x190,
	eCMD_C011_DEC_CHAN_SET_SESSION_KEY	= eCMD_C011_CMD_BASE + 0x191,
	eCMD_C011_DEC_CHAN_FMT_CHANGE_ACK	= eCMD_C011_CMD_BASE + 0x192,

	eCMD_C011_DEC_CHAN_CUSTOM_VIDOUT    = eCMD_C011_CMD_BASE + 0x1FF,

	/* Encoding commands */
	eCMD_C011_ENC_CHAN_OPEN		= eCMD_C011_CMD_BASE + 0x200,
	eCMD_C011_ENC_CHAN_CLOSE		= eCMD_C011_CMD_BASE + 0x201,
	eCMD_C011_ENC_CHAN_ACTIVATE		= eCMD_C011_CMD_BASE + 0x202,
	eCMD_C011_ENC_CHAN_CONTROL		= eCMD_C011_CMD_BASE + 0x203,
	eCMD_C011_ENC_CHAN_STATISTICS	= eCMD_C011_CMD_BASE + 0x204,

	eNOTIFY_C011_ENC_CHAN_EVENT		= eCMD_C011_CMD_BASE + 0x210,

};

#endif
