i740_io.c revision 301ea0f4
1301ea0f4Smrg/************************************************************************** 2301ea0f4Smrg 3301ea0f4SmrgCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. 4301ea0f4SmrgAll Rights Reserved. 5301ea0f4Smrg 6301ea0f4SmrgPermission is hereby granted, free of charge, to any person obtaining a 7301ea0f4Smrgcopy of this software and associated documentation files (the 8301ea0f4Smrg"Software"), to deal in the Software without restriction, including 9301ea0f4Smrgwithout limitation the rights to use, copy, modify, merge, publish, 10301ea0f4Smrgdistribute, sub license, and/or sell copies of the Software, and to 11301ea0f4Smrgpermit persons to whom the Software is furnished to do so, subject to 12301ea0f4Smrgthe following conditions: 13301ea0f4Smrg 14301ea0f4SmrgThe above copyright notice and this permission notice (including the 15301ea0f4Smrgnext paragraph) shall be included in all copies or substantial portions 16301ea0f4Smrgof the Software. 17301ea0f4Smrg 18301ea0f4SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19301ea0f4SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20301ea0f4SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21301ea0f4SmrgIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 22301ea0f4SmrgANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23301ea0f4SmrgTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24301ea0f4SmrgSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25301ea0f4Smrg 26301ea0f4Smrg**************************************************************************/ 27301ea0f4Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c,v 1.4 2002/01/25 21:56:03 tsi Exp $ */ 28301ea0f4Smrg 29301ea0f4Smrg/* 30301ea0f4Smrg * Authors: 31301ea0f4Smrg * Daryll Strauss <daryll@precisioninsight.com> 32301ea0f4Smrg * 33301ea0f4Smrg */ 34301ea0f4Smrg 35301ea0f4Smrg#ifdef HAVE_CONFIG_H 36301ea0f4Smrg#include "config.h" 37301ea0f4Smrg#endif 38301ea0f4Smrg 39301ea0f4Smrg#include "xf86.h" 40301ea0f4Smrg#include "xf86_OSproc.h" 41301ea0f4Smrg#include "compiler.h" 42301ea0f4Smrg#include "vgaHW.h" 43301ea0f4Smrg 44301ea0f4Smrg#include "xf86xv.h" 45301ea0f4Smrg#include "i740.h" 46301ea0f4Smrg 47301ea0f4Smrgstatic void I740WriteControlPIO(I740Ptr pI740, int addr, unsigned char index, char val) { 48301ea0f4Smrg outb(addr, index); 49301ea0f4Smrg outb(addr+1, val); 50301ea0f4Smrg} 51301ea0f4Smrg 52301ea0f4Smrgstatic char I740ReadControlPIO(I740Ptr pI740, int addr, unsigned char index) { 53301ea0f4Smrg outb(addr, index); 54301ea0f4Smrg return inb(addr+1); 55301ea0f4Smrg} 56301ea0f4Smrg 57301ea0f4Smrgstatic void I740WriteStandardPIO(I740Ptr pI740, int addr, unsigned char val) { 58301ea0f4Smrg outb(addr, val); 59301ea0f4Smrg} 60301ea0f4Smrg 61301ea0f4Smrgstatic char I740ReadStandardPIO(I740Ptr pI740, int addr) { 62301ea0f4Smrg return inb(addr); 63301ea0f4Smrg} 64301ea0f4Smrg 65301ea0f4Smrgvoid I740SetPIOAccess(I740Ptr pI740) { 66301ea0f4Smrg pI740->writeControl=I740WriteControlPIO; 67301ea0f4Smrg pI740->readControl=I740ReadControlPIO; 68301ea0f4Smrg pI740->writeStandard=I740WriteStandardPIO; 69301ea0f4Smrg pI740->readStandard=I740ReadStandardPIO; 70301ea0f4Smrg} 71301ea0f4Smrg 72301ea0f4Smrgstatic void I740WriteControlMMIO(I740Ptr pI740, int addr, unsigned char index, char val) { 73301ea0f4Smrg moutb(addr, index); 74301ea0f4Smrg moutb(addr+1, val); 75301ea0f4Smrg} 76301ea0f4Smrg 77301ea0f4Smrgstatic char I740ReadControlMMIO(I740Ptr pI740, int addr, unsigned char index) { 78301ea0f4Smrg moutb(addr, index); 79301ea0f4Smrg return minb(addr+1); 80301ea0f4Smrg} 81301ea0f4Smrg 82301ea0f4Smrgstatic void I740WriteStandardMMIO(I740Ptr pI740, int addr, unsigned char val) { 83301ea0f4Smrg moutb(addr, val); 84301ea0f4Smrg} 85301ea0f4Smrg 86301ea0f4Smrgstatic char I740ReadStandardMMIO(I740Ptr pI740, int addr) { 87301ea0f4Smrg return minb(addr); 88301ea0f4Smrg} 89301ea0f4Smrg 90301ea0f4Smrgvoid I740SetMMIOAccess(I740Ptr pI740) { 91301ea0f4Smrg pI740->writeControl=I740WriteControlMMIO; 92301ea0f4Smrg pI740->readControl=I740ReadControlMMIO; 93301ea0f4Smrg pI740->writeStandard=I740WriteStandardMMIO; 94301ea0f4Smrg pI740->readStandard=I740ReadStandardMMIO; 95301ea0f4Smrg} 96301ea0f4Smrg 97