diff options
Diffstat (limited to 'drivers/video/fbdev/intelfb/intelfb.h')
-rw-r--r-- | drivers/video/fbdev/intelfb/intelfb.h | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h deleted file mode 100644 index 5de703902a..0000000000 --- a/drivers/video/fbdev/intelfb/intelfb.h +++ /dev/null @@ -1,382 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _INTELFB_H -#define _INTELFB_H - -/* $DHD: intelfb/intelfb.h,v 1.40 2003/06/27 15:06:25 dawes Exp $ */ - -#include <linux/agp_backend.h> -#include <linux/fb.h> - -#ifdef CONFIG_FB_INTEL_I2C -#include <linux/i2c.h> -#include <linux/i2c-algo-bit.h> -#endif - -/*** Version/name ***/ -#define INTELFB_VERSION "0.9.6" -#define INTELFB_MODULE_NAME "intelfb" -#define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/945GME/965G/965GM" - - -/*** Debug/feature defines ***/ - -#ifndef DEBUG -#define DEBUG 0 -#endif - -#ifndef VERBOSE -#define VERBOSE 0 -#endif - -#ifndef REGDUMP -#define REGDUMP 0 -#endif - -#ifndef DETECT_VGA_CLASS_ONLY -#define DETECT_VGA_CLASS_ONLY 1 -#endif - -#ifndef ALLOCATE_FOR_PANNING -#define ALLOCATE_FOR_PANNING 1 -#endif - -#ifndef PREFERRED_MODE -#define PREFERRED_MODE "1024x768-32@70" -#endif - -/*** hw-related values ***/ - -/* Resource Allocation */ -#define INTELFB_FB_ACQUIRED 1 -#define INTELFB_MMIO_ACQUIRED 2 - -/* PCI ids for supported devices */ -#define PCI_DEVICE_ID_INTEL_830M 0x3577 -#define PCI_DEVICE_ID_INTEL_845G 0x2562 -#define PCI_DEVICE_ID_INTEL_85XGM 0x3582 -#define PCI_DEVICE_ID_INTEL_854 0x358E -#define PCI_DEVICE_ID_INTEL_865G 0x2572 -#define PCI_DEVICE_ID_INTEL_915G 0x2582 -#define PCI_DEVICE_ID_INTEL_915GM 0x2592 -#define PCI_DEVICE_ID_INTEL_945G 0x2772 -#define PCI_DEVICE_ID_INTEL_945GM 0x27A2 -#define PCI_DEVICE_ID_INTEL_945GME 0x27AE -#define PCI_DEVICE_ID_INTEL_965G 0x29A2 -#define PCI_DEVICE_ID_INTEL_965GM 0x2A02 - -/* Size of MMIO region */ -#define INTEL_REG_SIZE 0x80000 - -#define STRIDE_ALIGNMENT 16 -#define STRIDE_ALIGNMENT_I9XX 64 - -#define PALETTE_8_ENTRIES 256 - - -/*** Macros ***/ - -/* basic arithmetic */ -#define KB(x) ((x) * 1024) -#define MB(x) ((x) * 1024 * 1024) -#define BtoKB(x) ((x) / 1024) -#define BtoMB(x) ((x) / 1024 / 1024) - -#define GTT_PAGE_SIZE KB(4) - -#define ROUND_UP_TO(x, y) (((x) + (y) - 1) / (y) * (y)) -#define ROUND_DOWN_TO(x, y) ((x) / (y) * (y)) -#define ROUND_UP_TO_PAGE(x) ROUND_UP_TO((x), GTT_PAGE_SIZE) -#define ROUND_DOWN_TO_PAGE(x) ROUND_DOWN_TO((x), GTT_PAGE_SIZE) - -/* messages */ -#define PFX INTELFB_MODULE_NAME ": " - -#define ERR_MSG(fmt, args...) printk(KERN_ERR PFX fmt, ## args) -#define WRN_MSG(fmt, args...) printk(KERN_WARNING PFX fmt, ## args) -#define NOT_MSG(fmt, args...) printk(KERN_NOTICE PFX fmt, ## args) -#define INF_MSG(fmt, args...) printk(KERN_INFO PFX fmt, ## args) -#if DEBUG -#define DBG_MSG(fmt, args...) printk(KERN_DEBUG PFX fmt, ## args) -#else -#define DBG_MSG(fmt, args...) while (0) printk(fmt, ## args) -#endif - -/* get commonly used pointers */ -#define GET_DINFO(info) (info)->par - -/* misc macros */ -#define ACCEL(d, i) \ - ((d)->accel && !(d)->ring_lockup && \ - ((i)->var.accel_flags & FB_ACCELF_TEXT)) - -/*#define NOACCEL_CHIPSET(d) \ - ((d)->chipset != INTEL_865G)*/ -#define NOACCEL_CHIPSET(d) \ - (0) - -#define FIXED_MODE(d) ((d)->fixed_mode) - -/*** Driver parameters ***/ - -#define RINGBUFFER_SIZE KB(64) -#define HW_CURSOR_SIZE KB(4) - -/* Intel agpgart driver */ -#define AGP_PHYSICAL_MEMORY 2 - -/* store information about an Ixxx DVO */ -/* The i830->i865 use multiple DVOs with multiple i2cs */ -/* the i915, i945 have a single sDVO i2c bus - which is different */ -#define MAX_OUTPUTS 6 - -/* these are outputs from the chip - integrated only - external chips are via DVO or SDVO output */ -#define INTELFB_OUTPUT_UNUSED 0 -#define INTELFB_OUTPUT_ANALOG 1 -#define INTELFB_OUTPUT_DVO 2 -#define INTELFB_OUTPUT_SDVO 3 -#define INTELFB_OUTPUT_LVDS 4 -#define INTELFB_OUTPUT_TVOUT 5 - -#define INTELFB_DVO_CHIP_NONE 0 -#define INTELFB_DVO_CHIP_LVDS 1 -#define INTELFB_DVO_CHIP_TMDS 2 -#define INTELFB_DVO_CHIP_TVOUT 4 - -#define INTELFB_OUTPUT_PIPE_NC 0 -#define INTELFB_OUTPUT_PIPE_A 1 -#define INTELFB_OUTPUT_PIPE_B 2 - -/*** Data Types ***/ - -/* supported chipsets */ -enum intel_chips { - INTEL_830M, - INTEL_845G, - INTEL_85XGM, - INTEL_852GM, - INTEL_852GME, - INTEL_854, - INTEL_855GM, - INTEL_855GME, - INTEL_865G, - INTEL_915G, - INTEL_915GM, - INTEL_945G, - INTEL_945GM, - INTEL_945GME, - INTEL_965G, - INTEL_965GM, -}; - -struct intelfb_hwstate { - u32 vga0_divisor; - u32 vga1_divisor; - u32 vga_pd; - u32 dpll_a; - u32 dpll_b; - u32 fpa0; - u32 fpa1; - u32 fpb0; - u32 fpb1; - u32 palette_a[PALETTE_8_ENTRIES]; - u32 palette_b[PALETTE_8_ENTRIES]; - u32 htotal_a; - u32 hblank_a; - u32 hsync_a; - u32 vtotal_a; - u32 vblank_a; - u32 vsync_a; - u32 src_size_a; - u32 bclrpat_a; - u32 htotal_b; - u32 hblank_b; - u32 hsync_b; - u32 vtotal_b; - u32 vblank_b; - u32 vsync_b; - u32 src_size_b; - u32 bclrpat_b; - u32 adpa; - u32 dvoa; - u32 dvob; - u32 dvoc; - u32 dvoa_srcdim; - u32 dvob_srcdim; - u32 dvoc_srcdim; - u32 lvds; - u32 pipe_a_conf; - u32 pipe_b_conf; - u32 disp_arb; - u32 cursor_a_control; - u32 cursor_b_control; - u32 cursor_a_base; - u32 cursor_b_base; - u32 cursor_size; - u32 disp_a_ctrl; - u32 disp_b_ctrl; - u32 disp_a_base; - u32 disp_b_base; - u32 cursor_a_palette[4]; - u32 cursor_b_palette[4]; - u32 disp_a_stride; - u32 disp_b_stride; - u32 vgacntrl; - u32 add_id; - u32 swf0x[7]; - u32 swf1x[7]; - u32 swf3x[3]; - u32 fence[8]; - u32 instpm; - u32 mem_mode; - u32 fw_blc_0; - u32 fw_blc_1; - u16 hwstam; - u16 ier; - u16 iir; - u16 imr; -}; - -struct intelfb_heap_data { - u32 physical; - u8 __iomem *virtual; - u32 offset; /* in GATT pages */ - u32 size; /* in bytes */ -}; - -#ifdef CONFIG_FB_INTEL_I2C -struct intelfb_i2c_chan { - struct intelfb_info *dinfo; - u32 reg; - struct i2c_adapter adapter; - struct i2c_algo_bit_data algo; -}; -#endif - -struct intelfb_output_rec { - int type; - int pipe; - int flags; - -#ifdef CONFIG_FB_INTEL_I2C - struct intelfb_i2c_chan i2c_bus; - struct intelfb_i2c_chan ddc_bus; -#endif -}; - -struct intelfb_vsync { - wait_queue_head_t wait; - unsigned int count; - int pan_display; - u32 pan_offset; -}; - -struct intelfb_info { - struct fb_info *info; - const struct fb_ops *fbops; - struct pci_dev *pdev; - - struct intelfb_hwstate save_state; - - /* agpgart structs */ - struct agp_memory *gtt_fb_mem; /* use all stolen memory or vram */ - struct agp_memory *gtt_ring_mem; /* ring buffer */ - struct agp_memory *gtt_cursor_mem; /* hw cursor */ - - /* use a gart reserved fb mem */ - u8 fbmem_gart; - - int wc_cookie; - - /* heap data */ - struct intelfb_heap_data aperture; - struct intelfb_heap_data fb; - struct intelfb_heap_data ring; - struct intelfb_heap_data cursor; - - /* mmio regs */ - u32 mmio_base_phys; - u8 __iomem *mmio_base; - - /* fb start offset (in bytes) */ - u32 fb_start; - - /* ring buffer */ - u32 ring_head; - u32 ring_tail; - u32 ring_tail_mask; - u32 ring_space; - u32 ring_lockup; - - /* palette */ - u32 pseudo_palette[16]; - - /* chip info */ - int pci_chipset; - int chipset; - const char *name; - int mobile; - - /* current mode */ - int bpp, depth; - u32 visual; - int xres, yres, pitch; - int pixclock; - - /* current pipe */ - int pipe; - - /* some flags */ - int accel; - int hwcursor; - int fixed_mode; - int ring_active; - int flag; - unsigned long irq_flags; - int open; - - /* vsync */ - struct intelfb_vsync vsync; - spinlock_t int_lock; - - /* hw cursor */ - int cursor_on; - int cursor_blanked; - u8 cursor_src[64]; - - /* initial parameters */ - int initial_vga; - struct fb_var_screeninfo initial_var; - u32 initial_fb_base; - u32 initial_video_ram; - u32 initial_pitch; - - /* driver registered */ - int registered; - - /* index into plls */ - int pll_index; - - /* outputs */ - int num_outputs; - struct intelfb_output_rec output[MAX_OUTPUTS]; -}; - -#define IS_I9XX(dinfo) (((dinfo)->chipset == INTEL_915G) || \ - ((dinfo)->chipset == INTEL_915GM) || \ - ((dinfo)->chipset == INTEL_945G) || \ - ((dinfo)->chipset == INTEL_945GM) || \ - ((dinfo)->chipset == INTEL_945GME) || \ - ((dinfo)->chipset == INTEL_965G) || \ - ((dinfo)->chipset == INTEL_965GM)) - -/*** function prototypes ***/ - -extern int intelfb_var_to_depth(const struct fb_var_screeninfo *var); - -#ifdef CONFIG_FB_INTEL_I2C -extern void intelfb_create_i2c_busses(struct intelfb_info *dinfo); -extern void intelfb_delete_i2c_busses(struct intelfb_info *dinfo); -#endif - -#endif /* _INTELFB_H */ |