aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/generic_serial.c
Commit message (Expand)AuthorAge
* tty: Remove lots of NULL checksAlan Cox2008-10-13
* gs: use tty_portAlan Cox2008-07-20
* drivers/char: replace remaining __FUNCTION__ occurrencesHarvey Harrison2008-04-30
* char: switch gs, cyclades and esp to return int for put_charAlan Cox2008-04-30
* tty/serial: lay the foundations for the next set of reworksAlan Cox2008-04-30
* drivers: Remove unnecessary inclusions of asm/semaphore.hMatthew Wilcox2008-04-18
* genericserial: remove bogus optimisation check and dead code pathsAlan Cox2007-07-16
* [PATCH] generic_serial: fix decoding of baud rateDaniel Drake2007-03-27
* [PATCH] Char: tty_wakeup cleanupJiri Slaby2007-02-11
* [PATCH] tty: switch to ktermiosAlan Cox2006-12-08
* [PATCH] char: kill unneeded memsetsJiri Slaby2006-10-04
* [PATCH] generic_serial: remove private decoding of baud rate bitsAlan Cox2006-09-29
* [PATCH] sem2mutex: serial ->port_write_mutexIngo Molnar2006-03-23
* [PATCH] remove unused tmp_buf_sem'sAdrian Bunk2006-01-14
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-16
='n150' href='#n150'>150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
Decoder firmware API description
================================

Note: this API is part of the decoder firmware, so it's cx23415 only.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_PING_FW
Enum 	0/0x00
Description
	This API call does nothing. It may be used to check if the firmware
	is responding.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_START_PLAYBACK
Enum 	1/0x01
Description
	Begin or resume playback.
Param[0]
	0 based frame number in GOP to begin playback from.
Param[1]
	Specifies the number of muted audio frames to play before normal
	audio resumes.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_STOP_PLAYBACK
Enum 	2/0x02
Description
	Ends playback and clears all decoder buffers. If PTS is not zero,
	playback stops at specified PTS.
Param[0]
	Display 0=last frame, 1=black
	Note: this takes effect immediately, so if you want to wait for a PTS,
	then use '0', otherwise the screen goes to black at once.
	You can call this later (even if there is no playback) with a 1 value
	to set the screen to black.
Param[1]
	PTS low
Param[2]
	PTS high

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_PLAYBACK_SPEED
Enum 	3/0x03
Description
	Playback stream at speed other than normal. There are two modes of
	operation:
	    Smooth: host transfers entire stream and firmware drops unused
		    frames.
	    Coarse: host drops frames based on indexing as required to achieve
		    desired speed.
Param[0]
	Bitmap:
	    0:7  0 normal
		 1 fast only "1.5 times"
		 n nX fast, 1/nX slow
	    30   Framedrop:
		     '0' during 1.5 times play, every other B frame is dropped
		     '1' during 1.5 times play, stream is unchanged (bitrate
			 must not exceed 8mbps)
	    31   Speed:
		     '0' slow
		     '1' fast
	Note: n seems to be limited to 2. Anything higher does not result in
	faster playback. Instead the host should start dropping frames.
Param[1]
	Direction: 0=forward, 1=reverse
	Note: to make reverse playback work you have to write full GOPs in
	reverse order.
Param[2]
	Picture mask:
	    1=I frames
	    3=I, P frames
	    7=I, P, B frames
Param[3]
	B frames per GOP (for reverse play only)
	Note: apparently this does not work. For reverse play I can only make it
	work by selecting I or I and P frames in the Picture mask.
Param[4]
	Mute audio: 0=disable, 1=enable
Param[5]
	Display 0=frame, 1=field
Param[6]
	Specifies the number of muted audio frames to play before normal audio
	resumes.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_STEP_VIDEO
Enum 	5/0x05
Description
	Each call to this API steps the playback to the next unit defined below
	in the current playback direction.
Param[0]
	0=frame, 1=top field, 2=bottom field

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_DMA_BLOCK_SIZE
Enum 	8/0x08
Description
	Set DMA transfer block size. Counterpart to API 0xC9
Param[0]
	DMA transfer block size in bytes. A different size may be specified
	when issuing the DMA transfer command.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_GET_XFER_INFO
Enum 	9/0x09
Description
	This API call may be used to detect an end of stream condition.
Result[0]
	Stream type
Result[1]
	Address offset
Result[2]
	Maximum bytes to transfer
Result[3]
	Buffer fullness

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_GET_DMA_STATUS
Enum 	10/0x0A
Description
	Status of the last DMA transfer
