summaryrefslogtreecommitdiff
path: root/src/gfx/gfx_tv.c
diff options
context:
space:
mode:
authorJordan Crouse <jordan.crouse@amd.com>2006-07-06 14:56:42 -0600
committerJordan Crouse <jordan.crouse@amd.com>2006-07-06 14:56:42 -0600
commitc3ab9f1a60afe1f5e86db1cf2635acda14fae2f5 (patch)
tree00cfb19765f276220eb794553b545e9f67402688 /src/gfx/gfx_tv.c
Initial commit of the xf86-video-amd tree
Diffstat (limited to 'src/gfx/gfx_tv.c')
-rw-r--r--src/gfx/gfx_tv.c836
1 files changed, 836 insertions, 0 deletions
diff --git a/src/gfx/gfx_tv.c b/src/gfx/gfx_tv.c
new file mode 100644
index 0000000..fb34d60
--- /dev/null
+++ b/src/gfx/gfx_tv.c
@@ -0,0 +1,836 @@
+/* Copyright (c) 2005 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Neither the name of the Advanced Micro Devices, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ * */
+
+/*
+ * This file contains routines to program TVOUT and TV encoder.
+ *
+ * Routines:
+ *
+ * gfx_set_tv_format
+ * gfx_set_tv_output
+ * gfx_set_tv_enable
+ * gfx_set_tv_flicker_filter
+ * gfx_set_tv_sub_carrier_reset
+ * gfx_set_tv_vphase
+ * gfx_set_tv_YC_delay
+ * gfx_set_tvenc_reset_interval
+ * gfx_set_tv_cc_enable
+ * gfx_set_tv_cc_data
+ * gfx_test_tvout_odd_field
+ * gfx_test_tvenc_odd_field
+ * gfx_set_tv_field_status_invert
+ * gfx_get_tv_vphase
+ * */
+
+/* TV TIMINGS */
+
+DISPLAYMODE TVTimings[] = {
+
+/* NTSC resolution */
+
+ {0x3 | /* negative syncs */
+ GFX_MODE_TV_NTSC, /* NTSC format */
+ 640, 640, 656, 744, 792, 792, /* horizontal timings */
+ 480, 480, 490, 492, 517, 525, /* vertical timings */
+ 0x0018EC4D, /* freq = 24.923052 MHz */
+ }
+ ,
+
+/* PAL resolution */
+
+ {0x3 | /* negative syncs */
+ GFX_MODE_TV_PAL, /* PAL format */
+ 768, 768, 800, 848, 864, 864, /* horizontal timings */
+ 576, 576, 586, 588, 625, 625, /* vertical timings */
+ 0x001B0000, /* freq = 27.00 MHz */
+ }
+ ,
+
+/* NTSC resolution non-square pixels */
+
+ {0x3 | /* negative syncs */
+ GFX_MODE_TV_NTSC, /* NTSC format */
+ 720, 720, 736, 752, 792, 792, /* horizontal timings */
+ 480, 480, 490, 492, 517, 525, /* vertical timings */
+ 0x0018EC4D, /* freq = 24.923052 MHz */
+ }
+ ,
+
+/* PAL resolution non-square pixels */
+
+ {0x3 | /* negative syncs */
+ GFX_MODE_TV_PAL, /* PAL format */
+ 720, 720, 752, 816, 864, 864, /* horizontal timings */
+ 576, 576, 586, 588, 625, 625, /* vertical timings */
+ 0x001B0000, /* freq = 27.00 MHz */
+ }
+};
+
+#define NUM_TV_MODES sizeof(TVTimings)/sizeof(DISPLAYMODE)
+
+/* INCLUDE SUPPORT FOR SC1200 TV ENCODER, IF SPECIFIED */
+
+#if GFX_TV_SC1200
+#include "tv_1200.c"
+#endif
+
+/* INCLUDE SUPPORT FOR FS450 TV ENCODER, IF SPECIFIED */
+
+#if GFX_TV_FS451
+#include "tv_fs450.c"
+#endif
+
+/* WRAPPERS IF DYNAMIC SELECTION */
+/* Extra layer to call either SC1200 or FS450 TV encoder routines. */
+
+#if GFX_TV_DYNAMIC
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_format
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_format(TVStandardType format, GfxOnTVType resolution)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_format(format, resolution);
+#endif
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tv_format(format, resolution);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_output
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_output(int output)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_output(output);
+#endif
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tv_output(output);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_enable
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_enable(int enable)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_enable(enable);
+#endif
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tv_enable(enable);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_flicker_filter
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_flicker_filter(int ff)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_flicker_filter(ff);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_sub_carrier_reset
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_sub_carrier_reset(int screset)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_sub_carrier_reset(screset);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_vphase
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_vphase(int vphase)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_vphase(vphase);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_YC_delay
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_YC_delay(int delay)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_YC_delay(delay);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tvenc_reset_interval
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tvenc_reset_interval(int interval)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tvenc_reset_interval(interval);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_cc_enable
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_cc_enable(int enable)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_cc_enable(enable);
+#endif
+ return (retval);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_cc_data
+ *
+ * This routine writes the two specified characters to the CC data register
+ * of the TV encoder.
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_cc_data(unsigned char data1, unsigned char data2)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_cc_data(data1, data2);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_set_tv_display
+ *
+ * Set the timings in the display controller to support a TV resolution.
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_display(int width, int height)
+{
+ int status = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ status = sc1200_set_tv_display(width, height);
+#endif
+ return (status);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_test_tvout_odd_field
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_test_tvout_odd_field(void)
+{
+ int status = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ status = sc1200_test_tvout_odd_field();
+#endif
+ return (status);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_test_tvenc_odd_field
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_test_tvenc_odd_field(void)
+{
+ int status = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ status = sc1200_test_tvenc_odd_field();
+#endif
+ return (status);
+}
+
+/*----------------------------------------------------------------------------
+ * gfx_set_tv_field_status_invert
+ *----------------------------------------------------------------------------
+ */
+int
+gfx_set_tv_field_status_invert(int enable)
+{
+ int retval = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_set_tv_field_status_invert(enable);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_vphase
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_vphase(void)
+{
+ int status = GFX_STATUS_UNSUPPORTED;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ status = sc1200_get_tv_vphase();
+#endif
+ return (status);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_enable
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_enable(unsigned int *p_on)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_tv_enable(p_on);
+#endif
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_get_tv_enable(p_on);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_output
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_output()
+{
+ int retval = -1;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_get_tv_output();
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_mode_count
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_mode_count(TVStandardType format)
+{
+ int retval = -1;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_get_tv_mode_count(format);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_display_mode
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_display_mode(int *width, int *height, int *bpp, int *hz)
+{
+ int retval = -1;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_get_tv_display_mode(width, height, bpp, hz);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_get_tv_display_mode_frequency
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_get_tv_display_mode_frequency(unsigned short width, unsigned short height,
+ TVStandardType format, int *frequency)
+{
+ int retval = -1;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval =
+ sc1200_get_tv_display_mode_frequency(width, height, format,
+ frequency);
+#endif
+ return (retval);
+}
+
+/*---------------------------------------------------------------------------
+ * gfx_is_tv_display_mode_supported
+ *---------------------------------------------------------------------------
+ */
+int
+gfx_is_tv_display_mode_supported(unsigned short width, unsigned short height,
+ TVStandardType format)
+{
+ int retval = -1;
+
+#if GFX_TV_SC1200
+ if (gfx_tv_type & GFX_TV_TYPE_SC1200)
+ retval = sc1200_is_tv_display_mode_supported(width, height, format);
+#endif
+ return (retval);
+}
+
+/*------------------------------------------
+ * The following functions were added to support
+ * the FS450 and will eventually be removed. There
+ * is no equivalent support in the SC1200.
+ *----------------------------------------------*/
+
+/*==========================================================================
+ * TV standard
+ *==========================================================================
+ */
+int
+gfx_get_tv_standard(unsigned long *p_standard)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_tv_standard(p_standard);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_available_tv_standards(unsigned long *p_standards)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_available_tv_standards(p_standards);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_tv_standard(unsigned long standard)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tv_standard(standard);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ * vga mode as known by the driver
+ *==========================================================================
+ */
+int
+gfx_get_tv_vga_mode(unsigned long *p_vga_mode)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_tv_vga_mode(p_vga_mode);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_available_tv_vga_modes(unsigned long *p_vga_modes)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_available_tv_vga_modes(p_vga_modes);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_tv_vga_mode(unsigned long vga_mode)
+{
+ int re tval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tv_vga_mode(vga_mode);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * tvout mode
+ */
+
+int
+gfx_get_tvout_mode(unsigned long *p_tvout_mode)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_tvout_mode(p_tvout_mode);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_tvout_mode(unsigned long tvout_mode)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_tvout_mode(tvout_mode);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * Sharpness
+ */
+int
+gfx_get_sharpness(int *p_sharpness)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_sharpness(p_sharpness);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_sharpness(int sharpness)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_sharpness(sharpness);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * flicker filter control.
+ */
+
+int
+gfx_get_flicker_filter(int *p_flicker)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_flicker_filter(p_flicker);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_flicker_filter(int flicker)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_flicker_filter(flicker);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * Overscan and Position
+ */
+
+int
+gfx_get_overscan(int *p_x, int *p_y)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_overscan(p_x, p_y);
+#endif
+ return (retval);
+
+}
+
+int
+gfx_set_overscan(int x, int y)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_overscan(x, y);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_position(int *p_x, int *p_y)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_position(p_x, p_y);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_position(int x, int y)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_position(x, y);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * Color, Brightness, and Contrast
+ */
+
+int
+gfx_get_color(int *p_color)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_color(p_color);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_color(int color)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_color(color);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_brightness(int *p_brightness)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_brightness(p_brightness);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_brightness(int brightness)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_brightness(brightness);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_contrast(int *p_contrast)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_contrast(p_contrast);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_contrast(int contrast)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_contrast(contrast);
+#endif
+ return (retval);
+}
+
+/*
+ *==========================================================================
+ *
+ * YC filters
+ */
+
+int
+gfx_get_yc_filter(unsigned int *p_yc_filter)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_yc_filter(p_yc_filter);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_yc_filter(unsigned int yc_filter)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_yc_filter(yc_filter);
+#endif
+ return (retval);
+}
+
+int
+gfx_get_aps_trigger_bits(unsigned int *p_trigger_bits)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_get_aps_trigger_bits(p_trigger_bits);
+#endif
+ return (retval);
+}
+
+int
+gfx_set_aps_trigger_bits(unsigned int trigger_bits)
+{
+ int retval = -1;
+
+#if GFX_TV_FS451
+ if (gfx_tv_type & GFX_TV_TYPE_FS451)
+ retval = fs450_set_aps_trigger_bits(trigger_bits);
+#endif
+ return (retval);
+}
+
+#endif /* GFX_TV_DYNAMIC */
+
+/* END OF FILE */