171d7fec4Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/nsc_galfns.c,v 1.2 2003/01/14 09:34:30 alanh Exp $ */ 271d7fec4Smrg/* 371d7fec4Smrg * $Workfile: nsc_galfns.c $ 471d7fec4Smrg * $Revision: 1.1.1.1 $ 571d7fec4Smrg * $Author: mrg $ 671d7fec4Smrg * 771d7fec4Smrg * File Contents: This file contains the main functions of the Geode 871d7fec4Smrg * frame buffer device drivers GAL function definitions. 971d7fec4Smrg * 1071d7fec4Smrg * Project: Geode Frame buffer device driver 1171d7fec4Smrg * 1271d7fec4Smrg */ 1371d7fec4Smrg 1471d7fec4Smrg/* 1571d7fec4Smrg * NSC_LIC_ALTERNATIVE_PREAMBLE 1671d7fec4Smrg * 1771d7fec4Smrg * Revision 1.0 1871d7fec4Smrg * 1971d7fec4Smrg * National Semiconductor Alternative GPL-BSD License 2071d7fec4Smrg * 2171d7fec4Smrg * National Semiconductor Corporation licenses this software 2271d7fec4Smrg * ("Software"): 2371d7fec4Smrg * 2471d7fec4Smrg * Geode frame buffer driver 2571d7fec4Smrg * 2671d7fec4Smrg * under one of the two following licenses, depending on how the 2771d7fec4Smrg * Software is received by the Licensee. 2871d7fec4Smrg * 2971d7fec4Smrg * If this Software is received as part of the Linux Framebuffer or 3071d7fec4Smrg * other GPL licensed software, then the GPL license designated 3171d7fec4Smrg * NSC_LIC_GPL applies to this Software; in all other circumstances 3271d7fec4Smrg * then the BSD-style license designated NSC_LIC_BSD shall apply. 3371d7fec4Smrg * 3471d7fec4Smrg * END_NSC_LIC_ALTERNATIVE_PREAMBLE */ 3571d7fec4Smrg 3671d7fec4Smrg/* NSC_LIC_BSD 3771d7fec4Smrg * 3871d7fec4Smrg * National Semiconductor Corporation Open Source License for 3971d7fec4Smrg * 4071d7fec4Smrg * Geode frame buffer driver 4171d7fec4Smrg * 4271d7fec4Smrg * (BSD License with Export Notice) 4371d7fec4Smrg * 4471d7fec4Smrg * Copyright (c) 1999-2001 4571d7fec4Smrg * National Semiconductor Corporation. 4671d7fec4Smrg * All rights reserved. 4771d7fec4Smrg * 4871d7fec4Smrg * Redistribution and use in source and binary forms, with or without 4971d7fec4Smrg * modification, are permitted provided that the following conditions 5071d7fec4Smrg * are met: 5171d7fec4Smrg * 5271d7fec4Smrg * * Redistributions of source code must retain the above copyright 5371d7fec4Smrg * notice, this list of conditions and the following disclaimer. 5471d7fec4Smrg * 5571d7fec4Smrg * * Redistributions in binary form must reproduce the above 5671d7fec4Smrg * copyright notice, this list of conditions and the following 5771d7fec4Smrg * disclaimer in the documentation and/or other materials provided 5871d7fec4Smrg * with the distribution. 5971d7fec4Smrg * 6071d7fec4Smrg * * Neither the name of the National Semiconductor Corporation nor 6171d7fec4Smrg * the names of its contributors may be used to endorse or promote 6271d7fec4Smrg * products derived from this software without specific prior 6371d7fec4Smrg * written permission. 6471d7fec4Smrg * 6571d7fec4Smrg * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 6671d7fec4Smrg * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 6771d7fec4Smrg * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 6871d7fec4Smrg * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 6971d7fec4Smrg * NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY 7071d7fec4Smrg * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7171d7fec4Smrg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 7271d7fec4Smrg * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 7371d7fec4Smrg * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 7471d7fec4Smrg * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, 7571d7fec4Smrg * INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY 7671d7fec4Smrg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 7771d7fec4Smrg * OF SUCH DAMAGE. 7871d7fec4Smrg * 7971d7fec4Smrg * EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF 8071d7fec4Smrg * YOUR JURISDICTION. It is licensee's responsibility to comply with 8171d7fec4Smrg * any export regulations applicable in licensee's jurisdiction. Under 8271d7fec4Smrg * CURRENT (2001) U.S. export regulations this software 8371d7fec4Smrg * is eligible for export from the U.S. and can be downloaded by or 8471d7fec4Smrg * otherwise exported or reexported worldwide EXCEPT to U.S. embargoed 8571d7fec4Smrg * destinations which include Cuba, Iraq, Libya, North Korea, Iran, 8671d7fec4Smrg * Syria, Sudan, Afghanistan and any other country to which the U.S. 8771d7fec4Smrg * has embargoed goods and services. 8871d7fec4Smrg * 8971d7fec4Smrg * END_NSC_LIC_BSD */ 9071d7fec4Smrg 9171d7fec4Smrg/* NSC_LIC_GPL 9271d7fec4Smrg * 9371d7fec4Smrg * National Semiconductor Corporation Gnu General Public License for 9471d7fec4Smrg * 9571d7fec4Smrg * Geode frame buffer driver 9671d7fec4Smrg * 9771d7fec4Smrg * (GPL License with Export Notice) 9871d7fec4Smrg * 9971d7fec4Smrg * Copyright (c) 1999-2001 10071d7fec4Smrg * National Semiconductor Corporation. 10171d7fec4Smrg * All rights reserved. 10271d7fec4Smrg * 10371d7fec4Smrg * Redistribution and use in source and binary forms, with or without 10471d7fec4Smrg * modification, are permitted under the terms of the GNU General 10571d7fec4Smrg * Public License as published by the Free Software Foundation; either 10671d7fec4Smrg * version 2 of the License, or (at your option) any later version 10771d7fec4Smrg * 10871d7fec4Smrg * In addition to the terms of the GNU General Public License, neither 10971d7fec4Smrg * the name of the National Semiconductor Corporation nor the names of 11071d7fec4Smrg * its contributors may be used to endorse or promote products derived 11171d7fec4Smrg * from this software without specific prior written permission. 11271d7fec4Smrg * 11371d7fec4Smrg * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 11471d7fec4Smrg * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 11571d7fec4Smrg * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 11671d7fec4Smrg * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 11771d7fec4Smrg * NATIONAL SEMICONDUCTOR CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY 11871d7fec4Smrg * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11971d7fec4Smrg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 12071d7fec4Smrg * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 12171d7fec4Smrg * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 12271d7fec4Smrg * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE, 12371d7fec4Smrg * INTELLECTUAL PROPERTY INFRINGEMENT, OR OTHERWISE) ARISING IN ANY WAY 12471d7fec4Smrg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 12571d7fec4Smrg * OF SUCH DAMAGE. See the GNU General Public License for more details. 12671d7fec4Smrg * 12771d7fec4Smrg * EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF 12871d7fec4Smrg * YOUR JURISDICTION. It is licensee's responsibility to comply with 12971d7fec4Smrg * any export regulations applicable in licensee's jurisdiction. Under 13071d7fec4Smrg * CURRENT (2001) U.S. export regulations this software 13171d7fec4Smrg * is eligible for export from the U.S. and can be downloaded by or 13271d7fec4Smrg * otherwise exported or reexported worldwide EXCEPT to U.S. embargoed 13371d7fec4Smrg * destinations which include Cuba, Iraq, Libya, North Korea, Iran, 13471d7fec4Smrg * Syria, Sudan, Afghanistan and any other country to which the U.S. 13571d7fec4Smrg * has embargoed goods and services. 13671d7fec4Smrg * 13771d7fec4Smrg * You should have received a copy of the GNU General Public License 13871d7fec4Smrg * along with this file; if not, write to the Free Software Foundation, 13971d7fec4Smrg * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 14071d7fec4Smrg * 14171d7fec4Smrg * END_NSC_LIC_GPL */ 14271d7fec4Smrg 14371d7fec4Smrg#ifdef HAVE_CONFIG_H 14471d7fec4Smrg#include "config.h" 14571d7fec4Smrg#endif 14671d7fec4Smrg 14771d7fec4Smrg#ifndef XFree86LOADER 14871d7fec4Smrg#include <stdio.h> 14971d7fec4Smrg#include <stdarg.h> 15071d7fec4Smrg#include <stdlib.h> 15171d7fec4Smrg#include <unistd.h> 15271d7fec4Smrg#include <string.h> 15371d7fec4Smrg#include <sys/stat.h> 15471d7fec4Smrg#include <sys/sysmacros.h> 15571d7fec4Smrg#include <fcntl.h> 15671d7fec4Smrg#include <errno.h> 15771d7fec4Smrg#include <sys/ioctl.h> 15871d7fec4Smrg#endif 15971d7fec4Smrg 16071d7fec4Smrg#include "nsc_galproto.h" 16171d7fec4Smrg 16271d7fec4Smrg/* 16371d7fec4Smrg * Compile time constants 16471d7fec4Smrg */ 16571d7fec4Smrg#define FBDEV_NAME "/dev/nscgal" 16671d7fec4Smrg 16771d7fec4Smrg/* 16871d7fec4Smrg * Cool Macros to access the structures 16971d7fec4Smrg */ 17071d7fec4Smrg#define INIT_GAL(x) \ 17171d7fec4Smrg ((GAL_BASE *)(x))->dwSignature = FBGAL_SIGNATURE;\ 17271d7fec4Smrg ((GAL_BASE *)(x))->dwSize = sizeof(x);\ 17371d7fec4Smrg ((GAL_BASE *)(x))->dwVersion = FBGAL_VERSION; 17471d7fec4Smrg/* 17571d7fec4Smrg * Variables public for this file 17671d7fec4Smrg */ 17771d7fec4Smrgstatic int ifbdev_handle; 17871d7fec4Smrg 17971d7fec4Smrg/*------------------------------------------------------------------------ 18071d7fec4Smrg * create_devicenode 18171d7fec4Smrg * 18271d7fec4Smrg * Description: This function creates nscgal device node in the device 18371d7fec4Smrg * directory. 18471d7fec4Smrg * parameters : none 18571d7fec4Smrg * 18671d7fec4Smrg * return: '0' was return on creating the galdevice node. 18771d7fec4Smrg *----------------------------------------------------------------------*/ 18871d7fec4Smrgint 18971d7fec4Smrgcreate_devicenode() 19071d7fec4Smrg{ 19171d7fec4Smrg 19271d7fec4Smrg#if 1 19371d7fec4Smrg FILE *pfdevices; 19471d7fec4Smrg char line[200], devname[200]; 19571d7fec4Smrg int majdev; 19671d7fec4Smrg 19771d7fec4Smrg /* remove fails if device is open */ 19871d7fec4Smrg remove("/dev/nscgal"); 19971d7fec4Smrg 20071d7fec4Smrg if ((pfdevices = fopen("/proc/devices", "r"))) { 20171d7fec4Smrg while (fgets(line, sizeof(line), pfdevices)) { 20271d7fec4Smrg if (sscanf(line, "%d%*[ \t]%s", &majdev, devname) == 2) { 20371d7fec4Smrg if (strstr(devname, "nscgal")) 20471d7fec4Smrg mknod("/dev/nscgal", S_IFCHR | S_IRUSR | S_IWUSR, 20571d7fec4Smrg makedev(majdev, 0)); 20671d7fec4Smrg } 20771d7fec4Smrg } 20871d7fec4Smrg fclose(pfdevices); 20971d7fec4Smrg } 21071d7fec4Smrg return 1; 21171d7fec4Smrg#endif 21271d7fec4Smrg 21371d7fec4Smrg} 21471d7fec4Smrg 21571d7fec4Smrg/*------------------------------------------------------------------------ 21671d7fec4Smrg * Gal_initialize_interface 21771d7fec4Smrg * 21871d7fec4Smrg * Description: This function intializes the nscgal device . 21971d7fec4Smrg * parameters : none 22071d7fec4Smrg * 22171d7fec4Smrg * return: '1' was returned on intialization of the galdevice 22271d7fec4Smrg * otherwise '0' was returned on failure. 22371d7fec4Smrg *----------------------------------------------------------------------*/ 22471d7fec4SmrgBOOLEAN 22571d7fec4SmrgGal_initialize_interface() 22671d7fec4Smrg{ 22771d7fec4Smrg/* create_devicenode(); */ 22871d7fec4Smrg 22971d7fec4Smrg if ((ifbdev_handle = open("/dev/fb0", O_RDONLY)) == -1) 23071d7fec4Smrg/* if ((ifbdev_handle = open("FBDEV_NAME", O_RDONLY)) == -1) */ 23171d7fec4Smrg return 0; 23271d7fec4Smrg return 1; 23371d7fec4Smrg} 23471d7fec4Smrg 23571d7fec4Smrg/*------------------------------------------------------------------------ 23671d7fec4Smrg * Gal_cleanup_interface 23771d7fec4Smrg * 23871d7fec4Smrg * Description: This function closes the nscgal device . 23971d7fec4Smrg * parameters : none 24071d7fec4Smrg * 24171d7fec4Smrg * return: '1' was returned on closing the galdevice. 24271d7fec4Smrg *----------------------------------------------------------------------*/ 24371d7fec4SmrgBOOLEAN 24471d7fec4SmrgGal_cleanup_interface() 24571d7fec4Smrg{ 24671d7fec4Smrg if (ifbdev_handle != -1) 24771d7fec4Smrg close(ifbdev_handle); 24871d7fec4Smrg return 1; 24971d7fec4Smrg} 25071d7fec4Smrg 25171d7fec4Smrg/*--------------------------------------------------------------------------- 25271d7fec4Smrg * Gal_write_register 25371d7fec4Smrg * 25471d7fec4Smrg * Description: This function writes the data to the hardware register 25571d7fec4Smrg * of the nscgal device . 25671d7fec4Smrg * parameters: 25771d7fec4Smrg * type: It specifies the hardware access type. 25871d7fec4Smrg * offset: It specifies the offset address the register to be accessed. 25971d7fec4Smrg * value: It specifies the data value to be written into the register. 26071d7fec4Smrg * size: It specifies the size of the data to be written. 26171d7fec4Smrg * 26271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 26371d7fec4Smrg *-------------------------------------------------------------------------*/ 26471d7fec4SmrgBOOLEAN 26571d7fec4SmrgGal_write_register(int type, unsigned long offset, unsigned long value, 26671d7fec4Smrg int size) 26771d7fec4Smrg{ 26871d7fec4Smrg GAL_HWACCESS hwAccess; 26971d7fec4Smrg 27071d7fec4Smrg INIT_GAL(&hwAccess); 27171d7fec4Smrg hwAccess.dwSubfunction = GALFN_WRITEREG; 27271d7fec4Smrg hwAccess.dwType = type; 27371d7fec4Smrg hwAccess.dwOffset = offset; 27471d7fec4Smrg hwAccess.dwValue = value; 27571d7fec4Smrg hwAccess.dwByteCount = size; 27671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &hwAccess)) 27771d7fec4Smrg return 0; 27871d7fec4Smrg else { 27971d7fec4Smrg return 1; 28071d7fec4Smrg } 28171d7fec4Smrg} 28271d7fec4Smrg 28371d7fec4Smrg/*--------------------------------------------------------------------------- 28471d7fec4Smrg * Gal_read_register 28571d7fec4Smrg * 28671d7fec4Smrg * Description: This function reads the data from the hardware register 28771d7fec4Smrg * of the nscgal device . 28871d7fec4Smrg * parameters: 28971d7fec4Smrg * type: It specifies the hardware access type. 29071d7fec4Smrg * offset: It specifies the offset address of the register to be accessed. 29171d7fec4Smrg * value: It specifies the pointer to hold the data to be read from 29271d7fec4Smrg * the gal hardware register. 29371d7fec4Smrg * size: It specifies the size of the data to be read 29471d7fec4Smrg * 29571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 29671d7fec4Smrg *-------------------------------------------------------------------------*/ 29771d7fec4SmrgBOOLEAN 29871d7fec4SmrgGal_read_register(int type, unsigned long offset, unsigned long *value, 29971d7fec4Smrg int size) 30071d7fec4Smrg{ 30171d7fec4Smrg GAL_HWACCESS hwAccess; 30271d7fec4Smrg 30371d7fec4Smrg INIT_GAL(&hwAccess); 30471d7fec4Smrg hwAccess.dwSubfunction = GALFN_READREG; 30571d7fec4Smrg hwAccess.dwType = type; 30671d7fec4Smrg hwAccess.dwOffset = offset; 30771d7fec4Smrg hwAccess.dwByteCount = size; 30871d7fec4Smrg 30971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &hwAccess)) 31071d7fec4Smrg return 0; 31171d7fec4Smrg else { 31271d7fec4Smrg *value = hwAccess.dwValue; 31371d7fec4Smrg return 1; 31471d7fec4Smrg } 31571d7fec4Smrg} 31671d7fec4Smrg 31771d7fec4Smrg/*--------------------------------------------------------------------------- 31871d7fec4Smrg * Gal_get_adapter_info 31971d7fec4Smrg * 32071d7fec4Smrg * Description: This function gets the adapter information of the 32171d7fec4Smrg * nscgal device . 32271d7fec4Smrg * parameters: 32371d7fec4Smrg *pAdapterInfo: It specifies the adapter information structure. 32471d7fec4Smrg * 32571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 32671d7fec4Smrg *-------------------------------------------------------------------------*/ 32771d7fec4SmrgBOOLEAN 32871d7fec4SmrgGal_get_adapter_info(PGAL_ADAPTERINFO pAdapterInfo) 32971d7fec4Smrg{ 33071d7fec4Smrg INIT_GAL(pAdapterInfo); 33171d7fec4Smrg 33271d7fec4Smrg pAdapterInfo->dwSubfunction = GALFN_GETADAPTERINFO; 33371d7fec4Smrg 33471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pAdapterInfo)) 33571d7fec4Smrg return 0; 33671d7fec4Smrg else { 33771d7fec4Smrg return 1; 33871d7fec4Smrg } 33971d7fec4Smrg} 34071d7fec4Smrg 34171d7fec4Smrg/*--------------------------------------------------------------------------- 34271d7fec4Smrg * Gal_set_softvga_state 34371d7fec4Smrg * 34471d7fec4Smrg * Description: This function sets the softvga state of the platform device . 34571d7fec4Smrg * parameters: 34671d7fec4Smrg * bEnable: It specifies the softvga state enable state. 34771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 34871d7fec4Smrg *-------------------------------------------------------------------------*/ 34971d7fec4SmrgBOOLEAN 35071d7fec4SmrgGal_set_softvga_state(BOOLEAN bEnable) 35171d7fec4Smrg{ 35271d7fec4Smrg GAL_SOFTVGASTATE sSoftVgaState; 35371d7fec4Smrg 35471d7fec4Smrg INIT_GAL(&sSoftVgaState); 35571d7fec4Smrg sSoftVgaState.dwSubfunction = GALFN_SETSOFTVGASTATE; 35671d7fec4Smrg sSoftVgaState.bSoftVgaEnable = bEnable; 35771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSoftVgaState)) 35871d7fec4Smrg return 0; 35971d7fec4Smrg else 36071d7fec4Smrg return 1; 36171d7fec4Smrg} 36271d7fec4Smrg 36371d7fec4Smrg/*--------------------------------------------------------------------------- 36471d7fec4Smrg * Gal_get_softvga_state 36571d7fec4Smrg * 36671d7fec4Smrg * Description: This function gets the softvga state of the platform device . 36771d7fec4Smrg * parameters: 36871d7fec4Smrg * bEnable: get the softvga state. 36971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 37071d7fec4Smrg *-------------------------------------------------------------------------*/ 37171d7fec4SmrgBOOLEAN 37271d7fec4SmrgGal_get_softvga_state(int *bState) 37371d7fec4Smrg{ 37471d7fec4Smrg GAL_SOFTVGASTATE sSoftVgaState; 37571d7fec4Smrg 37671d7fec4Smrg INIT_GAL(&sSoftVgaState); 37771d7fec4Smrg sSoftVgaState.dwSubfunction = GALFN_GETSOFTVGASTATE; 37871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSoftVgaState)) 37971d7fec4Smrg return 0; 38071d7fec4Smrg else { 38171d7fec4Smrg *bState = sSoftVgaState.bSoftVgaEnable; 38271d7fec4Smrg return 1; 38371d7fec4Smrg } 38471d7fec4Smrg} 38571d7fec4Smrg 38671d7fec4Smrg/*--------------------------------------------------------------------------- 38771d7fec4Smrg * Gal_vga_test_pci 38871d7fec4Smrg * 38971d7fec4Smrg * Description: This function tests the vga pci. 39071d7fec4Smrg * parameters: 39171d7fec4Smrg * softvga: It is pointer to the softvga state. 39271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 39371d7fec4Smrg *-------------------------------------------------------------------------*/ 39471d7fec4SmrgBOOLEAN 39571d7fec4SmrgGal_vga_test_pci(int *softvga) 39671d7fec4Smrg{ 39771d7fec4Smrg GAL_VGATESTPCI sVgatestpci; 39871d7fec4Smrg 39971d7fec4Smrg INIT_GAL(&sVgatestpci); 40071d7fec4Smrg sVgatestpci.dwSubfunction = GALFN_GETSOFTVGASTATE; 40171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgatestpci)) 40271d7fec4Smrg return 0; 40371d7fec4Smrg else { 40471d7fec4Smrg *softvga = sVgatestpci.softvga; 40571d7fec4Smrg return 1; 40671d7fec4Smrg } 40771d7fec4Smrg} 40871d7fec4Smrg 40971d7fec4Smrg/*--------------------------------------------------------------------------- 41071d7fec4Smrg * Gal_vga_get_pci_command 41171d7fec4Smrg * 41271d7fec4Smrg * Description: This function gets the vga pci command. 41371d7fec4Smrg * parameters: 41471d7fec4Smrg * value: It is pointer to pci command value. 41571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 41671d7fec4Smrg *-------------------------------------------------------------------------*/ 41771d7fec4SmrgBOOLEAN 41871d7fec4SmrgGal_vga_get_pci_command(unsigned char *value) 41971d7fec4Smrg{ 42071d7fec4Smrg GAL_VGAGETPCICOMMAND sVgagetpcicommand; 42171d7fec4Smrg 42271d7fec4Smrg INIT_GAL(&sVgagetpcicommand); 42371d7fec4Smrg sVgagetpcicommand.dwSubfunction = GALFN_VGAGETPCICOMMAND; 42471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgagetpcicommand)) 42571d7fec4Smrg return 0; 42671d7fec4Smrg else { 42771d7fec4Smrg *value = sVgagetpcicommand.value; 42871d7fec4Smrg return 1; 42971d7fec4Smrg } 43071d7fec4Smrg} 43171d7fec4Smrg 43271d7fec4Smrg/*--------------------------------------------------------------------------- 43371d7fec4Smrg * Gal_vga_seq_reset 43471d7fec4Smrg * 43571d7fec4Smrg * Description: This function resets the vga seq. 43671d7fec4Smrg * parameters: 43771d7fec4Smrg * reset: It gives the reset value. 43871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 43971d7fec4Smrg *-------------------------------------------------------------------------*/ 44071d7fec4SmrgBOOLEAN 44171d7fec4SmrgGal_vga_seq_reset(int reset) 44271d7fec4Smrg{ 44371d7fec4Smrg GAL_VGASEQRESET sVgaseqreset; 44471d7fec4Smrg 44571d7fec4Smrg INIT_GAL(&sVgaseqreset); 44671d7fec4Smrg sVgaseqreset.dwSubfunction = GALFN_VGASEQRESET; 44771d7fec4Smrg sVgaseqreset.reset = reset; 44871d7fec4Smrg 44971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgaseqreset)) 45071d7fec4Smrg return 0; 45171d7fec4Smrg else { 45271d7fec4Smrg return 1; 45371d7fec4Smrg } 45471d7fec4Smrg} 45571d7fec4Smrg 45671d7fec4Smrg/*--------------------------------------------------------------------------- 45771d7fec4Smrg * Gal_vga_set_graphics_bits 45871d7fec4Smrg * 45971d7fec4Smrg * Description: This function resets the vga seq. 46071d7fec4Smrg * parameters: None. 46171d7fec4Smrg * 46271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 46371d7fec4Smrg *-------------------------------------------------------------------------*/ 46471d7fec4SmrgBOOLEAN 46571d7fec4SmrgGal_vga_set_graphics_bits(void) 46671d7fec4Smrg{ 46771d7fec4Smrg GAL_VGASETGRAPHICSBITS sVgasetgraphics; 46871d7fec4Smrg 46971d7fec4Smrg INIT_GAL(&sVgasetgraphics); 47071d7fec4Smrg sVgasetgraphics.dwSubfunction = GALFN_VGASETGRAPHICSBITS; 47171d7fec4Smrg 47271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgasetgraphics)) 47371d7fec4Smrg return 0; 47471d7fec4Smrg else { 47571d7fec4Smrg return 1; 47671d7fec4Smrg } 47771d7fec4Smrg} 47871d7fec4Smrg 47971d7fec4Smrg/*--------------------------------------------------------------------------- 48071d7fec4Smrg * Gal_set_crt_enable 48171d7fec4Smrg * 48271d7fec4Smrg * Description: This function sets the crt state of the device . 48371d7fec4Smrg * parameters: 48471d7fec4Smrg * crtState: It specifies the crt state of the galdevice. 48571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 48671d7fec4Smrg *-------------------------------------------------------------------------*/ 48771d7fec4SmrgBOOLEAN 48871d7fec4SmrgGal_set_crt_enable(int crtEnable) 48971d7fec4Smrg{ 49071d7fec4Smrg GAL_CRTENABLE sCrtEnable; 49171d7fec4Smrg 49271d7fec4Smrg INIT_GAL(&sCrtEnable); 49371d7fec4Smrg sCrtEnable.dwSubfunction = GALFN_SETCRTENABLE; 49471d7fec4Smrg sCrtEnable.wCrtEnable = crtEnable; 49571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCrtEnable)) 49671d7fec4Smrg return 0; 49771d7fec4Smrg else 49871d7fec4Smrg return 1; 49971d7fec4Smrg} 50071d7fec4Smrg 50171d7fec4Smrg/*--------------------------------------------------------------------------- 50271d7fec4Smrg * Gal_is_display_mode_supported 50371d7fec4Smrg * 50471d7fec4Smrg * Description: This function checks the display mode is supported or not. 50571d7fec4Smrg * parameters: 50671d7fec4Smrg * xres: It specifies x co-ordinate resolution. 50771d7fec4Smrg * Yres: It specifies y co-ordinate resolution. 50871d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 50971d7fec4Smrg * hz: It specifies the frequency of the display mode. 51071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 51171d7fec4Smrg *-------------------------------------------------------------------------*/ 51271d7fec4SmrgBOOLEAN 51371d7fec4SmrgGal_is_display_mode_supported(int xres, int yres, int bpp, int hz, 51471d7fec4Smrg int *supported) 51571d7fec4Smrg{ 51671d7fec4Smrg GAL_DISPLAYMODE sDisplayMode; 51771d7fec4Smrg 51871d7fec4Smrg *supported = 0; 51971d7fec4Smrg INIT_GAL(&sDisplayMode); 52071d7fec4Smrg sDisplayMode.dwSubfunction = GALFN_ISDISPLAYMODESUPPORTED; 52171d7fec4Smrg sDisplayMode.wXres = xres; 52271d7fec4Smrg sDisplayMode.wYres = yres; 52371d7fec4Smrg sDisplayMode.wBpp = bpp; 52471d7fec4Smrg sDisplayMode.wRefresh = hz; 52571d7fec4Smrg 52671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayMode)) 52771d7fec4Smrg return 0; 52871d7fec4Smrg else { 52971d7fec4Smrg *supported = sDisplayMode.dwSupported; 53071d7fec4Smrg return 1; 53171d7fec4Smrg } 53271d7fec4Smrg} 53371d7fec4Smrg 53471d7fec4Smrg/*--------------------------------------------------------------------------- 53571d7fec4Smrg * Gal_set_display_mode 53671d7fec4Smrg * 53771d7fec4Smrg * Description: This function sets the display mode of the galdevice. 53871d7fec4Smrg * parameters: 53971d7fec4Smrg * xres: It specifies x co-ordinate resolution. 54071d7fec4Smrg * Yres: It specifies y co-ordinate resolution. 54171d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 54271d7fec4Smrg * hz: It specifies the frequency of the display mode. 54371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 54471d7fec4Smrg *-------------------------------------------------------------------------*/ 54571d7fec4SmrgBOOLEAN 54671d7fec4SmrgGal_set_display_mode(int xres, int yres, int bpp, int hz) 54771d7fec4Smrg{ 54871d7fec4Smrg GAL_DISPLAYMODE sDisplayMode; 54971d7fec4Smrg 55071d7fec4Smrg INIT_GAL(&sDisplayMode); 55171d7fec4Smrg sDisplayMode.dwSubfunction = GALFN_SETDISPLAYMODE; 55271d7fec4Smrg sDisplayMode.wXres = xres; 55371d7fec4Smrg sDisplayMode.wYres = yres; 55471d7fec4Smrg sDisplayMode.wBpp = bpp; 55571d7fec4Smrg sDisplayMode.wRefresh = hz; 55671d7fec4Smrg 55771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayMode)) 55871d7fec4Smrg return 0; 55971d7fec4Smrg else 56071d7fec4Smrg return 1; 56171d7fec4Smrg} 56271d7fec4Smrg 56371d7fec4Smrg/*--------------------------------------------------------------------------- 56471d7fec4Smrg * Gal_get_display_mode 56571d7fec4Smrg * 56671d7fec4Smrg * Description: This function gets the display mode of the galdevice. 56771d7fec4Smrg * parameters: 56871d7fec4Smrg * xres: It specifies x co-ordinate resolution. 56971d7fec4Smrg * Yres: It specifies y co-ordinate resolution. 57071d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 57171d7fec4Smrg * hz: It specifies the frequency of the display mode. 57271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 57371d7fec4Smrg *-------------------------------------------------------------------------*/ 57471d7fec4SmrgBOOLEAN 57571d7fec4SmrgGal_get_display_mode(int *xres, int *yres, int *bpp, int *hz) 57671d7fec4Smrg{ 57771d7fec4Smrg GAL_DISPLAYMODE sDisplayMode; 57871d7fec4Smrg 57971d7fec4Smrg INIT_GAL(&sDisplayMode); 58071d7fec4Smrg sDisplayMode.dwSubfunction = GALFN_GETDISPLAYMODE; 58171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayMode)) 58271d7fec4Smrg return 0; 58371d7fec4Smrg else { 58471d7fec4Smrg *xres = sDisplayMode.wXres; 58571d7fec4Smrg *yres = sDisplayMode.wYres; 58671d7fec4Smrg *bpp = sDisplayMode.wBpp; 58771d7fec4Smrg *hz = sDisplayMode.wRefresh; 58871d7fec4Smrg return 1; 58971d7fec4Smrg } 59071d7fec4Smrg} 59171d7fec4Smrg 59271d7fec4Smrg/*--------------------------------------------------------------------------- 59371d7fec4Smrg * Gal_set_display_bpp 59471d7fec4Smrg * 59571d7fec4Smrg * Description: This function sets the number bits per pixel in the display 59671d7fec4Smrg * mode of the galdevice. 59771d7fec4Smrg * parameters: 59871d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 59971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 60071d7fec4Smrg *-------------------------------------------------------------------------*/ 60171d7fec4SmrgBOOLEAN 60271d7fec4SmrgGal_set_display_bpp(unsigned short bpp) 60371d7fec4Smrg{ 60471d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 60571d7fec4Smrg 60671d7fec4Smrg INIT_GAL(&sDisplayParams); 60771d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_SETDISPLAYBPP; 60871d7fec4Smrg sDisplayParams.wBpp = bpp; 60971d7fec4Smrg 61071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 61171d7fec4Smrg return 0; 61271d7fec4Smrg else 61371d7fec4Smrg return 1; 61471d7fec4Smrg} 61571d7fec4Smrg 61671d7fec4Smrg/*--------------------------------------------------------------------------- 61771d7fec4Smrg * Gal_set_bpp 61871d7fec4Smrg * 61971d7fec4Smrg * Description: This function sets the number bits per pixel in the display 62071d7fec4Smrg * mode of the galdevice. 62171d7fec4Smrg * parameters: 62271d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 62371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 62471d7fec4Smrg *-------------------------------------------------------------------------*/ 62571d7fec4SmrgBOOLEAN 62671d7fec4SmrgGal_set_bpp(unsigned short bpp) 62771d7fec4Smrg{ 62871d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 62971d7fec4Smrg 63071d7fec4Smrg INIT_GAL(&sDisplayParams); 63171d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_SETBPP; 63271d7fec4Smrg sDisplayParams.wBpp = bpp; 63371d7fec4Smrg 63471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 63571d7fec4Smrg return 0; 63671d7fec4Smrg else 63771d7fec4Smrg return 1; 63871d7fec4Smrg} 63971d7fec4Smrg 64071d7fec4Smrg/*--------------------------------------------------------------------------- 64171d7fec4Smrg * Gal_get_display_bpp 64271d7fec4Smrg * 64371d7fec4Smrg * Description: This function gets the number bits per pixel in the display 64471d7fec4Smrg * mode of the galdevice. 64571d7fec4Smrg * parameters: 64671d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 64771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 64871d7fec4Smrg *-------------------------------------------------------------------------*/ 64971d7fec4SmrgBOOLEAN 65071d7fec4SmrgGal_get_display_bpp(unsigned short *bpp) 65171d7fec4Smrg{ 65271d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 65371d7fec4Smrg 65471d7fec4Smrg INIT_GAL(&sDisplayParams); 65571d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_GETDISPLAYBPP; 65671d7fec4Smrg 65771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 65871d7fec4Smrg return 0; 65971d7fec4Smrg else { 66071d7fec4Smrg *bpp = sDisplayParams.wBpp; 66171d7fec4Smrg return 1; 66271d7fec4Smrg } 66371d7fec4Smrg} 66471d7fec4Smrg 66571d7fec4Smrg/*--------------------------------------------------------------------------- 66671d7fec4Smrg * Gal_set_display_pitch 66771d7fec4Smrg * 66871d7fec4Smrg * Description: This function sets the display pitch of the galdevice. 66971d7fec4Smrg * parameters: 67071d7fec4Smrg * pitch: It specifies pitch of the display mode. 67171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 67271d7fec4Smrg *-------------------------------------------------------------------------*/ 67371d7fec4SmrgBOOLEAN 67471d7fec4SmrgGal_set_display_pitch(unsigned short pitch) 67571d7fec4Smrg{ 67671d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 67771d7fec4Smrg 67871d7fec4Smrg INIT_GAL(&sDisplayParams); 67971d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_SETDISPLAYPITCH; 68071d7fec4Smrg sDisplayParams.wPitch = pitch; 68171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 68271d7fec4Smrg return 0; 68371d7fec4Smrg else 68471d7fec4Smrg return 1; 68571d7fec4Smrg} 68671d7fec4Smrg 68771d7fec4Smrg/*--------------------------------------------------------------------------- 68871d7fec4Smrg * Gal_get_display_pitch 68971d7fec4Smrg * 69071d7fec4Smrg * Description: This function gets the display pitch of the galdevice. 69171d7fec4Smrg * parameters: 69271d7fec4Smrg * pitch: It specifies pitch of the display mode. 69371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 69471d7fec4Smrg *-------------------------------------------------------------------------*/ 69571d7fec4SmrgBOOLEAN 69671d7fec4SmrgGal_get_display_pitch(unsigned short *pitch) 69771d7fec4Smrg{ 69871d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 69971d7fec4Smrg 70071d7fec4Smrg INIT_GAL(&sDisplayParams); 70171d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_GETDISPLAYPITCH; 70271d7fec4Smrg 70371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 70471d7fec4Smrg return 0; 70571d7fec4Smrg else { 70671d7fec4Smrg *pitch = sDisplayParams.wPitch; 70771d7fec4Smrg return 1; 70871d7fec4Smrg } 70971d7fec4Smrg} 71071d7fec4Smrg 71171d7fec4Smrg/*--------------------------------------------------------------------------- 71271d7fec4Smrg * Gal_set_display_offset 71371d7fec4Smrg * 71471d7fec4Smrg * Description: This function sets the offset of display parameters. 71571d7fec4Smrg * parameters: 71671d7fec4Smrg * offset: It specifies the offset address of display parameters. 71771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 71871d7fec4Smrg *-------------------------------------------------------------------------*/ 71971d7fec4SmrgBOOLEAN 72071d7fec4SmrgGal_set_display_offset(unsigned long offset) 72171d7fec4Smrg{ 72271d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 72371d7fec4Smrg 72471d7fec4Smrg INIT_GAL(&sDisplayParams); 72571d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_SETDISPLAYOFFSET; 72671d7fec4Smrg sDisplayParams.dwOffset = offset; 72771d7fec4Smrg 72871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 72971d7fec4Smrg return 0; 73071d7fec4Smrg else 73171d7fec4Smrg return 1; 73271d7fec4Smrg} 73371d7fec4Smrg 73471d7fec4Smrg/*--------------------------------------------------------------------------- 73571d7fec4Smrg * Gal_get_display_offset 73671d7fec4Smrg * 73771d7fec4Smrg * Description: This function gets the offset of display parameters. 73871d7fec4Smrg * parameters: 73971d7fec4Smrg * offset: It specifies the offset address of display parameters. 74071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 74171d7fec4Smrg *-------------------------------------------------------------------------*/ 74271d7fec4SmrgBOOLEAN 74371d7fec4SmrgGal_get_display_offset(unsigned long *offset) 74471d7fec4Smrg{ 74571d7fec4Smrg GAL_DISPLAYPARAMS sDisplayParams; 74671d7fec4Smrg 74771d7fec4Smrg INIT_GAL(&sDisplayParams); 74871d7fec4Smrg sDisplayParams.dwSubfunction = GALFN_GETDISPLAYOFFSET; 74971d7fec4Smrg 75071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDisplayParams)) 75171d7fec4Smrg return 0; 75271d7fec4Smrg else { 75371d7fec4Smrg *offset = sDisplayParams.dwOffset; 75471d7fec4Smrg return 1; 75571d7fec4Smrg } 75671d7fec4Smrg} 75771d7fec4Smrg 75871d7fec4Smrg/*--------------------------------------------------------------------------- 75971d7fec4Smrg * Gal_get_refreshrate_from_dotclock 76071d7fec4Smrg * 76171d7fec4Smrg * Description: This function gets the refreshrate from dotclock. 76271d7fec4Smrg * parameters: 76371d7fec4Smrg * xres: It specifies x co-ordinate resolution. 76471d7fec4Smrg * Yres: It specifies y co-ordinate resolution. 76571d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 76671d7fec4Smrg * hz: It is a pointer which holds the refresh rate of the display. 76771d7fec4Smrg * frequency: It spcifies the frequency of the dotclock. 76871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 76971d7fec4Smrg *-------------------------------------------------------------------------*/ 77071d7fec4SmrgBOOLEAN 77171d7fec4SmrgGal_get_refreshrate_from_dotclock(int xres, int yres, int bpp, int *hz, 77271d7fec4Smrg unsigned long frequency) 77371d7fec4Smrg{ 77471d7fec4Smrg GAL_DOTCLKTOREFRESH sDclkToRefresh; 77571d7fec4Smrg 77671d7fec4Smrg INIT_GAL(&sDclkToRefresh); 77771d7fec4Smrg sDclkToRefresh.dwSubfunction = GALFN_DOTCLKTOREFRESH; 77871d7fec4Smrg sDclkToRefresh.wXres = xres; 77971d7fec4Smrg sDclkToRefresh.wYres = yres; 78071d7fec4Smrg sDclkToRefresh.wBpp = bpp; 78171d7fec4Smrg sDclkToRefresh.dwDotClock = frequency; 78271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sDclkToRefresh)) 78371d7fec4Smrg return 0; 78471d7fec4Smrg else { 78571d7fec4Smrg *hz = sDclkToRefresh.wRefreshRate; 78671d7fec4Smrg return 1; 78771d7fec4Smrg } 78871d7fec4Smrg} 78971d7fec4Smrg 79071d7fec4Smrg/*--------------------------------------------------------------------------- 79171d7fec4Smrg * Gal_get_display_timing 79271d7fec4Smrg * 79371d7fec4Smrg * Description: This function gets the display timing from galdevice. 79471d7fec4Smrg * parameters: 79571d7fec4Smrg * pDisplayTiming: It specifies the display timing of the galdevice. 79671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 79771d7fec4Smrg *-------------------------------------------------------------------------*/ 79871d7fec4SmrgBOOLEAN 79971d7fec4SmrgGal_get_display_timing(PGAL_DISPLAYTIMING pDisplayTiming) 80071d7fec4Smrg{ 80171d7fec4Smrg INIT_GAL(pDisplayTiming); 80271d7fec4Smrg pDisplayTiming->dwSubfunction = GALFN_GETDISPLAYTIMINGS; 80371d7fec4Smrg 80471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pDisplayTiming)) 80571d7fec4Smrg return 0; 80671d7fec4Smrg else { 80771d7fec4Smrg return 1; 80871d7fec4Smrg } 80971d7fec4Smrg} 81071d7fec4Smrg 81171d7fec4Smrg/*--------------------------------------------------------------------------- 81271d7fec4Smrg * Gal_set_display_timing 81371d7fec4Smrg * 81471d7fec4Smrg * Description: This function sets the display timing of the galdevice. 81571d7fec4Smrg * parameters: 81671d7fec4Smrg * pDisplayTiming: It specifies the display timing of the galdevice. 81771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 81871d7fec4Smrg *-------------------------------------------------------------------------*/ 81971d7fec4SmrgBOOLEAN 82071d7fec4SmrgGal_set_display_timing(PGAL_DISPLAYTIMING pDisplayTiming) 82171d7fec4Smrg{ 82271d7fec4Smrg INIT_GAL(pDisplayTiming); 82371d7fec4Smrg pDisplayTiming->dwSubfunction = GALFN_SETDISPLAYTIMINGS; 82471d7fec4Smrg 82571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pDisplayTiming)) 82671d7fec4Smrg return 0; 82771d7fec4Smrg else 82871d7fec4Smrg return 1; 82971d7fec4Smrg} 83071d7fec4Smrg 83171d7fec4Smrg/*--------------------------------------------------------------------------- 83271d7fec4Smrg * Gal_set_fixed_timings 83371d7fec4Smrg * 83471d7fec4Smrg * Description: This function sets the fixed display timings of the 83571d7fec4Smrg * galdevice. 83671d7fec4Smrg * parameters: 83771d7fec4Smrg * pnlXres: It specifies the panel X resolution. 83871d7fec4Smrg * pnlYres: It specifies the panel Y resolution. 83971d7fec4Smrg * totXres: It specifies the total X resolution. 84071d7fec4Smrg * totYres: It specifies the total Y resolution. 84171d7fec4Smrg * bpp: It specifies the bits per pixel (8/16 bits). 84271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 84371d7fec4Smrg *-------------------------------------------------------------------------*/ 84471d7fec4SmrgBOOLEAN 84571d7fec4SmrgGal_set_fixed_timings(int pnlXres, int pnlYres, int totXres, 84671d7fec4Smrg int totYres, int bpp) 84771d7fec4Smrg{ 84871d7fec4Smrg GAL_DISPLAYTIMING DisplayTiming; 84971d7fec4Smrg 85071d7fec4Smrg INIT_GAL(&DisplayTiming); 85171d7fec4Smrg DisplayTiming.dwSubfunction = GALFN_SETFIXEDTIMINGS; 85271d7fec4Smrg DisplayTiming.wHActive = pnlXres; /* panel Xres */ 85371d7fec4Smrg DisplayTiming.wVActive = pnlYres; /* panel Yres */ 85471d7fec4Smrg DisplayTiming.wHTotal = totXres; /* Total Xres */ 85571d7fec4Smrg DisplayTiming.wVTotal = totYres; /* Total Yres */ 85671d7fec4Smrg DisplayTiming.wBpp = bpp; 85771d7fec4Smrg 85871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &DisplayTiming)) 85971d7fec4Smrg return 0; 86071d7fec4Smrg else 86171d7fec4Smrg return 1; 86271d7fec4Smrg} 86371d7fec4Smrg 86471d7fec4Smrg/*--------------------------------------------------------------------------- 86571d7fec4Smrg * Gal_set_display_palette_entry 86671d7fec4Smrg * 86771d7fec4Smrg * Description: This function sets the display palette entry of the 86871d7fec4Smrg * galdevice. 86971d7fec4Smrg * parameters: 87071d7fec4Smrg * index: It specifies the palette index, 87171d7fec4Smrg * palette: It specifies the palette of the galdevice. 87271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 87371d7fec4Smrg *-------------------------------------------------------------------------*/ 87471d7fec4SmrgBOOLEAN 87571d7fec4SmrgGal_set_display_palette_entry(unsigned long index, unsigned long palette) 87671d7fec4Smrg{ 87771d7fec4Smrg GAL_PALETTE_ENTRY sPalette; 87871d7fec4Smrg 87971d7fec4Smrg INIT_GAL(&sPalette); 88071d7fec4Smrg sPalette.dwSubfunction = GALFN_SETPALETTE_ENTRY; 88171d7fec4Smrg sPalette.dwIndex = index; 88271d7fec4Smrg sPalette.dwPalette = palette; 88371d7fec4Smrg 88471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sPalette)) 88571d7fec4Smrg return 0; 88671d7fec4Smrg else 88771d7fec4Smrg return 1; 88871d7fec4Smrg} 88971d7fec4Smrg 89071d7fec4Smrg/*--------------------------------------------------------------------------- 89171d7fec4Smrg * Gal_get_display_palette_entry 89271d7fec4Smrg * 89371d7fec4Smrg * Description: This function gets the display palette entry of the 89471d7fec4Smrg * galdevice. 89571d7fec4Smrg * parameters: 89671d7fec4Smrg * index: It specifies the palette index, 89771d7fec4Smrg * palette: It is a pointer to the palette of the galdevice. 89871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 89971d7fec4Smrg *-------------------------------------------------------------------------*/ 90071d7fec4SmrgBOOLEAN 90171d7fec4SmrgGal_get_display_palette_entry(unsigned long index, unsigned long *palette) 90271d7fec4Smrg{ 90371d7fec4Smrg GAL_PALETTE_ENTRY sPalette; 90471d7fec4Smrg 90571d7fec4Smrg INIT_GAL(&sPalette); 90671d7fec4Smrg sPalette.dwSubfunction = GALFN_GETPALETTE_ENTRY; 90771d7fec4Smrg sPalette.dwIndex = index; 90871d7fec4Smrg 90971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sPalette)) 91071d7fec4Smrg return 0; 91171d7fec4Smrg else { 91271d7fec4Smrg *palette = sPalette.dwPalette; 91371d7fec4Smrg return 1; 91471d7fec4Smrg } 91571d7fec4Smrg} 91671d7fec4Smrg 91771d7fec4Smrg/*--------------------------------------------------------------------------- 91871d7fec4Smrg * Gal_set_display_palette_entry 91971d7fec4Smrg * 92071d7fec4Smrg * Description: This function sets the display palette entry of the 92171d7fec4Smrg * galdevice. 92271d7fec4Smrg * parameters: 92371d7fec4Smrg * pPalette: It specifies the palette structure of the galdevice. 92471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 92571d7fec4Smrg *-------------------------------------------------------------------------*/ 92671d7fec4SmrgBOOLEAN 92771d7fec4SmrgGal_set_display_palette(PGAL_PALETTE pPalette) 92871d7fec4Smrg{ 92971d7fec4Smrg INIT_GAL(pPalette); 93071d7fec4Smrg pPalette->dwSubfunction = GALFN_SETPALETTE; 93171d7fec4Smrg 93271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pPalette)) 93371d7fec4Smrg return 0; 93471d7fec4Smrg else 93571d7fec4Smrg return 1; 93671d7fec4Smrg} 93771d7fec4Smrg 93871d7fec4Smrg/*--------------------------------------------------------------------------- 93971d7fec4Smrg * Gal_get_display_palette_entry 94071d7fec4Smrg * 94171d7fec4Smrg * Description: This function gets the display palette entry of the 94271d7fec4Smrg * galdevice. 94371d7fec4Smrg * parameters: 94471d7fec4Smrg * pPalette: It specifies the palette structure of the galdevice. 94571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 94671d7fec4Smrg *-------------------------------------------------------------------------*/ 94771d7fec4SmrgBOOLEAN 94871d7fec4SmrgGal_get_display_palette(PGAL_PALETTE pPalette) 94971d7fec4Smrg{ 95071d7fec4Smrg INIT_GAL(pPalette); 95171d7fec4Smrg pPalette->dwSubfunction = GALFN_GETPALETTE; 95271d7fec4Smrg 95371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pPalette)) 95471d7fec4Smrg return 0; 95571d7fec4Smrg else { 95671d7fec4Smrg return 1; 95771d7fec4Smrg } 95871d7fec4Smrg} 95971d7fec4Smrg 96071d7fec4Smrg/*--------------------------------------------------------------------------- 96171d7fec4Smrg * Gal_wait_until_idle 96271d7fec4Smrg * 96371d7fec4Smrg * Description: This function waits until the graphics engine is idle. 96471d7fec4Smrg * parameters: none. 96571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 96671d7fec4Smrg *-------------------------------------------------------------------------*/ 96771d7fec4SmrgBOOLEAN 96871d7fec4SmrgGal_wait_until_idle(void) 96971d7fec4Smrg{ 97071d7fec4Smrg GAL_WAITUNTILIDLE sWaitIdle; 97171d7fec4Smrg 97271d7fec4Smrg INIT_GAL(&sWaitIdle); 97371d7fec4Smrg sWaitIdle.dwSubfunction = GALFN_WAITUNTILIDLE; 97471d7fec4Smrg 97571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sWaitIdle)) 97671d7fec4Smrg return 0; 97771d7fec4Smrg else 97871d7fec4Smrg return 1; 97971d7fec4Smrg} 98071d7fec4Smrg 98171d7fec4Smrg/*--------------------------------------------------------------------------- 98271d7fec4Smrg * Gal_wait_vertical_blank 98371d7fec4Smrg * 98471d7fec4Smrg * Description: This function wait until start of vertical blank. 98571d7fec4Smrg * parameters: none. 98671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 98771d7fec4Smrg *-------------------------------------------------------------------------*/ 98871d7fec4SmrgBOOLEAN 98971d7fec4SmrgGal_wait_vertical_blank(void) 99071d7fec4Smrg{ 99171d7fec4Smrg GAL_WAITVERTICALBLANK sWaitVerticalBlank; 99271d7fec4Smrg 99371d7fec4Smrg INIT_GAL(&sWaitVerticalBlank); 99471d7fec4Smrg sWaitVerticalBlank.dwSubfunction = GALFN_WAITVERTICALBLANK; 99571d7fec4Smrg 99671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sWaitVerticalBlank)) 99771d7fec4Smrg return 0; 99871d7fec4Smrg else 99971d7fec4Smrg return 1; 100071d7fec4Smrg} 100171d7fec4Smrg 100271d7fec4Smrg/*-------------------------------------------------------------------------- 100371d7fec4Smrg * Gal_set_cursor_enable 100471d7fec4Smrg * 100571d7fec4Smrg * Description: This function enable or disable the hardware cursor. 100671d7fec4Smrg * parameters: 100771d7fec4Smrg * enable: This specifies the enable value of the cursor. 100871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 100971d7fec4Smrg *-------------------------------------------------------------------------*/ 101071d7fec4SmrgBOOLEAN 101171d7fec4SmrgGal_set_cursor_enable(int enable) 101271d7fec4Smrg{ 101371d7fec4Smrg GAL_CURSORENABLE sCursorEnable; 101471d7fec4Smrg 101571d7fec4Smrg INIT_GAL(&sCursorEnable); 101671d7fec4Smrg sCursorEnable.dwSubfunction = GALFN_SETCURSORENABLE; 101771d7fec4Smrg sCursorEnable.bCursorEnable = enable ? 1 : 0; 101871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorEnable)) 101971d7fec4Smrg return 0; 102071d7fec4Smrg else 102171d7fec4Smrg return 1; 102271d7fec4Smrg} 102371d7fec4Smrg 102471d7fec4Smrg/*-------------------------------------------------------------------------- 102571d7fec4Smrg * Gal_set_cursor_position 102671d7fec4Smrg * 102771d7fec4Smrg * Description: This function sets the position of the cursor. 102871d7fec4Smrg * parameters: 102971d7fec4Smrg * memoffset: It specifies the memory offset of the cursor position. 103071d7fec4Smrg * xpos: It specifies the X co-ordinate position of the cursor. 103171d7fec4Smrg * ypos: It specifies the Y co-ordinate position of the cursor. 103271d7fec4Smrg * xhotspot: It specifies the X hotspot location for current cursor shape. 103371d7fec4Smrg * yhotspot: It specifies the Y hotspot location for current cursor shape. 103471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 103571d7fec4Smrg *-------------------------------------------------------------------------*/ 103671d7fec4SmrgBOOLEAN 103771d7fec4SmrgGal_set_cursor_position(unsigned long memoffset, 103871d7fec4Smrg unsigned short xpos, unsigned short ypos, 103971d7fec4Smrg unsigned short xhotspot, unsigned short yhotspot) 104071d7fec4Smrg{ 104171d7fec4Smrg GAL_CURSORPOSITION sCursorPos; 104271d7fec4Smrg 104371d7fec4Smrg INIT_GAL(&sCursorPos); 104471d7fec4Smrg sCursorPos.dwSubfunction = GALFN_SETCURSORPOSITION; 104571d7fec4Smrg sCursorPos.dwMemOffset = memoffset; 104671d7fec4Smrg sCursorPos.wXPos = xpos; 104771d7fec4Smrg sCursorPos.wYPos = ypos; 104871d7fec4Smrg sCursorPos.wXHot = xhotspot; 104971d7fec4Smrg sCursorPos.wYHot = yhotspot; 105071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorPos)) 105171d7fec4Smrg return 0; 105271d7fec4Smrg else 105371d7fec4Smrg return 1; 105471d7fec4Smrg} 105571d7fec4Smrg 105671d7fec4Smrg/*-------------------------------------------------------------------------- 105771d7fec4Smrg * Gal_get_cursor_position 105871d7fec4Smrg * 105971d7fec4Smrg * Description: This function gets the cursor position. 106071d7fec4Smrg * parameters: 106171d7fec4Smrg * memoffset: It points the memory offset of the cursor position. 106271d7fec4Smrg * xpos: It points the X co-ordinate position of the cursor. 106371d7fec4Smrg * ypos: It points the Y co-ordinate position of the cursor. 106471d7fec4Smrg * xhotspot: It points the X hotspot location for current cursor shape. 106571d7fec4Smrg * yhotspot: It points the Y hotspot location for current cursor shape. 106671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 106771d7fec4Smrg *-------------------------------------------------------------------------*/ 106871d7fec4SmrgBOOLEAN 106971d7fec4SmrgGal_get_cursor_position(unsigned long *memoffset, 107071d7fec4Smrg unsigned short *xpos, unsigned short *ypos, 107171d7fec4Smrg unsigned short *xhotspot, unsigned short *yhotspot) 107271d7fec4Smrg{ 107371d7fec4Smrg GAL_CURSORPOSITION sCursorPos; 107471d7fec4Smrg 107571d7fec4Smrg INIT_GAL(&sCursorPos); 107671d7fec4Smrg sCursorPos.dwSubfunction = GALFN_GETCURSORPOSITION; 107771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorPos)) 107871d7fec4Smrg return 0; 107971d7fec4Smrg else { 108071d7fec4Smrg *memoffset = sCursorPos.dwMemOffset; 108171d7fec4Smrg *xpos = sCursorPos.wXPos; 108271d7fec4Smrg *ypos = sCursorPos.wYPos; 108371d7fec4Smrg *xhotspot = sCursorPos.wXHot; 108471d7fec4Smrg *yhotspot = sCursorPos.wYHot; 108571d7fec4Smrg return 1; 108671d7fec4Smrg } 108771d7fec4Smrg} 108871d7fec4Smrg 108971d7fec4Smrg/*-------------------------------------------------------------------------- 109071d7fec4Smrg * Gal_set_cursor_shape32 109171d7fec4Smrg * 109271d7fec4Smrg * Description: This function loads 32x32 cursor pattern. 109371d7fec4Smrg * parameters: 109471d7fec4Smrg * memoffset: It specifies the graphics memory offset for cursor shape. 109571d7fec4Smrg * andmask: It is a pointer to 32 DWORD of AND data. 109671d7fec4Smrg * xormask: It is a pointer to 32 DWORD of XOR data. 109771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 109871d7fec4Smrg *-------------------------------------------------------------------------*/ 109971d7fec4SmrgBOOLEAN 110071d7fec4SmrgGal_set_cursor_shape32(unsigned long memoffset, 110171d7fec4Smrg unsigned long *andmask, unsigned long *xormask) 110271d7fec4Smrg{ 110371d7fec4Smrg GAL_SETCURSORSHAPE sCursorShape; 110471d7fec4Smrg 110571d7fec4Smrg INIT_GAL(&sCursorShape); 110671d7fec4Smrg sCursorShape.dwSubfunction = GALFN_SETCURSORSHAPE; 110771d7fec4Smrg sCursorShape.dwMemOffset = memoffset; 110871d7fec4Smrg 110971d7fec4Smrg memcpy(sCursorShape.dwAndMask, andmask, sizeof(sCursorShape.dwAndMask)); 111071d7fec4Smrg 111171d7fec4Smrg memcpy(sCursorShape.dwXorMask, xormask, sizeof(sCursorShape.dwXorMask)); 111271d7fec4Smrg 111371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorShape)) 111471d7fec4Smrg return 0; 111571d7fec4Smrg else 111671d7fec4Smrg return 1; 111771d7fec4Smrg} 111871d7fec4Smrg 111971d7fec4Smrg/*-------------------------------------------------------------------------- 112071d7fec4Smrg * Gal_set_cursor_shape64 112171d7fec4Smrg * 112271d7fec4Smrg * Description: This function loads 64x64 cursor pattern. 112371d7fec4Smrg * parameters: 112471d7fec4Smrg * memoffset: It specifies the graphics memory offset for cursor shape. 112571d7fec4Smrg * andmask: It is a pointer to 64 DWORD of AND data. 112671d7fec4Smrg * xormask: It is a pointer to 64 DWORD of XOR data. 112771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 112871d7fec4Smrg *-------------------------------------------------------------------------*/ BOOLEAN 112971d7fec4SmrgGal_set_cursor_shape64(unsigned long memoffset, 113071d7fec4Smrg unsigned long *andmask, unsigned long *xormask) 113171d7fec4Smrg{ 113271d7fec4Smrg GAL_SETCURSORSHAPE sCursorShape; 113371d7fec4Smrg 113471d7fec4Smrg INIT_GAL(&sCursorShape); 113571d7fec4Smrg sCursorShape.dwSubfunction = GALFN_SETCURSORSHAPE_RCLD; 113671d7fec4Smrg sCursorShape.dwMemOffset = memoffset; 113771d7fec4Smrg 113871d7fec4Smrg memcpy(sCursorShape.dwAndMask, andmask, sizeof(sCursorShape.dwAndMask)); 113971d7fec4Smrg 114071d7fec4Smrg memcpy(sCursorShape.dwXorMask, xormask, sizeof(sCursorShape.dwXorMask)); 114171d7fec4Smrg 114271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorShape)) 114371d7fec4Smrg return 0; 114471d7fec4Smrg else 114571d7fec4Smrg return 1; 114671d7fec4Smrg} 114771d7fec4Smrg 114871d7fec4Smrg/*-------------------------------------------------------------------------- 114971d7fec4Smrg * Gal_set_cursor_colors 115071d7fec4Smrg * 115171d7fec4Smrg * Description: This function sets the colors of the hardware cursor. 115271d7fec4Smrg * parameters: 115371d7fec4Smrg * bkcolor:It specifies the RGB value for the background color. 115471d7fec4Smrg * fgcolor:It specifies the RGB value for the foreground color. 115571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 115671d7fec4Smrg *-------------------------------------------------------------------------*/ 115771d7fec4SmrgBOOLEAN 115871d7fec4SmrgGal_set_cursor_colors(unsigned long bkcolor, unsigned long fgcolor) 115971d7fec4Smrg{ 116071d7fec4Smrg GAL_CURSORCOLORS sCursorColor; 116171d7fec4Smrg 116271d7fec4Smrg INIT_GAL(&sCursorColor); 116371d7fec4Smrg sCursorColor.dwSubfunction = GALFN_SETCURSORCOLORS; 116471d7fec4Smrg sCursorColor.dwBgColor = bkcolor; 116571d7fec4Smrg sCursorColor.dwFgColor = fgcolor; 116671d7fec4Smrg 116771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorColor)) 116871d7fec4Smrg return 0; 116971d7fec4Smrg else 117071d7fec4Smrg return 1; 117171d7fec4Smrg} 117271d7fec4Smrg 117371d7fec4Smrg/*-------------------------------------------------------------------------- 117471d7fec4Smrg * Gal_get_cursor_colors 117571d7fec4Smrg * 117671d7fec4Smrg * Description: This function gets the colors of the hardware cursor. 117771d7fec4Smrg * parameters: 117871d7fec4Smrg * bkcolor:It points the RGB value for the background color. 117971d7fec4Smrg * fgcolor:It points the RGB value for the foreground color. 118071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 118171d7fec4Smrg *-------------------------------------------------------------------------*/ 118271d7fec4SmrgBOOLEAN 118371d7fec4SmrgGal_get_cursor_colors(unsigned long *bkcolor, unsigned long *fgcolor) 118471d7fec4Smrg{ 118571d7fec4Smrg GAL_CURSORCOLORS sCursorColor; 118671d7fec4Smrg 118771d7fec4Smrg INIT_GAL(&sCursorColor); 118871d7fec4Smrg sCursorColor.dwSubfunction = GALFN_GETCURSORCOLORS; 118971d7fec4Smrg 119071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCursorColor)) 119171d7fec4Smrg return 0; 119271d7fec4Smrg else { 119371d7fec4Smrg *bkcolor = sCursorColor.dwBgColor; 119471d7fec4Smrg *fgcolor = sCursorColor.dwFgColor; 119571d7fec4Smrg return 1; 119671d7fec4Smrg } 119771d7fec4Smrg} 119871d7fec4Smrg 119971d7fec4Smrg/*-------------------------------------------------------------------------- 120071d7fec4Smrg * Gal_set_solid_pattern 120171d7fec4Smrg * 120271d7fec4Smrg * Description: This function sets a solid pattern color for future rendering. 120371d7fec4Smrg * parameters: 120471d7fec4Smrg * color: It specifies the pattern color in proper format for current 120571d7fec4Smrg * display mode. 120671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 120771d7fec4Smrg *-------------------------------------------------------------------------*/ 120871d7fec4SmrgBOOLEAN 120971d7fec4SmrgGal_set_solid_pattern(unsigned long color) 121071d7fec4Smrg{ 121171d7fec4Smrg GAL_SETSOLIDPATTERN sSetSoildPat; 121271d7fec4Smrg 121371d7fec4Smrg INIT_GAL(&sSetSoildPat); 121471d7fec4Smrg sSetSoildPat.dwSubfunction = GALFN_SETSOLIDPATTERN; 121571d7fec4Smrg sSetSoildPat.dwColor = color; 121671d7fec4Smrg 121771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetSoildPat)) 121871d7fec4Smrg return 0; 121971d7fec4Smrg else 122071d7fec4Smrg return 1; 122171d7fec4Smrg} 122271d7fec4Smrg 122371d7fec4Smrg/*-------------------------------------------------------------------------- 122471d7fec4Smrg * Gal_set_solid_source 122571d7fec4Smrg * 122671d7fec4Smrg * Description: This function specifies a constant source data value for 122771d7fec4Smrg * raster operations that use both pattern 122871d7fec4Smrg * and source data. 122971d7fec4Smrg * parameters: 123071d7fec4Smrg * color: It specifies the source color. 123171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 123271d7fec4Smrg *-------------------------------------------------------------------------*/ 123371d7fec4SmrgBOOLEAN 123471d7fec4SmrgGal_set_solid_source(unsigned long color) 123571d7fec4Smrg{ 123671d7fec4Smrg GAL_SETSOLIDSOURCE sSetSolidSrc; 123771d7fec4Smrg 123871d7fec4Smrg INIT_GAL(&sSetSolidSrc); 123971d7fec4Smrg sSetSolidSrc.dwSubfunction = GALFN_SETSOLIDSOURCE; 124071d7fec4Smrg sSetSolidSrc.dwColor = color; 124171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetSolidSrc)) 124271d7fec4Smrg return 0; 124371d7fec4Smrg else 124471d7fec4Smrg return 1; 124571d7fec4Smrg} 124671d7fec4Smrg 124771d7fec4Smrg/*-------------------------------------------------------------------------- 124871d7fec4Smrg * Gal_set_mono_source 124971d7fec4Smrg * 125071d7fec4Smrg * Description: 125171d7fec4Smrg * parameters: 125271d7fec4Smrg * bkcolor: It specifies the background color. 125371d7fec4Smrg * fgcolor: It specifies the foreground color. 125471d7fec4Smrg *transparency: It specifies the transparency flag. 125571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 125671d7fec4Smrg *------------------------------------------------------------------------*/ 125771d7fec4SmrgBOOLEAN 125871d7fec4SmrgGal_set_mono_source(unsigned long bgcolor, unsigned long fgcolor, 125971d7fec4Smrg unsigned char transparency) 126071d7fec4Smrg{ 126171d7fec4Smrg GAL_SETMONOSOURCE sSetMonoSrc; 126271d7fec4Smrg 126371d7fec4Smrg INIT_GAL(&sSetMonoSrc); 126471d7fec4Smrg sSetMonoSrc.dwSubfunction = GALFN_SETMONOSOURCE; 126571d7fec4Smrg sSetMonoSrc.dwFgColor = fgcolor; 126671d7fec4Smrg sSetMonoSrc.dwBgColor = bgcolor; 126771d7fec4Smrg sSetMonoSrc.cTransparency = transparency; 126871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetMonoSrc)) 126971d7fec4Smrg return 0; 127071d7fec4Smrg else 127171d7fec4Smrg return 1; 127271d7fec4Smrg} 127371d7fec4Smrg 127471d7fec4Smrg/*-------------------------------------------------------------------------- 127571d7fec4Smrg * Gal_set_mono_pattern 127671d7fec4Smrg * 127771d7fec4Smrg * Description: This function specifies an 8x8 monochrome pattern 127871d7fec4Smrg * used in future rendering operations. 127971d7fec4Smrg * parameters: 128071d7fec4Smrg * bkcolor: It specifies the background color. 128171d7fec4Smrg * fgcolor: It specifies the foreground color. 128271d7fec4Smrg * data0: It specifies the bits of 8x8 monochrome pattern. 128371d7fec4Smrg * data1: It specifies the bits of 8x8 monochrome pattern. 128471d7fec4Smrg *transparency: It specifies the transparency flag. 128571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 128671d7fec4Smrg *------------------------------------------------------------------------*/ 128771d7fec4SmrgBOOLEAN 128871d7fec4SmrgGal_set_mono_pattern(unsigned long bgcolor, unsigned long fgcolor, 128971d7fec4Smrg unsigned long data0, unsigned long data1, 129071d7fec4Smrg unsigned char transparency) 129171d7fec4Smrg{ 129271d7fec4Smrg GAL_SETMONOPATTERN sSetMonoPat; 129371d7fec4Smrg 129471d7fec4Smrg INIT_GAL(&sSetMonoPat); 129571d7fec4Smrg sSetMonoPat.dwSubfunction = GALFN_SETMONOPATTERN; 129671d7fec4Smrg sSetMonoPat.dwFgColor = fgcolor; 129771d7fec4Smrg sSetMonoPat.dwBgColor = bgcolor; 129871d7fec4Smrg sSetMonoPat.dwData0 = data0; 129971d7fec4Smrg sSetMonoPat.dwData1 = data1; 130071d7fec4Smrg sSetMonoPat.cTransparency = transparency; 130171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetMonoPat)) 130271d7fec4Smrg return 0; 130371d7fec4Smrg else 130471d7fec4Smrg return 1; 130571d7fec4Smrg} 130671d7fec4Smrg 130771d7fec4Smrg/*-------------------------------------------------------------------------- 130871d7fec4Smrg * Gal_set_raster_operation 130971d7fec4Smrg * 131071d7fec4Smrg * Description: This function specifies the raster operation for 131171d7fec4Smrg * future rendering. 131271d7fec4Smrg * parameters: 131371d7fec4Smrg * rop: It specifies the ternary raster operation 131471d7fec4Smrg * (pattern/source/destination). 131571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 131671d7fec4Smrg *------------------------------------------------------------------------*/ 131771d7fec4SmrgBOOLEAN 131871d7fec4SmrgGal_set_raster_operation(unsigned char rop) 131971d7fec4Smrg{ 132071d7fec4Smrg GAL_RASTEROPERATION sSetRop; 132171d7fec4Smrg 132271d7fec4Smrg INIT_GAL(&sSetRop); 132371d7fec4Smrg sSetRop.dwSubfunction = GALFN_SETRASTEROPERATION; 132471d7fec4Smrg sSetRop.cRop = rop; 132571d7fec4Smrg 132671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetRop)) 132771d7fec4Smrg return 0; 132871d7fec4Smrg else 132971d7fec4Smrg return 1; 133071d7fec4Smrg} 133171d7fec4Smrg 133271d7fec4Smrg/*-------------------------------------------------------------------------- 133371d7fec4Smrg * Gal_pattern_fill 133471d7fec4Smrg * 133571d7fec4Smrg * Description: This function renders pattern data to a rectangular 133671d7fec4Smrg * region. 133771d7fec4Smrg * parameters: 133871d7fec4Smrg * x: It specifies the screen X position, in pixels. 133971d7fec4Smrg * y: It specifies the screen Y position, in pixels. 134071d7fec4Smrg * width: It specifies the width of rectangle, in pixels. 134171d7fec4Smrg * height: It specifies the height of rectangle, in pixels. 134271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 134371d7fec4Smrg *------------------------------------------------------------------------*/ 134471d7fec4SmrgBOOLEAN 134571d7fec4SmrgGal_pattern_fill(unsigned short x, unsigned short y, 134671d7fec4Smrg unsigned short width, unsigned short height) 134771d7fec4Smrg{ 134871d7fec4Smrg GAL_PATTERNFILL sPatternFill; 134971d7fec4Smrg 135071d7fec4Smrg INIT_GAL(&sPatternFill); 135171d7fec4Smrg sPatternFill.dwSubfunction = GALFN_PATTERNFILL; 135271d7fec4Smrg sPatternFill.wXPos = x; 135371d7fec4Smrg sPatternFill.wYPos = y; 135471d7fec4Smrg sPatternFill.wWidth = width; 135571d7fec4Smrg sPatternFill.wHeight = height; 135671d7fec4Smrg 135771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sPatternFill)) 135871d7fec4Smrg return 0; 135971d7fec4Smrg else 136071d7fec4Smrg return 1; 136171d7fec4Smrg} 136271d7fec4Smrg 136371d7fec4Smrg/*-------------------------------------------------------------------------- 136471d7fec4Smrg * Gal_screen_to_screen_blt 136571d7fec4Smrg * 136671d7fec4Smrg * Description: This function is used to perform a screen to screen 136771d7fec4Smrg * BLT operation. 136871d7fec4Smrg * parameters: 136971d7fec4Smrg * srcx: It specifies the source X position. 137071d7fec4Smrg * srcy: It specifies the source Y position. 137171d7fec4Smrg * dstx: It specifies the destination X position. 137271d7fec4Smrg * dsty: It specifies the destination Y position. 137371d7fec4Smrg * width: It specifies the width of BLT, in pixels. 137471d7fec4Smrg * height: It specifies the height of BLT, in pixels. 137571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 137671d7fec4Smrg *------------------------------------------------------------------------*/ 137771d7fec4SmrgBOOLEAN 137871d7fec4SmrgGal_screen_to_screen_blt(unsigned short srcx, unsigned short srcy, 137971d7fec4Smrg unsigned short dstx, unsigned short dsty, 138071d7fec4Smrg unsigned short width, unsigned short height) 138171d7fec4Smrg{ 138271d7fec4Smrg GAL_SCREENTOSCREENBLT sScreenBlt; 138371d7fec4Smrg 138471d7fec4Smrg INIT_GAL(&sScreenBlt); 138571d7fec4Smrg sScreenBlt.dwSubfunction = GALFN_SCREENTOSCREENBLT; 138671d7fec4Smrg sScreenBlt.wXStart = srcx; 138771d7fec4Smrg sScreenBlt.wYStart = srcy; 138871d7fec4Smrg sScreenBlt.wXEnd = dstx; 138971d7fec4Smrg sScreenBlt.wYEnd = dsty; 139071d7fec4Smrg sScreenBlt.wWidth = width; 139171d7fec4Smrg sScreenBlt.wHeight = height; 139271d7fec4Smrg 139371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sScreenBlt)) 139471d7fec4Smrg return 0; 139571d7fec4Smrg else 139671d7fec4Smrg return 1; 139771d7fec4Smrg} 139871d7fec4Smrg 139971d7fec4Smrg/*-------------------------------------------------------------------------- 140071d7fec4Smrg * Gal_screen_to_screen_xblt 140171d7fec4Smrg * 140271d7fec4Smrg * Description: This function is used to perform a screen to screen 140371d7fec4Smrg * BLT operation using a transparency color. 140471d7fec4Smrg * parameters: 140571d7fec4Smrg * srcx: It specifies the source X position. 140671d7fec4Smrg * srcy: It specifies the source Y position. 140771d7fec4Smrg * dstx: It specifies the destination X position. 140871d7fec4Smrg * dsty: It specifies the destination Y position. 140971d7fec4Smrg * width: It specifies the width of BLT, in pixels. 141071d7fec4Smrg * height: It specifies the height of BLT, in pixels. 141171d7fec4Smrg * color: It specifies the transparency color. 141271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 141371d7fec4Smrg *------------------------------------------------------------------------*/ 141471d7fec4SmrgBOOLEAN 141571d7fec4SmrgGal_screen_to_screen_xblt(unsigned short srcx, unsigned short srcy, 141671d7fec4Smrg unsigned short dstx, unsigned short dsty, 141771d7fec4Smrg unsigned short width, unsigned short height, 141871d7fec4Smrg unsigned long color) 141971d7fec4Smrg{ 142071d7fec4Smrg GAL_SCREENTOSCREENXBLT sScreenXBlt; 142171d7fec4Smrg 142271d7fec4Smrg INIT_GAL(&sScreenXBlt); 142371d7fec4Smrg sScreenXBlt.dwSubfunction = GALFN_SCREENTOSCREENXBLT; 142471d7fec4Smrg sScreenXBlt.wXStart = srcx; 142571d7fec4Smrg sScreenXBlt.wYStart = srcy; 142671d7fec4Smrg sScreenXBlt.wXEnd = dstx; 142771d7fec4Smrg sScreenXBlt.wYEnd = dsty; 142871d7fec4Smrg sScreenXBlt.wWidth = width; 142971d7fec4Smrg sScreenXBlt.wHeight = height; 143071d7fec4Smrg sScreenXBlt.dwColor = color; 143171d7fec4Smrg 143271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sScreenXBlt)) 143371d7fec4Smrg return 0; 143471d7fec4Smrg else 143571d7fec4Smrg return 1; 143671d7fec4Smrg} 143771d7fec4Smrg 143871d7fec4Smrg/*-------------------------------------------------------------------------- 143971d7fec4Smrg * Gal_bresenham_line 144071d7fec4Smrg * 144171d7fec4Smrg * Description: This function is used to draw a single pixel line 144271d7fec4Smrg * using the specified Bresenham parameters. 144371d7fec4Smrg * parameters: 144471d7fec4Smrg * x: It specifies the starting X position. 144571d7fec4Smrg * y: It specifies the starting Y position. 144671d7fec4Smrg * length: It specifies the length of the vector, in pixels. 144771d7fec4Smrg * initerr: It specifies the Bresenham initial error term. 144871d7fec4Smrg * axialerr: It specifies the Bresenham axial error term 144971d7fec4Smrg * (moving in major direction only). 145071d7fec4Smrg * diagerr: It specifies Bresenham diagonal error term 145171d7fec4Smrg * (moving in major and minor direction. 145271d7fec4Smrg * flags: It specifies the flag. 145371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 145471d7fec4Smrg *------------------------------------------------------------------------*/ 145571d7fec4SmrgBOOLEAN 145671d7fec4SmrgGal_bresenham_line(unsigned short x, unsigned short y, 145771d7fec4Smrg unsigned short length, unsigned short initerr, 145871d7fec4Smrg unsigned short axialerr, unsigned short diagerr, 145971d7fec4Smrg unsigned short flags) 146071d7fec4Smrg{ 146171d7fec4Smrg GAL_BRESENHAMLINE sBresenhamLine; 146271d7fec4Smrg 146371d7fec4Smrg INIT_GAL(&sBresenhamLine); 146471d7fec4Smrg sBresenhamLine.dwSubfunction = GALFN_BRESENHAMLINE; 146571d7fec4Smrg sBresenhamLine.wX1 = x; 146671d7fec4Smrg sBresenhamLine.wY1 = y; 146771d7fec4Smrg sBresenhamLine.wLength = length; 146871d7fec4Smrg sBresenhamLine.wErr = initerr; 146971d7fec4Smrg sBresenhamLine.wE1 = axialerr; 147071d7fec4Smrg sBresenhamLine.wE2 = diagerr; 147171d7fec4Smrg sBresenhamLine.wFlags = flags; 147271d7fec4Smrg 147371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sBresenhamLine)) 147471d7fec4Smrg return 0; 147571d7fec4Smrg else 147671d7fec4Smrg return 1; 147771d7fec4Smrg} 147871d7fec4Smrg 147971d7fec4SmrgBOOLEAN 148071d7fec4SmrgGal_color_pattern_fill(unsigned short x, unsigned short y, 148171d7fec4Smrg unsigned short width, unsigned short height, 148271d7fec4Smrg unsigned long pattern) 148371d7fec4Smrg{ 148471d7fec4Smrg GAL_COLOR_PATTERNFILL sColorPat; 148571d7fec4Smrg 148671d7fec4Smrg INIT_GAL(&sColorPat); 148771d7fec4Smrg sColorPat.dwSubfunction = GALFN_COLOR_PATTERNFILL; 148871d7fec4Smrg sColorPat.wDstx = x; 148971d7fec4Smrg sColorPat.wDsty = y; 149071d7fec4Smrg sColorPat.wWidth = width; 149171d7fec4Smrg sColorPat.wHeight = height; 149271d7fec4Smrg sColorPat.dwPattern = pattern; 149371d7fec4Smrg 149471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sColorPat)) 149571d7fec4Smrg return 0; 149671d7fec4Smrg else 149771d7fec4Smrg return 1; 149871d7fec4Smrg} 149971d7fec4Smrg 150071d7fec4SmrgBOOLEAN 150171d7fec4SmrgGal_color_bitmap_to_screen_blt(unsigned short srcx, unsigned short srcy, 150271d7fec4Smrg unsigned short dstx, unsigned short dsty, 150371d7fec4Smrg unsigned short width, unsigned short height, 150471d7fec4Smrg unsigned long data, long pitch) 150571d7fec4Smrg{ 150671d7fec4Smrg GAL_COLOR_BITMAP_TO_SCREEN_BLT sBmp2Scr; 150771d7fec4Smrg 150871d7fec4Smrg INIT_GAL(&sBmp2Scr); 150971d7fec4Smrg sBmp2Scr.dwSubfunction = GALFN_COLOR_BITMAP_TO_SCREEN_BLT; 151071d7fec4Smrg sBmp2Scr.wSrcx = srcx; 151171d7fec4Smrg sBmp2Scr.wSrcy = srcy; 151271d7fec4Smrg sBmp2Scr.wDstx = dstx; 151371d7fec4Smrg sBmp2Scr.wDsty = dsty; 151471d7fec4Smrg sBmp2Scr.wWidth = width; 151571d7fec4Smrg sBmp2Scr.wHeight = height; 151671d7fec4Smrg sBmp2Scr.dwData = data; 151771d7fec4Smrg sBmp2Scr.wPitch = pitch; 151871d7fec4Smrg 151971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sBmp2Scr)) 152071d7fec4Smrg return 0; 152171d7fec4Smrg else 152271d7fec4Smrg return 1; 152371d7fec4Smrg} 152471d7fec4Smrg 152571d7fec4SmrgBOOLEAN 152671d7fec4SmrgGal_color_bitmap_to_screen_xblt(unsigned short srcx, unsigned short srcy, 152771d7fec4Smrg unsigned short dstx, unsigned short dsty, 152871d7fec4Smrg unsigned short width, unsigned short height, 152971d7fec4Smrg unsigned long data, long pitch, 153071d7fec4Smrg unsigned long color) 153171d7fec4Smrg{ 153271d7fec4Smrg GAL_COLOR_BITMAP_TO_SCREEN_XBLT sBmp2Scr; 153371d7fec4Smrg 153471d7fec4Smrg INIT_GAL(&sBmp2Scr); 153571d7fec4Smrg sBmp2Scr.dwSubfunction = GALFN_COLOR_BITMAP_TO_SCREEN_XBLT; 153671d7fec4Smrg sBmp2Scr.wSrcx = srcx; 153771d7fec4Smrg sBmp2Scr.wSrcy = srcy; 153871d7fec4Smrg sBmp2Scr.wDstx = dstx; 153971d7fec4Smrg sBmp2Scr.wDsty = dsty; 154071d7fec4Smrg sBmp2Scr.wWidth = width; 154171d7fec4Smrg sBmp2Scr.wHeight = height; 154271d7fec4Smrg sBmp2Scr.dwData = data; 154371d7fec4Smrg sBmp2Scr.wPitch = pitch; 154471d7fec4Smrg sBmp2Scr.dwColor = color; 154571d7fec4Smrg 154671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sBmp2Scr)) 154771d7fec4Smrg return 0; 154871d7fec4Smrg else 154971d7fec4Smrg return 1; 155071d7fec4Smrg} 155171d7fec4Smrg 155271d7fec4SmrgBOOLEAN 155371d7fec4SmrgGal_mono_bitmap_to_screen_blt(unsigned short srcx, unsigned short srcy, 155471d7fec4Smrg unsigned short dstx, unsigned short dsty, 155571d7fec4Smrg unsigned short width, unsigned short height, 155671d7fec4Smrg unsigned long data, short pitch) 155771d7fec4Smrg{ 155871d7fec4Smrg GAL_MONO_BITMAP_TO_SCREEN_BLT sBmp2Scr; 155971d7fec4Smrg 156071d7fec4Smrg INIT_GAL(&sBmp2Scr); 156171d7fec4Smrg sBmp2Scr.dwSubfunction = GALFN_MONO_BITMAP_TO_SCREEN_BLT; 156271d7fec4Smrg sBmp2Scr.wSrcx = srcx; 156371d7fec4Smrg sBmp2Scr.wSrcy = srcy; 156471d7fec4Smrg sBmp2Scr.wDstx = dstx; 156571d7fec4Smrg sBmp2Scr.wDsty = dsty; 156671d7fec4Smrg sBmp2Scr.wWidth = width; 156771d7fec4Smrg sBmp2Scr.wHeight = height; 156871d7fec4Smrg sBmp2Scr.dwData = data; 156971d7fec4Smrg sBmp2Scr.wPitch = pitch; 157071d7fec4Smrg 157171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sBmp2Scr)) 157271d7fec4Smrg return 0; 157371d7fec4Smrg else 157471d7fec4Smrg return 1; 157571d7fec4Smrg} 157671d7fec4Smrg 157771d7fec4SmrgBOOLEAN 157871d7fec4SmrgGal_text_blt(unsigned short dstx, unsigned short dsty, unsigned short width, 157971d7fec4Smrg unsigned short height, unsigned long data) 158071d7fec4Smrg{ 158171d7fec4Smrg GAL_TEXT_BLT sTextBlt; 158271d7fec4Smrg 158371d7fec4Smrg INIT_GAL(&sTextBlt); 158471d7fec4Smrg sTextBlt.dwSubfunction = GALFN_TEXT_BLT; 158571d7fec4Smrg sTextBlt.wDstx = dstx; 158671d7fec4Smrg sTextBlt.wDsty = dsty; 158771d7fec4Smrg sTextBlt.wWidth = width; 158871d7fec4Smrg sTextBlt.wHeight = height; 158971d7fec4Smrg sTextBlt.dwData = data; 159071d7fec4Smrg 159171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sTextBlt)) 159271d7fec4Smrg return 0; 159371d7fec4Smrg else 159471d7fec4Smrg return 1; 159571d7fec4Smrg} 159671d7fec4Smrg 159771d7fec4Smrg/*------------------------------------------------------------------------ 159871d7fec4Smrg * Gal_set_compression_enable 159971d7fec4Smrg * 160071d7fec4Smrg * Description: This function enables or disables display 160171d7fec4Smrg * compression. 160271d7fec4Smrg * parameters: 160371d7fec4Smrg * bCompressionState: It specifies the display compression state. 160471d7fec4Smrg * return: '1' was returned on success otherwise 160571d7fec4Smrg * '0' was returned. 160671d7fec4Smrg *----------------------------------------------------------------------*/ 160771d7fec4SmrgBOOLEAN 160871d7fec4SmrgGal_set_compression_enable(BOOLEAN bCompressionState) 160971d7fec4Smrg{ 161071d7fec4Smrg GAL_COMPRESSIONSTATE sCompState; 161171d7fec4Smrg 161271d7fec4Smrg INIT_GAL(&sCompState); 161371d7fec4Smrg sCompState.dwSubfunction = GALFN_SETCOMPRESSIONSTATE; 161471d7fec4Smrg sCompState.bCompressionState = bCompressionState; 161571d7fec4Smrg 161671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCompState)) 161771d7fec4Smrg return 0; 161871d7fec4Smrg else 161971d7fec4Smrg return 1; 162071d7fec4Smrg} 162171d7fec4Smrg 162271d7fec4Smrg/*------------------------------------------------------------------------ 162371d7fec4Smrg * Gal_get_compression_enable 162471d7fec4Smrg * 162571d7fec4Smrg * Description: This function gets the compression state. 162671d7fec4Smrg * 162771d7fec4Smrg * parameters: 162871d7fec4Smrg * bCompressionState: gets the display compression state. 162971d7fec4Smrg * return: '1' was returned on success otherwise 163071d7fec4Smrg * '0' was returned. 163171d7fec4Smrg *----------------------------------------------------------------------*/ 163271d7fec4SmrgBOOLEAN 163371d7fec4SmrgGal_get_compression_enable(int *bCompressionState) 163471d7fec4Smrg{ 163571d7fec4Smrg GAL_COMPRESSIONSTATE sCompState; 163671d7fec4Smrg 163771d7fec4Smrg INIT_GAL(&sCompState); 163871d7fec4Smrg sCompState.dwSubfunction = GALFN_GETCOMPRESSIONSTATE; 163971d7fec4Smrg 164071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCompState)) 164171d7fec4Smrg return 0; 164271d7fec4Smrg else { 164371d7fec4Smrg *bCompressionState = sCompState.bCompressionState; 164471d7fec4Smrg return 1; 164571d7fec4Smrg } 164671d7fec4Smrg} 164771d7fec4Smrg 164871d7fec4Smrg/*-------------------------------------------------------------------------- 164971d7fec4Smrg * Gal_set_compression_parameters 165071d7fec4Smrg * 165171d7fec4Smrg * Description: This function sets the compression parameters of the 165271d7fec4Smrg * frame buffer device. 165371d7fec4Smrg * parameters: 165471d7fec4Smrg * flags: It specifies the flag. 165571d7fec4Smrg * offset: It specifies the base offset in graphics memory for the 165671d7fec4Smrg * compression buffer. 165771d7fec4Smrg * pitch: It specifies the pitch of compression buffer, in bytes. 165871d7fec4Smrg * size: It specifies the maximum line size of the compression buffer 165971d7fec4Smrg * in bytes. 166071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 166171d7fec4Smrg *------------------------------------------------------------------------*/ 166271d7fec4SmrgBOOLEAN 166371d7fec4SmrgGal_set_compression_parameters(unsigned long flags, 166471d7fec4Smrg unsigned long offset, unsigned short pitch, 166571d7fec4Smrg unsigned short size) 166671d7fec4Smrg{ 166771d7fec4Smrg GAL_COMPRESSIONPARAMS sCompParams; 166871d7fec4Smrg 166971d7fec4Smrg INIT_GAL(&sCompParams); 167071d7fec4Smrg sCompParams.dwSubfunction = GALFN_SETCOMPRESSIONPARAMS; 167171d7fec4Smrg sCompParams.dwFlags = flags; 167271d7fec4Smrg sCompParams.dwCompOffset = offset; 167371d7fec4Smrg sCompParams.dwCompPitch = pitch; 167471d7fec4Smrg sCompParams.dwCompSize = size; 167571d7fec4Smrg 167671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCompParams)) 167771d7fec4Smrg return 0; 167871d7fec4Smrg else 167971d7fec4Smrg return 1; 168071d7fec4Smrg} 168171d7fec4Smrg 168271d7fec4Smrg/*-------------------------------------------------------------------------- 168371d7fec4Smrg * Gal_get_compression_parameters 168471d7fec4Smrg * 168571d7fec4Smrg * Description: This function gets the compression parameters of the 168671d7fec4Smrg * frame buffer device. 168771d7fec4Smrg * parameters: 168871d7fec4Smrg * flags: It specifies the flag. 168971d7fec4Smrg * offset: gets the base offset in graphics memory for the 169071d7fec4Smrg * compression buffer. 169171d7fec4Smrg * pitch: gets the pitch of compression buffer, in bytes. 169271d7fec4Smrg * size: gets the maximum line size of the compression buffer 169371d7fec4Smrg * in bytes. 169471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 169571d7fec4Smrg *------------------------------------------------------------------------*/ 169671d7fec4SmrgBOOLEAN 169771d7fec4SmrgGal_get_compression_parameters(unsigned long flags, 169871d7fec4Smrg unsigned long *offset, 169971d7fec4Smrg unsigned short *pitch, unsigned short *size) 170071d7fec4Smrg{ 170171d7fec4Smrg GAL_COMPRESSIONPARAMS sCompParams; 170271d7fec4Smrg 170371d7fec4Smrg INIT_GAL(&sCompParams); 170471d7fec4Smrg sCompParams.dwSubfunction = GALFN_GETCOMPRESSIONPARAMS; 170571d7fec4Smrg sCompParams.dwFlags = flags; 170671d7fec4Smrg 170771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sCompParams)) 170871d7fec4Smrg return 0; 170971d7fec4Smrg else { 171071d7fec4Smrg *offset = sCompParams.dwCompOffset; 171171d7fec4Smrg *pitch = sCompParams.dwCompPitch; 171271d7fec4Smrg *size = sCompParams.dwCompSize; 171371d7fec4Smrg return 1; 171471d7fec4Smrg } 171571d7fec4Smrg} 171671d7fec4Smrg 171771d7fec4Smrg/*-------------------------------------------------------------------------- 171871d7fec4Smrg * Gal_vga_mode_switch 171971d7fec4Smrg * 172071d7fec4Smrg * Description:This function signals the beginning or end of a 172171d7fec4Smrg * mode switch. 172271d7fec4Smrg * parameters: 172371d7fec4Smrg * active: It specifies the mode switch. 172471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 172571d7fec4Smrg *------------------------------------------------------------------------*/ 172671d7fec4SmrgBOOLEAN 172771d7fec4SmrgGal_vga_mode_switch(int active) 172871d7fec4Smrg{ 172971d7fec4Smrg GAL_VGAMODEDATA sVgaData; 173071d7fec4Smrg 173171d7fec4Smrg INIT_GAL(&sVgaData); 173271d7fec4Smrg sVgaData.dwSubfunction = GALFN_VGAMODESWITCH; 173371d7fec4Smrg sVgaData.dwFlags = active; 173471d7fec4Smrg 173571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgaData)) 173671d7fec4Smrg return 0; 173771d7fec4Smrg else 173871d7fec4Smrg return 1; 173971d7fec4Smrg} 174071d7fec4Smrg 174171d7fec4Smrg/*-------------------------------------------------------------------------- 174271d7fec4Smrg * Gal_vga_clear_extended 174371d7fec4Smrg * 174471d7fec4Smrg * Description: This will clear the Svga data. 174571d7fec4Smrg * parameters: none. 174671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 174771d7fec4Smrg *------------------------------------------------------------------------*/ 174871d7fec4SmrgBOOLEAN 174971d7fec4SmrgGal_vga_clear_extended(void) 175071d7fec4Smrg{ 175171d7fec4Smrg GAL_VGAMODEDATA sVgaData; 175271d7fec4Smrg 175371d7fec4Smrg INIT_GAL(&sVgaData); 175471d7fec4Smrg sVgaData.dwSubfunction = GALFN_VGACLEARCRTEXT; 175571d7fec4Smrg 175671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sVgaData)) 175771d7fec4Smrg return 0; 175871d7fec4Smrg else 175971d7fec4Smrg return 1; 176071d7fec4Smrg} 176171d7fec4Smrg 176271d7fec4Smrg/*-------------------------------------------------------------------------- 176371d7fec4Smrg * Gal_vga_pitch 176471d7fec4Smrg * 176571d7fec4Smrg * Description: This function sets VGA register values in VGA 176671d7fec4Smrg * structure for specified pitch. 176771d7fec4Smrg * parameters: 176871d7fec4Smrg * pVgaData: It specifies the vga structure. 176971d7fec4Smrg * pitch: It specifies the number of bytes between scanlines. 177071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 177171d7fec4Smrg *------------------------------------------------------------------------*/ 177271d7fec4SmrgBOOLEAN 177371d7fec4SmrgGal_vga_pitch(PGAL_VGAMODEDATA pVgaData, unsigned short pitch) 177471d7fec4Smrg{ 177571d7fec4Smrg INIT_GAL(pVgaData); 177671d7fec4Smrg pVgaData->dwSubfunction = GALFN_VGASETPITCH; 177771d7fec4Smrg pVgaData->dwFlags = pitch; 177871d7fec4Smrg 177971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pVgaData)) 178071d7fec4Smrg return 0; 178171d7fec4Smrg else { 178271d7fec4Smrg return 1; 178371d7fec4Smrg } 178471d7fec4Smrg} 178571d7fec4Smrg 178671d7fec4Smrg/*-------------------------------------------------------------------------- 178771d7fec4Smrg * Gal_vga_restore 178871d7fec4Smrg * 178971d7fec4Smrg * Description: This function sets the VGA state to the values in the 179071d7fec4Smrg * VGA structure. 179171d7fec4Smrg * parameters: 179271d7fec4Smrg * pVgaData: It specifies the vga structure. 179371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 179471d7fec4Smrg *------------------------------------------------------------------------*/ 179571d7fec4SmrgBOOLEAN 179671d7fec4SmrgGal_vga_restore(PGAL_VGAMODEDATA pVgaData) 179771d7fec4Smrg{ 179871d7fec4Smrg INIT_GAL(pVgaData); 179971d7fec4Smrg pVgaData->dwSubfunction = GALFN_VGARESTORE; 180071d7fec4Smrg 180171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pVgaData)) 180271d7fec4Smrg return 0; 180371d7fec4Smrg else 180471d7fec4Smrg return 1; 180571d7fec4Smrg} 180671d7fec4Smrg 180771d7fec4Smrg/*-------------------------------------------------------------------------- 180871d7fec4Smrg * Gal_vga_save 180971d7fec4Smrg * 181071d7fec4Smrg * Description: This function saves the current VGA state in the 181171d7fec4Smrg * VGA structure. 181271d7fec4Smrg * parameters: 181371d7fec4Smrg * pVgaData: It specifies the vga structure. 181471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 181571d7fec4Smrg *------------------------------------------------------------------------*/ 181671d7fec4SmrgBOOLEAN 181771d7fec4SmrgGal_vga_save(PGAL_VGAMODEDATA pVgaData) 181871d7fec4Smrg{ 181971d7fec4Smrg INIT_GAL(pVgaData); 182071d7fec4Smrg pVgaData->dwSubfunction = GALFN_VGASAVE; 182171d7fec4Smrg 182271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pVgaData)) 182371d7fec4Smrg return 0; 182471d7fec4Smrg else { 182571d7fec4Smrg return 1; 182671d7fec4Smrg } 182771d7fec4Smrg} 182871d7fec4Smrg 182971d7fec4Smrg/*-------------------------------------------------------------------------- 183071d7fec4Smrg * Gal_vga_mode 183171d7fec4Smrg * 183271d7fec4Smrg * Description: This function sets VGA register values in VGA 183371d7fec4Smrg * structure for specified mode. 183471d7fec4Smrg * parameters: 183571d7fec4Smrg * pVgaData: It specifies the vga structure. 183671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 183771d7fec4Smrg *------------------------------------------------------------------------*/ 183871d7fec4SmrgBOOLEAN 183971d7fec4SmrgGal_vga_mode(PGAL_VGAMODEDATA pVgaData) 184071d7fec4Smrg{ 184171d7fec4Smrg INIT_GAL(pVgaData); 184271d7fec4Smrg pVgaData->dwSubfunction = GALFN_VGASETMODE; 184371d7fec4Smrg 184471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pVgaData)) 184571d7fec4Smrg return 0; 184671d7fec4Smrg else { 184771d7fec4Smrg return 1; 184871d7fec4Smrg } 184971d7fec4Smrg} 185071d7fec4Smrg 185171d7fec4Smrg/*-------------------------------------------------------------------------- 185271d7fec4Smrg * Gal_pnl_enabled_in_bios 185371d7fec4Smrg * 185471d7fec4Smrg * Description: This function gets the status of the FP in BIOS. 185571d7fec4Smrg * parameters: 185671d7fec4Smrg * status: returns the state of FP in Bios. 185771d7fec4Smrg * pParam: It specifies the panel parameters structure. 185871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 185971d7fec4Smrg *------------------------------------------------------------------------*/ 186071d7fec4SmrgBOOLEAN 186171d7fec4SmrgGal_pnl_enabled_in_bios(int *state) 186271d7fec4Smrg{ 186371d7fec4Smrg GAL_PNLBIOS pStat; 186471d7fec4Smrg 186571d7fec4Smrg INIT_GAL(&pStat); 186671d7fec4Smrg pStat.dwSubfunction = GALFN_PNLBIOSENABLE; 186771d7fec4Smrg 186871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 186971d7fec4Smrg return 0; 187071d7fec4Smrg else { 187171d7fec4Smrg *state = pStat.state; 187271d7fec4Smrg return 1; 187371d7fec4Smrg } 187471d7fec4Smrg} 187571d7fec4Smrg 187671d7fec4Smrg/*-------------------------------------------------------------------------- 187771d7fec4Smrg * Gal_pnl_info_from_bios 187871d7fec4Smrg * 187971d7fec4Smrg * Description: This function gets the parameters of the FP in BIOS. 188071d7fec4Smrg * parameters: 188171d7fec4Smrg * status: returns the state of FP in Bios. 188271d7fec4Smrg * pParam: It specifies the panel parameters structure. 188371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 188471d7fec4Smrg *------------------------------------------------------------------------*/ 188571d7fec4SmrgBOOLEAN 188671d7fec4SmrgGal_pnl_info_from_bios(int *xres, int *yres, int *bpp, int *hz) 188771d7fec4Smrg{ 188871d7fec4Smrg GAL_PNLBIOS pStat; 188971d7fec4Smrg 189071d7fec4Smrg INIT_GAL(&pStat); 189171d7fec4Smrg pStat.dwSubfunction = GALFN_PNLBIOSINFO; 189271d7fec4Smrg 189371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 189471d7fec4Smrg return 0; 189571d7fec4Smrg else { 189671d7fec4Smrg *xres = pStat.XRes; 189771d7fec4Smrg *yres = pStat.YRes; 189871d7fec4Smrg *bpp = pStat.Bpp; 189971d7fec4Smrg *hz = pStat.Freq; 190071d7fec4Smrg return 1; 190171d7fec4Smrg } 190271d7fec4Smrg} 190371d7fec4Smrg 190471d7fec4Smrg/*-------------------------------------------------------------------------- 190571d7fec4Smrg * Gal_pnl_set_params 190671d7fec4Smrg * 190771d7fec4Smrg * Description: This function sets the panel parameters. 190871d7fec4Smrg * parameters: 190971d7fec4Smrg * flags: 191071d7fec4Smrg * pParam: It specifies the panel parameters structure. 191171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 191271d7fec4Smrg *------------------------------------------------------------------------*/ 191371d7fec4SmrgBOOLEAN 191471d7fec4SmrgGal_pnl_set_params(unsigned long flags, PPnl_PanelParams pParam) 191571d7fec4Smrg{ 191671d7fec4Smrg GAL_PNLPARAMS pStat; 191771d7fec4Smrg 191871d7fec4Smrg INIT_GAL(&pStat); 191971d7fec4Smrg pStat.dwSubfunction = GALFN_PNLSETPARAMS; 192071d7fec4Smrg pParam->Flags = flags; 192171d7fec4Smrg memcpy(&(pStat.PanelParams), pParam, sizeof(Pnl_PanelParams)); 192271d7fec4Smrg 192371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 192471d7fec4Smrg return 0; 192571d7fec4Smrg else { 192671d7fec4Smrg return 1; 192771d7fec4Smrg } 192871d7fec4Smrg} 192971d7fec4Smrg 193071d7fec4Smrg/*-------------------------------------------------------------------------- 193171d7fec4Smrg * Gal_pnl_get_params 193271d7fec4Smrg * 193371d7fec4Smrg * Description: This function gets the panel parameters. 193471d7fec4Smrg * parameters: 193571d7fec4Smrg * flags: 193671d7fec4Smrg * pParam: It specifies the panel parameters structure. 193771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 193871d7fec4Smrg *------------------------------------------------------------------------*/ 193971d7fec4SmrgBOOLEAN 194071d7fec4SmrgGal_pnl_get_params(unsigned long flags, PPnl_PanelParams pParam) 194171d7fec4Smrg{ 194271d7fec4Smrg GAL_PNLPARAMS pStat; 194371d7fec4Smrg 194471d7fec4Smrg INIT_GAL(&pStat); 194571d7fec4Smrg pStat.dwSubfunction = GALFN_PNLGETPARAMS; 194671d7fec4Smrg memcpy(&(pStat.PanelParams), pParam, sizeof(Pnl_PanelParams)); 194771d7fec4Smrg pStat.PanelParams.Flags = flags; 194871d7fec4Smrg 194971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 195071d7fec4Smrg return 0; 195171d7fec4Smrg else { 195271d7fec4Smrg memcpy(pParam, &(pStat.PanelParams), sizeof(Pnl_PanelParams)); 195371d7fec4Smrg return 1; 195471d7fec4Smrg } 195571d7fec4Smrg} 195671d7fec4Smrg 195771d7fec4Smrg/*-------------------------------------------------------------------------- 195871d7fec4Smrg * Gal_pnl_init 195971d7fec4Smrg * 196071d7fec4Smrg * Description: This function initializes the panel parameters. 196171d7fec4Smrg * parameters: 196271d7fec4Smrg * pParam: It specifies the panel parameters structure. 196371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 196471d7fec4Smrg *------------------------------------------------------------------------*/ 196571d7fec4SmrgBOOLEAN 196671d7fec4SmrgGal_pnl_init(PPnl_PanelParams pParam) 196771d7fec4Smrg{ 196871d7fec4Smrg GAL_PNLPARAMS pStat; 196971d7fec4Smrg 197071d7fec4Smrg INIT_GAL(&pStat); 197171d7fec4Smrg pStat.dwSubfunction = GALFN_PNLINITPANEL; 197271d7fec4Smrg memcpy(&(pStat.PanelParams), pParam, sizeof(Pnl_PanelParams)); 197371d7fec4Smrg 197471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 197571d7fec4Smrg return 0; 197671d7fec4Smrg else 197771d7fec4Smrg return 1; 197871d7fec4Smrg 197971d7fec4Smrg} 198071d7fec4Smrg 198171d7fec4Smrg/*-------------------------------------------------------------------------- 198271d7fec4Smrg * Gal_pnl_save 198371d7fec4Smrg * 198471d7fec4Smrg * Description: This function saves the current panel parameters. 198571d7fec4Smrg * parameters: none. 198671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 198771d7fec4Smrg *------------------------------------------------------------------------*/ 198871d7fec4SmrgBOOLEAN 198971d7fec4SmrgGal_pnl_save(void) 199071d7fec4Smrg{ 199171d7fec4Smrg GAL_PNLPARAMS pStat; 199271d7fec4Smrg 199371d7fec4Smrg INIT_GAL(&pStat); 199471d7fec4Smrg pStat.dwSubfunction = GALFN_PNLSAVESTATE; 199571d7fec4Smrg 199671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 199771d7fec4Smrg return 0; 199871d7fec4Smrg else { 199971d7fec4Smrg return 1; 200071d7fec4Smrg } 200171d7fec4Smrg} 200271d7fec4Smrg 200371d7fec4Smrg/*-------------------------------------------------------------------------- 200471d7fec4Smrg * Gal_pnl_restore 200571d7fec4Smrg * 200671d7fec4Smrg * Description: This function restores the current panel parameters. 200771d7fec4Smrg * parameters: none. 200871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 200971d7fec4Smrg *------------------------------------------------------------------------*/ 201071d7fec4SmrgBOOLEAN 201171d7fec4SmrgGal_pnl_restore(void) 201271d7fec4Smrg{ 201371d7fec4Smrg GAL_PNLPARAMS pStat; 201471d7fec4Smrg 201571d7fec4Smrg INIT_GAL(&pStat); 201671d7fec4Smrg pStat.dwSubfunction = GALFN_PNLRESTORESTATE; 201771d7fec4Smrg 201871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 201971d7fec4Smrg return 0; 202071d7fec4Smrg else { 202171d7fec4Smrg return 1; 202271d7fec4Smrg } 202371d7fec4Smrg} 202471d7fec4Smrg 202571d7fec4Smrg/*-------------------------------------------------------------------------- 202671d7fec4Smrg * Gal_pnl_powerup 202771d7fec4Smrg * 202871d7fec4Smrg * Description: This function powers up the panel. 202971d7fec4Smrg * parameters: none. 203071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 203171d7fec4Smrg *------------------------------------------------------------------------*/ 203271d7fec4SmrgBOOLEAN 203371d7fec4SmrgGal_pnl_powerup(void) 203471d7fec4Smrg{ 203571d7fec4Smrg GAL_BASE pStat; 203671d7fec4Smrg 203771d7fec4Smrg INIT_GAL(&pStat); 203871d7fec4Smrg pStat.dwSubfunction = GALFN_PNLPOWERUP; 203971d7fec4Smrg 204071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 204171d7fec4Smrg return 0; 204271d7fec4Smrg else { 204371d7fec4Smrg return 1; 204471d7fec4Smrg } 204571d7fec4Smrg} 204671d7fec4Smrg 204771d7fec4Smrg/*-------------------------------------------------------------------------- 204871d7fec4Smrg * Gal_pnl_powerdown 204971d7fec4Smrg * 205071d7fec4Smrg * Description: This function powers down the panel. 205171d7fec4Smrg * parameters: none. 205271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 205371d7fec4Smrg *------------------------------------------------------------------------*/ 205471d7fec4SmrgBOOLEAN 205571d7fec4SmrgGal_pnl_powerdown(void) 205671d7fec4Smrg{ 205771d7fec4Smrg GAL_BASE pStat; 205871d7fec4Smrg 205971d7fec4Smrg INIT_GAL(&pStat); 206071d7fec4Smrg pStat.dwSubfunction = GALFN_PNLPOWERDOWN; 206171d7fec4Smrg 206271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pStat)) 206371d7fec4Smrg return 0; 206471d7fec4Smrg else { 206571d7fec4Smrg return 1; 206671d7fec4Smrg } 206771d7fec4Smrg} 206871d7fec4Smrg 206971d7fec4Smrg/*-------------------------------------------------------------------------- 207071d7fec4Smrg * Gal_tv_set_params 207171d7fec4Smrg * 207271d7fec4Smrg * Description: This function sets the tv parameters of 207371d7fec4Smrg * tvparameters structure. 207471d7fec4Smrg * parameters: 207571d7fec4Smrg * flags: 207671d7fec4Smrg * pTV: It specifies the tv parameters structure. 207771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 207871d7fec4Smrg *------------------------------------------------------------------------*/ 207971d7fec4SmrgBOOLEAN 208071d7fec4SmrgGal_tv_set_params(unsigned long flags, PGAL_TVPARAMS pTV) 208171d7fec4Smrg{ 208271d7fec4Smrg INIT_GAL(pTV); 208371d7fec4Smrg pTV->dwSubfunction = GALFN_SETTVPARAMS; 208471d7fec4Smrg pTV->dwFlags = flags; 208571d7fec4Smrg 208671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pTV)) 208771d7fec4Smrg return 0; 208871d7fec4Smrg else { 208971d7fec4Smrg return 1; 209071d7fec4Smrg } 209171d7fec4Smrg} 209271d7fec4Smrg 209371d7fec4Smrg/*-------------------------------------------------------------------------- 209471d7fec4Smrg * Gal_tv_get_params 209571d7fec4Smrg * 209671d7fec4Smrg * Description: This function gets the tv parameters of 209771d7fec4Smrg * tvparameters structure. 209871d7fec4Smrg * parameters: 209971d7fec4Smrg * flags: Dummy flag 210071d7fec4Smrg * pTV: It specifies the tv parameters structure. 210171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 210271d7fec4Smrg *------------------------------------------------------------------------*/ 210371d7fec4SmrgBOOLEAN 210471d7fec4SmrgGal_tv_get_params(unsigned long flags, PGAL_TVPARAMS pTV) 210571d7fec4Smrg{ 210671d7fec4Smrg INIT_GAL(pTV); 210771d7fec4Smrg pTV->dwSubfunction = GALFN_GETTVPARAMS; 210871d7fec4Smrg pTV->dwFlags = flags; 210971d7fec4Smrg 211071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pTV)) 211171d7fec4Smrg return 0; 211271d7fec4Smrg else 211371d7fec4Smrg return 1; 211471d7fec4Smrg 211571d7fec4Smrg} 211671d7fec4Smrg 211771d7fec4Smrg/*-------------------------------------------------------------------------- 211871d7fec4Smrg * Gal_tv_set_timings 211971d7fec4Smrg * 212071d7fec4Smrg * Description: This function sets the tv timing registers. 212171d7fec4Smrg * parameters: 212271d7fec4Smrg * flags: Dummy flag. 212371d7fec4Smrg * pTV: It specifies the tv parameters structure. 212471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 212571d7fec4Smrg *------------------------------------------------------------------------*/ 212671d7fec4SmrgBOOLEAN 212771d7fec4SmrgGal_tv_set_timings(unsigned long flags, PGAL_TVTIMING pTV) 212871d7fec4Smrg{ 212971d7fec4Smrg INIT_GAL(pTV); 213071d7fec4Smrg pTV->dwSubfunction = GALFN_SETTVTIMING; 213171d7fec4Smrg pTV->dwFlags = flags; 213271d7fec4Smrg 213371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pTV)) 213471d7fec4Smrg return 0; 213571d7fec4Smrg else { 213671d7fec4Smrg return 1; 213771d7fec4Smrg } 213871d7fec4Smrg} 213971d7fec4Smrg 214071d7fec4Smrg/*-------------------------------------------------------------------------- 214171d7fec4Smrg * Gal_tv_get_timings 214271d7fec4Smrg * 214371d7fec4Smrg * Description: This function gets the tv timing registers. 214471d7fec4Smrg * parameters: 214571d7fec4Smrg * flags: Dummy flag. 214671d7fec4Smrg * pTV: It specifies the tv parameters structure. 214771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 214871d7fec4Smrg *------------------------------------------------------------------------*/ 214971d7fec4SmrgBOOLEAN 215071d7fec4SmrgGal_tv_get_timings(unsigned long flags, PGAL_TVTIMING pTV) 215171d7fec4Smrg{ 215271d7fec4Smrg INIT_GAL(pTV); 215371d7fec4Smrg pTV->dwSubfunction = GALFN_GETTVTIMING; 215471d7fec4Smrg pTV->dwFlags = flags; 215571d7fec4Smrg 215671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pTV)) 215771d7fec4Smrg return 0; 215871d7fec4Smrg else { 215971d7fec4Smrg return 1; 216071d7fec4Smrg } 216171d7fec4Smrg} 216271d7fec4Smrg 216371d7fec4Smrg/*-------------------------------------------------------------------------- 216471d7fec4Smrg * Gal_set_tv_enable 216571d7fec4Smrg * 216671d7fec4Smrg * Description: This function sets the tv state of the device . 216771d7fec4Smrg * parameters: 216871d7fec4Smrg * bState : set the tv state. 216971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 217071d7fec4Smrg *------------------------------------------------------------------------*/ 217171d7fec4SmrgBOOLEAN 217271d7fec4SmrgGal_set_tv_enable(int bState) 217371d7fec4Smrg{ 217471d7fec4Smrg GAL_TVPARAMS pTV; 217571d7fec4Smrg 217671d7fec4Smrg INIT_GAL(&pTV); 217771d7fec4Smrg pTV.dwSubfunction = GALFN_SETENABLE; 217871d7fec4Smrg pTV.bState = bState; 217971d7fec4Smrg 218071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pTV)) 218171d7fec4Smrg return 0; 218271d7fec4Smrg else { 218371d7fec4Smrg return 1; 218471d7fec4Smrg } 218571d7fec4Smrg} 218671d7fec4Smrg 218771d7fec4Smrg/*-------------------------------------------------------------------------- 218871d7fec4Smrg * Gal_get_tv_enable 218971d7fec4Smrg * 219071d7fec4Smrg * Description: This function gets the tv state of the device . 219171d7fec4Smrg * parameters: 219271d7fec4Smrg * bState : get the tv state. 219371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 219471d7fec4Smrg *------------------------------------------------------------------------*/ 219571d7fec4SmrgBOOLEAN 219671d7fec4SmrgGal_get_tv_enable(unsigned int *bState) 219771d7fec4Smrg{ 219871d7fec4Smrg GAL_TVPARAMS pTV; 219971d7fec4Smrg 220071d7fec4Smrg INIT_GAL(&pTV); 220171d7fec4Smrg pTV.dwSubfunction = GALFN_GETENABLE; 220271d7fec4Smrg 220371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &pTV)) { 220471d7fec4Smrg *bState = 0; 220571d7fec4Smrg return 0; 220671d7fec4Smrg } else { 220771d7fec4Smrg *bState = pTV.bState; 220871d7fec4Smrg return 1; 220971d7fec4Smrg } 221071d7fec4Smrg} 221171d7fec4Smrg 221271d7fec4Smrg/*-------------------------------------------------------------------------- 221371d7fec4Smrg * Gal_is_tv_mode_supported 221471d7fec4Smrg * 221571d7fec4Smrg * Description: This function checks the tv mode is supported or not. 221671d7fec4Smrg * parameters: 221771d7fec4Smrg * flags: Dummy flag 221871d7fec4Smrg * pTV: It specifies the tv parameters structure. 221971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 222071d7fec4Smrg *------------------------------------------------------------------------*/ 222171d7fec4SmrgBOOLEAN 222271d7fec4SmrgGal_is_tv_mode_supported(unsigned long flags, PGAL_TVPARAMS pTV, int *bState) 222371d7fec4Smrg{ 222471d7fec4Smrg INIT_GAL(pTV); 222571d7fec4Smrg pTV->dwSubfunction = GALFN_ISTVMODESUPPORTED; 222671d7fec4Smrg pTV->dwFlags = flags; 222771d7fec4Smrg 222871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, pTV)) { 222971d7fec4Smrg return 0; 223071d7fec4Smrg } else { 223171d7fec4Smrg *bState = pTV->bState; 223271d7fec4Smrg return 1; 223371d7fec4Smrg } 223471d7fec4Smrg} 223571d7fec4Smrg 223671d7fec4Smrg/** Video **********************************************************/ 223771d7fec4Smrg 223871d7fec4Smrg/*-------------------------------------------------------------------------- 223971d7fec4Smrg * Gal_set_video_enable 224071d7fec4Smrg * 224171d7fec4Smrg * Description: This function sets the video enable state. 224271d7fec4Smrg * parameters: 224371d7fec4Smrg * enable: Its value is '1' to enable video and '0' to disable video. 224471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 224571d7fec4Smrg *------------------------------------------------------------------------*/ 224671d7fec4SmrgBOOLEAN 224771d7fec4SmrgGal_set_video_enable(int enable) 224871d7fec4Smrg{ 224971d7fec4Smrg GAL_VIDEOENABLE sSetVideo; 225071d7fec4Smrg 225171d7fec4Smrg INIT_GAL(&sSetVideo); 225271d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOENABLE; 225371d7fec4Smrg sSetVideo.enable = enable; 225471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 225571d7fec4Smrg return 0; 225671d7fec4Smrg else 225771d7fec4Smrg return 1; 225871d7fec4Smrg} 225971d7fec4Smrg 226071d7fec4Smrg/*-------------------------------------------------------------------------- 226171d7fec4Smrg * Gal_set_video_format 226271d7fec4Smrg * 226371d7fec4Smrg * Description: This function sets the video format. 226471d7fec4Smrg * parameters: 226571d7fec4Smrg * format: Its video format value. 226671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 226771d7fec4Smrg *------------------------------------------------------------------------*/ 226871d7fec4SmrgBOOLEAN 226971d7fec4SmrgGal_set_video_format(int format) 227071d7fec4Smrg{ 227171d7fec4Smrg GAL_VIDEOFORMAT sSetVideo; 227271d7fec4Smrg 227371d7fec4Smrg INIT_GAL(&sSetVideo); 227471d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOFORMAT; 227571d7fec4Smrg sSetVideo.format = format; 227671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 227771d7fec4Smrg return 0; 227871d7fec4Smrg else 227971d7fec4Smrg return 1; 228071d7fec4Smrg} 228171d7fec4Smrg 228271d7fec4Smrg/*-------------------------------------------------------------------------- 228371d7fec4Smrg * Gal_set_video_size 228471d7fec4Smrg * 228571d7fec4Smrg * Description: This function sets the video size. 228671d7fec4Smrg * parameters: 228771d7fec4Smrg * width: Width of the video. 228871d7fec4Smrg * height: Height of the video. 228971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 229071d7fec4Smrg *------------------------------------------------------------------------*/ 229171d7fec4SmrgBOOLEAN 229271d7fec4SmrgGal_set_video_size(unsigned short width, unsigned short height) 229371d7fec4Smrg{ 229471d7fec4Smrg GAL_VIDEOSIZE sSetVideo; 229571d7fec4Smrg 229671d7fec4Smrg INIT_GAL(&sSetVideo); 229771d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOSIZE; 229871d7fec4Smrg sSetVideo.width = width; 229971d7fec4Smrg sSetVideo.height = height; 230071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 230171d7fec4Smrg return 0; 230271d7fec4Smrg else 230371d7fec4Smrg return 1; 230471d7fec4Smrg} 230571d7fec4Smrg 230671d7fec4Smrg/*-------------------------------------------------------------------------- 230771d7fec4Smrg * Gal_set_video_offset 230871d7fec4Smrg * 230971d7fec4Smrg * Description: This function sets the video size. 231071d7fec4Smrg * parameters: 231171d7fec4Smrg * offset: Offset of the video. 231271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 231371d7fec4Smrg *------------------------------------------------------------------------*/ 231471d7fec4SmrgBOOLEAN 231571d7fec4SmrgGal_set_video_offset(unsigned long offset) 231671d7fec4Smrg{ 231771d7fec4Smrg GAL_VIDEOOFFSET sSetVideo; 231871d7fec4Smrg 231971d7fec4Smrg INIT_GAL(&sSetVideo); 232071d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOOFFSET; 232171d7fec4Smrg sSetVideo.offset = offset; 232271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 232371d7fec4Smrg return 0; 232471d7fec4Smrg else 232571d7fec4Smrg return 1; 232671d7fec4Smrg} 232771d7fec4Smrg 232871d7fec4Smrg/*-------------------------------------------------------------------------- 232971d7fec4Smrg * Gal_set_video_window 233071d7fec4Smrg * 233171d7fec4Smrg * Description: This function sets the video window. 233271d7fec4Smrg * parameters: 233371d7fec4Smrg * x: X co-ordinate of the Video screen. 233471d7fec4Smrg * y: Y co-ordinate of the Video screen. 233571d7fec4Smrg * w: Width of the Video screen. 233671d7fec4Smrg * h: Height of the Video screen. 233771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 233871d7fec4Smrg *------------------------------------------------------------------------*/ 233971d7fec4SmrgBOOLEAN 234071d7fec4SmrgGal_set_video_window(short x, short y, short w, short h) 234171d7fec4Smrg{ 234271d7fec4Smrg GAL_VIDEOWINDOW sSetVideo; 234371d7fec4Smrg 234471d7fec4Smrg INIT_GAL(&sSetVideo); 234571d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOWINDOW; 234671d7fec4Smrg sSetVideo.x = x; 234771d7fec4Smrg sSetVideo.y = y; 234871d7fec4Smrg sSetVideo.w = w; 234971d7fec4Smrg sSetVideo.h = h; 235071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 235171d7fec4Smrg return 0; 235271d7fec4Smrg else 235371d7fec4Smrg return 1; 235471d7fec4Smrg} 235571d7fec4Smrg 235671d7fec4Smrg/*-------------------------------------------------------------------------- 235771d7fec4Smrg * Gal_set_video_scale 235871d7fec4Smrg * 235971d7fec4Smrg * Description: This function sets the video scale. 236071d7fec4Smrg * parameters: 236171d7fec4Smrg * srcw: Source width. 236271d7fec4Smrg * srch: Source height. 236371d7fec4Smrg * dstw: Destination width. 236471d7fec4Smrg * dsth: Destination height. 236571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 236671d7fec4Smrg *------------------------------------------------------------------------*/ 236771d7fec4SmrgBOOLEAN 236871d7fec4SmrgGal_set_video_scale(unsigned short srcw, unsigned short srch, 236971d7fec4Smrg unsigned short dstw, unsigned short dsth) 237071d7fec4Smrg{ 237171d7fec4Smrg GAL_VIDEOSCALE sSetVideo; 237271d7fec4Smrg 237371d7fec4Smrg INIT_GAL(&sSetVideo); 237471d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOSCALE; 237571d7fec4Smrg sSetVideo.srcw = srcw; 237671d7fec4Smrg sSetVideo.srch = srch; 237771d7fec4Smrg sSetVideo.dstw = dstw; 237871d7fec4Smrg sSetVideo.dsth = dsth; 237971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 238071d7fec4Smrg return 0; 238171d7fec4Smrg else 238271d7fec4Smrg return 1; 238371d7fec4Smrg} 238471d7fec4Smrg 238571d7fec4Smrg/*-------------------------------------------------------------------------- 238671d7fec4Smrg * Gal_set_video_filter. 238771d7fec4Smrg * 238871d7fec4Smrg * Description: This function sets the video filter. 238971d7fec4Smrg * parameters: 239071d7fec4Smrg * xfilter: X-co-ordinate filter. 239171d7fec4Smrg * yfilter: Y-co-ordinate filter. 239271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 239371d7fec4Smrg *------------------------------------------------------------------------*/ 239471d7fec4SmrgBOOLEAN 239571d7fec4SmrgGal_set_video_filter(int xfilter, int yfilter) 239671d7fec4Smrg{ 239771d7fec4Smrg GAL_VIDEOFILTER sSetVideo; 239871d7fec4Smrg 239971d7fec4Smrg INIT_GAL(&sSetVideo); 240071d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOFILTER; 240171d7fec4Smrg sSetVideo.xfilter = xfilter; 240271d7fec4Smrg sSetVideo.yfilter = yfilter; 240371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 240471d7fec4Smrg return 0; 240571d7fec4Smrg else 240671d7fec4Smrg return 1; 240771d7fec4Smrg} 240871d7fec4Smrg 240971d7fec4Smrg/*-------------------------------------------------------------------------- 241071d7fec4Smrg * Gal_set_video_color_key. 241171d7fec4Smrg * 241271d7fec4Smrg * Description: This function sets the video color key. 241371d7fec4Smrg * parameters: 241471d7fec4Smrg * key: Color key. 241571d7fec4Smrg * mask: Color mask. 241671d7fec4Smrg * bluescreen: Value for bluescreen. 241771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 241871d7fec4Smrg *------------------------------------------------------------------------*/ 241971d7fec4SmrgBOOLEAN 242071d7fec4SmrgGal_set_video_color_key(unsigned long key, unsigned long mask, int bluescreen) 242171d7fec4Smrg{ 242271d7fec4Smrg GAL_VIDEOCOLORKEY sSetVideo; 242371d7fec4Smrg 242471d7fec4Smrg INIT_GAL(&sSetVideo); 242571d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOCOLORKEY; 242671d7fec4Smrg sSetVideo.key = key; 242771d7fec4Smrg sSetVideo.mask = mask; 242871d7fec4Smrg sSetVideo.bluescreen = bluescreen; 242971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 243071d7fec4Smrg return 0; 243171d7fec4Smrg else 243271d7fec4Smrg return 1; 243371d7fec4Smrg} 243471d7fec4Smrg 243571d7fec4Smrg/*-------------------------------------------------------------------------- 243671d7fec4Smrg * Gal_set_video_downscale_enable. 243771d7fec4Smrg * 243871d7fec4Smrg * Description: This function sets the video downscale enable state. 243971d7fec4Smrg * parameters: 244071d7fec4Smrg * enable: Value for enable or disable the video downscale. 244171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 244271d7fec4Smrg *------------------------------------------------------------------------*/ 244371d7fec4SmrgBOOLEAN 244471d7fec4SmrgGal_set_video_downscale_enable(int enable) 244571d7fec4Smrg{ 244671d7fec4Smrg GAL_VIDEODOWNSCALEENABLE sSetVideo; 244771d7fec4Smrg 244871d7fec4Smrg INIT_GAL(&sSetVideo); 244971d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEODOWNSCALEENABLE; 245071d7fec4Smrg sSetVideo.enable = enable; 245171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 245271d7fec4Smrg return 0; 245371d7fec4Smrg else 245471d7fec4Smrg return 1; 245571d7fec4Smrg} 245671d7fec4Smrg 245771d7fec4Smrg/*-------------------------------------------------------------------------- 245871d7fec4Smrg * Gal_set_video_downscale_config. 245971d7fec4Smrg * 246071d7fec4Smrg * Description: This function sets the video downscale configuration. 246171d7fec4Smrg * parameters: 246271d7fec4Smrg * type: Video down scale type. 246371d7fec4Smrg * m: Factor for the Video overlay window. 246471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 246571d7fec4Smrg *------------------------------------------------------------------------*/ 246671d7fec4SmrgBOOLEAN 246771d7fec4SmrgGal_set_video_downscale_config(unsigned short type, unsigned short m) 246871d7fec4Smrg{ 246971d7fec4Smrg GAL_VIDEODOWNSCALECONFIG sSetVideo; 247071d7fec4Smrg 247171d7fec4Smrg INIT_GAL(&sSetVideo); 247271d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEODOWNSCALECONFIG; 247371d7fec4Smrg sSetVideo.type = type; 247471d7fec4Smrg sSetVideo.m = m; 247571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 247671d7fec4Smrg return 0; 247771d7fec4Smrg else 247871d7fec4Smrg return 1; 247971d7fec4Smrg} 248071d7fec4Smrg 248171d7fec4Smrg/*-------------------------------------------------------------------------- 248271d7fec4Smrg * Gal_set_video_downscale_coefficients. 248371d7fec4Smrg * 248471d7fec4Smrg * Description: This function sets the video downscale coefficients. 248571d7fec4Smrg * parameters: 248671d7fec4Smrg * coef1: Video downscale filter coefficient. 248771d7fec4Smrg * coef2: Video downscale filter coefficient. 248871d7fec4Smrg * coef3: Video downscale filter coefficient. 248971d7fec4Smrg * coef4: Video downscale filter coefficient. 249071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 249171d7fec4Smrg *------------------------------------------------------------------------*/ 249271d7fec4SmrgBOOLEAN 249371d7fec4SmrgGal_set_video_downscale_coefficients(unsigned short coef1, 249471d7fec4Smrg unsigned short coef2, 249571d7fec4Smrg unsigned short coef3, 249671d7fec4Smrg unsigned short coef4) 249771d7fec4Smrg{ 249871d7fec4Smrg GAL_VIDEODOWNSCALECOEFF sSetVideo; 249971d7fec4Smrg 250071d7fec4Smrg INIT_GAL(&sSetVideo); 250171d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEODOWNSCALECOEFF; 250271d7fec4Smrg sSetVideo.coef1 = coef1; 250371d7fec4Smrg sSetVideo.coef2 = coef2; 250471d7fec4Smrg sSetVideo.coef3 = coef3; 250571d7fec4Smrg sSetVideo.coef4 = coef4; 250671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 250771d7fec4Smrg return 0; 250871d7fec4Smrg else 250971d7fec4Smrg return 1; 251071d7fec4Smrg} 251171d7fec4Smrg 251271d7fec4Smrg/*-------------------------------------------------------------------------- 251371d7fec4Smrg * Gal_set_video_source. 251471d7fec4Smrg * 251571d7fec4Smrg * Description: This function sets the video source to either memory or Direct 251671d7fec4Smrg * VIP 251771d7fec4Smrg * parameters: 251871d7fec4Smrg * source: Video source. 251971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 252071d7fec4Smrg *------------------------------------------------------------------------*/ 252171d7fec4SmrgBOOLEAN 252271d7fec4SmrgGal_set_video_source(int source) 252371d7fec4Smrg{ 252471d7fec4Smrg GAL_VIDEOSOURCE sSetVideo; 252571d7fec4Smrg 252671d7fec4Smrg INIT_GAL(&sSetVideo); 252771d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOSOURCE; 252871d7fec4Smrg sSetVideo.source = source; 252971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 253071d7fec4Smrg return 0; 253171d7fec4Smrg else 253271d7fec4Smrg return 1; 253371d7fec4Smrg} 253471d7fec4Smrg 253571d7fec4Smrg/*-------------------------------------------------------------------------- 253671d7fec4Smrg * Gal_set_video_interlaced 253771d7fec4Smrg * 253871d7fec4Smrg * Description: This function configures the Video processor video overlay mode 253971d7fec4Smrg * to be interlaced YUV. 254071d7fec4Smrg * parameters: 254171d7fec4Smrg * enable: Value used to enable or disalbe the Video interlaced. 254271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 254371d7fec4Smrg *------------------------------------------------------------------------*/ 254471d7fec4Smrg 254571d7fec4SmrgBOOLEAN 254671d7fec4SmrgGal_set_video_interlaced(int enable) 254771d7fec4Smrg{ 254871d7fec4Smrg GAL_SETVIDEOINTERLACED sSetVideo; 254971d7fec4Smrg 255071d7fec4Smrg INIT_GAL(&sSetVideo); 255171d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOINTERLACED; 255271d7fec4Smrg sSetVideo.enable = enable; 255371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 255471d7fec4Smrg return 0; 255571d7fec4Smrg else 255671d7fec4Smrg return 1; 255771d7fec4Smrg} 255871d7fec4Smrg 255971d7fec4Smrg/*-------------------------------------------------------------------------- 256071d7fec4Smrg * Gal_set_video_color_space 256171d7fec4Smrg * 256271d7fec4Smrg * Description: This function configures the Video processor to prcoess 256371d7fec4Smrg * graphics and video in either YUV or RGB color space. 256471d7fec4Smrg * 256571d7fec4Smrg * parameters: 256671d7fec4Smrg * enable: Value used to enable or disalbe the Video color space. 256771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 256871d7fec4Smrg *------------------------------------------------------------------------*/ 256971d7fec4SmrgBOOLEAN 257071d7fec4SmrgGal_set_color_space_YUV(int colorspace) 257171d7fec4Smrg{ 257271d7fec4Smrg GAL_COLORSPACEYUV sSetVideo; 257371d7fec4Smrg 257471d7fec4Smrg INIT_GAL(&sSetVideo); 257571d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOCOLORSPACE; 257671d7fec4Smrg sSetVideo.colorspace = colorspace; 257771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 257871d7fec4Smrg return 0; 257971d7fec4Smrg else 258071d7fec4Smrg return 1; 258171d7fec4Smrg} 258271d7fec4Smrg 258371d7fec4Smrg/*-------------------------------------------------------------------------- 258471d7fec4Smrg * Gal_set_video_cursor. 258571d7fec4Smrg * 258671d7fec4Smrg * Description: This function configures the Video Hardware cursor. 258771d7fec4Smrg * 258871d7fec4Smrg * 258971d7fec4Smrg * parameters: 259071d7fec4Smrg * key: color key. 259171d7fec4Smrg * mask: color mask. 259271d7fec4Smrg *select_color2: selected for color2. 259371d7fec4Smrg * color1: color1 value. 259471d7fec4Smrg * color2: color2 value. 259571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 259671d7fec4Smrg *------------------------------------------------------------------------*/ 259771d7fec4SmrgBOOLEAN 259871d7fec4SmrgGal_set_video_cursor(unsigned long key, 259971d7fec4Smrg unsigned long mask, 260071d7fec4Smrg unsigned short select_color2, 260171d7fec4Smrg unsigned long color1, unsigned long color2) 260271d7fec4Smrg{ 260371d7fec4Smrg GAL_VIDEOCURSOR sSetVideo; 260471d7fec4Smrg 260571d7fec4Smrg INIT_GAL(&sSetVideo); 260671d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOCURSOR; 260771d7fec4Smrg sSetVideo.key = key; 260871d7fec4Smrg sSetVideo.mask = mask; 260971d7fec4Smrg sSetVideo.select_color2 = select_color2; 261071d7fec4Smrg sSetVideo.color1 = color1; 261171d7fec4Smrg sSetVideo.color2 = color2; 261271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 261371d7fec4Smrg return 0; 261471d7fec4Smrg else 261571d7fec4Smrg return 1; 261671d7fec4Smrg} 261771d7fec4Smrg 261871d7fec4Smrg/*-------------------------------------------------------------------------- 261971d7fec4Smrg * Gal_set_video_request. 262071d7fec4Smrg * 262171d7fec4Smrg * Description: This function sets the horizontal(pixel) and vertical(line) 262271d7fec4Smrg * video request values. 262371d7fec4Smrg * 262471d7fec4Smrg * parameters: 262571d7fec4Smrg * x: X video request value. 262671d7fec4Smrg * y: Y video request value. 262771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 262871d7fec4Smrg *------------------------------------------------------------------------*/ 262971d7fec4SmrgBOOLEAN 263071d7fec4SmrgGal_set_video_request(short x, short y) 263171d7fec4Smrg{ 263271d7fec4Smrg GAL_VIDEOREQUEST sSetVideo; 263371d7fec4Smrg 263471d7fec4Smrg INIT_GAL(&sSetVideo); 263571d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOREQUEST; 263671d7fec4Smrg sSetVideo.x = x; 263771d7fec4Smrg sSetVideo.y = y; 263871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 263971d7fec4Smrg return 0; 264071d7fec4Smrg else 264171d7fec4Smrg return 1; 264271d7fec4Smrg} 264371d7fec4Smrg 264471d7fec4Smrg/*-------------------------------------------------------------------------- 264571d7fec4Smrg * Gal_set_alpha_enable. 264671d7fec4Smrg * 264771d7fec4Smrg * Description: This function enables or disables the currently selected 264871d7fec4Smrg * alpha region. 264971d7fec4Smrg * 265071d7fec4Smrg * parameters: 265171d7fec4Smrg * enable: Value to enalbe or disable alha region. 265271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 265371d7fec4Smrg *------------------------------------------------------------------------*/ 265471d7fec4SmrgBOOLEAN 265571d7fec4SmrgGal_set_alpha_enable(int enable) 265671d7fec4Smrg{ 265771d7fec4Smrg GAL_ALPHAENABLE sSetVideo; 265871d7fec4Smrg 265971d7fec4Smrg INIT_GAL(&sSetVideo); 266071d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHAENABLE; 266171d7fec4Smrg sSetVideo.enable = enable; 266271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 266371d7fec4Smrg return 0; 266471d7fec4Smrg else 266571d7fec4Smrg return 1; 266671d7fec4Smrg} 266771d7fec4Smrg 266871d7fec4Smrg/*-------------------------------------------------------------------------- 266971d7fec4Smrg * Gal_get_alpha_enable. 267071d7fec4Smrg * 267171d7fec4Smrg * Description: This function gets the alpha enable state. 267271d7fec4Smrg * 267371d7fec4Smrg * parameters: 267471d7fec4Smrg * enable: Pointer to get the enable state. 267571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 267671d7fec4Smrg *------------------------------------------------------------------------*/ 267771d7fec4SmrgBOOLEAN 267871d7fec4SmrgGal_get_alpha_enable(int *enable) 267971d7fec4Smrg{ 268071d7fec4Smrg GAL_ALPHAENABLE sGetalphaenable; 268171d7fec4Smrg 268271d7fec4Smrg INIT_GAL(&sGetalphaenable); 268371d7fec4Smrg sGetalphaenable.dwSubfunction = GALFN_GETALPHAENABLE; 268471d7fec4Smrg 268571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetalphaenable)) 268671d7fec4Smrg return 0; 268771d7fec4Smrg else 268871d7fec4Smrg 268971d7fec4Smrg *enable = sGetalphaenable.enable; 269071d7fec4Smrg return 1; 269171d7fec4Smrg} 269271d7fec4Smrg 269371d7fec4Smrg/*-------------------------------------------------------------------------- 269471d7fec4Smrg * Gal_set_alpha_window 269571d7fec4Smrg * 269671d7fec4Smrg * Description: This function sets the size of the currently selected 269771d7fec4Smrg * alpha region. 269871d7fec4Smrg * parameters: 269971d7fec4Smrg * x: X co-ordinate of the alpha region. 270071d7fec4Smrg * y: Y co-ordinate of the alpha region. 270171d7fec4Smrg * width: Width of the alpha region. 270271d7fec4Smrg * height: Height of the alpha region. 270371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 270471d7fec4Smrg *------------------------------------------------------------------------*/ 270571d7fec4SmrgBOOLEAN 270671d7fec4SmrgGal_set_alpha_window(short x, short y, 270771d7fec4Smrg unsigned short width, unsigned short height) 270871d7fec4Smrg{ 270971d7fec4Smrg GAL_ALPHAWINDOW sSetVideo; 271071d7fec4Smrg 271171d7fec4Smrg INIT_GAL(&sSetVideo); 271271d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHAWINDOW; 271371d7fec4Smrg sSetVideo.x = x; 271471d7fec4Smrg sSetVideo.y = y; 271571d7fec4Smrg sSetVideo.width = width; 271671d7fec4Smrg sSetVideo.height = height; 271771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 271871d7fec4Smrg return 0; 271971d7fec4Smrg else 272071d7fec4Smrg return 1; 272171d7fec4Smrg} 272271d7fec4Smrg 272371d7fec4Smrg/*-------------------------------------------------------------------------- 272471d7fec4Smrg * Gal_get_alpha_size 272571d7fec4Smrg * 272671d7fec4Smrg * Description: This function gets the size of the currently selected 272771d7fec4Smrg * alpha region. 272871d7fec4Smrg * parameters: 272971d7fec4Smrg * x: X co-ordinate of the alpha region. 273071d7fec4Smrg * y: Y co-ordinate of the alpha region. 273171d7fec4Smrg * width: Width of the alpha region. 273271d7fec4Smrg * height: Height of the alpha region. 273371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 273471d7fec4Smrg *------------------------------------------------------------------------*/ 273571d7fec4SmrgBOOLEAN 273671d7fec4SmrgGal_get_alpha_size(unsigned short *x, unsigned short *y, 273771d7fec4Smrg unsigned short *width, unsigned short *height) 273871d7fec4Smrg{ 273971d7fec4Smrg GAL_ALPHASIZE sGetalphasize; 274071d7fec4Smrg 274171d7fec4Smrg INIT_GAL(&sGetalphasize); 274271d7fec4Smrg sGetalphasize.dwSubfunction = GALFN_GETALPHASIZE; 274371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetalphasize)) 274471d7fec4Smrg return 0; 274571d7fec4Smrg else { 274671d7fec4Smrg *x = *(sGetalphasize.x); 274771d7fec4Smrg *y = *(sGetalphasize.y); 274871d7fec4Smrg *width = *(sGetalphasize.width); 274971d7fec4Smrg *height = *(sGetalphasize.height); 275071d7fec4Smrg return 1; 275171d7fec4Smrg } 275271d7fec4Smrg} 275371d7fec4Smrg 275471d7fec4Smrg/*-------------------------------------------------------------------------- 275571d7fec4Smrg * Gal_set_alpha_value 275671d7fec4Smrg * 275771d7fec4Smrg * Description: This function sets the alpha value for the selected alpha 275871d7fec4Smrg * region. It also specifies an increment/decrement value for 275971d7fec4Smrg * fading. 276071d7fec4Smrg * parameters: 276171d7fec4Smrg * alpha: Alpha value for the currently selected alpha region. 276271d7fec4Smrg * delta: Gives the increment/decrement fading value. 276371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 276471d7fec4Smrg *------------------------------------------------------------------------*/ 276571d7fec4SmrgBOOLEAN 276671d7fec4SmrgGal_set_alpha_value(unsigned char alpha, char delta) 276771d7fec4Smrg{ 276871d7fec4Smrg GAL_ALPHAVALUE sSetVideo; 276971d7fec4Smrg 277071d7fec4Smrg INIT_GAL(&sSetVideo); 277171d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHAVALUE; 277271d7fec4Smrg sSetVideo.alpha = alpha; 277371d7fec4Smrg sSetVideo.delta = delta; 277471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 277571d7fec4Smrg return 0; 277671d7fec4Smrg else 277771d7fec4Smrg return 1; 277871d7fec4Smrg} 277971d7fec4Smrg 278071d7fec4Smrg/*-------------------------------------------------------------------------- 278171d7fec4Smrg * Gal_get_alpha_value 278271d7fec4Smrg * 278371d7fec4Smrg * Description: This function gets the alpha value for the selected alpha 278471d7fec4Smrg * region. It also gets increment/decrement value for 278571d7fec4Smrg * fading. 278671d7fec4Smrg * parameters: 278771d7fec4Smrg * alpha: Alpha value for the currently selected alpha region. 278871d7fec4Smrg * delta: Gives the increment/decrement fading value. 278971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 279071d7fec4Smrg *------------------------------------------------------------------------*/ 279171d7fec4SmrgBOOLEAN 279271d7fec4SmrgGal_get_alpha_value(unsigned char *alpha, char *delta) 279371d7fec4Smrg{ 279471d7fec4Smrg GAL_ALPHAVALUE sGetalphavalue; 279571d7fec4Smrg 279671d7fec4Smrg INIT_GAL(&sGetalphavalue); 279771d7fec4Smrg sGetalphavalue.dwSubfunction = GALFN_GETALPHAVALUE; 279871d7fec4Smrg 279971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetalphavalue)) 280071d7fec4Smrg return 0; 280171d7fec4Smrg else { 280271d7fec4Smrg *alpha = sGetalphavalue.alpha; 280371d7fec4Smrg *delta = sGetalphavalue.delta; 280471d7fec4Smrg return 1; 280571d7fec4Smrg } 280671d7fec4Smrg} 280771d7fec4Smrg 280871d7fec4Smrg/*-------------------------------------------------------------------------- 280971d7fec4Smrg * Gal_set_alpha_priority 281071d7fec4Smrg * 281171d7fec4Smrg * Description: This function sets the priority of the selected alpha 281271d7fec4Smrg * region. 281371d7fec4Smrg * parameters: 281471d7fec4Smrg * priority: Gives the priority value. 281571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 281671d7fec4Smrg *------------------------------------------------------------------------*/ 281771d7fec4SmrgBOOLEAN 281871d7fec4SmrgGal_set_alpha_priority(int priority) 281971d7fec4Smrg{ 282071d7fec4Smrg GAL_ALPHAPRIORITY sSetVideo; 282171d7fec4Smrg 282271d7fec4Smrg INIT_GAL(&sSetVideo); 282371d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHAPRIORITY; 282471d7fec4Smrg sSetVideo.priority = priority; 282571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 282671d7fec4Smrg return 0; 282771d7fec4Smrg else 282871d7fec4Smrg return 1; 282971d7fec4Smrg} 283071d7fec4Smrg 283171d7fec4Smrg/*-------------------------------------------------------------------------- 283271d7fec4Smrg * Gal_get_alpha_priority 283371d7fec4Smrg * 283471d7fec4Smrg * Description: This function gets the priority of the selected alpha 283571d7fec4Smrg * region. 283671d7fec4Smrg * parameters: 283771d7fec4Smrg * priority: Gives the priority value. 283871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 283971d7fec4Smrg *------------------------------------------------------------------------*/ 284071d7fec4SmrgBOOLEAN 284171d7fec4SmrgGal_get_alpha_priority(int *priority) 284271d7fec4Smrg{ 284371d7fec4Smrg GAL_ALPHAPRIORITY sGetalphapriority; 284471d7fec4Smrg 284571d7fec4Smrg INIT_GAL(&sGetalphapriority); 284671d7fec4Smrg sGetalphapriority.dwSubfunction = GALFN_GETALPHAPRIORITY; 284771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetalphapriority)) 284871d7fec4Smrg return 0; 284971d7fec4Smrg else { 285071d7fec4Smrg *priority = sGetalphapriority.priority; 285171d7fec4Smrg return 1; 285271d7fec4Smrg } 285371d7fec4Smrg} 285471d7fec4Smrg 285571d7fec4Smrg/*-------------------------------------------------------------------------- 285671d7fec4Smrg * Gal_set_alpha_color 285771d7fec4Smrg * 285871d7fec4Smrg * Description: This function sets the color to be displayed inside the 285971d7fec4Smrg * currently of the selected alpha window. 286071d7fec4Smrg * parameters: 286171d7fec4Smrg * color: Gives the color value to be displayed. 286271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 286371d7fec4Smrg *------------------------------------------------------------------------*/ 286471d7fec4SmrgBOOLEAN 286571d7fec4SmrgGal_set_alpha_color(unsigned long color) 286671d7fec4Smrg{ 286771d7fec4Smrg GAL_ALPHACOLOR sSetVideo; 286871d7fec4Smrg 286971d7fec4Smrg INIT_GAL(&sSetVideo); 287071d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHACOLOR; 287171d7fec4Smrg sSetVideo.color = color; 287271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 287371d7fec4Smrg return 0; 287471d7fec4Smrg else 287571d7fec4Smrg return 1; 287671d7fec4Smrg} 287771d7fec4Smrg 287871d7fec4Smrg/*-------------------------------------------------------------------------- 287971d7fec4Smrg * Gal_get_alpha_color 288071d7fec4Smrg * 288171d7fec4Smrg * Description: This function gets the color to be displayed inside the 288271d7fec4Smrg * currently of the selected alpha window. 288371d7fec4Smrg * parameters: 288471d7fec4Smrg * color: Gives the color value to be displayed. 288571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 288671d7fec4Smrg *------------------------------------------------------------------------*/ 288771d7fec4SmrgBOOLEAN 288871d7fec4SmrgGal_get_alpha_color(unsigned long *color) 288971d7fec4Smrg{ 289071d7fec4Smrg GAL_ALPHACOLOR sGetalphacolor; 289171d7fec4Smrg 289271d7fec4Smrg INIT_GAL(&sGetalphacolor); 289371d7fec4Smrg sGetalphacolor.dwSubfunction = GALFN_GETALPHACOLOR; 289471d7fec4Smrg 289571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetalphacolor)) 289671d7fec4Smrg return 0; 289771d7fec4Smrg else { 289871d7fec4Smrg *color = sGetalphacolor.color; 289971d7fec4Smrg return 1; 290071d7fec4Smrg } 290171d7fec4Smrg} 290271d7fec4Smrg 290371d7fec4Smrg/*-------------------------------------------------------------------------- 290471d7fec4Smrg * Gal_select_alpha_region 290571d7fec4Smrg * 290671d7fec4Smrg * Description: This function selects the alpha region should be used for 290771d7fec4Smrg * future updates. 290871d7fec4Smrg * parameters: 290971d7fec4Smrg * region: Gives the alpha window number. 291071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 291171d7fec4Smrg *------------------------------------------------------------------------*/ 291271d7fec4SmrgBOOLEAN 291371d7fec4SmrgGal_select_alpha_region(int region) 291471d7fec4Smrg{ 291571d7fec4Smrg GAL_ALPHAREGION sSetVideo; 291671d7fec4Smrg 291771d7fec4Smrg INIT_GAL(&sSetVideo); 291871d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETALPHAREGION; 291971d7fec4Smrg sSetVideo.region = region; 292071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 292171d7fec4Smrg return 0; 292271d7fec4Smrg else 292371d7fec4Smrg return 1; 292471d7fec4Smrg} 292571d7fec4Smrg 292671d7fec4Smrg/*-------------------------------------------------------------------------- 292771d7fec4Smrg * Gal_set_video_outside_alpha 292871d7fec4Smrg * 292971d7fec4Smrg * Description: This function enable/disable the video outside alpha region. 293071d7fec4Smrg * parameters: 293171d7fec4Smrg * enable: Gives the value for enable/disable. 293271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 293371d7fec4Smrg *------------------------------------------------------------------------*/ 293471d7fec4SmrgBOOLEAN 293571d7fec4SmrgGal_set_video_outside_alpha(int enable) 293671d7fec4Smrg{ 293771d7fec4Smrg GAL_VIDEOOUTSIDEALPHA sSetVideo; 293871d7fec4Smrg 293971d7fec4Smrg INIT_GAL(&sSetVideo); 294071d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOOUTSIDEALPHA; 294171d7fec4Smrg sSetVideo.enable = enable; 294271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 294371d7fec4Smrg return 0; 294471d7fec4Smrg else 294571d7fec4Smrg return 1; 294671d7fec4Smrg} 294771d7fec4Smrg 294871d7fec4Smrg/*-------------------------------------------------------------------------- 294971d7fec4Smrg * Gal_set_video_palette 295071d7fec4Smrg * 295171d7fec4Smrg * Description: This function loads the video hardware palette. 295271d7fec4Smrg * parameters: 295371d7fec4Smrg * palette: Gives value for hardware palette. 295471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 295571d7fec4Smrg *------------------------------------------------------------------------*/ 295671d7fec4SmrgBOOLEAN 295771d7fec4SmrgGal_set_video_palette(unsigned long *palette) 295871d7fec4Smrg{ 295971d7fec4Smrg GAL_VIDEOPALETTE sSetVideo; 296071d7fec4Smrg 296171d7fec4Smrg INIT_GAL(&sSetVideo); 296271d7fec4Smrg sSetVideo.dwSubfunction = GALFN_SETVIDEOPALETTE; 296371d7fec4Smrg 296471d7fec4Smrg if (palette == NULL) { 296571d7fec4Smrg sSetVideo.identity = 1; 296671d7fec4Smrg } else { 296771d7fec4Smrg sSetVideo.identity = 0; 296871d7fec4Smrg memcpy(sSetVideo.palette, palette, 256 * sizeof(*palette)); 296971d7fec4Smrg } 297071d7fec4Smrg 297171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideo)) 297271d7fec4Smrg return 0; 297371d7fec4Smrg else 297471d7fec4Smrg return 1; 297571d7fec4Smrg} 297671d7fec4Smrg 297771d7fec4Smrg/** Video **********************************************************/ 297871d7fec4Smrg 297971d7fec4Smrg/*-------------------------------------------------------------------------- 298071d7fec4Smrg * Gal_set_icon_enable 298171d7fec4Smrg * 298271d7fec4Smrg * Description: This function enable/disables the hardware icon. The icon 298371d7fec4Smrg * position and colors should be programmed prior to calling 298471d7fec4Smrg * this routine. 298571d7fec4Smrg * parameters: 298671d7fec4Smrg * enable: Gives value for enable state. 298771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 298871d7fec4Smrg *------------------------------------------------------------------------*/ 298971d7fec4SmrgBOOLEAN 299071d7fec4SmrgGal_set_icon_enable(int enable) 299171d7fec4Smrg{ 299271d7fec4Smrg GAL_ICONENABLE sSetIconenable; 299371d7fec4Smrg 299471d7fec4Smrg INIT_GAL(&sSetIconenable); 299571d7fec4Smrg sSetIconenable.dwSubfunction = GALFN_SETICONENABLE; 299671d7fec4Smrg sSetIconenable.enable = enable; 299771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetIconenable)) { 299871d7fec4Smrg return 0; 299971d7fec4Smrg } else { 300071d7fec4Smrg return 1; 300171d7fec4Smrg } 300271d7fec4Smrg} 300371d7fec4Smrg 300471d7fec4Smrg/*-------------------------------------------------------------------------- 300571d7fec4Smrg * Gal_set_icon_colors 300671d7fec4Smrg * 300771d7fec4Smrg * Description: This function sets the three hardware icon colors. 300871d7fec4Smrg * parameters: 300971d7fec4Smrg * color0: Gives first color value. 301071d7fec4Smrg * color1: Gives second color value. 301171d7fec4Smrg * color2: Gives third color value. 301271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 301371d7fec4Smrg *------------------------------------------------------------------------*/ 301471d7fec4SmrgBOOLEAN 301571d7fec4SmrgGal_set_icon_colors(unsigned long color0, unsigned long color1, 301671d7fec4Smrg unsigned long color2) 301771d7fec4Smrg{ 301871d7fec4Smrg GAL_ICONCOLORS sSetIconcolors; 301971d7fec4Smrg 302071d7fec4Smrg INIT_GAL(&sSetIconcolors); 302171d7fec4Smrg sSetIconcolors.dwSubfunction = GALFN_SETICONCOLORS; 302271d7fec4Smrg sSetIconcolors.color0 = color0; 302371d7fec4Smrg sSetIconcolors.color1 = color1; 302471d7fec4Smrg sSetIconcolors.color2 = color2; 302571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetIconcolors)) { 302671d7fec4Smrg return 0; 302771d7fec4Smrg } else { 302871d7fec4Smrg return 1; 302971d7fec4Smrg } 303071d7fec4Smrg} 303171d7fec4Smrg 303271d7fec4Smrg/*-------------------------------------------------------------------------- 303371d7fec4Smrg * Gal_set_icon_position. 303471d7fec4Smrg * 303571d7fec4Smrg * Description: This function sets the hardware icon position. 303671d7fec4Smrg * parameters: 303771d7fec4Smrg * memoffset: Memory offset of the icon buffer. 303871d7fec4Smrg * xpos: Starting X co-ordinate for the hardware icon. 303971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 304071d7fec4Smrg *------------------------------------------------------------------------*/ 304171d7fec4SmrgBOOLEAN 304271d7fec4SmrgGal_set_icon_position(unsigned long memoffset, unsigned short xpos) 304371d7fec4Smrg{ 304471d7fec4Smrg GAL_ICONPOSITION sSetIconposi; 304571d7fec4Smrg 304671d7fec4Smrg INIT_GAL(&sSetIconposi); 304771d7fec4Smrg sSetIconposi.dwSubfunction = GALFN_SETICONPOSITION; 304871d7fec4Smrg sSetIconposi.memoffset = memoffset; 304971d7fec4Smrg sSetIconposi.xpos = xpos; 305071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetIconposi)) { 305171d7fec4Smrg return 0; 305271d7fec4Smrg } else { 305371d7fec4Smrg return 1; 305471d7fec4Smrg } 305571d7fec4Smrg} 305671d7fec4Smrg 305771d7fec4Smrg/*-------------------------------------------------------------------------- 305871d7fec4Smrg * Gal_set_icon_shape64. 305971d7fec4Smrg * 306071d7fec4Smrg * Description: This function initializes the icon buffer according to 306171d7fec4Smrg * the current mode. 306271d7fec4Smrg * parameters: 306371d7fec4Smrg * memoffset: Memory offset of the icon buffer. 306471d7fec4Smrg * andmask: Andmask of the icon buffer. 306571d7fec4Smrg * xormask: Xormask of the icon buffer. 306671d7fec4Smrg * lines: Lines of the icon buffer. 306771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 306871d7fec4Smrg *------------------------------------------------------------------------*/ 306971d7fec4SmrgBOOLEAN 307071d7fec4SmrgGal_set_icon_shape64(unsigned long memoffset, unsigned long *andmask, 307171d7fec4Smrg unsigned long *xormask, unsigned int lines) 307271d7fec4Smrg{ 307371d7fec4Smrg GAL_ICONSHAPE64 sSetIconshape64; 307471d7fec4Smrg 307571d7fec4Smrg INIT_GAL(&sSetIconshape64); 307671d7fec4Smrg sSetIconshape64.dwSubfunction = GALFN_SETICONSHAPE64; 307771d7fec4Smrg sSetIconshape64.memoffset = memoffset; 307871d7fec4Smrg *(sSetIconshape64.andmask) = *andmask; 307971d7fec4Smrg *(sSetIconshape64.xormask) = *xormask; 308071d7fec4Smrg sSetIconshape64.lines = lines; 308171d7fec4Smrg 308271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetIconshape64)) { 308371d7fec4Smrg return 0; 308471d7fec4Smrg } else { 308571d7fec4Smrg return 1; 308671d7fec4Smrg } 308771d7fec4Smrg} 308871d7fec4Smrg 308971d7fec4Smrg/* VIP Functions */ 309071d7fec4Smrg 309171d7fec4Smrg/*-------------------------------------------------------------------------- 309271d7fec4Smrg * Gal_set_vip_enable 309371d7fec4Smrg * 309471d7fec4Smrg * Description: This function enable/disables the writes to memory from the 309571d7fec4Smrg * video port. 309671d7fec4Smrg * position and colors should be programmed prior to calling 309771d7fec4Smrg * this routine. 309871d7fec4Smrg * parameters: 309971d7fec4Smrg * enable: Gives value for enable state. 310071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 310171d7fec4Smrg *------------------------------------------------------------------------*/ 310271d7fec4SmrgBOOLEAN 310371d7fec4SmrgGal_set_vip_enable(int enable) 310471d7fec4Smrg{ 310571d7fec4Smrg GAL_VIPENABLE sSetVipenable; 310671d7fec4Smrg 310771d7fec4Smrg INIT_GAL(&sSetVipenable); 310871d7fec4Smrg sSetVipenable.dwSubfunction = GALFN_SETVIPENABLE; 310971d7fec4Smrg sSetVipenable.enable = enable; 311071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipenable)) { 311171d7fec4Smrg return 0; 311271d7fec4Smrg } else { 311371d7fec4Smrg return 1; 311471d7fec4Smrg } 311571d7fec4Smrg} 311671d7fec4Smrg 311771d7fec4Smrg/*-------------------------------------------------------------------------- 311871d7fec4Smrg * Gal_get_vip_enable 311971d7fec4Smrg * 312071d7fec4Smrg * Description: This function gets the enable state of the 312171d7fec4Smrg * video port. 312271d7fec4Smrg * parameters: 312371d7fec4Smrg * enable: Gives value for enable state. 312471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 312571d7fec4Smrg *------------------------------------------------------------------------*/ 312671d7fec4SmrgBOOLEAN 312771d7fec4SmrgGal_get_vip_enable(int *enable) 312871d7fec4Smrg{ 312971d7fec4Smrg GAL_VIPENABLE sGetVipenable; 313071d7fec4Smrg 313171d7fec4Smrg INIT_GAL(&sGetVipenable); 313271d7fec4Smrg sGetVipenable.dwSubfunction = GALFN_GETVIPENABLE; 313371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipenable)) { 313471d7fec4Smrg return 0; 313571d7fec4Smrg } else { 313671d7fec4Smrg 313771d7fec4Smrg *enable = sGetVipenable.enable; 313871d7fec4Smrg return 1; 313971d7fec4Smrg } 314071d7fec4Smrg} 314171d7fec4Smrg 314271d7fec4Smrg/*-------------------------------------------------------------------------- 314371d7fec4Smrg * Gal_set_vip_capture_run_mode 314471d7fec4Smrg * 314571d7fec4Smrg * Description: This function selects the VIP capture run mode. 314671d7fec4Smrg * 314771d7fec4Smrg * parameters: 314871d7fec4Smrg * mode: VIP capture run mode. 314971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 315071d7fec4Smrg *------------------------------------------------------------------------*/ 315171d7fec4SmrgBOOLEAN 315271d7fec4SmrgGal_set_vip_capture_run_mode(int mode) 315371d7fec4Smrg{ 315471d7fec4Smrg GAL_VIPCAPTURERUNMODE sSetVipcapturerunmode; 315571d7fec4Smrg 315671d7fec4Smrg INIT_GAL(&sSetVipcapturerunmode); 315771d7fec4Smrg sSetVipcapturerunmode.dwSubfunction = GALFN_SETVIPCAPTURERUNMODE; 315871d7fec4Smrg sSetVipcapturerunmode.mode = mode; 315971d7fec4Smrg 316071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipcapturerunmode)) { 316171d7fec4Smrg return 0; 316271d7fec4Smrg } else { 316371d7fec4Smrg return 1; 316471d7fec4Smrg } 316571d7fec4Smrg} 316671d7fec4Smrg 316771d7fec4Smrg/*-------------------------------------------------------------------------- 316871d7fec4Smrg * Gal_set_vip_base 316971d7fec4Smrg * 317071d7fec4Smrg * Description: This routine sets the odd and even base address values for 317171d7fec4Smrg * the VIP memory buffer. 317271d7fec4Smrg * parameters: 317371d7fec4Smrg * even: Even base address. 317471d7fec4Smrg * odd: odd base address. 317571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 317671d7fec4Smrg *------------------------------------------------------------------------*/ 317771d7fec4SmrgBOOLEAN 317871d7fec4SmrgGal_set_vip_base(unsigned long even, unsigned long odd) 317971d7fec4Smrg{ 318071d7fec4Smrg GAL_VIPBASE sSetVipBase; 318171d7fec4Smrg 318271d7fec4Smrg INIT_GAL(&sSetVipBase); 318371d7fec4Smrg sSetVipBase.dwSubfunction = GALFN_SETVIPBASE; 318471d7fec4Smrg sSetVipBase.even = even; 318571d7fec4Smrg sSetVipBase.odd = odd; 318671d7fec4Smrg 318771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipBase)) { 318871d7fec4Smrg return 0; 318971d7fec4Smrg } else { 319071d7fec4Smrg return 1; 319171d7fec4Smrg } 319271d7fec4Smrg} 319371d7fec4Smrg 319471d7fec4Smrg/*-------------------------------------------------------------------------- 319571d7fec4Smrg * Gal_get_vip_base 319671d7fec4Smrg * 319771d7fec4Smrg * Description: This routine gets the base address value for 319871d7fec4Smrg * the VIP memory buffer. 319971d7fec4Smrg * parameters: 320071d7fec4Smrg * address: VIP base address. 320171d7fec4Smrg * odd: odd base address. 320271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 320371d7fec4Smrg *------------------------------------------------------------------------*/ 320471d7fec4SmrgBOOLEAN 320571d7fec4SmrgGal_get_vip_base(unsigned long *address, int odd) 320671d7fec4Smrg{ 320771d7fec4Smrg GAL_VIPBASE sGetVipBase; 320871d7fec4Smrg 320971d7fec4Smrg INIT_GAL(&sGetVipBase); 321071d7fec4Smrg sGetVipBase.dwSubfunction = GALFN_GETVIPBASE; 321171d7fec4Smrg sGetVipBase.odd = odd; 321271d7fec4Smrg 321371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipBase)) { 321471d7fec4Smrg return 0; 321571d7fec4Smrg } else { 321671d7fec4Smrg *address = sGetVipBase.address; 321771d7fec4Smrg return 1; 321871d7fec4Smrg } 321971d7fec4Smrg} 322071d7fec4Smrg 322171d7fec4Smrg/*-------------------------------------------------------------------------- 322271d7fec4Smrg * Gal_set_vip_pitch 322371d7fec4Smrg * 322471d7fec4Smrg * Description: This routine sets the number of bytes between scanlines 322571d7fec4Smrg * for the VIP data. 322671d7fec4Smrg * parameters: 322771d7fec4Smrg * pitch: VIP pitch. 322871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 322971d7fec4Smrg *------------------------------------------------------------------------*/ 323071d7fec4SmrgBOOLEAN 323171d7fec4SmrgGal_set_vip_pitch(unsigned long pitch) 323271d7fec4Smrg{ 323371d7fec4Smrg GAL_VIPPITCH sSetVipPitch; 323471d7fec4Smrg 323571d7fec4Smrg INIT_GAL(&sSetVipPitch); 323671d7fec4Smrg sSetVipPitch.dwSubfunction = GALFN_SETVIPPITCH; 323771d7fec4Smrg sSetVipPitch.pitch = pitch; 323871d7fec4Smrg 323971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipPitch)) { 324071d7fec4Smrg return 0; 324171d7fec4Smrg } else { 324271d7fec4Smrg return 1; 324371d7fec4Smrg } 324471d7fec4Smrg} 324571d7fec4Smrg 324671d7fec4Smrg/*-------------------------------------------------------------------------- 324771d7fec4Smrg * Gal_get_vip_pitch 324871d7fec4Smrg * 324971d7fec4Smrg * Description: This routine gets the number of bytes between scanlines 325071d7fec4Smrg * for the VIP data. 325171d7fec4Smrg * parameters: 325271d7fec4Smrg * pitch: VIP pitch. 325371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 325471d7fec4Smrg *------------------------------------------------------------------------*/ 325571d7fec4SmrgBOOLEAN 325671d7fec4SmrgGal_get_vip_pitch(unsigned long *pitch) 325771d7fec4Smrg{ 325871d7fec4Smrg GAL_VIPPITCH sGetVipPitch; 325971d7fec4Smrg 326071d7fec4Smrg INIT_GAL(&sGetVipPitch); 326171d7fec4Smrg sGetVipPitch.dwSubfunction = GALFN_GETVIPPITCH; 326271d7fec4Smrg 326371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipPitch)) { 326471d7fec4Smrg return 0; 326571d7fec4Smrg } else { 326671d7fec4Smrg *pitch = sGetVipPitch.pitch; 326771d7fec4Smrg return 1; 326871d7fec4Smrg 326971d7fec4Smrg } 327071d7fec4Smrg} 327171d7fec4Smrg 327271d7fec4Smrg/*-------------------------------------------------------------------------- 327371d7fec4Smrg * Gal_set_vip_mode 327471d7fec4Smrg * 327571d7fec4Smrg * Description: This routine sets the VIP operating mode. 327671d7fec4Smrg * parameters: 327771d7fec4Smrg * mode: VIP operating mode. 327871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 327971d7fec4Smrg *------------------------------------------------------------------------*/ 328071d7fec4SmrgBOOLEAN 328171d7fec4SmrgGal_set_vip_mode(int mode) 328271d7fec4Smrg{ 328371d7fec4Smrg GAL_VIPMODE sSetVipMode; 328471d7fec4Smrg 328571d7fec4Smrg INIT_GAL(&sSetVipMode); 328671d7fec4Smrg sSetVipMode.dwSubfunction = GALFN_SETVIPMODE; 328771d7fec4Smrg sSetVipMode.mode = mode; 328871d7fec4Smrg 328971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipMode)) { 329071d7fec4Smrg return 0; 329171d7fec4Smrg } else { 329271d7fec4Smrg return 1; 329371d7fec4Smrg } 329471d7fec4Smrg} 329571d7fec4Smrg 329671d7fec4Smrg/*-------------------------------------------------------------------------- 329771d7fec4Smrg * Gal_get_vip_mode 329871d7fec4Smrg * 329971d7fec4Smrg * Description: This routine gets the VIP operating mode. 330071d7fec4Smrg * parameters: 330171d7fec4Smrg * mode: VIP operating mode. 330271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 330371d7fec4Smrg *------------------------------------------------------------------------*/ 330471d7fec4SmrgBOOLEAN 330571d7fec4SmrgGal_get_vip_mode(int *mode) 330671d7fec4Smrg{ 330771d7fec4Smrg GAL_VIPMODE sGetVipMode; 330871d7fec4Smrg 330971d7fec4Smrg INIT_GAL(&sGetVipMode); 331071d7fec4Smrg sGetVipMode.dwSubfunction = GALFN_GETVIPMODE; 331171d7fec4Smrg 331271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipMode)) { 331371d7fec4Smrg return 0; 331471d7fec4Smrg } else { 331571d7fec4Smrg 331671d7fec4Smrg *mode = sGetVipMode.mode; 331771d7fec4Smrg return 1; 331871d7fec4Smrg } 331971d7fec4Smrg} 332071d7fec4Smrg 332171d7fec4Smrg/*-------------------------------------------------------------------------- 332271d7fec4Smrg * Gal_set_vip_bus_request_threshold_high 332371d7fec4Smrg * 332471d7fec4Smrg * Description: This function sets the VIP FIFO bus request threshold. 332571d7fec4Smrg * 332671d7fec4Smrg * parameters: 332771d7fec4Smrg * enable: Enable state. 332871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 332971d7fec4Smrg *------------------------------------------------------------------------*/ 333071d7fec4SmrgBOOLEAN 333171d7fec4SmrgGal_set_vip_bus_request_threshold_high(int enable) 333271d7fec4Smrg{ 333371d7fec4Smrg GAL_VIPBUS_RTH sSetVipBRTH; 333471d7fec4Smrg 333571d7fec4Smrg INIT_GAL(&sSetVipBRTH); 333671d7fec4Smrg sSetVipBRTH.dwSubfunction = GALFN_SETVIPBRTH; 333771d7fec4Smrg sSetVipBRTH.enable = enable; 333871d7fec4Smrg 333971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVipBRTH)) { 334071d7fec4Smrg return 0; 334171d7fec4Smrg } else { 334271d7fec4Smrg return 1; 334371d7fec4Smrg } 334471d7fec4Smrg} 334571d7fec4Smrg 334671d7fec4Smrg/*-------------------------------------------------------------------------- 334771d7fec4Smrg * Gal_get_vip_bus_request_threshold_high 334871d7fec4Smrg * 334971d7fec4Smrg * Description: This function gets the VIP FIFO bus request threshold. 335071d7fec4Smrg * 335171d7fec4Smrg * parameters: 335271d7fec4Smrg * enable: Enable state. 335371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 335471d7fec4Smrg *------------------------------------------------------------------------*/ 335571d7fec4SmrgBOOLEAN 335671d7fec4SmrgGal_get_vip_bus_request_threshold_high(int *enable) 335771d7fec4Smrg{ 335871d7fec4Smrg GAL_VIPBUS_RTH sGetVipBRTH; 335971d7fec4Smrg 336071d7fec4Smrg INIT_GAL(&sGetVipBRTH); 336171d7fec4Smrg sGetVipBRTH.dwSubfunction = GALFN_GETVIPBRTH; 336271d7fec4Smrg 336371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipBRTH)) { 336471d7fec4Smrg return 0; 336571d7fec4Smrg } else { 336671d7fec4Smrg 336771d7fec4Smrg *enable = sGetVipBRTH.enable; 336871d7fec4Smrg return 1; 336971d7fec4Smrg } 337071d7fec4Smrg} 337171d7fec4Smrg 337271d7fec4Smrg/*-------------------------------------------------------------------------- 337371d7fec4Smrg * Gal_set_vip_last_line 337471d7fec4Smrg * 337571d7fec4Smrg * Description: This function sets the maximum number of lines captured 337671d7fec4Smrg * in each field. 337771d7fec4Smrg * 337871d7fec4Smrg * parameters: 337971d7fec4Smrg * last_line: Maximum number of lines captured in each field. 338071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 338171d7fec4Smrg *------------------------------------------------------------------------*/ 338271d7fec4SmrgBOOLEAN 338371d7fec4SmrgGal_set_vip_last_line(int last_line) 338471d7fec4Smrg{ 338571d7fec4Smrg GAL_VIPLASTLINE sSetViplastline; 338671d7fec4Smrg 338771d7fec4Smrg INIT_GAL(&sSetViplastline); 338871d7fec4Smrg sSetViplastline.dwSubfunction = GALFN_SETVIPLASTLINE; 338971d7fec4Smrg sSetViplastline.last_line = last_line; 339071d7fec4Smrg 339171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetViplastline)) { 339271d7fec4Smrg return 0; 339371d7fec4Smrg } else { 339471d7fec4Smrg return 1; 339571d7fec4Smrg } 339671d7fec4Smrg} 339771d7fec4Smrg 339871d7fec4Smrg/*-------------------------------------------------------------------------- 339971d7fec4Smrg * Gal_get_vip_line 340071d7fec4Smrg * 340171d7fec4Smrg * Description: This function gets the number of the current video line being 340271d7fec4Smrg * recieved by the VIP interface. 340371d7fec4Smrg * 340471d7fec4Smrg * parameters: 340571d7fec4Smrg * vip_line: Number of the current video line. 340671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 340771d7fec4Smrg *------------------------------------------------------------------------*/ 340871d7fec4SmrgBOOLEAN 340971d7fec4SmrgGal_get_vip_line(int *vip_line) 341071d7fec4Smrg{ 341171d7fec4Smrg GAL_VIPLINE sGetVipline; 341271d7fec4Smrg 341371d7fec4Smrg INIT_GAL(&sGetVipline); 341471d7fec4Smrg sGetVipline.dwSubfunction = GALFN_GETVIPLINE; 341571d7fec4Smrg 341671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVipline)) { 341771d7fec4Smrg return 0; 341871d7fec4Smrg } else { 341971d7fec4Smrg *vip_line = sGetVipline.status; 342071d7fec4Smrg return 1; 342171d7fec4Smrg } 342271d7fec4Smrg} 342371d7fec4Smrg 342471d7fec4Smrg/*-------------------------------------------------------------------------- 342571d7fec4Smrg * Gal_test_vip_odd_field 342671d7fec4Smrg * 342771d7fec4Smrg * Description: This function tests the VIP odd field. 342871d7fec4Smrg * 342971d7fec4Smrg * parameters: 343071d7fec4Smrg * status: Status of the odd field. 343171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 343271d7fec4Smrg *------------------------------------------------------------------------*/ 343371d7fec4SmrgBOOLEAN 343471d7fec4SmrgGal_test_vip_odd_field(int *status) 343571d7fec4Smrg{ 343671d7fec4Smrg GAL_TESTVIPODDFIELD sTestVipoddfield; 343771d7fec4Smrg 343871d7fec4Smrg INIT_GAL(&sTestVipoddfield); 343971d7fec4Smrg sTestVipoddfield.dwSubfunction = GALFN_TESTVIPODDFIELD; 344071d7fec4Smrg 344171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sTestVipoddfield)) { 344271d7fec4Smrg return 0; 344371d7fec4Smrg } else { 344471d7fec4Smrg *status = sTestVipoddfield.status; 344571d7fec4Smrg return 1; 344671d7fec4Smrg } 344771d7fec4Smrg} 344871d7fec4Smrg 344971d7fec4Smrg/*-------------------------------------------------------------------------- 345071d7fec4Smrg * Gal_test_vip_bases_updated 345171d7fec4Smrg * 345271d7fec4Smrg * Description: This function tests the VIP bases updated. 345371d7fec4Smrg * 345471d7fec4Smrg * parameters: 345571d7fec4Smrg * status: Status of the VIP bases updated. 345671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 345771d7fec4Smrg *------------------------------------------------------------------------*/ 345871d7fec4SmrgBOOLEAN 345971d7fec4SmrgGal_test_vip_bases_updated(int *status) 346071d7fec4Smrg{ 346171d7fec4Smrg GAL_TESTVIPBASESUPDATED sTestVipbasesupdated; 346271d7fec4Smrg 346371d7fec4Smrg INIT_GAL(&sTestVipbasesupdated); 346471d7fec4Smrg sTestVipbasesupdated.dwSubfunction = GALFN_TESTVIPBASESUPDATED; 346571d7fec4Smrg 346671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sTestVipbasesupdated)) { 346771d7fec4Smrg return 0; 346871d7fec4Smrg } else { 346971d7fec4Smrg *status = sTestVipbasesupdated.status; 347071d7fec4Smrg return 1; 347171d7fec4Smrg } 347271d7fec4Smrg} 347371d7fec4Smrg 347471d7fec4Smrg/*-------------------------------------------------------------------------- 347571d7fec4Smrg * Gal_test_vip_fifo_overflow 347671d7fec4Smrg * 347771d7fec4Smrg * Description: This function tests the VIP FIFO overflow. 347871d7fec4Smrg * 347971d7fec4Smrg * parameters: 348071d7fec4Smrg * status: Status of the VIP FIFO overflow. 348171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 348271d7fec4Smrg *------------------------------------------------------------------------*/ 348371d7fec4SmrgBOOLEAN 348471d7fec4SmrgGal_test_vip_fifo_overflow(int *status) 348571d7fec4Smrg{ 348671d7fec4Smrg GAL_TESTVIPOVERFLOW sTestVipoverflow; 348771d7fec4Smrg 348871d7fec4Smrg INIT_GAL(&sTestVipoverflow); 348971d7fec4Smrg sTestVipoverflow.dwSubfunction = GALFN_TESTVIPFIFOOVERFLOW; 349071d7fec4Smrg 349171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sTestVipoverflow)) { 349271d7fec4Smrg return 0; 349371d7fec4Smrg } else { 349471d7fec4Smrg *status = sTestVipoverflow.status; 349571d7fec4Smrg return 1; 349671d7fec4Smrg } 349771d7fec4Smrg} 349871d7fec4Smrg 349971d7fec4Smrg/*-------------------------------------------------------------------------- 350071d7fec4Smrg * Gal_set_vbi_enable 350171d7fec4Smrg * 350271d7fec4Smrg * Description: This function enable/disables the VBI data capture. 350371d7fec4Smrg * 350471d7fec4Smrg * parameters: 350571d7fec4Smrg * enable: VBI enable state. 350671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 350771d7fec4Smrg *------------------------------------------------------------------------*/ 350871d7fec4SmrgBOOLEAN 350971d7fec4SmrgGal_set_vbi_enable(int enable) 351071d7fec4Smrg{ 351171d7fec4Smrg GAL_VBIENABLE sSetVbienable; 351271d7fec4Smrg 351371d7fec4Smrg INIT_GAL(&sSetVbienable); 351471d7fec4Smrg sSetVbienable.dwSubfunction = GALFN_SETVBIENABLE; 351571d7fec4Smrg sSetVbienable.enable = enable; 351671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbienable)) { 351771d7fec4Smrg return 0; 351871d7fec4Smrg } else { 351971d7fec4Smrg return 1; 352071d7fec4Smrg } 352171d7fec4Smrg} 352271d7fec4Smrg 352371d7fec4Smrg/*-------------------------------------------------------------------------- 352471d7fec4Smrg * Gal_get_vbi_enable 352571d7fec4Smrg * 352671d7fec4Smrg * Description: This function gets the enable state of the VBI data capture. 352771d7fec4Smrg * 352871d7fec4Smrg * parameters: 352971d7fec4Smrg * enable: VBI enable state. 353071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 353171d7fec4Smrg *------------------------------------------------------------------------*/ 353271d7fec4SmrgBOOLEAN 353371d7fec4SmrgGal_get_vbi_enable(int *enable) 353471d7fec4Smrg{ 353571d7fec4Smrg GAL_VBIENABLE sGetVbienable; 353671d7fec4Smrg 353771d7fec4Smrg INIT_GAL(&sGetVbienable); 353871d7fec4Smrg sGetVbienable.dwSubfunction = GALFN_GETVBIENABLE; 353971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbienable)) { 354071d7fec4Smrg return 0; 354171d7fec4Smrg } else { 354271d7fec4Smrg 354371d7fec4Smrg *enable = sGetVbienable.enable; 354471d7fec4Smrg return 1; 354571d7fec4Smrg } 354671d7fec4Smrg} 354771d7fec4Smrg 354871d7fec4Smrg/*-------------------------------------------------------------------------- 354971d7fec4Smrg * Gal_set_vbi_base 355071d7fec4Smrg * 355171d7fec4Smrg * Description: This function sets the VBI base addresses. 355271d7fec4Smrg * 355371d7fec4Smrg * parameters: 355471d7fec4Smrg * even: Even base address. 355571d7fec4Smrg * odd: Odd base address. 355671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 355771d7fec4Smrg *------------------------------------------------------------------------*/ 355871d7fec4SmrgBOOLEAN 355971d7fec4SmrgGal_set_vbi_base(unsigned long even, unsigned long odd) 356071d7fec4Smrg{ 356171d7fec4Smrg GAL_VBIBASE sSetVbiBase; 356271d7fec4Smrg 356371d7fec4Smrg INIT_GAL(&sSetVbiBase); 356471d7fec4Smrg sSetVbiBase.dwSubfunction = GALFN_SETVBIBASE; 356571d7fec4Smrg sSetVbiBase.even = even; 356671d7fec4Smrg sSetVbiBase.odd = odd; 356771d7fec4Smrg 356871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbiBase)) { 356971d7fec4Smrg return 0; 357071d7fec4Smrg } else { 357171d7fec4Smrg return 1; 357271d7fec4Smrg } 357371d7fec4Smrg} 357471d7fec4Smrg 357571d7fec4Smrg/*-------------------------------------------------------------------------- 357671d7fec4Smrg * Gal_get_vbi_base 357771d7fec4Smrg * 357871d7fec4Smrg * Description: This function gets the VBI base address. 357971d7fec4Smrg * 358071d7fec4Smrg * parameters: 358171d7fec4Smrg * address: VBI base address. 358271d7fec4Smrg * odd: Odd base address. 358371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 358471d7fec4Smrg *------------------------------------------------------------------------*/ 358571d7fec4SmrgBOOLEAN 358671d7fec4SmrgGal_get_vbi_base(unsigned long *address, int odd) 358771d7fec4Smrg{ 358871d7fec4Smrg GAL_VBIBASE sGetVbiBase; 358971d7fec4Smrg 359071d7fec4Smrg INIT_GAL(&sGetVbiBase); 359171d7fec4Smrg sGetVbiBase.dwSubfunction = GALFN_GETVBIBASE; 359271d7fec4Smrg sGetVbiBase.odd = odd; 359371d7fec4Smrg 359471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbiBase)) { 359571d7fec4Smrg return 0; 359671d7fec4Smrg } else { 359771d7fec4Smrg *address = sGetVbiBase.address; 359871d7fec4Smrg return 1; 359971d7fec4Smrg } 360071d7fec4Smrg} 360171d7fec4Smrg 360271d7fec4Smrg/*-------------------------------------------------------------------------- 360371d7fec4Smrg * Gal_set_vbi_pitch 360471d7fec4Smrg * 360571d7fec4Smrg * Description: This function sets the number of bytes between scanlines for 360671d7fec4Smrg * VBI capture. 360771d7fec4Smrg * 360871d7fec4Smrg * parameters: 360971d7fec4Smrg * pitch: VBI pitch. 361071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 361171d7fec4Smrg *------------------------------------------------------------------------*/ 361271d7fec4SmrgBOOLEAN 361371d7fec4SmrgGal_set_vbi_pitch(unsigned long pitch) 361471d7fec4Smrg{ 361571d7fec4Smrg GAL_VBIPITCH sSetVbiPitch; 361671d7fec4Smrg 361771d7fec4Smrg INIT_GAL(&sSetVbiPitch); 361871d7fec4Smrg sSetVbiPitch.dwSubfunction = GALFN_SETVBIPITCH; 361971d7fec4Smrg sSetVbiPitch.pitch = pitch; 362071d7fec4Smrg 362171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbiPitch)) { 362271d7fec4Smrg return 0; 362371d7fec4Smrg } else { 362471d7fec4Smrg return 1; 362571d7fec4Smrg } 362671d7fec4Smrg} 362771d7fec4Smrg 362871d7fec4Smrg/*-------------------------------------------------------------------------- 362971d7fec4Smrg * Gal_get_vbi_pitch 363071d7fec4Smrg * 363171d7fec4Smrg * Description: This function gets the number of bytes between scanlines for 363271d7fec4Smrg * VBI capture. 363371d7fec4Smrg * 363471d7fec4Smrg * parameters: 363571d7fec4Smrg * pitch: VBI pitch. 363671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 363771d7fec4Smrg *------------------------------------------------------------------------*/ 363871d7fec4SmrgBOOLEAN 363971d7fec4SmrgGal_get_vbi_pitch(unsigned long *pitch) 364071d7fec4Smrg{ 364171d7fec4Smrg GAL_VBIPITCH sGetVbiPitch; 364271d7fec4Smrg 364371d7fec4Smrg INIT_GAL(&sGetVbiPitch); 364471d7fec4Smrg sGetVbiPitch.dwSubfunction = GALFN_GETVBIPITCH; 364571d7fec4Smrg 364671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbiPitch)) { 364771d7fec4Smrg return 0; 364871d7fec4Smrg } else { 364971d7fec4Smrg *pitch = sGetVbiPitch.pitch; 365071d7fec4Smrg return 1; 365171d7fec4Smrg 365271d7fec4Smrg } 365371d7fec4Smrg} 365471d7fec4Smrg 365571d7fec4Smrg/*-------------------------------------------------------------------------- 365671d7fec4Smrg * Gal_set_vbi_mode 365771d7fec4Smrg * 365871d7fec4Smrg * Description: This function sets the VBI data types captured to memory. 365971d7fec4Smrg * 366071d7fec4Smrg * parameters: 366171d7fec4Smrg * mode: VBI mode. 366271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 366371d7fec4Smrg *------------------------------------------------------------------------*/ 366471d7fec4SmrgBOOLEAN 366571d7fec4SmrgGal_set_vbi_mode(int mode) 366671d7fec4Smrg{ 366771d7fec4Smrg GAL_VBIMODE sSetVbiMode; 366871d7fec4Smrg 366971d7fec4Smrg INIT_GAL(&sSetVbiMode); 367071d7fec4Smrg sSetVbiMode.dwSubfunction = GALFN_SETVBIMODE; 367171d7fec4Smrg sSetVbiMode.mode = mode; 367271d7fec4Smrg 367371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbiMode)) { 367471d7fec4Smrg return 0; 367571d7fec4Smrg } else { 367671d7fec4Smrg return 1; 367771d7fec4Smrg } 367871d7fec4Smrg} 367971d7fec4Smrg 368071d7fec4Smrg/*-------------------------------------------------------------------------- 368171d7fec4Smrg * Gal_get_vbi_mode 368271d7fec4Smrg * 368371d7fec4Smrg * Description: This function gets the VBI data types captured to memory. 368471d7fec4Smrg * 368571d7fec4Smrg * parameters: 368671d7fec4Smrg * mode: VBI mode. 368771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 368871d7fec4Smrg *------------------------------------------------------------------------*/ 368971d7fec4SmrgBOOLEAN 369071d7fec4SmrgGal_get_vbi_mode(int *mode) 369171d7fec4Smrg{ 369271d7fec4Smrg GAL_VBIMODE sGetVbiMode; 369371d7fec4Smrg 369471d7fec4Smrg INIT_GAL(&sGetVbiMode); 369571d7fec4Smrg sGetVbiMode.dwSubfunction = GALFN_GETVBIMODE; 369671d7fec4Smrg 369771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbiMode)) { 369871d7fec4Smrg return 0; 369971d7fec4Smrg } else { 370071d7fec4Smrg 370171d7fec4Smrg *mode = sGetVbiMode.mode; 370271d7fec4Smrg return 1; 370371d7fec4Smrg } 370471d7fec4Smrg} 370571d7fec4Smrg 370671d7fec4Smrg/*-------------------------------------------------------------------------- 370771d7fec4Smrg * Gal_set_vbi_direct 370871d7fec4Smrg * 370971d7fec4Smrg * Description: This function sets the VBI lines to be passed to the 371071d7fec4Smrg * Direct VIP. 371171d7fec4Smrg * 371271d7fec4Smrg * parameters: 371371d7fec4Smrg * even_lines: VBI even lines. 371471d7fec4Smrg * odd_lines: VBI odd lines. 371571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 371671d7fec4Smrg *------------------------------------------------------------------------*/ 371771d7fec4SmrgBOOLEAN 371871d7fec4SmrgGal_set_vbi_direct(unsigned long even_lines, unsigned long odd_lines) 371971d7fec4Smrg{ 372071d7fec4Smrg GAL_SETVBIDIRECT sSetVbidirect; 372171d7fec4Smrg 372271d7fec4Smrg INIT_GAL(&sSetVbidirect); 372371d7fec4Smrg sSetVbidirect.dwSubfunction = GALFN_SETVBIDIRECT; 372471d7fec4Smrg sSetVbidirect.even_lines = even_lines; 372571d7fec4Smrg sSetVbidirect.odd_lines = odd_lines; 372671d7fec4Smrg 372771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbidirect)) { 372871d7fec4Smrg return 0; 372971d7fec4Smrg } else { 373071d7fec4Smrg return 1; 373171d7fec4Smrg } 373271d7fec4Smrg} 373371d7fec4SmrgBOOLEAN 373471d7fec4SmrgGal2_set_destination_stride(unsigned short stride) 373571d7fec4Smrg{ 373671d7fec4Smrg GAL_STRIDE sSetStride; 373771d7fec4Smrg 373871d7fec4Smrg INIT_GAL(&sSetStride); 373971d7fec4Smrg sSetStride.dwSubfunction = GALFN_SETDESTINATIONSTRIDE; 374071d7fec4Smrg 374171d7fec4Smrg sSetStride.stride = stride; 374271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetStride)) 374371d7fec4Smrg return 0; 374471d7fec4Smrg else 374571d7fec4Smrg return 1; 374671d7fec4Smrg} 374771d7fec4Smrg 374871d7fec4SmrgBOOLEAN 374971d7fec4SmrgGal2_set_pattern_origin(int x, int y) 375071d7fec4Smrg{ 375171d7fec4Smrg GAL_PATTERNORIGIN sSetPatOrigin; 375271d7fec4Smrg 375371d7fec4Smrg INIT_GAL(&sSetPatOrigin); 375471d7fec4Smrg sSetPatOrigin.dwSubfunction = GALFN_SETPATTERNORIGIN; 375571d7fec4Smrg 375671d7fec4Smrg sSetPatOrigin.x = x; 375771d7fec4Smrg sSetPatOrigin.y = y; 375871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetPatOrigin)) 375971d7fec4Smrg return 0; 376071d7fec4Smrg else 376171d7fec4Smrg return 1; 376271d7fec4Smrg} 376371d7fec4Smrg 376471d7fec4Smrg/*-------------------------------------------------------------------------- 376571d7fec4Smrg * Gal_set_vbi_direct 376671d7fec4Smrg * 376771d7fec4Smrg * Description: This function gets the VBI lines to be passed to the 376871d7fec4Smrg * Direct VIP. 376971d7fec4Smrg * 377071d7fec4Smrg * parameters: 377171d7fec4Smrg * odd: VBI odd lines. 377271d7fec4Smrg * direct_lines: VBI direct lines. 377371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 377471d7fec4Smrg *------------------------------------------------------------------------*/ 377571d7fec4SmrgBOOLEAN 377671d7fec4SmrgGal_get_vbi_direct(int odd, unsigned long *direct_lines) 377771d7fec4Smrg{ 377871d7fec4Smrg GAL_GETVBIDIRECT sGetVbidirect; 377971d7fec4Smrg 378071d7fec4Smrg INIT_GAL(&sGetVbidirect); 378171d7fec4Smrg sGetVbidirect.dwSubfunction = GALFN_GETVBIDIRECT; 378271d7fec4Smrg sGetVbidirect.odd = odd; 378371d7fec4Smrg 378471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbidirect)) { 378571d7fec4Smrg return 0; 378671d7fec4Smrg } else { 378771d7fec4Smrg *direct_lines = sGetVbidirect.direct_lines; 378871d7fec4Smrg return 1; 378971d7fec4Smrg } 379071d7fec4Smrg} 379171d7fec4Smrg 379271d7fec4Smrg/*-------------------------------------------------------------------------- 379371d7fec4Smrg * Gal_set_vbi_interrupt 379471d7fec4Smrg * 379571d7fec4Smrg * Description: This function enable/disables the VBI field interrupt. 379671d7fec4Smrg * 379771d7fec4Smrg * parameters: 379871d7fec4Smrg * enable: Value to enable/disable VBI interrupt. 379971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 380071d7fec4Smrg *------------------------------------------------------------------------*/ 380171d7fec4SmrgBOOLEAN 380271d7fec4SmrgGal_set_vbi_interrupt(int enable) 380371d7fec4Smrg{ 380471d7fec4Smrg GAL_VBIINTERRUPT sSetVbiinterrupt; 380571d7fec4Smrg 380671d7fec4Smrg INIT_GAL(&sSetVbiinterrupt); 380771d7fec4Smrg sSetVbiinterrupt.dwSubfunction = GALFN_SETVBIINTERRUPT; 380871d7fec4Smrg sSetVbiinterrupt.enable = enable; 380971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbiinterrupt)) { 381071d7fec4Smrg return 0; 381171d7fec4Smrg } else { 381271d7fec4Smrg return 1; 381371d7fec4Smrg } 381471d7fec4Smrg} 381571d7fec4Smrg 381671d7fec4Smrg/*-------------------------------------------------------------------------- 381771d7fec4Smrg * Gal_get_vbi_interrupt 381871d7fec4Smrg * 381971d7fec4Smrg * Description: This function gets the VBI field interrupt. 382071d7fec4Smrg * 382171d7fec4Smrg * parameters: 382271d7fec4Smrg * enable: Value of enable/disable VBI interrupt. 382371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 382471d7fec4Smrg *------------------------------------------------------------------------*/ 382571d7fec4SmrgBOOLEAN 382671d7fec4SmrgGal_get_vbi_interrupt(int *enable) 382771d7fec4Smrg{ 382871d7fec4Smrg GAL_VBIINTERRUPT sGetVbiinterrupt; 382971d7fec4Smrg 383071d7fec4Smrg INIT_GAL(&sGetVbiinterrupt); 383171d7fec4Smrg sGetVbiinterrupt.dwSubfunction = GALFN_GETVBIINTERRUPT; 383271d7fec4Smrg 383371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbiinterrupt)) { 383471d7fec4Smrg return 0; 383571d7fec4Smrg } else { 383671d7fec4Smrg *enable = sGetVbiinterrupt.enable; 383771d7fec4Smrg return 1; 383871d7fec4Smrg } 383971d7fec4Smrg} 384071d7fec4Smrg 384171d7fec4Smrg/*-------------------------------------------------------------------------- 384271d7fec4Smrg * Gal_set_source_stride 384371d7fec4Smrg * 384471d7fec4Smrg * Description: This function sets the stride to be used in successive screen 384571d7fec4Smrg * to screen BLTs. 384671d7fec4Smrg * 384771d7fec4Smrg * parameters: 384871d7fec4Smrg * enable: Value of enable/disable VBI interrupt. 384971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 385071d7fec4Smrg *------------------------------------------------------------------------*/ 385171d7fec4SmrgBOOLEAN 385271d7fec4SmrgGal2_set_source_stride(unsigned short stride) 385371d7fec4Smrg{ 385471d7fec4Smrg GAL_STRIDE sSetsourcestride; 385571d7fec4Smrg 385671d7fec4Smrg INIT_GAL(&sSetsourcestride); 385771d7fec4Smrg sSetsourcestride.dwSubfunction = GALFN_SETSOURCESTRIDE; 385871d7fec4Smrg 385971d7fec4Smrg sSetsourcestride.stride = stride; 386071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetsourcestride)) { 386171d7fec4Smrg return 0; 386271d7fec4Smrg } else { 386371d7fec4Smrg 386471d7fec4Smrg return 1; 386571d7fec4Smrg } 386671d7fec4Smrg} 386771d7fec4Smrg 386871d7fec4Smrg/*-------------------------------------------------------------------------- 386971d7fec4Smrg * Gal_set_source_transparency 387071d7fec4Smrg * 387171d7fec4Smrg * Description: This function sets the source transparency color and 387271d7fec4Smrg * mask to be used in future rendering routines. 387371d7fec4Smrg * to screen BLTs. 387471d7fec4Smrg * 387571d7fec4Smrg * parameters: 387671d7fec4Smrg * color: Source color. 387771d7fec4Smrg * mask: Source mask. 387871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 387971d7fec4Smrg *------------------------------------------------------------------------*/ 388071d7fec4SmrgBOOLEAN 388171d7fec4SmrgGal2_set_source_transparency(unsigned long color, unsigned long mask) 388271d7fec4Smrg{ 388371d7fec4Smrg GAL_SOURCETRANSPARENCY sSetsourcetransparency; 388471d7fec4Smrg 388571d7fec4Smrg INIT_GAL(&sSetsourcetransparency); 388671d7fec4Smrg sSetsourcetransparency.dwSubfunction = GALFN_SETSOURCETRANSPARENCY; 388771d7fec4Smrg 388871d7fec4Smrg sSetsourcetransparency.color = color; 388971d7fec4Smrg sSetsourcetransparency.mask = mask; 389071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetsourcetransparency)) { 389171d7fec4Smrg return 0; 389271d7fec4Smrg } else { 389371d7fec4Smrg 389471d7fec4Smrg return 1; 389571d7fec4Smrg } 389671d7fec4Smrg} 389771d7fec4Smrg 389871d7fec4Smrg/*-------------------------------------------------------------------------- 389971d7fec4Smrg * Gal_set_alpha_mode 390071d7fec4Smrg * 390171d7fec4Smrg * Description: This function sets the alpha blending mode. 390271d7fec4Smrg * parameters: 390371d7fec4Smrg * mode: Alpha blending mode. 390471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 390571d7fec4Smrg *------------------------------------------------------------------------*/ 390671d7fec4SmrgBOOLEAN 390771d7fec4SmrgGal2_set_alpha_mode(int mode) 390871d7fec4Smrg{ 390971d7fec4Smrg GAL_GFX2ALPHAMODE sSetalphamode; 391071d7fec4Smrg 391171d7fec4Smrg INIT_GAL(&sSetalphamode); 391271d7fec4Smrg sSetalphamode.dwSubfunction = GALFN_GFX2SETALPHAMODE; 391371d7fec4Smrg 391471d7fec4Smrg sSetalphamode.mode = mode; 391571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetalphamode)) { 391671d7fec4Smrg return 0; 391771d7fec4Smrg } else { 391871d7fec4Smrg return 1; 391971d7fec4Smrg } 392071d7fec4Smrg} 392171d7fec4Smrg 392271d7fec4Smrg/*-------------------------------------------------------------------------- 392371d7fec4Smrg * Gal_gfx2_set_alpha_value 392471d7fec4Smrg * 392571d7fec4Smrg * Description: This function sets the alpha value to be used with certain 392671d7fec4Smrg * alpha blending modes. 392771d7fec4Smrg * parameters: 392871d7fec4Smrg * value: Alpha blending value. 392971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 393071d7fec4Smrg *------------------------------------------------------------------------*/ 393171d7fec4SmrgBOOLEAN 393271d7fec4SmrgGal2_set_alpha_value(unsigned char value) 393371d7fec4Smrg{ 393471d7fec4Smrg GAL_GFX2ALPHAVALUE sSetalphavalue; 393571d7fec4Smrg 393671d7fec4Smrg INIT_GAL(&sSetalphavalue); 393771d7fec4Smrg sSetalphavalue.dwSubfunction = GALFN_GFX2SETALPHAVALUE; 393871d7fec4Smrg 393971d7fec4Smrg sSetalphavalue.value = value; 394071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetalphavalue)) { 394171d7fec4Smrg return 0; 394271d7fec4Smrg } else { 394371d7fec4Smrg return 1; 394471d7fec4Smrg } 394571d7fec4Smrg} 394671d7fec4Smrg 394771d7fec4Smrg/*-------------------------------------------------------------------------- 394871d7fec4Smrg * Gal_gfx2_pattern_fill 394971d7fec4Smrg * 395071d7fec4Smrg * Description: This function used to fill the pattern of GX2. 395171d7fec4Smrg * It allows the arbitary destination stride. The rendering 395271d7fec4Smrg * position is also specified as an offset instead of (x,y) 395371d7fec4Smrg * position. 395471d7fec4Smrg * parameters: 395571d7fec4Smrg * dstoffset: Rendering offset. 395671d7fec4Smrg * width: Width of the pattern. 395771d7fec4Smrg * height: Height of the pattern. 395871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 395971d7fec4Smrg *------------------------------------------------------------------------*/ 396071d7fec4SmrgBOOLEAN 396171d7fec4SmrgGal_gfx2_pattern_fill(unsigned long dstoffset, unsigned short width, 396271d7fec4Smrg unsigned short height) 396371d7fec4Smrg{ 396471d7fec4Smrg GAL_GFX2PATTERNFILL sPatternfill; 396571d7fec4Smrg 396671d7fec4Smrg INIT_GAL(&sPatternfill); 396771d7fec4Smrg sPatternfill.dwSubfunction = GALFN_GFX2PATTERNFILL; 396871d7fec4Smrg 396971d7fec4Smrg sPatternfill.dstoffset = dstoffset; 397071d7fec4Smrg sPatternfill.width = width; 397171d7fec4Smrg sPatternfill.height = height; 397271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sPatternfill)) { 397371d7fec4Smrg return 0; 397471d7fec4Smrg } else { 397571d7fec4Smrg return 1; 397671d7fec4Smrg } 397771d7fec4Smrg} 397871d7fec4Smrg 397971d7fec4Smrg/*-------------------------------------------------------------------------- 398071d7fec4Smrg * Gal_gfx2_screen_to_screen_blt 398171d7fec4Smrg * 398271d7fec4Smrg * Description: This function used for screen to screen BLTs of GX2. 398371d7fec4Smrg * It allows the arbitary source and destination strides and 398471d7fec4Smrg * alpha blending. 398571d7fec4Smrg * parameters: 398671d7fec4Smrg * srcoffset: Source Rendering offset. 398771d7fec4Smrg * dstoffset: Destination Rendering offset. 398871d7fec4Smrg * width: Width of the screen. 398971d7fec4Smrg * height: Height of the screen. 399071d7fec4Smrg * flags: Flags of the screen to screen BLT. 399171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 399271d7fec4Smrg *------------------------------------------------------------------------*/ 399371d7fec4SmrgBOOLEAN 399471d7fec4SmrgGal2_screen_to_screen_blt(unsigned long srcoffset, 399571d7fec4Smrg unsigned long dstoffset, unsigned short width, 399671d7fec4Smrg unsigned short height, int flags) 399771d7fec4Smrg{ 399871d7fec4Smrg GAL_GFX2SCREENTOSCREENBLT sScreentoScreenblt; 399971d7fec4Smrg 400071d7fec4Smrg INIT_GAL(&sScreentoScreenblt); 400171d7fec4Smrg sScreentoScreenblt.dwSubfunction = GALFN_GFX2SCREENTOSCREENBLT; 400271d7fec4Smrg 400371d7fec4Smrg sScreentoScreenblt.srcoffset = srcoffset; 400471d7fec4Smrg sScreentoScreenblt.dstoffset = dstoffset; 400571d7fec4Smrg sScreentoScreenblt.width = width; 400671d7fec4Smrg sScreentoScreenblt.height = height; 400771d7fec4Smrg sScreentoScreenblt.flags = flags; 400871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sScreentoScreenblt)) { 400971d7fec4Smrg return 0; 401071d7fec4Smrg } else { 401171d7fec4Smrg return 1; 401271d7fec4Smrg } 401371d7fec4Smrg} 401471d7fec4Smrg 401571d7fec4Smrg/*-------------------------------------------------------------------------- 401671d7fec4Smrg * Gal2_mono_expand_blt 401771d7fec4Smrg * 401871d7fec4Smrg * Description: This function used to expand monochrome data stored in 401971d7fec4Smrg * graphics memory for screen to screen BLTs. 402071d7fec4Smrg * parameters: 402171d7fec4Smrg * srcbase: Source Rendering base address. 402271d7fec4Smrg * srcx: Source X offset. 402371d7fec4Smrg * srcy: Source Y offset. 402471d7fec4Smrg * dstoffset: Destination Rendering offset. 402571d7fec4Smrg * width: Width of the screen. 402671d7fec4Smrg * height: Height of the screen. 402771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 402871d7fec4Smrg *------------------------------------------------------------------------*/ 402971d7fec4SmrgBOOLEAN 403071d7fec4SmrgGal2_mono_expand_blt(unsigned long srcbase, unsigned short srcx, 403171d7fec4Smrg unsigned short srcy, unsigned long dstoffset, 403271d7fec4Smrg unsigned short width, unsigned short height, 403371d7fec4Smrg int byte_packed) 403471d7fec4Smrg{ 403571d7fec4Smrg GAL_GFX2MONOEXPANDBLT sMonoexpandblt; 403671d7fec4Smrg 403771d7fec4Smrg INIT_GAL(&sMonoexpandblt); 403871d7fec4Smrg sMonoexpandblt.dwSubfunction = GALFN_GFX2MONOEXPANDBLT; 403971d7fec4Smrg sMonoexpandblt.srcbase = srcbase; 404071d7fec4Smrg sMonoexpandblt.srcx = srcx; 404171d7fec4Smrg sMonoexpandblt.srcy = srcy; 404271d7fec4Smrg sMonoexpandblt.dstoffset = dstoffset; 404371d7fec4Smrg sMonoexpandblt.width = width; 404471d7fec4Smrg sMonoexpandblt.height = height; 404571d7fec4Smrg sMonoexpandblt.byte_packed = byte_packed; 404671d7fec4Smrg 404771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sMonoexpandblt)) { 404871d7fec4Smrg return 0; 404971d7fec4Smrg } else { 405071d7fec4Smrg return 1; 405171d7fec4Smrg 405271d7fec4Smrg } 405371d7fec4Smrg} 405471d7fec4Smrg 405571d7fec4Smrg/*-------------------------------------------------------------------------- 405671d7fec4Smrg * Gal2_color_bitmap_to_screen_blt 405771d7fec4Smrg * 405871d7fec4Smrg * Description: This function used for color bmp to screen BLTs. 405971d7fec4Smrg * parameters: 406071d7fec4Smrg * srcx: Source X offset. 406171d7fec4Smrg * srcy: Source Y offset. 406271d7fec4Smrg * dstoffset: Destination Rendering offset. 406371d7fec4Smrg * width: Width of the screen. 406471d7fec4Smrg * height: Height of the screen. 406571d7fec4Smrg * *data: Color bmp data. 406671d7fec4Smrg * pitch: Pitch of the dispaly mode. 406771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 406871d7fec4Smrg *------------------------------------------------------------------------*/ 406971d7fec4SmrgBOOLEAN 407071d7fec4SmrgGal2_color_bitmap_to_screen_blt(unsigned short srcx, 407171d7fec4Smrg unsigned short srcy, 407271d7fec4Smrg unsigned long dstoffset, 407371d7fec4Smrg unsigned short width, 407471d7fec4Smrg unsigned short height, 407571d7fec4Smrg unsigned char *data, unsigned short pitch) 407671d7fec4Smrg{ 407771d7fec4Smrg GAL_GFX2COLORBMPTOSCRBLT sColorbmptoscrblt; 407871d7fec4Smrg 407971d7fec4Smrg INIT_GAL(&sColorbmptoscrblt); 408071d7fec4Smrg sColorbmptoscrblt.dwSubfunction = GALFN_GFX2COLORBMPTOSCRBLT; 408171d7fec4Smrg sColorbmptoscrblt.srcx = srcx; 408271d7fec4Smrg sColorbmptoscrblt.srcy = srcy; 408371d7fec4Smrg sColorbmptoscrblt.dstoffset = dstoffset; 408471d7fec4Smrg sColorbmptoscrblt.width = width; 408571d7fec4Smrg sColorbmptoscrblt.height = height; 408671d7fec4Smrg sColorbmptoscrblt.data = *data; 408771d7fec4Smrg sColorbmptoscrblt.pitch = pitch; 408871d7fec4Smrg 408971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sColorbmptoscrblt)) { 409071d7fec4Smrg return 0; 409171d7fec4Smrg } else { 409271d7fec4Smrg return 1; 409371d7fec4Smrg } 409471d7fec4Smrg} 409571d7fec4Smrg 409671d7fec4Smrg/*-------------------------------------------------------------------------- 409771d7fec4Smrg * Gal2_mono_bitmap_to_screen_blt 409871d7fec4Smrg * 409971d7fec4Smrg * Description: This function used for mono bmp to screen BLTs. 410071d7fec4Smrg * parameters: 410171d7fec4Smrg * srcx: Source X offset. 410271d7fec4Smrg * srcy: Source Y offset. 410371d7fec4Smrg * dstoffset: Destination Rendering offset. 410471d7fec4Smrg * width: Width of the screen. 410571d7fec4Smrg * height: Height of the screen. 410671d7fec4Smrg * *data: mono bmp data. 410771d7fec4Smrg * pitch: Pitch of the display mode. 410871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 410971d7fec4Smrg *------------------------------------------------------------------------*/ 411071d7fec4SmrgBOOLEAN 411171d7fec4SmrgGal2_mono_bitmap_to_screen_blt(unsigned short srcx, 411271d7fec4Smrg unsigned short srcy, 411371d7fec4Smrg unsigned long dstoffset, 411471d7fec4Smrg unsigned short width, 411571d7fec4Smrg unsigned short height, 411671d7fec4Smrg unsigned char *data, unsigned short pitch) 411771d7fec4Smrg{ 411871d7fec4Smrg GAL_GFX2MONOBMPTOSCRBLT sMonobmptoscrblt; 411971d7fec4Smrg 412071d7fec4Smrg INIT_GAL(&sMonobmptoscrblt); 412171d7fec4Smrg sMonobmptoscrblt.dwSubfunction = GALFN_GFX2MONOBMPTOSCRBLT; 412271d7fec4Smrg sMonobmptoscrblt.srcx = srcx; 412371d7fec4Smrg sMonobmptoscrblt.srcy = srcy; 412471d7fec4Smrg sMonobmptoscrblt.dstoffset = dstoffset; 412571d7fec4Smrg sMonobmptoscrblt.width = width; 412671d7fec4Smrg sMonobmptoscrblt.height = height; 412771d7fec4Smrg sMonobmptoscrblt.data = *data; 412871d7fec4Smrg sMonobmptoscrblt.pitch = pitch; 412971d7fec4Smrg 413071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sMonobmptoscrblt)) { 413171d7fec4Smrg return 0; 413271d7fec4Smrg } else { 413371d7fec4Smrg return 1; 413471d7fec4Smrg } 413571d7fec4Smrg} 413671d7fec4Smrg 413771d7fec4Smrg/*-------------------------------------------------------------------------- 413871d7fec4Smrg * Gal2_bresenham_line 413971d7fec4Smrg * 414071d7fec4Smrg * Description: This function used to draw bresenham line. It allows the 414171d7fec4Smrg * arbitary destination stride. 414271d7fec4Smrg * parameters: 414371d7fec4Smrg * dstoffset: Destination offset. 414471d7fec4Smrg * length: Length of the line. 414571d7fec4Smrg * initerr: Intial error. 414671d7fec4Smrg * axialerr: 414771d7fec4Smrg * diagerr: 414871d7fec4Smrg * flags: 414971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 415071d7fec4Smrg *------------------------------------------------------------------------*/ 415171d7fec4SmrgBOOLEAN 415271d7fec4SmrgGal2_bresenham_line(unsigned long dstoffset, unsigned short length, 415371d7fec4Smrg unsigned short initerr, unsigned short axialerr, 415471d7fec4Smrg unsigned short diagerr, unsigned short flags) 415571d7fec4Smrg{ 415671d7fec4Smrg GAL_GFX2BRESENHAMLINE sBresenhamline; 415771d7fec4Smrg 415871d7fec4Smrg INIT_GAL(&sBresenhamline); 415971d7fec4Smrg sBresenhamline.dwSubfunction = GALFN_GFX2BRESENHAMLINE; 416071d7fec4Smrg sBresenhamline.dstoffset = dstoffset; 416171d7fec4Smrg sBresenhamline.length = length; 416271d7fec4Smrg sBresenhamline.initerr = initerr; 416371d7fec4Smrg sBresenhamline.axialerr = axialerr; 416471d7fec4Smrg sBresenhamline.diagerr = diagerr; 416571d7fec4Smrg sBresenhamline.flags = flags; 416671d7fec4Smrg 416771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sBresenhamline)) { 416871d7fec4Smrg return 0; 416971d7fec4Smrg } else { 417071d7fec4Smrg return 1; 417171d7fec4Smrg } 417271d7fec4Smrg} 417371d7fec4Smrg 417471d7fec4Smrg/*-------------------------------------------------------------------------- 417571d7fec4Smrg * Gal2_sync_to_vblank 417671d7fec4Smrg * 417771d7fec4Smrg * Description: This function sets the a flag to synchronize the next 417871d7fec4Smrg * rendering routine to VBLANK. 417971d7fec4Smrg * parameters: none. 418071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 418171d7fec4Smrg *------------------------------------------------------------------------*/ 418271d7fec4SmrgBOOLEAN 418371d7fec4SmrgGal2_sync_to_vblank(void) 418471d7fec4Smrg{ 418571d7fec4Smrg GAL_GFX2SYNCTOVBLANK sSynctovblank; 418671d7fec4Smrg 418771d7fec4Smrg INIT_GAL(&sSynctovblank); 418871d7fec4Smrg sSynctovblank.dwSubfunction = GALFN_GFX2SYNCTOVBLANK; 418971d7fec4Smrg 419071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSynctovblank)) { 419171d7fec4Smrg return 0; 419271d7fec4Smrg } else { 419371d7fec4Smrg return 1; 419471d7fec4Smrg } 419571d7fec4Smrg} 419671d7fec4Smrg 419771d7fec4Smrg/* Video routines */ 419871d7fec4Smrg 419971d7fec4Smrg/*-------------------------------------------------------------------------- 420071d7fec4Smrg * Gal_set_video_yuv_pitch 420171d7fec4Smrg * 420271d7fec4Smrg * Description: This function sets the Video YUV pitch. 420371d7fec4Smrg * 420471d7fec4Smrg * parameters: 420571d7fec4Smrg * y_pitch: Y pitch. 420671d7fec4Smrg * uv_pitch: UV pitch. 420771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 420871d7fec4Smrg *------------------------------------------------------------------------*/ 420971d7fec4SmrgBOOLEAN 421071d7fec4SmrgGal_set_video_yuv_pitch(unsigned long y_pitch, unsigned long uv_pitch) 421171d7fec4Smrg{ 421271d7fec4Smrg GAL_VIDEOYUVPITCH sSetVideoyuvpitch; 421371d7fec4Smrg 421471d7fec4Smrg INIT_GAL(&sSetVideoyuvpitch); 421571d7fec4Smrg sSetVideoyuvpitch.dwSubfunction = GALFN_SETVIDEOYUVPITCH; 421671d7fec4Smrg sSetVideoyuvpitch.y_pitch = y_pitch; 421771d7fec4Smrg sSetVideoyuvpitch.uv_pitch = uv_pitch; 421871d7fec4Smrg 421971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideoyuvpitch)) { 422071d7fec4Smrg return 0; 422171d7fec4Smrg } else { 422271d7fec4Smrg return 1; 422371d7fec4Smrg } 422471d7fec4Smrg} 422571d7fec4Smrg 422671d7fec4Smrg/*-------------------------------------------------------------------------- 422771d7fec4Smrg * Gal_get_video_yuv_pitch 422871d7fec4Smrg * 422971d7fec4Smrg * Description: This function gets the Video YUV pitch. 423071d7fec4Smrg * 423171d7fec4Smrg * parameters: 423271d7fec4Smrg * y_pitch: Y pitch. 423371d7fec4Smrg * uv_pitch: UV pitch. 423471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 423571d7fec4Smrg *------------------------------------------------------------------------*/ 423671d7fec4SmrgBOOLEAN 423771d7fec4SmrgGal_get_video_yuv_pitch(unsigned long *y_pitch, unsigned long *uv_pitch) 423871d7fec4Smrg{ 423971d7fec4Smrg GAL_VIDEOYUVPITCH sGetVideoyuvpitch; 424071d7fec4Smrg 424171d7fec4Smrg INIT_GAL(&sGetVideoyuvpitch); 424271d7fec4Smrg sGetVideoyuvpitch.dwSubfunction = GALFN_GETVIDEOYUVPITCH; 424371d7fec4Smrg 424471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVideoyuvpitch)) { 424571d7fec4Smrg return 0; 424671d7fec4Smrg } else { 424771d7fec4Smrg *y_pitch = sGetVideoyuvpitch.y_pitch; 424871d7fec4Smrg *uv_pitch = sGetVideoyuvpitch.uv_pitch; 424971d7fec4Smrg 425071d7fec4Smrg return 1; 425171d7fec4Smrg } 425271d7fec4Smrg} 425371d7fec4Smrg 425471d7fec4Smrg/*-------------------------------------------------------------------------- 425571d7fec4Smrg * Gal_set_video_yuv_offsets 425671d7fec4Smrg * 425771d7fec4Smrg * Description: This function sets the Video YUV offsets. 425871d7fec4Smrg * 425971d7fec4Smrg * parameters: 426071d7fec4Smrg * y_offset: Y offset. 426171d7fec4Smrg * u_offset: U offset. 426271d7fec4Smrg * v_offset: V offset. 426371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 426471d7fec4Smrg *------------------------------------------------------------------------*/ 426571d7fec4SmrgBOOLEAN 426671d7fec4SmrgGal_set_video_yuv_offsets(unsigned long y_offset, unsigned long u_offset, 426771d7fec4Smrg unsigned long v_offset) 426871d7fec4Smrg{ 426971d7fec4Smrg GAL_VIDEOYUVOFFSETS sSetVideoyuvoffsets; 427071d7fec4Smrg 427171d7fec4Smrg INIT_GAL(&sSetVideoyuvoffsets); 427271d7fec4Smrg sSetVideoyuvoffsets.dwSubfunction = GALFN_SETVIDEOYUVOFFSETS; 427371d7fec4Smrg sSetVideoyuvoffsets.dwYoffset = y_offset; 427471d7fec4Smrg sSetVideoyuvoffsets.dwUoffset = u_offset; 427571d7fec4Smrg sSetVideoyuvoffsets.dwVoffset = v_offset; 427671d7fec4Smrg 427771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideoyuvoffsets)) { 427871d7fec4Smrg return 0; 427971d7fec4Smrg } else { 428071d7fec4Smrg return 1; 428171d7fec4Smrg } 428271d7fec4Smrg} 428371d7fec4Smrg 428471d7fec4Smrg/*-------------------------------------------------------------------------- 428571d7fec4Smrg * Gal_get_video_yuv_offsets 428671d7fec4Smrg * 428771d7fec4Smrg * Description: This function gets the Video YUV offsets. 428871d7fec4Smrg * 428971d7fec4Smrg * parameters: 429071d7fec4Smrg * y_offset: Y offset. 429171d7fec4Smrg * u_offset: U offset. 429271d7fec4Smrg * v_offset: V offset. 429371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 429471d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 429571d7fec4SmrgGal_get_video_yuv_offsets(unsigned long *y_offset, 429671d7fec4Smrg unsigned long *u_offset, unsigned long *v_offset) 429771d7fec4Smrg{ 429871d7fec4Smrg GAL_VIDEOYUVOFFSETS sGetVideoyuvoffsets; 429971d7fec4Smrg 430071d7fec4Smrg INIT_GAL(&sGetVideoyuvoffsets); 430171d7fec4Smrg sGetVideoyuvoffsets.dwSubfunction = GALFN_GETVIDEOYUVOFFSETS; 430271d7fec4Smrg 430371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVideoyuvoffsets)) { 430471d7fec4Smrg return 0; 430571d7fec4Smrg } else { 430671d7fec4Smrg *y_offset = sGetVideoyuvoffsets.dwYoffset; 430771d7fec4Smrg *u_offset = sGetVideoyuvoffsets.dwUoffset; 430871d7fec4Smrg *v_offset = sGetVideoyuvoffsets.dwVoffset; 430971d7fec4Smrg return 1; 431071d7fec4Smrg } 431171d7fec4Smrg} 431271d7fec4Smrg 431371d7fec4Smrg/*-------------------------------------------------------------------------- 431471d7fec4Smrg * Gal_set_video_left_crop 431571d7fec4Smrg * 431671d7fec4Smrg * Description: This function sets the number of pixels which will be cropped 431771d7fec4Smrg * from the beginning of each video line. 431871d7fec4Smrg * 431971d7fec4Smrg * parameters: 432071d7fec4Smrg * x: 432171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 432271d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 432371d7fec4SmrgGal_set_video_left_crop(unsigned short x) 432471d7fec4Smrg{ 432571d7fec4Smrg GAL_VIDEOLEFTCROP sSetVideoleftcrop;; 432671d7fec4Smrg 432771d7fec4Smrg INIT_GAL(&sSetVideoleftcrop); 432871d7fec4Smrg sSetVideoleftcrop.dwSubfunction = GALFN_SETVIDEOLEFTCROP; 432971d7fec4Smrg sSetVideoleftcrop.x = x; 433071d7fec4Smrg 433171d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideoleftcrop)) { 433271d7fec4Smrg return 0; 433371d7fec4Smrg } else { 433471d7fec4Smrg return 1; 433571d7fec4Smrg } 433671d7fec4Smrg} 433771d7fec4Smrg 433871d7fec4Smrg/*-------------------------------------------------------------------------- 433971d7fec4Smrg * Gal_set_video_vertical_downscale 434071d7fec4Smrg * 434171d7fec4Smrg * Description: This function sets the vertical downscale factor for the video 434271d7fec4Smrg * overlay window. 434371d7fec4Smrg * 434471d7fec4Smrg * parameters: 434571d7fec4Smrg * srch: Height of the source. 434671d7fec4Smrg * dsth: Height of the destination. 434771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 434871d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 434971d7fec4SmrgGal_set_video_vertical_downscale(unsigned short srch, unsigned short dsth) 435071d7fec4Smrg{ 435171d7fec4Smrg GAL_VIDEOVERTICALDOWNSCALE sSetVideoverticaldownscale; 435271d7fec4Smrg 435371d7fec4Smrg INIT_GAL(&sSetVideoverticaldownscale); 435471d7fec4Smrg sSetVideoverticaldownscale.dwSubfunction = GALFN_SETVIDEOVERTICALDOWNSCALE; 435571d7fec4Smrg sSetVideoverticaldownscale.srch = srch; 435671d7fec4Smrg sSetVideoverticaldownscale.dsth = dsth; 435771d7fec4Smrg 435871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVideoverticaldownscale)) { 435971d7fec4Smrg return 0; 436071d7fec4Smrg } else { 436171d7fec4Smrg return 1; 436271d7fec4Smrg } 436371d7fec4Smrg} 436471d7fec4Smrg 436571d7fec4Smrg/*-------------------------------------------------------------------------- 436671d7fec4Smrg * Gal_set_vbi_source 436771d7fec4Smrg * 436871d7fec4Smrg * Description: This function sets the VBI source. 436971d7fec4Smrg * 437071d7fec4Smrg * parameters: 437171d7fec4Smrg * source: VBI Source type. 437271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 437371d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 437471d7fec4SmrgGal_set_vbi_source(VbiSourceType source) 437571d7fec4Smrg{ 437671d7fec4Smrg GAL_VBISOURCE sSetVbisource; 437771d7fec4Smrg 437871d7fec4Smrg INIT_GAL(&sSetVbisource); 437971d7fec4Smrg sSetVbisource.dwSubfunction = GALFN_SETVBISOURCE; 438071d7fec4Smrg sSetVbisource.source = source; 438171d7fec4Smrg 438271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbisource)) { 438371d7fec4Smrg return 0; 438471d7fec4Smrg } else { 438571d7fec4Smrg return 1; 438671d7fec4Smrg } 438771d7fec4Smrg} 438871d7fec4Smrg 438971d7fec4Smrg/*-------------------------------------------------------------------------- 439071d7fec4Smrg * Gal_get_vbi_source 439171d7fec4Smrg * 439271d7fec4Smrg * Description: This function gets the VBI source. 439371d7fec4Smrg * 439471d7fec4Smrg * parameters: 439571d7fec4Smrg * source: VBI Source type. 439671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 439771d7fec4Smrg *------------------------------------------------------------------------*/ 439871d7fec4SmrgBOOLEAN 439971d7fec4SmrgGal_get_vbi_source(VbiSourceType * source) 440071d7fec4Smrg{ 440171d7fec4Smrg GAL_VBISOURCE sGetVbisource; 440271d7fec4Smrg 440371d7fec4Smrg INIT_GAL(&sGetVbisource); 440471d7fec4Smrg sGetVbisource.dwSubfunction = GALFN_GETVBISOURCE; 440571d7fec4Smrg 440671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbisource)) { 440771d7fec4Smrg return 0; 440871d7fec4Smrg } else { 440971d7fec4Smrg 441071d7fec4Smrg *source = sGetVbisource.source; 441171d7fec4Smrg return 1; 441271d7fec4Smrg } 441371d7fec4Smrg} 441471d7fec4Smrg 441571d7fec4Smrg/*-------------------------------------------------------------------------- 441671d7fec4Smrg * Gal_set_vbi_lines 441771d7fec4Smrg * 441871d7fec4Smrg * Description: This function sets the VBI lines. 441971d7fec4Smrg * 442071d7fec4Smrg * parameters: 442171d7fec4Smrg * even: VBI even lines. 442271d7fec4Smrg * odd: VBI odd lines. 442371d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 442471d7fec4Smrg *------------------------------------------------------------------------*/ 442571d7fec4SmrgBOOLEAN 442671d7fec4SmrgGal_set_vbi_lines(unsigned long even, unsigned long odd) 442771d7fec4Smrg{ 442871d7fec4Smrg GAL_VBILINES sSetVbilines; 442971d7fec4Smrg 443071d7fec4Smrg INIT_GAL(&sSetVbilines); 443171d7fec4Smrg sSetVbilines.dwSubfunction = GALFN_SETVBILINES; 443271d7fec4Smrg sSetVbilines.even = even; 443371d7fec4Smrg sSetVbilines.odd = odd; 443471d7fec4Smrg 443571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbilines)) { 443671d7fec4Smrg return 0; 443771d7fec4Smrg } else { 443871d7fec4Smrg return 1; 443971d7fec4Smrg } 444071d7fec4Smrg} 444171d7fec4Smrg 444271d7fec4Smrg/*-------------------------------------------------------------------------- 444371d7fec4Smrg * Gal_get_vbi_lines 444471d7fec4Smrg * 444571d7fec4Smrg * Description: This function gets the VBI lines. 444671d7fec4Smrg * 444771d7fec4Smrg * parameters: 444871d7fec4Smrg * lines: VBI lines. 444971d7fec4Smrg * odd: VBI odd lines. 445071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 445171d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 445271d7fec4SmrgGal_get_vbi_lines(int odd, unsigned long *lines) 445371d7fec4Smrg{ 445471d7fec4Smrg GAL_VBILINES sGetVbilines; 445571d7fec4Smrg 445671d7fec4Smrg INIT_GAL(&sGetVbilines); 445771d7fec4Smrg sGetVbilines.dwSubfunction = GALFN_GETVBILINES; 445871d7fec4Smrg sGetVbilines.odd = odd; 445971d7fec4Smrg 446071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbilines)) { 446171d7fec4Smrg return 0; 446271d7fec4Smrg } else { 446371d7fec4Smrg *lines = sGetVbilines.lines; 446471d7fec4Smrg return 1; 446571d7fec4Smrg } 446671d7fec4Smrg} 446771d7fec4Smrg 446871d7fec4Smrg/*-------------------------------------------------------------------------- 446971d7fec4Smrg * Gal_set_vbi_total 447071d7fec4Smrg * 447171d7fec4Smrg * Description: This function sets the total number of VBI bytes for each 447271d7fec4Smrg * field. 447371d7fec4Smrg * 447471d7fec4Smrg * parameters: 447571d7fec4Smrg * even: 447671d7fec4Smrg * odd: 447771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 447871d7fec4Smrg *------------------------------------------------------------------------*/ 447971d7fec4SmrgBOOLEAN 448071d7fec4SmrgGal_set_vbi_total(unsigned long even, unsigned long odd) 448171d7fec4Smrg{ 448271d7fec4Smrg GAL_VBITOTAL sSetVbitotal; 448371d7fec4Smrg 448471d7fec4Smrg INIT_GAL(&sSetVbitotal); 448571d7fec4Smrg sSetVbitotal.dwSubfunction = GALFN_SETVBITOTAL; 448671d7fec4Smrg sSetVbitotal.even = even; 448771d7fec4Smrg sSetVbitotal.odd = odd; 448871d7fec4Smrg 448971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVbitotal)) { 449071d7fec4Smrg return 0; 449171d7fec4Smrg } else { 449271d7fec4Smrg return 1; 449371d7fec4Smrg } 449471d7fec4Smrg} 449571d7fec4Smrg 449671d7fec4Smrg/*-------------------------------------------------------------------------- 449771d7fec4Smrg * Gal_set_vbi_total 449871d7fec4Smrg * 449971d7fec4Smrg * Description: This function gets the total number of VBI bytes in the 450071d7fec4Smrg * field. 450171d7fec4Smrg * 450271d7fec4Smrg * parameters: 450371d7fec4Smrg * even: 450471d7fec4Smrg * odd: 450571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 450671d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 450771d7fec4SmrgGal_get_vbi_total(int odd, unsigned long *total) 450871d7fec4Smrg{ 450971d7fec4Smrg GAL_VBITOTAL sGetVbitotal; 451071d7fec4Smrg 451171d7fec4Smrg INIT_GAL(&sGetVbitotal); 451271d7fec4Smrg sGetVbitotal.dwSubfunction = GALFN_GETVBITOTAL; 451371d7fec4Smrg sGetVbitotal.odd = odd; 451471d7fec4Smrg 451571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVbitotal)) { 451671d7fec4Smrg return 0; 451771d7fec4Smrg } else { 451871d7fec4Smrg *total = sGetVbitotal.total; 451971d7fec4Smrg return 1; 452071d7fec4Smrg } 452171d7fec4Smrg} 452271d7fec4Smrg 452371d7fec4Smrg/*-------------------------------------------------------------------------- 452471d7fec4Smrg * Gal_set_vertical_scaler_offset 452571d7fec4Smrg * 452671d7fec4Smrg * Description: This function sets the Video vertical scaler offset. 452771d7fec4Smrg * 452871d7fec4Smrg * parameters: 452971d7fec4Smrg * offset: Vertical Scaler offset. 453071d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 453171d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 453271d7fec4SmrgGal_set_vertical_scaler_offset(char offset) 453371d7fec4Smrg{ 453471d7fec4Smrg GAL_VSCALEROFFSET sSetVscaleroffset; 453571d7fec4Smrg 453671d7fec4Smrg INIT_GAL(&sSetVscaleroffset); 453771d7fec4Smrg sSetVscaleroffset.dwSubfunction = GALFN_SETVSCALEROFFSET; 453871d7fec4Smrg sSetVscaleroffset.offset = offset; 453971d7fec4Smrg 454071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetVscaleroffset)) { 454171d7fec4Smrg return 0; 454271d7fec4Smrg } else { 454371d7fec4Smrg return 1; 454471d7fec4Smrg } 454571d7fec4Smrg} 454671d7fec4Smrg 454771d7fec4Smrg/*-------------------------------------------------------------------------- 454871d7fec4Smrg * Gal_get_vertical_scaler_offset 454971d7fec4Smrg * 455071d7fec4Smrg * Description: This function gets the Video vertical scaler offset. 455171d7fec4Smrg * 455271d7fec4Smrg * parameters: 455371d7fec4Smrg * offset: Vertical Scaler offset. 455471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 455571d7fec4Smrg *------------------------------------------------------------------------*/ BOOLEAN 455671d7fec4SmrgGal_get_vertical_scaler_offset(char *offset) 455771d7fec4Smrg{ 455871d7fec4Smrg GAL_VSCALEROFFSET sGetVscaleroffset; 455971d7fec4Smrg 456071d7fec4Smrg INIT_GAL(&sGetVscaleroffset); 456171d7fec4Smrg sGetVscaleroffset.dwSubfunction = GALFN_GETVSCALEROFFSET; 456271d7fec4Smrg 456371d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetVscaleroffset)) { 456471d7fec4Smrg return 0; 456571d7fec4Smrg } else { 456671d7fec4Smrg 456771d7fec4Smrg *offset = sGetVscaleroffset.offset; 456871d7fec4Smrg return 1; 456971d7fec4Smrg } 457071d7fec4Smrg} 457171d7fec4Smrg 457271d7fec4Smrg/*-------------------------------------------------------------------------- 457371d7fec4Smrg * Gal_get_video_interlaced 457471d7fec4Smrg * 457571d7fec4Smrg * Description: This function gets the video interlaced mode. 457671d7fec4Smrg * parameters: 457771d7fec4Smrg * interlaced: ptr to the interlaced status. 457871d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 457971d7fec4Smrg *------------------------------------------------------------------------*/ 458071d7fec4SmrgBOOLEAN 458171d7fec4SmrgGal_get_video_interlaced(int *interlaced) 458271d7fec4Smrg{ 458371d7fec4Smrg GAL_GETVIDEOINTERLACED sGetvideointerlaced; 458471d7fec4Smrg 458571d7fec4Smrg INIT_GAL(&sGetvideointerlaced); 458671d7fec4Smrg sGetvideointerlaced.dwSubfunction = GALFN_GETVIDEOINTERLACED; 458771d7fec4Smrg 458871d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetvideointerlaced)) { 458971d7fec4Smrg return 0; 459071d7fec4Smrg } else { 459171d7fec4Smrg *interlaced = sGetvideointerlaced.interlaced; 459271d7fec4Smrg return 1; 459371d7fec4Smrg } 459471d7fec4Smrg} 459571d7fec4Smrg 459671d7fec4Smrg/*-------------------------------------------------------------------------- 459771d7fec4Smrg * Gal_get_color_space_YUV 459871d7fec4Smrg * 459971d7fec4Smrg * Description: This function gets the video color space YUV. 460071d7fec4Smrg * parameters: 460171d7fec4Smrg * colorspace: ptr to the color space. 460271d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 460371d7fec4Smrg *------------------------------------------------------------------------*/ 460471d7fec4SmrgBOOLEAN 460571d7fec4SmrgGal_get_color_space_YUV(int *colorspace) 460671d7fec4Smrg{ 460771d7fec4Smrg GAL_COLORSPACEYUV sGetcolorspaceyuv; 460871d7fec4Smrg 460971d7fec4Smrg INIT_GAL(&sGetcolorspaceyuv); 461071d7fec4Smrg sGetcolorspaceyuv.dwSubfunction = GALFN_GETCOLORSPACEYUV; 461171d7fec4Smrg 461271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetcolorspaceyuv)) { 461371d7fec4Smrg return 0; 461471d7fec4Smrg } else { 461571d7fec4Smrg *colorspace = sGetcolorspaceyuv.colorspace; 461671d7fec4Smrg return 1; 461771d7fec4Smrg } 461871d7fec4Smrg} 461971d7fec4Smrg 462071d7fec4Smrg/*-------------------------------------------------------------------------- 462171d7fec4Smrg * Gal_get_genlock_enable 462271d7fec4Smrg * 462371d7fec4Smrg * Description: This function gets the enable state of the genlock. 462471d7fec4Smrg * parameters: 462571d7fec4Smrg * enable: ptr to the enable state of the genlock. 462671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 462771d7fec4Smrg *------------------------------------------------------------------------*/ 462871d7fec4SmrgBOOLEAN 462971d7fec4SmrgGal_get_genlock_enable(int *enable) 463071d7fec4Smrg{ 463171d7fec4Smrg GAL_GENLOCKENABLE sGetgenlockenable; 463271d7fec4Smrg 463371d7fec4Smrg INIT_GAL(&sGetgenlockenable); 463471d7fec4Smrg sGetgenlockenable.dwSubfunction = GALFN_GETGENLOCKENABLE; 463571d7fec4Smrg 463671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetgenlockenable)) { 463771d7fec4Smrg return 0; 463871d7fec4Smrg } else { 463971d7fec4Smrg *enable = sGetgenlockenable.enable; 464071d7fec4Smrg return 1; 464171d7fec4Smrg } 464271d7fec4Smrg} 464371d7fec4Smrg 464471d7fec4Smrg/*-------------------------------------------------------------------------- 464571d7fec4Smrg * Gal_set_genlock_enable 464671d7fec4Smrg * 464771d7fec4Smrg * Description: This function enable/disables and configure the genlock 464871d7fec4Smrg * according to the parameters. 464971d7fec4Smrg * parameters: 465071d7fec4Smrg * enable: enable state of the genlock. 465171d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 465271d7fec4Smrg *------------------------------------------------------------------------*/ 465371d7fec4SmrgBOOLEAN 465471d7fec4SmrgGal_set_genlock_enable(int enable) 465571d7fec4Smrg{ 465671d7fec4Smrg GAL_GENLOCKENABLE sSetgenlockenable; 465771d7fec4Smrg 465871d7fec4Smrg INIT_GAL(&sSetgenlockenable); 465971d7fec4Smrg sSetgenlockenable.dwSubfunction = GALFN_SETGENLOCKENABLE; 466071d7fec4Smrg 466171d7fec4Smrg sSetgenlockenable.enable = enable; 466271d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetgenlockenable)) { 466371d7fec4Smrg return 0; 466471d7fec4Smrg } else { 466571d7fec4Smrg return 1; 466671d7fec4Smrg } 466771d7fec4Smrg} 466871d7fec4Smrg 466971d7fec4Smrg/*-------------------------------------------------------------------------- 467071d7fec4Smrg * Gal_get_genlock_delay 467171d7fec4Smrg * 467271d7fec4Smrg * Description: This function gets the genlock delay. 467371d7fec4Smrg * parameters: 467471d7fec4Smrg * delay: Ptr to the genlock delay. 467571d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 467671d7fec4Smrg *------------------------------------------------------------------------*/ 467771d7fec4SmrgBOOLEAN 467871d7fec4SmrgGal_get_genlock_delay(unsigned long *delay) 467971d7fec4Smrg{ 468071d7fec4Smrg GAL_GENLOCKDELAY sGetgenlockdelay; 468171d7fec4Smrg 468271d7fec4Smrg INIT_GAL(&sGetgenlockdelay); 468371d7fec4Smrg sGetgenlockdelay.dwSubfunction = GALFN_GETGENLOCKDELAY; 468471d7fec4Smrg 468571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetgenlockdelay)) { 468671d7fec4Smrg return 0; 468771d7fec4Smrg } else { 468871d7fec4Smrg *delay = sGetgenlockdelay.delay; 468971d7fec4Smrg return 1; 469071d7fec4Smrg } 469171d7fec4Smrg} 469271d7fec4Smrg 469371d7fec4Smrg/*-------------------------------------------------------------------------- 469471d7fec4Smrg * Gal_set_genlock_delay 469571d7fec4Smrg * 469671d7fec4Smrg * Description: This function sets the genlock delay. 469771d7fec4Smrg * parameters: 469871d7fec4Smrg * delay: genlock delay. 469971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 470071d7fec4Smrg *------------------------------------------------------------------------*/ 470171d7fec4SmrgBOOLEAN 470271d7fec4SmrgGal_set_genlock_delay(unsigned long delay) 470371d7fec4Smrg{ 470471d7fec4Smrg GAL_GENLOCKDELAY sSetgenlockdelay; 470571d7fec4Smrg 470671d7fec4Smrg INIT_GAL(&sSetgenlockdelay); 470771d7fec4Smrg sSetgenlockdelay.dwSubfunction = GALFN_SETGENLOCKDELAY; 470871d7fec4Smrg 470971d7fec4Smrg sSetgenlockdelay.delay = delay; 471071d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetgenlockdelay)) { 471171d7fec4Smrg return 0; 471271d7fec4Smrg } else { 471371d7fec4Smrg return 1; 471471d7fec4Smrg } 471571d7fec4Smrg} 471671d7fec4Smrg 471771d7fec4SmrgBOOLEAN 471871d7fec4SmrgGal_set_top_line_in_odd(int enable) 471971d7fec4Smrg{ 472071d7fec4Smrg GAL_TOPLINEINODD sSettoplineinodd; 472171d7fec4Smrg 472271d7fec4Smrg INIT_GAL(&sSettoplineinodd); 472371d7fec4Smrg sSettoplineinodd.dwSubfunction = GALFN_SETTOPLINEINODD; 472471d7fec4Smrg 472571d7fec4Smrg sSettoplineinodd.enable = enable; 472671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSettoplineinodd)) { 472771d7fec4Smrg return 0; 472871d7fec4Smrg } else { 472971d7fec4Smrg return 1; 473071d7fec4Smrg } 473171d7fec4Smrg} 473271d7fec4Smrg 473371d7fec4Smrg/*-------------------------------------------------------------------------- 473471d7fec4Smrg * Gal_get_video_cursor. 473571d7fec4Smrg * 473671d7fec4Smrg * Description: This function gets configuration of the Video Hardware 473771d7fec4Smrg * cursor. 473871d7fec4Smrg * parameters: 473971d7fec4Smrg * key: color key. 474071d7fec4Smrg * mask: color mask. 474171d7fec4Smrg *select_color2: selected for color2. 474271d7fec4Smrg * color1: color1 value. 474371d7fec4Smrg * color2: color2 value. 474471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 474571d7fec4Smrg *------------------------------------------------------------------------*/ 474671d7fec4SmrgBOOLEAN 474771d7fec4SmrgGal_get_video_cursor(unsigned long *key, 474871d7fec4Smrg unsigned long *mask, 474971d7fec4Smrg unsigned short *select_color2, 475071d7fec4Smrg unsigned long *color1, unsigned long *color2) 475171d7fec4Smrg{ 475271d7fec4Smrg GAL_VIDEOCURSOR sGetvideocursor; 475371d7fec4Smrg 475471d7fec4Smrg INIT_GAL(&sGetvideocursor); 475571d7fec4Smrg sGetvideocursor.dwSubfunction = GALFN_GETVIDEOCURSOR; 475671d7fec4Smrg 475771d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetvideocursor)) { 475871d7fec4Smrg return 0; 475971d7fec4Smrg } else { 476071d7fec4Smrg *key = sGetvideocursor.key; 476171d7fec4Smrg *mask = sGetvideocursor.mask; 476271d7fec4Smrg *select_color2 = sGetvideocursor.select_color2; 476371d7fec4Smrg *color1 = sGetvideocursor.color1; 476471d7fec4Smrg *color2 = sGetvideocursor.color2; 476571d7fec4Smrg return 1; 476671d7fec4Smrg } 476771d7fec4Smrg} 476871d7fec4Smrg 476971d7fec4Smrg/*-------------------------------------------------------------------------- 477071d7fec4Smrg * Gal_read_crc. 477171d7fec4Smrg * 477271d7fec4Smrg * Description: This function reads the hardware CRC value, which is used for 477371d7fec4Smrg * automated testing. 477471d7fec4Smrg * parameters: 477571d7fec4Smrg * crc: Holds the crc value. 477671d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 477771d7fec4Smrg *------------------------------------------------------------------------*/ 477871d7fec4SmrgBOOLEAN 477971d7fec4SmrgGal_read_crc(unsigned long *crc) 478071d7fec4Smrg{ 478171d7fec4Smrg GAL_READCRC sReadcrc; 478271d7fec4Smrg 478371d7fec4Smrg INIT_GAL(&sReadcrc); 478471d7fec4Smrg sReadcrc.dwSubfunction = GALFN_READCRC; 478571d7fec4Smrg 478671d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sReadcrc)) { 478771d7fec4Smrg return 0; 478871d7fec4Smrg } else { 478971d7fec4Smrg *crc = sReadcrc.crc; 479071d7fec4Smrg return 1; 479171d7fec4Smrg } 479271d7fec4Smrg} 479371d7fec4Smrg 479471d7fec4Smrg/*-------------------------------------------------------------------------- 479571d7fec4Smrg * Gal_read_window_crc. 479671d7fec4Smrg * 479771d7fec4Smrg * Description: This function reads the hardware CRC value for a subsection 479871d7fec4Smrg * of the display. 479971d7fec4Smrg * 480071d7fec4Smrg * parameters: 480171d7fec4Smrg * source: 480271d7fec4Smrg * x: 480371d7fec4Smrg * y: 480471d7fec4Smrg * width: 480571d7fec4Smrg * height: 480671d7fec4Smrg * crc: 480771d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 480871d7fec4Smrg *------------------------------------------------------------------------*/ 480971d7fec4SmrgBOOLEAN 481071d7fec4SmrgGal_read_window_crc(int source, unsigned short x, unsigned short y, 481171d7fec4Smrg unsigned short width, unsigned short height, 481271d7fec4Smrg int crc32, unsigned long *crc) 481371d7fec4Smrg{ 481471d7fec4Smrg GAL_READWINDOWCRC sReadwindowcrc; 481571d7fec4Smrg 481671d7fec4Smrg INIT_GAL(&sReadwindowcrc); 481771d7fec4Smrg sReadwindowcrc.dwSubfunction = GALFN_READWINDOWCRC; 481871d7fec4Smrg sReadwindowcrc.source = source; 481971d7fec4Smrg sReadwindowcrc.x = x; 482071d7fec4Smrg sReadwindowcrc.y = y; 482171d7fec4Smrg sReadwindowcrc.width = width; 482271d7fec4Smrg sReadwindowcrc.height = height; 482371d7fec4Smrg sReadwindowcrc.crc32 = crc32; 482471d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sReadwindowcrc)) { 482571d7fec4Smrg return 0; 482671d7fec4Smrg } else { 482771d7fec4Smrg *crc = sReadwindowcrc.crc; 482871d7fec4Smrg return 1; 482971d7fec4Smrg } 483071d7fec4Smrg} 483171d7fec4Smrg 483271d7fec4Smrg/*-------------------------------------------------------------------------- 483371d7fec4Smrg * Gal_get_macrovision_enable. 483471d7fec4Smrg * 483571d7fec4Smrg * Description: This function gets the enable state of the macrovision. 483671d7fec4Smrg * 483771d7fec4Smrg * parameters: 483871d7fec4Smrg * enable: ptr holds the macrovision enable state. 483971d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 484071d7fec4Smrg *------------------------------------------------------------------------*/ 484171d7fec4SmrgBOOLEAN 484271d7fec4SmrgGal_get_macrovision_enable(int *enable) 484371d7fec4Smrg{ 484471d7fec4Smrg GAL_MACROVISIONENABLE sGetmacrovisionenable; 484571d7fec4Smrg 484671d7fec4Smrg INIT_GAL(&sGetmacrovisionenable); 484771d7fec4Smrg sGetmacrovisionenable.dwSubfunction = GALFN_GETMACROVISIONENABLE; 484871d7fec4Smrg 484971d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sGetmacrovisionenable)) { 485071d7fec4Smrg return 0; 485171d7fec4Smrg } else { 485271d7fec4Smrg *enable = sGetmacrovisionenable.enable; 485371d7fec4Smrg return 1; 485471d7fec4Smrg } 485571d7fec4Smrg} 485671d7fec4Smrg 485771d7fec4Smrg/*-------------------------------------------------------------------------- 485871d7fec4Smrg * Gal_set_macrovision_enable. 485971d7fec4Smrg * 486071d7fec4Smrg * Description: This function gets the enable state of the macrovision. 486171d7fec4Smrg * 486271d7fec4Smrg * parameters: 486371d7fec4Smrg * enable: macrovision enable state. 486471d7fec4Smrg * return: '1' was returned on success otherwise '0' was returned. 486571d7fec4Smrg *------------------------------------------------------------------------*/ 486671d7fec4SmrgBOOLEAN 486771d7fec4SmrgGal_set_macrovision_enable(int enable) 486871d7fec4Smrg{ 486971d7fec4Smrg GAL_MACROVISIONENABLE sSetmacrovisionenable; 487071d7fec4Smrg 487171d7fec4Smrg INIT_GAL(&sSetmacrovisionenable); 487271d7fec4Smrg sSetmacrovisionenable.dwSubfunction = GALFN_SETMACROVISIONENABLE; 487371d7fec4Smrg 487471d7fec4Smrg sSetmacrovisionenable.enable = enable; 487571d7fec4Smrg if (ioctl(ifbdev_handle, FBIOGAL_API, &sSetmacrovisionenable)) { 487671d7fec4Smrg return 0; 487771d7fec4Smrg } else { 487871d7fec4Smrg return 1; 487971d7fec4Smrg } 488071d7fec4Smrg} 4881