Result[0]
	Bit 1 set means transfer complete
	Bit 2 set means DMA error
	Bit 3 set means linked list error
Result[1]
	DMA type: 0=MPEG, 1=OSD, 2=YUV

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SCHED_DMA_FROM_HOST
Enum 	11/0x0B
Description
	Setup DMA from host operation. Counterpart to API 0xCC
Param[0]
	Memory address of link list
Param[1]
	Total # of bytes to transfer
Param[2]
	DMA type (0=MPEG, 1=OSD, 2=YUV)

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_PAUSE_PLAYBACK
Enum 	13/0x0D
Description
	Freeze playback immediately. In this mode, when internal buffers are
	full, no more data will be accepted and data request IRQs will be
	masked.
Param[0]
	Display: 0=last frame, 1=black

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_HALT_FW
Enum 	14/0x0E
Description
	The firmware is halted and no further API calls are serviced until
	the firmware is uploaded again.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_STANDARD
Enum 	16/0x10
Description
	Selects display standard
Param[0]
	0=NTSC, 1=PAL

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_GET_VERSION
Enum 	17/0x11
Description
	Returns decoder firmware version information
Result[0]
	Version bitmask:
	    Bits  0:15 build
	    Bits 16:23 minor
	    Bits 24:31 major

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_STREAM_INPUT
Enum 	20/0x14
Description
	Select decoder stream input port
Param[0]
	0=memory (default), 1=streaming

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_GET_TIMING_INFO
Enum 	21/0x15
Description
	Returns timing information from start of playback
Result[0]
	Frame count by decode order
Result[1]
	Video PTS bits 0:31 by display order
Result[2]
	Video PTS bit 32 by display order
Result[3]
	SCR bits 0:31 by display order
Result[4]
	SCR bit 32 by display order

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_AUDIO_MODE
Enum 	22/0x16
Description
	Select audio mode
Param[0]
	Dual mono mode action
	    0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged
Param[1]
	Stereo mode action:
	    0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_EVENT_NOTIFICATION
Enum 	23/0x17
Description
	Setup firmware to notify the host about a particular event.
	Counterpart to API 0xD5
Param[0]
	Event: 0=Audio mode change between stereo and dual channel
	Event: 3=Decoder started
	Event: 4=Unknown: goes off 10-15 times per second while decoding.
	Event: 5=Some sync event: goes off once per frame.
Param[1]
	Notification 0=disabled, 1=enabled
Param[2]
	Interrupt bit
Param[3]
	Mailbox slot, -1 if no mailbox required.

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_DISPLAY_BUFFERS
Enum 	24/0x18
Description
	Number of display buffers. To decode all frames in reverse playback you
	must use nine buffers.
Param[0]
	0=six buffers, 1=nine buffers

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_EXTRACT_VBI
Enum 	25/0x19
Description
	Extracts VBI data
Param[0]
	0=extract from extension & user data, 1=extract from private packets
Result[0]
	VBI table location
Result[1]
	VBI table size

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_DECODER_SOURCE
Enum 	26/0x1A
Description
	Selects decoder source. Ensure that the parameters passed to this
	API match the encoder settings.
Param[0]
	Mode: 0=MPEG from host, 1=YUV from encoder, 2=YUV from host
Param[1]
	YUV picture width
Param[2]
	YUV picture height
Param[3]
	Bitmap: see Param[0] of API 0xBD

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_AUDIO_OUTPUT
Enum 	27/0x1B
Description
	Select audio output format
Param[0]
	Bitmask:
	     0:1  Data size:
		      '00' 16 bit
		      '01' 20 bit
		      '10' 24 bit
	     2:7  Unused
	     8:9  Mode:
		      '00' 2 channels
		      '01' 4 channels
		      '10' 6 channels
		      '11' 6 channels with one line data mode
			   (for left justified MSB first mode, 20 bit only)
	    10:11 Unused
	    12:13 Channel format:
		      '00' right justified MSB first mode
		      '01' left justified MSB first mode
		      '10' I2S mode
	    14:15 Unused
	    16:21 Right justify bit count
	    22:31 Unused

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_AV_DELAY
Enum 	28/0x1C
Description
	Set audio/video delay in 90Khz ticks
Param[0]
	0=A/V in sync, negative=audio lags, positive=video lags

-------------------------------------------------------------------------------

Name 	CX2341X_DEC_SET_PREBUFFERING
Enum 	30/0x1E
Description
	Decoder prebuffering, when enabled up to 128KB are buffered for
	streams <8mpbs or 640KB for streams >8mbps
Param[0]
	0=off, 1=on