11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * linux/drivers/video/kyro/kryo.h 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Copyright (C) 2002 STMicroelectronics 51da177e4SLinus Torvalds * Copyright (C) 2004 Paul Mundt 61da177e4SLinus Torvalds * 71da177e4SLinus Torvalds * This file is subject to the terms and conditions of the GNU General Public 81da177e4SLinus Torvalds * License. See the file COPYING in the main directory of this archive 91da177e4SLinus Torvalds * for more details. 101da177e4SLinus Torvalds */ 111da177e4SLinus Torvalds 121da177e4SLinus Torvalds #ifndef _KYRO_H 131da177e4SLinus Torvalds #define _KYRO_H 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds struct kyrofb_info { 161da177e4SLinus Torvalds void __iomem *regbase; 171da177e4SLinus Torvalds 18a26968dfSAntonino A. Daplas u32 palette[16]; 191da177e4SLinus Torvalds u32 HTot; /* Hor Total Time */ 201da177e4SLinus Torvalds u32 HFP; /* Hor Front Porch */ 211da177e4SLinus Torvalds u32 HST; /* Hor Sync Time */ 221da177e4SLinus Torvalds u32 HBP; /* Hor Back Porch */ 231da177e4SLinus Torvalds s32 HSP; /* Hor Sync Polarity */ 241da177e4SLinus Torvalds u32 VTot; /* Ver Total Time */ 251da177e4SLinus Torvalds u32 VFP; /* Ver Front Porch */ 261da177e4SLinus Torvalds u32 VST; /* Ver Sync Time */ 271da177e4SLinus Torvalds u32 VBP; /* Ver Back Porch */ 281da177e4SLinus Torvalds s32 VSP; /* Ver Sync Polarity */ 291da177e4SLinus Torvalds u32 XRES; /* X Resolution */ 301da177e4SLinus Torvalds u32 YRES; /* Y Resolution */ 311da177e4SLinus Torvalds u32 VFREQ; /* Ver Frequency */ 321da177e4SLinus Torvalds u32 PIXCLK; /* Pixel Clock */ 331da177e4SLinus Torvalds u32 HCLK; /* Hor Clock */ 341da177e4SLinus Torvalds 3525985edcSLucas De Marchi /* Useful to hold depth here for Linux */ 361da177e4SLinus Torvalds u8 PIXDEPTH; 371da177e4SLinus Torvalds 38*9e517ac8SLuis R. Rodriguez int wc_cookie; 391da177e4SLinus Torvalds }; 401da177e4SLinus Torvalds 411da177e4SLinus Torvalds /* 421da177e4SLinus Torvalds * benedict.gaster@superh.com 431da177e4SLinus Torvalds * Added the follow IOCTLS for the creation of overlay services... 441da177e4SLinus Torvalds */ 451da177e4SLinus Torvalds #define KYRO_IOC_MAGIC 'k' 461da177e4SLinus Torvalds 471da177e4SLinus Torvalds #define KYRO_IOCTL_OVERLAY_CREATE _IO(KYRO_IOC_MAGIC, 0) 481da177e4SLinus Torvalds #define KYRO_IOCTL_OVERLAY_VIEWPORT_SET _IO(KYRO_IOC_MAGIC, 1) 491da177e4SLinus Torvalds #define KYRO_IOCTL_SET_VIDEO_MODE _IO(KYRO_IOC_MAGIC, 2) 501da177e4SLinus Torvalds #define KYRO_IOCTL_UVSTRIDE _IO(KYRO_IOC_MAGIC, 3) 511da177e4SLinus Torvalds #define KYRO_IOCTL_OVERLAY_OFFSET _IO(KYRO_IOC_MAGIC, 4) 521da177e4SLinus Torvalds #define KYRO_IOCTL_STRIDE _IO(KYRO_IOC_MAGIC, 5) 531da177e4SLinus Torvalds 541da177e4SLinus Torvalds /* 551da177e4SLinus Torvalds * The follow 3 structures are used to pass data from user space into the kernel 561da177e4SLinus Torvalds * for the creation of overlay surfaces and setting the video mode. 571da177e4SLinus Torvalds */ 581da177e4SLinus Torvalds typedef struct _OVERLAY_CREATE { 591da177e4SLinus Torvalds u32 ulWidth; 601da177e4SLinus Torvalds u32 ulHeight; 611da177e4SLinus Torvalds int bLinear; 621da177e4SLinus Torvalds } overlay_create; 631da177e4SLinus Torvalds 641da177e4SLinus Torvalds typedef struct _OVERLAY_VIEWPORT_SET { 651da177e4SLinus Torvalds u32 xOrgin; 661da177e4SLinus Torvalds u32 yOrgin; 671da177e4SLinus Torvalds u32 xSize; 681da177e4SLinus Torvalds u32 ySize; 691da177e4SLinus Torvalds } overlay_viewport_set; 701da177e4SLinus Torvalds 711da177e4SLinus Torvalds typedef struct _SET_VIDEO_MODE { 721da177e4SLinus Torvalds u32 ulWidth; 731da177e4SLinus Torvalds u32 ulHeight; 741da177e4SLinus Torvalds u32 ulScan; 751da177e4SLinus Torvalds u8 displayDepth; 761da177e4SLinus Torvalds int bLinear; 771da177e4SLinus Torvalds } set_video_mode; 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds #endif /* _KYRO_H */ 80