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