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 28301ea0f4Smrg/* 29301ea0f4Smrg * Authors: 30301ea0f4Smrg * Daryll Strauss <daryll@precisioninsight.com> 31301ea0f4Smrg * 32301ea0f4Smrg */ 33301ea0f4Smrg 34301ea0f4Smrg#ifdef HAVE_CONFIG_H 35301ea0f4Smrg#include "config.h" 36301ea0f4Smrg#endif 37301ea0f4Smrg 38301ea0f4Smrg#include "xf86.h" 39301ea0f4Smrg#include "xf86_OSproc.h" 40301ea0f4Smrg#include "compiler.h" 41301ea0f4Smrg#include "vgaHW.h" 42301ea0f4Smrg 43301ea0f4Smrg#include "xf86xv.h" 44301ea0f4Smrg#include "i740.h" 45301ea0f4Smrg 46301ea0f4Smrgstatic void I740WriteControlPIO(I740Ptr pI740, int addr, unsigned char index, char val) { 47301ea0f4Smrg outb(addr, index); 48301ea0f4Smrg outb(addr+1, val); 49301ea0f4Smrg} 50301ea0f4Smrg 51301ea0f4Smrgstatic char I740ReadControlPIO(I740Ptr pI740, int addr, unsigned char index) { 52301ea0f4Smrg outb(addr, index); 53301ea0f4Smrg return inb(addr+1); 54301ea0f4Smrg} 55301ea0f4Smrg 56301ea0f4Smrgstatic void I740WriteStandardPIO(I740Ptr pI740, int addr, unsigned char val) { 57301ea0f4Smrg outb(addr, val); 58301ea0f4Smrg} 59301ea0f4Smrg 60301ea0f4Smrgstatic char I740ReadStandardPIO(I740Ptr pI740, int addr) { 61301ea0f4Smrg return inb(addr); 62301ea0f4Smrg} 63301ea0f4Smrg 64301ea0f4Smrgvoid I740SetPIOAccess(I740Ptr pI740) { 65301ea0f4Smrg pI740->writeControl=I740WriteControlPIO; 66301ea0f4Smrg pI740->readControl=I740ReadControlPIO; 67301ea0f4Smrg pI740->writeStandard=I740WriteStandardPIO; 68301ea0f4Smrg pI740->readStandard=I740ReadStandardPIO; 69301ea0f4Smrg} 70301ea0f4Smrg 71301ea0f4Smrgstatic void I740WriteControlMMIO(I740Ptr pI740, int addr, unsigned char index, char val) { 72301ea0f4Smrg moutb(addr, index); 73301ea0f4Smrg moutb(addr+1, val); 74301ea0f4Smrg} 75301ea0f4Smrg 76301ea0f4Smrgstatic char I740ReadControlMMIO(I740Ptr pI740, int addr, unsigned char index) { 77301ea0f4Smrg moutb(addr, index); 78301ea0f4Smrg return minb(addr+1); 79301ea0f4Smrg} 80301ea0f4Smrg 81301ea0f4Smrgstatic void I740WriteStandardMMIO(I740Ptr pI740, int addr, unsigned char val) { 82301ea0f4Smrg moutb(addr, val); 83301ea0f4Smrg} 84301ea0f4Smrg 85301ea0f4Smrgstatic char I740ReadStandardMMIO(I740Ptr pI740, int addr) { 86301ea0f4Smrg return minb(addr); 87301ea0f4Smrg} 88301ea0f4Smrg 89301ea0f4Smrgvoid I740SetMMIOAccess(I740Ptr pI740) { 90301ea0f4Smrg pI740->writeControl=I740WriteControlMMIO; 91301ea0f4Smrg pI740->readControl=I740ReadControlMMIO; 92301ea0f4Smrg pI740->writeStandard=I740WriteStandardMMIO; 93301ea0f4Smrg pI740->readStandard=I740ReadStandardMMIO; 94301ea0f4Smrg} 95301ea0f4Smrg 96