/***************************************************************************
 * 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
