linux/drivers/video/fbdev/sis/init301.h
<<
>>
Prefs
   1/* $XFree86$ */
   2/* $XdotOrg$ */
   3/*
   4 * Data and prototypes for init301.c
   5 *
   6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
   7 *
   8 * If distributed as part of the Linux kernel, the following license terms
   9 * apply:
  10 *
  11 * * This program is free software; you can redistribute it and/or modify
  12 * * it under the terms of the GNU General Public License as published by
  13 * * the Free Software Foundation; either version 2 of the named License,
  14 * * or any later version.
  15 * *
  16 * * This program is distributed in the hope that it will be useful,
  17 * * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19 * * GNU General Public License for more details.
  20 * *
  21 * * You should have received a copy of the GNU General Public License
  22 * * along with this program; if not, write to the Free Software
  23 * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
  24 *
  25 * Otherwise, the following license terms apply:
  26 *
  27 * * Redistribution and use in source and binary forms, with or without
  28 * * modification, are permitted provided that the following conditions
  29 * * are met:
  30 * * 1) Redistributions of source code must retain the above copyright
  31 * *    notice, this list of conditions and the following disclaimer.
  32 * * 2) Redistributions in binary form must reproduce the above copyright
  33 * *    notice, this list of conditions and the following disclaimer in the
  34 * *    documentation and/or other materials provided with the distribution.
  35 * * 3) The name of the author may not be used to endorse or promote products
  36 * *    derived from this software without specific prior written permission.
  37 * *
  38 * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  39 * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  40 * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  41 * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  42 * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  43 * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  44 * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  45 * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  46 * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  47 * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48 *
  49 * Author:      Thomas Winischhofer <thomas@winischhofer.net>
  50 *
  51 */
  52
  53#ifndef  _INIT301_H_
  54#define  _INIT301_H_
  55
  56#include "initdef.h"
  57
  58#include "vgatypes.h"
  59#include "vstruct.h"
  60#ifdef SIS_CP
  61#undef SIS_CP
  62#endif
  63#include <linux/types.h>
  64#include <asm/io.h>
  65#include <linux/fb.h>
  66#include "sis.h"
  67#include <video/sisfb.h>
  68
  69void            SiS_UnLockCRT2(struct SiS_Private *SiS_Pr);
  70void            SiS_EnableCRT2(struct SiS_Private *SiS_Pr);
  71unsigned short  SiS_GetRatePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);
  72void            SiS_WaitRetrace1(struct SiS_Private *SiS_Pr);
  73bool            SiS_IsDualEdge(struct SiS_Private *SiS_Pr);
  74bool            SiS_IsVAMode(struct SiS_Private *SiS_Pr);
  75void            SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
  76                        unsigned short ModeIdIndex, int checkcrt2mode);
  77void            SiS_SetYPbPr(struct SiS_Private *SiS_Pr);
  78void            SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
  79                        unsigned short ModeIdIndex);
  80void            SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
  81                unsigned short ModeIdIndex);
  82unsigned short  SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex,
  83                        unsigned short RefreshRateTableIndex);
  84unsigned short  SiS_GetResInfo(struct SiS_Private *SiS_Pr,unsigned short ModeNo,unsigned short ModeIdIndex);
  85void            SiS_DisableBridge(struct SiS_Private *SiS_Pr);
  86bool            SiS_SetCRT2Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo);
  87void            SiS_SiS30xBLOn(struct SiS_Private *SiS_Pr);
  88void            SiS_SiS30xBLOff(struct SiS_Private *SiS_Pr);
  89
  90void            SiS_SetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val);
  91unsigned short  SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short tempax);
  92void            SiS_SetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val);
  93unsigned short  SiS_GetCH701x(struct SiS_Private *SiS_Pr, unsigned short tempax);
  94void            SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg,
  95                        unsigned char orval,unsigned short andval);
  96#ifdef CONFIG_FB_SIS_315
  97void            SiS_Chrontel701xBLOn(struct SiS_Private *SiS_Pr);
  98void            SiS_Chrontel701xBLOff(struct SiS_Private *SiS_Pr);
  99#endif /* 315 */
 100
 101#ifdef CONFIG_FB_SIS_300
 102void            SiS_SetChrontelGPIO(struct SiS_Private *SiS_Pr, unsigned short myvbinfo);
 103#endif
 104
 105void            SiS_DDC2Delay(struct SiS_Private *SiS_Pr, unsigned int delaytime);
 106unsigned short  SiS_ReadDDC1Bit(struct SiS_Private *SiS_Pr);
 107unsigned short  SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine,
 108                        unsigned short adaptnum, unsigned short DDCdatatype,
 109                        unsigned char *buffer, unsigned int VBFlags2);
 110
 111extern void             SiS_DisplayOff(struct SiS_Private *SiS_Pr);
 112extern void             SiS_DisplayOn(struct SiS_Private *SiS_Pr);
 113extern bool             SiS_SearchModeID(struct SiS_Private *, unsigned short *, unsigned short *);
 114extern unsigned short   SiS_GetModeFlag(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
 115                                unsigned short ModeIdIndex);
 116extern unsigned short   SiS_GetModePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);
 117extern unsigned short   SiS_GetColorDepth(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);
 118extern unsigned short   SiS_GetOffset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex,
 119                                unsigned short RefreshRateTableIndex);
 120extern void             SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
 121                                unsigned short ModeIdIndex);
 122extern void             SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo,
 123                                unsigned short ModeIdIndex);
 124extern void             SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth);
 125extern unsigned short   SiS_GetRefCRTVCLK(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide);
 126extern unsigned short   SiS_GetRefCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide);
 127#ifdef CONFIG_FB_SIS_300
 128extern void             SiS_GetFIFOThresholdIndex300(struct SiS_Private *SiS_Pr, unsigned short *tempbx,
 129                                unsigned short *tempcl);
 130extern unsigned short   SiS_GetFIFOThresholdB300(unsigned short tempbx, unsigned short tempcl);
 131extern unsigned short   SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index);
 132extern unsigned int     sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg);
 133extern unsigned int     sisfb_read_lpc_pci_dword(struct SiS_Private *SiS_Pr, int reg);
 134#endif
 135
 136#endif
 137