aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/emgd/emgd/include/mode.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/emgd/emgd/include/mode.h')
-rw-r--r--drivers/gpu/drm/emgd/emgd/include/mode.h306
1 files changed, 0 insertions, 306 deletions
diff --git a/drivers/gpu/drm/emgd/emgd/include/mode.h b/drivers/gpu/drm/emgd/emgd/include/mode.h
deleted file mode 100644
index 6933d51b0aa2..000000000000
--- a/drivers/gpu/drm/emgd/emgd/include/mode.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/* -*- pse-c -*-
- *-----------------------------------------------------------------------------
- * Filename: mode.h
- * $Revision: 1.5 $
- *-----------------------------------------------------------------------------
- * Copyright © 2002-2010, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *-----------------------------------------------------------------------------
- * Description:
- * Contain header information for set mode support
- *-----------------------------------------------------------------------------
- */
-
-#ifndef _MODE_H_
-#define _MODE_H_
-
-/* IO.h is needed for the FAR define */
-#include <io.h>
-
-#include <igd_init.h>
-#include <igd_mode.h>
-#include <general.h>
-#include <context.h>
-#include <cmd.h>
-#include <pd.h>
-#include <edid.h>
-#include <displayid.h>
-#include <igd_render.h>
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#define IGD_INVALID_MODE 0
-
-/*****************/
-/* Plane Features */
-/*****************/
-#define IGD_PLANE_FEATURES_MASK 0x000000FF
-#define IGD_PLANE_DISPLAY 0x00000001
-#define IGD_PLANE_OVERLAY 0x00000002
-#define IGD_PLANE_SPRITE 0x00000004
-#define IGD_PLANE_CURSOR 0x00000008
-#define IGD_PLANE_VGA 0x00000010
-#define IGD_PLANE_DOUBLE 0x00000020
-/*#define IGD_PLANE_CLONE 0x00000040 currently unused */
-#define IGD_PLANE_DIH 0x00000080
-#define IGD_PLANE_USE_PIPEA 0x00000100
-#define IGD_PLANE_USE_PIPEB 0x00000200
-
-/*****************/
-/* Pipe Features */
-/*****************/
-/* pipe's supported features */
-#define IGD_PIPE_FEATURES_MASK 0x000000FF
-#define IGD_PIPE_DOUBLE 0x00000001
-/* the following 2 bits are not pipe features but
- * pipe identification bits that share the same
- * pipe_features variable of the pipe structure
- * NOTE that these bit-wise OR flags in nibble-2
- * are also used in the port_features variable
- * of the port structure (same locations) but
- * called IGD_PORT_USE_PIPEX
- */
-#define IGD_PIPE_IS_PIPEA 0x00000100
-#define IGD_PIPE_IS_PIPEB 0x00000200
-
-/*******************/
-/* Cursor Features */
-/*******************/
-/*
- * Cursor's supported features
- */
-/*
- * cursor's pipe usage regulations. These are copies of the PIPE_IS_ bits so
- * that a quick (pipe_features & plane_features & MASK) will tell you if
- * the pipe can be used.
- */
-#define IGD_CURSOR_USE_PIPE_MASK 0x00000F00
-#define IGD_CURSOR_USE_PIPEA IGD_PIPE_IS_PIPEA
-#define IGD_CURSOR_USE_PIPEB IGD_PIPE_IS_PIPEB
-
-/*****************/
-/* Port features */
-/*****************/
-/*
- * Port's supported features
- *
- * port features also uses IGD_PORT_SHARE_MASK thus port feature bits
- * cannot collide with IGD_PORT_SHARE_MASK
- */
-#define IGD_PORT_FEATURES_MASK 0x000000FF
-#define IGD_RGBA_COLOR 0x00000001
-#define IGD_RGBA_ALPHA 0x00000002
-#define IGD_VGA_COMPRESS 0x00000004 /* Compress VGA to 640x480 */
-#define IGD_PORT_GANG 0x00000008
-/*
- * port's pipe usage regulations. These are copies of the PIPE_IS_ bits so
- * that a quick (pipe_features & port_features & MASK) will tell you if
- * the pipe can be used.
- */
-#define IGD_PORT_USE_PIPE_MASK 0x00000F00
-#define IGD_PORT_USE_PIPE_MASK_SHIFT 8
-#define IGD_PORT_USE_PIPEA IGD_PIPE_IS_PIPEA
-#define IGD_PORT_USE_PIPEB IGD_PIPE_IS_PIPEB
-/*
- * Ports Sharing information. The port in question can share a pipe with the
- * listed ports. If a shares with b, b must share with a too.
- * Must be the same as IGD_PORT_MASK = 0x3f000
- */
-#define IGD_PORT_SHARE_MASK IGD_PORT_MASK
-#define IGD_PORT_SHARE_ANALOG IGD_PORT_ANALOG
-#define IGD_PORT_SHARE_DIGITAL IGD_PORT_DIGITAL
-#define IGD_PORT_SHARE_LVDS IGD_PORT_LVDS
-#define IGD_PORT_SHARE_TV IGD_PORT_TV
-
-/* MAX rings, planes and ports connected to a pipe */
-#define IGD_MAX_PIPE_QUEUES 4
-#define IGD_MAX_PIPE_PLANES 5
-#define IGD_MAX_PIPE_DISPLAYS 4
-#define IGD_MAX_PIPES 2
-#define MAX_DISPLAYS IGD_MAX_DISPLAYS /* From igd_mode.h */
-
-/* Parameters to mode_update_plane_pipe_ports */
-#define MODE_UPDATE_PLANE 0x1
-#define MODE_UPDATE_PIPE 0x2
-#define MODE_UPDATE_PORT 0x4
-#define MODE_UPDATE_NONE 0x0
-
-#define PLANE(display) \
- ((igd_display_plane_t *)(((igd_display_context_t *)display)->plane))
-#define PIPE(display) \
- ((igd_display_pipe_t *)(((igd_display_context_t *)display)->pipe))
-#define PORT(display, pn) \
- ((igd_display_port_t *)(((igd_display_context_t *)display)->port[pn-1]))
-#define PORT_OWNER(display) \
- ((igd_display_port_t *)(((igd_display_context_t *)display)->port[display->port_number-1]))
-
-#define MODE_IS_SUPPORTED(t) (t->mode_info_flags & IGD_MODE_SUPPORTED)
-#define MODE_IS_VGA(t) \
- ((((pd_timing_t *)t)->mode_info_flags & IGD_MODE_VESA) && \
- (t->mode_number < 0x1D))
-
-/* #define DC_PORT_NUMBER(dc, i) ((dc >> (i * 4)) & 0x0f) */
-#define DC_PORT_NUMBER IGD_DC_PORT_NUMBER
-
-/* This structure is used for the mode table which is a list of all
- * supported modes. */
-
-typedef pd_timing_t igd_timing_info_t, *pigd_timing_info_t;
-
-
-/*
- * NOTE: The plane typedef is a generic type. Each plane type has an
- * equivalent typedef that is more specific to the type of plane. They
- * MUST remain equivalent. If you change one you must change them all.
- */
-typedef struct _igd_plane {
- unsigned long plane_reg; /* plane control register */
- unsigned long plane_features; /* plane feature list */
- int inuse; /* plane inuse ? */
- int ref_cnt; /* # of displays using this plane */
- unsigned long *pixel_formats; /* supported pixel formats */
- void *plane_info; /* ptr to plane_info */
- struct _igd_plane *mirror; /* pointer to mirror plane */
-} igd_plane_t;
-
-typedef struct _igd_display_plane {
- unsigned long plane_reg; /* plane contron register */
- unsigned long plane_features; /* list of plane features */
- int inuse; /* plane inuse ? */
- int ref_cnt; /* # of displays using this plane */
- unsigned long *pixel_formats; /* list of pixel formats supported */
- igd_framebuffer_info_t *fb_info; /* attached fb to this plane */
- struct _igd_display_plane *mirror; /* pointer to mirror plane */
-} igd_display_plane_t, *pigd_display_plane_t;
-
-typedef struct _igd_cursor {
- unsigned long cursor_reg; /* cursor control register */
- unsigned long plane_features; /* cursor plane features */
- int inuse; /* is this cursor in use? */
- int ref_cnt; /* # of displays using this plane */
- unsigned long *pixel_formats; /* list of pixel_formats supported */
- igd_cursor_info_t *cursor_info;
- struct _igd_cursor *mirror; /* pointer to mirror plane */
-} igd_cursor_t;
-
-typedef struct _igd_clock {
- unsigned long dpll_control; /* DPLL control register */
- unsigned long mnp; /* FPx0 register */
- unsigned long p_shift; /* Bit location of P within control */
- unsigned long actual_dclk; /* The actual dotclock after calculating dpll */
-}igd_clock_t;
-
-typedef struct _igd_display_pipe {
- unsigned long pipe_num; /* 0 Based index */
- unsigned long pipe_reg; /* pipe configuration register */
- unsigned long timing_reg; /* timing register(htotal) */
- unsigned long palette_reg; /* palette register */
- igd_clock_t *clock_reg; /* DPLL clock registers */
- unsigned long pipe_features; /* pipe features */
- int inuse; /* pipe allocated? TRUE/FALSE */
- int ref_cnt; /* # of displays using this pipe */
- cmd_queue_t *queue[IGD_MAX_PIPE_QUEUES]; /* Queues for this pipe */
- igd_display_plane_t *plane; /* dsp plane connected to pipe */
- igd_cursor_t *cursor; /* cursor connected to this pipe */
- void *sprite; /* sprite connected to this pipe */
- igd_timing_info_t *timing; /* current timings on the port */
- igd_display_context_t *owner; /* owner display of this pipe */
- unsigned long dclk; /* current dclk running on this pipe */
-}igd_display_pipe_t, *pigd_display_pipe_t;
-
-typedef struct _igd_display_port {
- unsigned long port_type; /* port type */
- unsigned long port_number; /* port number */
- char port_name[8]; /* port name DVO A, B, C, LVDS, ANALOG */
- unsigned long port_reg; /* port control register */
- unsigned long i2c_reg; /* GPIO pins for i2c on this port */
- unsigned long dab; /* i2c Device Address Byte */
- unsigned long ddc_reg; /* GPIO pins for DDC on this port */
- unsigned long ddc_dab;
- unsigned long port_features; /* port features */
- unsigned long clock_bits; /* Clock input to use */
- int inuse; /* port is in use */
- unsigned long power_state; /* D Power state for the display/port */
- unsigned long bl_power_state; /* D Power state for the FP backlight */
- struct _igd_display_port *mult_port;/* pointer to multiplexed port,
- * if it is used in that way */
- igd_display_info_t *pt_info; /* port timing info */
- pd_driver_t *pd_driver;
- void *pd_context; /* Context returned from PD */
- pd_callback_t *callback; /* DD Callback to passed to PD */
- unsigned long num_timing; /* number of timings available */
- igd_timing_info_t *timing_table; /* static/dynamic PD timings list */
- unsigned long i2c_speed; /* Connected encoder's I2C bus speed */
- unsigned long ddc_speed; /* DDC speed in KHz */
- igd_param_fp_info_t *fp_info; /* Flat panel parameter info if any */
- igd_param_dtd_list_t *dtd_list; /* EDID-less DTD info if any */
- igd_param_attr_list_t *attr_list; /* Saved attributes if any */
- igd_attr_t *tmp_attr; /* Temp attr array, for copying */
- unsigned int tmp_attr_num; /* Number of attr in temp array */
- igd_timing_info_t *fp_native_dtd; /* FP native DTD */
- unsigned long pd_type; /* Display type given by port driver */
- unsigned long pd_flags; /* port driver flags */
- unsigned long saved_bl_power_state;
-
- /* This attribute list is designed to eventually suck in things above
- * such as fb_info. For now, it only has color correction attributes */
- igd_attr_t *attributes;
-
- unsigned char firmware_type;
- union {
- displayid_t *displayid;
- edid_t *edid; /* EDID information */
- };
-
- /* Added for VBIOS size Reduction */
- unsigned long preserve;
- unsigned long mult_preserve;
- unsigned long vga_sync;
-
-}igd_display_port_t, *pigd_display_port_t;
-
-/* This structure is used to save mode state.
- * Rightnow, it is saving state of current port and its port driver state.
- * This information is used while restoring to a previously saved mode
- * state.
- * TODO: This can be extended to save all display modules (mode, dsp, pi) reg
- * information along with port driver's state information. This requires
- * changes to exiting reg module. */
-#define MAX_PORT_DRIVERS 20
-typedef struct _mode_pd_state {
- igd_display_port_t *port; /* display port */
- void *state; /* and its port driver state */
-} mode_pd_state_t;
-
-typedef struct _mode_state_t {
- mode_pd_state_t pd_state[MAX_PORT_DRIVERS];
-} mode_state_t;
-
-#endif // _IGD_MODE_H_
-
-
-/*----------------------------------------------------------------------------
- * File Revision History
- * $Id: mode.h,v 1.5 2010/07/23 16:54:50 bpaauwe Exp $
- * $Source: /nfs/fm/proj/eia/cvsroot/koheo/linux/egd_drm/emgd/include/mode.h,v $
- *----------------------------------------------------------------------------
- */