diff options
Diffstat (limited to 'drivers/gpu/drm/emgd/emgd/include/context.h')
-rw-r--r-- | drivers/gpu/drm/emgd/emgd/include/context.h | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/drivers/gpu/drm/emgd/emgd/include/context.h b/drivers/gpu/drm/emgd/emgd/include/context.h deleted file mode 100644 index 78ee2ae5af05..000000000000 --- a/drivers/gpu/drm/emgd/emgd/include/context.h +++ /dev/null @@ -1,246 +0,0 @@ -/* -*- pse-c -*- - *----------------------------------------------------------------------------- - * Filename: context.h - * $Revision: 1.11 $ - *----------------------------------------------------------------------------- - * 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: - * - *----------------------------------------------------------------------------- - */ - -#ifndef _HAL_CONTEXT_H -#define _HAL_CONTEXT_H - -#include <pci.h> - -#include <igd.h> -#include <igd_init.h> - -#define GET_DEVICE_POWER_STATE(d_h) \ -(((igd_display_context_t *)(d_h))->context->device_context.power_state) - -typedef void * platform_context_t; - -typedef struct _igd_context igd_context_t; - -struct _pd_reg; -struct _igd_display_context; -struct _igd_display_port; -struct _pd_timing; -struct _cmd_queue; - -/* - * Flags for reg_set_mod_state and reg_get_mode_state - */ -typedef enum _reg_state_id { - REG_MODE_STATE = 1 -} reg_state_id_t; - -/* module_state handle */ -typedef struct _module_state *module_state_h; - -/* - * Intermodule-dispatch is for calling from one module to another. All - * functions should be considered optional and the caller should check - * for null before using. - */ -typedef struct _inter_module_dispatch { - struct _igd_param *init_params; - - void (*gmm_save)(igd_context_t *context, void **state); - void (*gmm_restore)(igd_context_t *context, void *state); - - void (*mode_reset_plane_pipe_ports)(igd_context_t *context); - void (*filter_modes)(igd_context_t *context, - struct _igd_display_port *port, - struct _pd_timing *in_list); - - /* FIXME: This should be a dsp function */ - unsigned long (*mode_get_gpio_sets)(unsigned long **gpio); - - /* For Poulsbo, there is no flip pending hardware, so the - * mode module and command module need to communicate */ - int (*set_flip_pending)(unsigned char *mmio, - unsigned long pipe_status_reg); - int (*check_flip_pending)(unsigned char *mmio, - unsigned long pipe_status_reg); - - int (*dsp_get_config_info)(igd_context_t *context, - igd_config_info_t *config_info); - int (*pi_get_config_info)(igd_context_t *context, - igd_config_info_t *config_info); - - /* Widely used DSP interfaces */ - struct _igd_display_port *(*dsp_get_next_port)(igd_context_t *context, - struct _igd_display_port *port, int reverse); - struct _igd_plane *(*dsp_get_next_plane)(igd_context_t *context, - struct _igd_plane *plane, int reverse); - struct _igd_display_pipe *(*dsp_get_next_pipe)(igd_context_t *context, - struct _igd_display_pipe *pipe, int reverse); - void (*dsp_get_display)(unsigned short port_number, - struct _igd_display_context **display, - struct _igd_display_port **port, int display_detect); - void (*dsp_get_dc)(unsigned long *dc, - struct _igd_display_context **primary, - struct _igd_display_context **secondary); - void (*dsp_get_planes_pipes)(struct _igd_plane **primary_display_plane, - struct _igd_plane **secondary_display_plane, - struct _igd_display_pipe **primary_pipe, - struct _igd_display_pipe **secondary_pipe); - - unsigned long *dsp_current_dc; - /* Firmware programmed DC. This information needs to be - * accessible by the mode module. - */ - unsigned long dsp_fw_dc; - - struct _igd_display_port **dsp_port_list; - struct _igd_display_context **dsp_display_list; - - /* i2c and GMBus interfaces */ - int (*i2c_read_regs)(igd_context_t *context, unsigned long i2c_bus, - unsigned long i2c_speed, unsigned long dab, unsigned char reg, - unsigned char FAR *buffer, unsigned long num_bytes); - int (*i2c_write_reg_list)(igd_context_t *context, - unsigned long i2c_bus, unsigned long i2c_speed, unsigned long dab, - struct _pd_reg *reg_list, unsigned long flags); - int (*gpio_write_regs)(igd_context_t *context, - struct _igd_display_port *port, unsigned long gpio_pin_pair, - unsigned long power_state); - int (*gpio_read_regs)(igd_context_t *context, unsigned long gpio_pin_pair, - unsigned long *data); - - int (*reg_get_mod_state)(reg_state_id_t id, module_state_h **state, - unsigned long **flags); - - /* Command Module Calls */ - int (*alloc_queues)(igd_context_t *context, - struct _igd_display_pipe *pipe, unsigned long flags); - void (*free_queues)(igd_context_t *context, - struct _igd_display_pipe *pipe); - int (*cmd_control)(struct _cmd_queue *cmd_queue, unsigned long flags); - - - /* Power Module Calls to Reg module */ - void *(*reg_alloc)(igd_context_t *context, unsigned long flags); - void (*reg_free)(igd_context_t *context, void *reg_set); - int (*reg_save)(igd_context_t *context, void *reg_set); - int (*reg_restore)(igd_context_t *context, void *reg_set); - - /* Reg Module callbacks */ - int (*mode_save)(igd_context_t *context, module_state_h *state, - unsigned long *flags); - int (*mode_restore)(igd_context_t *context, module_state_h *state, - unsigned long *flags); - - /* Power Module Callbacks */ - int (*mode_pwr)(igd_context_t *context, unsigned long powerstate); - int (*overlay_pwr)(igd_context_t *context, unsigned long powerstate); - - /* Shutdown functions for use by init module only */ - void (*mode_shutdown)(igd_context_t *context); - void (*dsp_shutdown)(igd_context_t *context); - void (*pi_shutdown)(igd_context_t *context); - void (*shutdown_2d)(igd_context_t *context); - void (*blend_shutdown)(igd_context_t *context); - void (*interrupt_shutdown)(igd_context_t *context); - void (*appcontext_shutdown)(igd_context_t *context); - void (*reset_shutdown)(igd_context_t *context); - void (*pwr_shutdown)(igd_context_t *context); - void (*overlay_shutdown)(igd_context_t *context); - void (*cmd_shutdown)(igd_context_t *context); - void (*reg_shutdown)(igd_context_t *context); - - /* MSVDX */ - int (*process_video_decode)(igd_context_t *context, void *arg); - - /* Mode module Callbacks */ - int (*get_dd_timing)(struct _igd_display_context *display, - struct _pd_timing *in_list); - int (*check_port_supported)(void *port_tmp); - int (*get_refresh_in_border)(struct _pd_timing *in_list); -} inter_module_dispatch_t; - -/* - * IGD device context contains device information that should exist in - * some form across all supported platforms. - * - * Device information that is specific to any individual platform/core - * etc should be in the "platform_context" which is hardware specific. - * - * In the event that any given core has a large number of marketing - * SKUs that change the PCI device ID, the device ID in this structure - * may be overwritten with a single common ID and not truly reflect - * the actual ID. This prevents polluting the function tables with - * dozens of logically identical chipsets. - * - */ -typedef struct _device_context { - unsigned long power_state; - unsigned long mmadr; /* Primary mmio address */ - unsigned long mmadr_sdvo; /* sdvo mmio address */ - unsigned long gpio_bar; /* LPC GPIO address */ - unsigned char *virt_mmadr; - unsigned char *virt_mmadr_sdvo; - unsigned char *virt_gpio_bar; - unsigned long *virt_gttadr; /* was gtt_mmap */ - unsigned long gatt_pages; /* Number of pages addressable by GTT */ - unsigned long stolen_pages; /* Number of pages of stolen memory */ - unsigned long gmch_ctl; /* GMCH control value */ - void *scratch_page; /* Empty page to fill unused GTT entries */ - unsigned long fb_adr; /* Video Memory address */ - unsigned short did; /* Device ID for main video device */ - unsigned long rid; /* Device revision ID for main video device */ - unsigned short bid; /* Device ID for Bridge */ - unsigned long max_dclk; /* maximum dotclock of all the chipset */ - unsigned long mem_size; /* Total memory space managed by GMM */ - unsigned long reserved_mem; /* Size in pages of firmware populated mem */ - unsigned long hw_config; /* HW Config parameter bits (see igd_init.h) */ - unsigned long hw_status_offset; /* Hw status page offset */ - unsigned short gfx_freq; /* Graphics Frequency, used to calculate PWM */ - unsigned short core_freq; /* Core Frequency, used to calculate DPLL freq */ -} device_context_t; - -struct _igd_context { - int igd_device_error_no; /* Values are already negative */ - igd_dispatch_t dispatch; - inter_module_dispatch_t mod_dispatch; - device_context_t device_context; /* Hardware independent */ - platform_context_t platform_context; /* Hardware dependent */ - void *drm_dev; -}; - -typedef struct _igd_display_context { - igd_context_t *context; - void *plane; - void *pipe; - void *port[IGD_MAX_PORTS]; - void *cursor; - unsigned long port_number; - unsigned long allocated; -} igd_display_context_t; - -#endif - -/*---------------------------------------------------------------------------- - * File Revision History - * $Id: context.h,v 1.11 2010/08/13 09:16:38 nanuar Exp $ - * $Source: /nfs/fm/proj/eia/cvsroot/koheo/linux/egd_drm/emgd/include/context.h,v $ - *---------------------------------------------------------------------------- - */ |