/* # $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/nsc_msr_asm.S,v 1.1 2002/12/12 22:13:34 dawes Exp $ ########################################################################## # NSC_LIC_ALTERNATIVE_PREAMBLE # # Revision 1.0 # # National Semiconductor Alternative GPL-BSD License # # National Semiconductor Corporation licenses this software # ("Software"): # # Geode Xfree frame buffer driver # # under one of the two following licenses, depending on how the # Software is received by the Licensee. # # If this Software is received as part of the Linux Framebuffer or # other GPL licensed software, then the GPL license designated # NSC_LIC_GPL applies to this Software; in all other circumstances # then the BSD-style license designated NSC_LIC_BSD shall apply. # # END_NSC_LIC_ALTERNATIVE_PREAMBLE ########################################################################## # NSC_LIC_BSD # # National Semiconductor Corporation Open Source License for # # Geode Xfree frame buffer driver # # (BSD License with Export Notice) # # Copyright (c) 1999-2001 # National Semiconductor Corporation. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # * Neither the name of the National Semiconductor Corporation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior # written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, # INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY # OF SUCH DAMAGE. # # EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF # YOUR JURISDICTION. It is licensee's responsibility to comply with # any export regulations applicable in licensee's jurisdiction. Under # CURRENT (2001) U.S. export regulations this software # is eligible for export from the U.S. and can be downloaded by or # otherwise exported or reexported worldwide EXCEPT to U.S. embargoed # destinations which include Cuba, Iraq, Libya, North Korea, Iran, # Syria, Sudan, Afghanistan and any other country to which the U.S. # has embargoed goods and services. # # END_NSC_LIC_BSD ########################################################################## # NSC_LIC_GPL # # National Semiconductor Corporation Gnu General Public License for # # Geode Xfree frame buffer driver # # (GPL License with Export Notice) # # Copyright (c) 1999-2001 # National Semiconductor Corporation. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted under the terms of the GNU General # Public License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version # # In addition to the terms of the GNU General Public License, neither # the name of the National Semiconductor Corporation nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, # INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY # OF SUCH DAMAGE. See the GNU General Public License for more details. # # EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF # YOUR JURISDICTION. It is licensee's responsibility to comply with # any export regulations applicable in licensee's jurisdiction. Under # CURRENT (2001) U.S. export regulations this software # is eligible for export from the U.S. and can be downloaded by or # otherwise exported or reexported worldwide EXCEPT to U.S. embargoed # destinations which include Cuba, Iraq, Libya, North Korea, Iran, # Syria, Sudan, Afghanistan and any other country to which the U.S. # has embargoed goods and services. # # You should have received a copy of the GNU General Public License # along with this file; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # END_NSC_LIC_GPL */ #include "assyntax.h" FILE("nsc_msr_asm.s") AS_BEGIN SEG_TEXT ALIGNTEXT4 GLOBL GLNAME(nsc_asm_msr_vsa_rd) GLNAME(nsc_asm_msr_vsa_rd): PUSH_L (EBP) MOV_L (ESP,EBP) PUSH_L (EAX) PUSH_L (EBX) PUSH_L (ECX) PUSH_L (EDX) MOV_L (REGOFF(8,EBP),ECX) /* unlock */ MOV_W (CONST(0x0ac1c),DX) MOV_W (CONST(0x0fc53),AX) OUT_W MOV_W (CONST(0x0ac1c),DX) MOV_W (CONST(0x0007),AX) OUT_W MOV_W (CONST(0x0ac1e),DX) IN_W MOV_L (REGOFF(12,EBP),EBX) MOV_L (EDX,REGIND(EBX)) MOV_L (REGOFF(16,EBP),EBX) MOV_L (EAX,REGIND(EBX)) POP_L (EDX) POP_L (ECX) POP_L (EBX) POP_L (EAX) LEAVE RET /*###################################*/ ALIGNTEXT4 GLOBL GLNAME(nsc_asm_msr_vsa_wr) GLNAME(nsc_asm_msr_vsa_wr): PUSH_L (EBP) MOV_L (ESP,EBP) PUSH_L (EAX) PUSH_L (EBX) PUSH_L (ECX) PUSH_L (EDX) PUSH_L (EDI) PUSH_L (ESI) MOV_L (REGOFF(8,EBP),ECX) /* unlock */ MOV_W (CONST(0x0ac1c),DX) MOV_L (CONST(0x0fc530007),EAX) OUT_L MOV_L (REGOFF(12,EBP),EBX) MOV_L (REGOFF(16,EBP),EAX) XOR_L (ESI,ESI) XOR_L (EDI,EDI) MOV_W (CONST(0x0ac1e),DX) OUT_W POP_L (ESI) POP_L (EDI) POP_L (EDX) POP_L (ECX) POP_L (EBX) POP_L (EAX) LEAVE RET /*###################################*/