171d7fec4Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/gfx/gfx_vip.c,v 1.1 2002/12/10 15:12:26 alanh Exp $ */ 271d7fec4Smrg/* 371d7fec4Smrg * $Workfile: gfx_vip.c $ 471d7fec4Smrg * 571d7fec4Smrg * This file contains routines to control the video input port (VIP). 671d7fec4Smrg * 771d7fec4Smrg * gfx_set_vip_enable 871d7fec4Smrg * gfx_set_vip_capture_run_mode 971d7fec4Smrg * gfx_set_vip_base 1071d7fec4Smrg * gfx_set_vip_pitch 1171d7fec4Smrg * gfx_set_vip_mode 1271d7fec4Smrg * gfx_set_vbi_enable 1371d7fec4Smrg * gfx_set_vbi_mode 1471d7fec4Smrg * gfx_set_vbi_base 1571d7fec4Smrg * gfx_set_vbi_pitch 1671d7fec4Smrg * gfx_set_vbi_direct 1771d7fec4Smrg * gfx_set_vbi_interrupt 1871d7fec4Smrg * gfx_set_vip_bus_request_threshold_high 1971d7fec4Smrg * gfx_set_vip_last_line 2071d7fec4Smrg * gfx_test_vip_odd_field 2171d7fec4Smrg * gfx_test_vip_bases_updated 2271d7fec4Smrg * gfx_test_vip_fifo_overflow 2371d7fec4Smrg * gfx_get_vip_line 2471d7fec4Smrg * gfx_get_vip_base 2571d7fec4Smrg * gfx_get_vbi_pitch 2671d7fec4Smrg * 2771d7fec4Smrg * And the following routines if GFX_READ_ROUTINES is set: 2871d7fec4Smrg * 2971d7fec4Smrg * gfx_get_vip_enable 3071d7fec4Smrg * gfx_get_vip_pitch 3171d7fec4Smrg * gfx_get_vip_mode 3271d7fec4Smrg * gfx_get_vbi_enable 3371d7fec4Smrg * gfx_get_vbi_mode 3471d7fec4Smrg * gfx_get_vbi_base 3571d7fec4Smrg * gfx_get_vbi_direct 3671d7fec4Smrg * gfx_get_vbi_interrupt 3771d7fec4Smrg * gfx_get_vip_bus_request_threshold_high 3871d7fec4Smrg * 3971d7fec4Smrg * NSC_LIC_ALTERNATIVE_PREAMBLE 4071d7fec4Smrg * 4171d7fec4Smrg * Revision 1.0 4271d7fec4Smrg * 4371d7fec4Smrg * National Semiconductor Alternative GPL-BSD License 4471d7fec4Smrg * 4571d7fec4Smrg * National Semiconductor Corporation licenses this software 4671d7fec4Smrg * ("Software"): 4771d7fec4Smrg * 4871d7fec4Smrg * Durango 4971d7fec4Smrg * 5071d7fec4Smrg * under one of the two following licenses, depending on how the 5171d7fec4Smrg * Software is received by the Licensee. 5271d7fec4Smrg * 5371d7fec4Smrg * If this Software is received as part of the Linux Framebuffer or 5471d7fec4Smrg * other GPL licensed software, then the GPL license designated 5571d7fec4Smrg * NSC_LIC_GPL applies to this Software; in all other circumstances 5671d7fec4Smrg * then the BSD-style license designated NSC_LIC_BSD shall apply. 5771d7fec4Smrg * 5871d7fec4Smrg * END_NSC_LIC_ALTERNATIVE_PREAMBLE */ 5971d7fec4Smrg 6071d7fec4Smrg/* NSC_LIC_BSD 6171d7fec4Smrg * 6271d7fec4Smrg * National Semiconductor Corporation Open Source License for Durango 6371d7fec4Smrg * 6471d7fec4Smrg * (BSD License with Export Notice) 6571d7fec4Smrg * 6671d7fec4Smrg * Copyright (c) 1999-2001 6771d7fec4Smrg * National Semiconductor Corporation. 6871d7fec4Smrg * All rights reserved. 6971d7fec4Smrg * 7071d7fec4Smrg * Redistribution and use in source and binary forms, with or without 7171d7fec4Smrg * modification, are permitted provided that the following conditions 7271d7fec4Smrg * are met: 7371d7fec4Smrg * 7471d7fec4Smrg * * Redistributions of source code must retain the above copyright 7571d7fec4Smrg * notice, this list of conditions and the following disclaimer. 7671d7fec4Smrg * 7771d7fec4Smrg * * Redistributions in binary form must reproduce the above 7871d7fec4Smrg * copyright notice, this list of conditions and the following 7971d7fec4Smrg * disclaimer in the documentation and/or other materials provided 8071d7fec4Smrg * with the distribution. 8171d7fec4Smrg * 8271d7fec4Smrg * * Neither the name of the National Semiconductor Corporation nor 8371d7fec4Smrg * the names of its contributors may be used to endorse or promote 8471d7fec4Smrg * products derived from this software without specific prior 8571d7fec4Smrg * written permission. 8671d7fec4Smrg * 8771d7fec4Smrg * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 8871d7fec4Smrg * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 8971d7fec4Smrg * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 9071d7fec4Smrg * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 9171d7fec4Smrg * NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY 9271d7fec4Smrg * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9371d7fec4Smrg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 9471d7fec4Smrg * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 9571d7fec4Smrg * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 9671d7fec4Smrg * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, 9771d7fec4Smrg * INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY 9871d7fec4Smrg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 9971d7fec4Smrg * OF SUCH DAMAGE. 10071d7fec4Smrg * 10171d7fec4Smrg * EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF 10271d7fec4Smrg * YOUR JURISDICTION. It is licensee's responsibility to comply with 10371d7fec4Smrg * any export regulations applicable in licensee's jurisdiction. Under 10471d7fec4Smrg * CURRENT (2001) U.S. export regulations this software 10571d7fec4Smrg * is eligible for export from the U.S. and can be downloaded by or 10671d7fec4Smrg * otherwise exported or reexported worldwide EXCEPT to U.S. embargoed 10771d7fec4Smrg * destinations which include Cuba, Iraq, Libya, North Korea, Iran, 10871d7fec4Smrg * Syria, Sudan, Afghanistan and any other country to which the U.S. 10971d7fec4Smrg * has embargoed goods and services. 11071d7fec4Smrg * 11171d7fec4Smrg * END_NSC_LIC_BSD */ 11271d7fec4Smrg 11371d7fec4Smrg/* NSC_LIC_GPL 11471d7fec4Smrg * 11571d7fec4Smrg * National Semiconductor Corporation Gnu General Public License for Durango 11671d7fec4Smrg * 11771d7fec4Smrg * (GPL License with Export Notice) 11871d7fec4Smrg * 11971d7fec4Smrg * Copyright (c) 1999-2001 12071d7fec4Smrg * National Semiconductor Corporation. 12171d7fec4Smrg * All rights reserved. 12271d7fec4Smrg * 12371d7fec4Smrg * Redistribution and use in source and binary forms, with or without 12471d7fec4Smrg * modification, are permitted under the terms of the GNU General 12571d7fec4Smrg * Public License as published by the Free Software Foundation; either 12671d7fec4Smrg * version 2 of the License, or (at your option) any later version 12771d7fec4Smrg * 12871d7fec4Smrg * In addition to the terms of the GNU General Public License, neither 12971d7fec4Smrg * the name of the National Semiconductor Corporation nor the names of 13071d7fec4Smrg * its contributors may be used to endorse or promote products derived 13171d7fec4Smrg * from this software without specific prior written permission. 13271d7fec4Smrg * 13371d7fec4Smrg * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 13471d7fec4Smrg * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 13571d7fec4Smrg * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13671d7fec4Smrg * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 13771d7fec4Smrg * NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY 13871d7fec4Smrg * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13971d7fec4Smrg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 14071d7fec4Smrg * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 14171d7fec4Smrg * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 14271d7fec4Smrg * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, 14371d7fec4Smrg * INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY 14471d7fec4Smrg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 14571d7fec4Smrg * OF SUCH DAMAGE. See the GNU General Public License for more details. 14671d7fec4Smrg * 14771d7fec4Smrg * EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF 14871d7fec4Smrg * YOUR JURISDICTION. It is licensee's responsibility to comply with 14971d7fec4Smrg * any export regulations applicable in licensee's jurisdiction. Under 15071d7fec4Smrg * CURRENT (2001) U.S. export regulations this software 15171d7fec4Smrg * is eligible for export from the U.S. and can be downloaded by or 15271d7fec4Smrg * otherwise exported or reexported worldwide EXCEPT to U.S. embargoed 15371d7fec4Smrg * destinations which include Cuba, Iraq, Libya, North Korea, Iran, 15471d7fec4Smrg * Syria, Sudan, Afghanistan and any other country to which the U.S. 15571d7fec4Smrg * has embargoed goods and services. 15671d7fec4Smrg * 15771d7fec4Smrg * You should have received a copy of the GNU General Public License 15871d7fec4Smrg * along with this file; if not, write to the Free Software Foundation, 15971d7fec4Smrg * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16071d7fec4Smrg * 16171d7fec4Smrg * END_NSC_LIC_GPL */ 16271d7fec4Smrg 16371d7fec4Smrg/* INCLUDE SUPPORT FOR SC1200, IF SPECIFIED. */ 16471d7fec4Smrg 16571d7fec4Smrg#if GFX_VIP_SC1200 16671d7fec4Smrg#include "vip_1200.c" 16771d7fec4Smrg#endif 16871d7fec4Smrg 16971d7fec4Smrg/* WRAPPERS IF DYNAMIC SELECTION */ 17071d7fec4Smrg/* Extra layer to call either CS5530 or SC1200 routines. */ 17171d7fec4Smrg 17271d7fec4Smrg#if GFX_VIP_DYNAMIC 17371d7fec4Smrg 17471d7fec4Smrg/*----------------------------------------------------------------------------- 17571d7fec4Smrg * gfx_set_vip_enable 17671d7fec4Smrg *----------------------------------------------------------------------------- 17771d7fec4Smrg */ 17871d7fec4Smrgint 17971d7fec4Smrggfx_set_vip_enable(int enable) 18071d7fec4Smrg{ 18171d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 18271d7fec4Smrg 18371d7fec4Smrg# if GFX_VIP_SC1200 18471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 18571d7fec4Smrg status = sc1200_set_vip_enable(enable); 18671d7fec4Smrg# endif 18771d7fec4Smrg return (status); 18871d7fec4Smrg} 18971d7fec4Smrg 19071d7fec4Smrg/*----------------------------------------------------------------------------- 19171d7fec4Smrg * gfx_set_vip_capture_run_mode 19271d7fec4Smrg *----------------------------------------------------------------------------- 19371d7fec4Smrg */ 19471d7fec4Smrgint 19571d7fec4Smrggfx_set_vip_capture_run_mode(int mode) 19671d7fec4Smrg{ 19771d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 19871d7fec4Smrg 19971d7fec4Smrg# if GFX_VIP_SC1200 20071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 20171d7fec4Smrg status = sc1200_set_vip_capture_run_mode(mode); 20271d7fec4Smrg# endif 20371d7fec4Smrg return (status); 20471d7fec4Smrg} 20571d7fec4Smrg 20671d7fec4Smrg/*----------------------------------------------------------------------------- 20771d7fec4Smrg * gfx_set_vip_base 20871d7fec4Smrg *----------------------------------------------------------------------------- 20971d7fec4Smrg */ 21071d7fec4Smrgint 21171d7fec4Smrggfx_set_vip_base(unsigned long even, unsigned long odd) 21271d7fec4Smrg{ 21371d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 21471d7fec4Smrg 21571d7fec4Smrg# if GFX_VIP_SC1200 21671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 21771d7fec4Smrg status = sc1200_set_vip_base(even, odd); 21871d7fec4Smrg# endif 21971d7fec4Smrg return (status); 22071d7fec4Smrg} 22171d7fec4Smrg 22271d7fec4Smrg/*----------------------------------------------------------------------------- 22371d7fec4Smrg * gfx_set_vip_pitch 22471d7fec4Smrg *----------------------------------------------------------------------------- 22571d7fec4Smrg */ 22671d7fec4Smrgint 22771d7fec4Smrggfx_set_vip_pitch(unsigned long pitch) 22871d7fec4Smrg{ 22971d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 23071d7fec4Smrg 23171d7fec4Smrg# if GFX_VIP_SC1200 23271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 23371d7fec4Smrg status = sc1200_set_vip_pitch(pitch); 23471d7fec4Smrg# endif 23571d7fec4Smrg return (status); 23671d7fec4Smrg} 23771d7fec4Smrg 23871d7fec4Smrg/*----------------------------------------------------------------------------- 23971d7fec4Smrg * gfx_set_vip_mode 24071d7fec4Smrg *----------------------------------------------------------------------------- 24171d7fec4Smrg */ 24271d7fec4Smrgint 24371d7fec4Smrggfx_set_vip_mode(int mode) 24471d7fec4Smrg{ 24571d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 24671d7fec4Smrg 24771d7fec4Smrg# if GFX_VIP_SC1200 24871d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 24971d7fec4Smrg status = sc1200_set_vip_mode(mode); 25071d7fec4Smrg# endif 25171d7fec4Smrg return (status); 25271d7fec4Smrg} 25371d7fec4Smrg 25471d7fec4Smrg/*----------------------------------------------------------------------------- 25571d7fec4Smrg * gfx_set_vbi_enable 25671d7fec4Smrg *----------------------------------------------------------------------------- 25771d7fec4Smrg */ 25871d7fec4Smrgint 25971d7fec4Smrggfx_set_vbi_enable(int enable) 26071d7fec4Smrg{ 26171d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 26271d7fec4Smrg 26371d7fec4Smrg# if GFX_VIP_SC1200 26471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 26571d7fec4Smrg status = sc1200_set_vbi_enable(enable); 26671d7fec4Smrg# endif 26771d7fec4Smrg return (status); 26871d7fec4Smrg} 26971d7fec4Smrg 27071d7fec4Smrg/*----------------------------------------------------------------------------- 27171d7fec4Smrg * gfx_set_vbi_mode 27271d7fec4Smrg *----------------------------------------------------------------------------- 27371d7fec4Smrg */ 27471d7fec4Smrgint 27571d7fec4Smrggfx_set_vbi_mode(int mode) 27671d7fec4Smrg{ 27771d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 27871d7fec4Smrg 27971d7fec4Smrg# if GFX_VIP_SC1200 28071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 28171d7fec4Smrg status = sc1200_set_vbi_mode(mode); 28271d7fec4Smrg# endif 28371d7fec4Smrg return (status); 28471d7fec4Smrg} 28571d7fec4Smrg 28671d7fec4Smrg/*----------------------------------------------------------------------------- 28771d7fec4Smrg * gfx_set_vbi_base 28871d7fec4Smrg *----------------------------------------------------------------------------- 28971d7fec4Smrg */ 29071d7fec4Smrgint 29171d7fec4Smrggfx_set_vbi_base(unsigned long even, unsigned long odd) 29271d7fec4Smrg{ 29371d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 29471d7fec4Smrg 29571d7fec4Smrg# if GFX_VIP_SC1200 29671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 29771d7fec4Smrg status = sc1200_set_vbi_base(even, odd); 29871d7fec4Smrg# endif 29971d7fec4Smrg return (status); 30071d7fec4Smrg} 30171d7fec4Smrg 30271d7fec4Smrg/*----------------------------------------------------------------------------- 30371d7fec4Smrg * gfx_set_vbi_pitch 30471d7fec4Smrg *----------------------------------------------------------------------------- 30571d7fec4Smrg */ 30671d7fec4Smrgint 30771d7fec4Smrggfx_set_vbi_pitch(unsigned long pitch) 30871d7fec4Smrg{ 30971d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 31071d7fec4Smrg 31171d7fec4Smrg# if GFX_VIP_SC1200 31271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 31371d7fec4Smrg status = sc1200_set_vbi_pitch(pitch); 31471d7fec4Smrg# endif 31571d7fec4Smrg return (status); 31671d7fec4Smrg} 31771d7fec4Smrg 31871d7fec4Smrg/*----------------------------------------------------------------------------- 31971d7fec4Smrg * gfx_set_vbi_direct 32071d7fec4Smrg *----------------------------------------------------------------------------- 32171d7fec4Smrg */ 32271d7fec4Smrgint 32371d7fec4Smrggfx_set_vbi_direct(unsigned long even_lines, unsigned long odd_lines) 32471d7fec4Smrg{ 32571d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 32671d7fec4Smrg 32771d7fec4Smrg# if GFX_VIP_SC1200 32871d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 32971d7fec4Smrg status = sc1200_set_vbi_direct(even_lines, odd_lines); 33071d7fec4Smrg# endif 33171d7fec4Smrg return (status); 33271d7fec4Smrg} 33371d7fec4Smrg 33471d7fec4Smrg/*----------------------------------------------------------------------------- 33571d7fec4Smrg * gfx_set_vbi_interrupt 33671d7fec4Smrg *----------------------------------------------------------------------------- 33771d7fec4Smrg */ 33871d7fec4Smrgint 33971d7fec4Smrggfx_set_vbi_interrupt(int enable) 34071d7fec4Smrg{ 34171d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 34271d7fec4Smrg 34371d7fec4Smrg# if GFX_VIP_SC1200 34471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 34571d7fec4Smrg status = sc1200_set_vbi_interrupt(enable); 34671d7fec4Smrg# endif 34771d7fec4Smrg return (status); 34871d7fec4Smrg} 34971d7fec4Smrg 35071d7fec4Smrg/*----------------------------------------------------------------------------- 35171d7fec4Smrg * gfx_set_vip_bus_request_threshold_high 35271d7fec4Smrg *----------------------------------------------------------------------------- 35371d7fec4Smrg */ 35471d7fec4Smrgint 35571d7fec4Smrggfx_set_vip_bus_request_threshold_high(int enable) 35671d7fec4Smrg{ 35771d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 35871d7fec4Smrg 35971d7fec4Smrg# if GFX_VIP_SC1200 36071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 36171d7fec4Smrg status = sc1200_set_vip_bus_request_threshold_high(enable); 36271d7fec4Smrg# endif 36371d7fec4Smrg return (status); 36471d7fec4Smrg} 36571d7fec4Smrg 36671d7fec4Smrg/*----------------------------------------------------------------------------- 36771d7fec4Smrg * gfx_set_vip_last_line 36871d7fec4Smrg *----------------------------------------------------------------------------- 36971d7fec4Smrg */ 37071d7fec4Smrgint 37171d7fec4Smrggfx_set_vip_last_line(int last_line) 37271d7fec4Smrg{ 37371d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 37471d7fec4Smrg 37571d7fec4Smrg# if GFX_VIP_SC1200 37671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 37771d7fec4Smrg status = sc1200_set_vip_last_line(last_line); 37871d7fec4Smrg# endif 37971d7fec4Smrg return (status); 38071d7fec4Smrg} 38171d7fec4Smrg 38271d7fec4Smrg/*----------------------------------------------------------------------------- 38371d7fec4Smrg * gfx_test_vip_odd_field 38471d7fec4Smrg *----------------------------------------------------------------------------- 38571d7fec4Smrg */ 38671d7fec4Smrgint 38771d7fec4Smrggfx_test_vip_odd_field(void) 38871d7fec4Smrg{ 38971d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 39071d7fec4Smrg 39171d7fec4Smrg# if GFX_VIP_SC1200 39271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 39371d7fec4Smrg status = sc1200_test_vip_odd_field(); 39471d7fec4Smrg# endif 39571d7fec4Smrg return (status); 39671d7fec4Smrg} 39771d7fec4Smrg 39871d7fec4Smrg/*----------------------------------------------------------------------------- 39971d7fec4Smrg * gfx_test_vip_bases_updated 40071d7fec4Smrg *----------------------------------------------------------------------------- 40171d7fec4Smrg */ 40271d7fec4Smrgint 40371d7fec4Smrggfx_test_vip_bases_updated(void) 40471d7fec4Smrg{ 40571d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 40671d7fec4Smrg 40771d7fec4Smrg# if GFX_VIP_SC1200 40871d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 40971d7fec4Smrg status = sc1200_test_vip_bases_updated(); 41071d7fec4Smrg# endif 41171d7fec4Smrg return (status); 41271d7fec4Smrg} 41371d7fec4Smrg 41471d7fec4Smrg/*----------------------------------------------------------------------------- 41571d7fec4Smrg * gfx_test_vip_fifo_overflow 41671d7fec4Smrg *----------------------------------------------------------------------------- 41771d7fec4Smrg */ 41871d7fec4Smrgint 41971d7fec4Smrggfx_test_vip_fifo_overflow(void) 42071d7fec4Smrg{ 42171d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 42271d7fec4Smrg 42371d7fec4Smrg# if GFX_VIP_SC1200 42471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 42571d7fec4Smrg status = sc1200_test_vip_fifo_overflow(); 42671d7fec4Smrg# endif 42771d7fec4Smrg return (status); 42871d7fec4Smrg} 42971d7fec4Smrg 43071d7fec4Smrg/*----------------------------------------------------------------------------- 43171d7fec4Smrg * gfx_get_vip_line 43271d7fec4Smrg *----------------------------------------------------------------------------- 43371d7fec4Smrg */ 43471d7fec4Smrgint 43571d7fec4Smrggfx_get_vip_line(void) 43671d7fec4Smrg{ 43771d7fec4Smrg int status = GFX_STATUS_UNSUPPORTED; 43871d7fec4Smrg 43971d7fec4Smrg# if GFX_VIP_SC1200 44071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 44171d7fec4Smrg status = sc1200_get_vip_line(); 44271d7fec4Smrg# endif 44371d7fec4Smrg return (status); 44471d7fec4Smrg} 44571d7fec4Smrg 44671d7fec4Smrg/*----------------------------------------------------------------------------- 44771d7fec4Smrg * gfx_get_vip_base 44871d7fec4Smrg *----------------------------------------------------------------------------- 44971d7fec4Smrg */ 45071d7fec4Smrgunsigned long 45171d7fec4Smrggfx_get_vip_base(int odd) 45271d7fec4Smrg{ 45371d7fec4Smrg unsigned long base = 0; 45471d7fec4Smrg 45571d7fec4Smrg# if GFX_VIP_SC1200 45671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 45771d7fec4Smrg base = sc1200_get_vip_base(odd); 45871d7fec4Smrg# endif 45971d7fec4Smrg return (base); 46071d7fec4Smrg} 46171d7fec4Smrg 46271d7fec4Smrg/*----------------------------------------------------------------------------- 46371d7fec4Smrg * gfx_get_vbi_pitch 46471d7fec4Smrg *----------------------------------------------------------------------------- 46571d7fec4Smrg */ 46671d7fec4Smrgunsigned long 46771d7fec4Smrggfx_get_vbi_pitch(void) 46871d7fec4Smrg{ 46971d7fec4Smrg unsigned long pitch = 0; 47071d7fec4Smrg 47171d7fec4Smrg# if GFX_VIP_SC1200 47271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 47371d7fec4Smrg pitch = sc1200_get_vbi_pitch(); 47471d7fec4Smrg# endif 47571d7fec4Smrg return (pitch); 47671d7fec4Smrg} 47771d7fec4Smrg 47871d7fec4Smrg/*************************************************************/ 47971d7fec4Smrg/* READ ROUTINES | INCLUDED FOR DIAGNOSTIC PURPOSES ONLY */ 48071d7fec4Smrg/*************************************************************/ 48171d7fec4Smrg 48271d7fec4Smrg#if GFX_READ_ROUTINES 48371d7fec4Smrg 48471d7fec4Smrg/*----------------------------------------------------------------------------- 48571d7fec4Smrg * gfx_get_vip_enable 48671d7fec4Smrg *----------------------------------------------------------------------------- 48771d7fec4Smrg */ 48871d7fec4Smrgint 48971d7fec4Smrggfx_get_vip_enable(void) 49071d7fec4Smrg{ 49171d7fec4Smrg int enable = 0; 49271d7fec4Smrg 49371d7fec4Smrg# if GFX_VIP_SC1200 49471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 49571d7fec4Smrg enable = sc1200_get_vip_enable(); 49671d7fec4Smrg# endif 49771d7fec4Smrg return (enable); 49871d7fec4Smrg} 49971d7fec4Smrg 50071d7fec4Smrg/*----------------------------------------------------------------------------- 50171d7fec4Smrg * gfx_get_vip_pitch 50271d7fec4Smrg *----------------------------------------------------------------------------- 50371d7fec4Smrg */ 50471d7fec4Smrgunsigned long 50571d7fec4Smrggfx_get_vip_pitch(void) 50671d7fec4Smrg{ 50771d7fec4Smrg unsigned long pitch = 0; 50871d7fec4Smrg 50971d7fec4Smrg# if GFX_VIP_SC1200 51071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 51171d7fec4Smrg pitch = sc1200_get_vip_pitch(); 51271d7fec4Smrg# endif 51371d7fec4Smrg return (pitch); 51471d7fec4Smrg} 51571d7fec4Smrg 51671d7fec4Smrg/*----------------------------------------------------------------------------- 51771d7fec4Smrg * gfx_get_vip_mode 51871d7fec4Smrg *----------------------------------------------------------------------------- 51971d7fec4Smrg */ 52071d7fec4Smrgint 52171d7fec4Smrggfx_get_vip_mode(void) 52271d7fec4Smrg{ 52371d7fec4Smrg int mode = 0; 52471d7fec4Smrg 52571d7fec4Smrg# if GFX_VIP_SC1200 52671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 52771d7fec4Smrg mode = sc1200_get_vip_mode(); 52871d7fec4Smrg# endif 52971d7fec4Smrg return (mode); 53071d7fec4Smrg} 53171d7fec4Smrg 53271d7fec4Smrg/*----------------------------------------------------------------------------- 53371d7fec4Smrg * gfx_get_vbi_enable 53471d7fec4Smrg *----------------------------------------------------------------------------- 53571d7fec4Smrg */ 53671d7fec4Smrgint 53771d7fec4Smrggfx_get_vbi_enable(void) 53871d7fec4Smrg{ 53971d7fec4Smrg int enable = 0; 54071d7fec4Smrg 54171d7fec4Smrg# if GFX_VIP_SC1200 54271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 54371d7fec4Smrg enable = sc1200_get_vbi_enable(); 54471d7fec4Smrg# endif 54571d7fec4Smrg return (enable); 54671d7fec4Smrg} 54771d7fec4Smrg 54871d7fec4Smrg/*----------------------------------------------------------------------------- 54971d7fec4Smrg * gfx_get_vbi_mode 55071d7fec4Smrg *----------------------------------------------------------------------------- 55171d7fec4Smrg */ 55271d7fec4Smrgint 55371d7fec4Smrggfx_get_vbi_mode(void) 55471d7fec4Smrg{ 55571d7fec4Smrg int mode = 0; 55671d7fec4Smrg 55771d7fec4Smrg# if GFX_VIP_SC1200 55871d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 55971d7fec4Smrg mode = sc1200_get_vbi_mode(); 56071d7fec4Smrg# endif 56171d7fec4Smrg return (mode); 56271d7fec4Smrg} 56371d7fec4Smrg 56471d7fec4Smrg/*----------------------------------------------------------------------------- 56571d7fec4Smrg * gfx_get_vbi_base 56671d7fec4Smrg *----------------------------------------------------------------------------- 56771d7fec4Smrg */ 56871d7fec4Smrgunsigned long 56971d7fec4Smrggfx_get_vbi_base(int odd) 57071d7fec4Smrg{ 57171d7fec4Smrg unsigned long base = 0; 57271d7fec4Smrg 57371d7fec4Smrg# if GFX_VIP_SC1200 57471d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 57571d7fec4Smrg base = sc1200_get_vbi_base(odd); 57671d7fec4Smrg# endif 57771d7fec4Smrg return (base); 57871d7fec4Smrg} 57971d7fec4Smrg 58071d7fec4Smrg/*----------------------------------------------------------------------------- 58171d7fec4Smrg * gfx_get_vbi_direct 58271d7fec4Smrg *----------------------------------------------------------------------------- 58371d7fec4Smrg */ 58471d7fec4Smrgunsigned long 58571d7fec4Smrggfx_get_vbi_direct(int odd) 58671d7fec4Smrg{ 58771d7fec4Smrg unsigned long vbi_direct_lines = 0; 58871d7fec4Smrg 58971d7fec4Smrg# if GFX_VIP_SC1200 59071d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 59171d7fec4Smrg vbi_direct_lines = sc1200_get_vbi_direct(odd); 59271d7fec4Smrg# endif 59371d7fec4Smrg return (vbi_direct_lines); 59471d7fec4Smrg} 59571d7fec4Smrg 59671d7fec4Smrg/*----------------------------------------------------------------------------- 59771d7fec4Smrg * gfx_get_vbi_interrupt 59871d7fec4Smrg *----------------------------------------------------------------------------- 59971d7fec4Smrg */ 60071d7fec4Smrgint 60171d7fec4Smrggfx_get_vbi_interrupt(void) 60271d7fec4Smrg{ 60371d7fec4Smrg int enable = 0; 60471d7fec4Smrg 60571d7fec4Smrg# if GFX_VIP_SC1200 60671d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 60771d7fec4Smrg enable = sc1200_get_vbi_interrupt(); 60871d7fec4Smrg# endif 60971d7fec4Smrg return (enable); 61071d7fec4Smrg} 61171d7fec4Smrg 61271d7fec4Smrg/*----------------------------------------------------------------------------- 61371d7fec4Smrg * gfx_get_vip_bus_request_threshold_high 61471d7fec4Smrg *----------------------------------------------------------------------------- 61571d7fec4Smrg */ 61671d7fec4Smrgint 61771d7fec4Smrggfx_get_vip_bus_request_threshold_high(void) 61871d7fec4Smrg{ 61971d7fec4Smrg int enable = 0; 62071d7fec4Smrg 62171d7fec4Smrg# if GFX_VIP_SC1200 62271d7fec4Smrg if (gfx_vip_type == GFX_VIP_TYPE_SC1200) 62371d7fec4Smrg enable = sc1200_get_vip_bus_request_threshold_high(); 62471d7fec4Smrg# endif 62571d7fec4Smrg return (enable); 62671d7fec4Smrg} 62771d7fec4Smrg 62871d7fec4Smrg#endif /* GFX_READ_ROUTINES */ 62971d7fec4Smrg 63071d7fec4Smrg#endif /* GFX_VIP_DYNAMIC */ 63171d7fec4Smrg 63271d7fec4Smrg/* END OF FILE */ 633