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