kyro.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * linux/drivers/video/kyro/kryo.h
  3. *
  4. * Copyright (C) 2002 STMicroelectronics
  5. * Copyright (C) 2004 Paul Mundt
  6. *
  7. * This file is subject to the terms and conditions of the GNU General Public
  8. * License. See the file COPYING in the main directory of this archive
  9. * for more details.
  10. */
  11. #ifndef _KYRO_H
  12. #define _KYRO_H
  13. struct kyrofb_info {
  14. void __iomem *regbase;
  15. u32 HTot; /* Hor Total Time */
  16. u32 HFP; /* Hor Front Porch */
  17. u32 HST; /* Hor Sync Time */
  18. u32 HBP; /* Hor Back Porch */
  19. s32 HSP; /* Hor Sync Polarity */
  20. u32 VTot; /* Ver Total Time */
  21. u32 VFP; /* Ver Front Porch */
  22. u32 VST; /* Ver Sync Time */
  23. u32 VBP; /* Ver Back Porch */
  24. s32 VSP; /* Ver Sync Polarity */
  25. u32 XRES; /* X Resolution */
  26. u32 YRES; /* Y Resolution */
  27. u32 VFREQ; /* Ver Frequency */
  28. u32 PIXCLK; /* Pixel Clock */
  29. u32 HCLK; /* Hor Clock */
  30. /* Usefull to hold depth here for Linux */
  31. u8 PIXDEPTH;
  32. #ifdef CONFIG_MTRR
  33. int mtrr_handle;
  34. #endif
  35. };
  36. extern int kyro_dev_init(void);
  37. extern void kyro_dev_reset(void);
  38. extern unsigned char *kyro_dev_physical_fb_ptr(void);
  39. extern unsigned char *kyro_dev_virtual_fb_ptr(void);
  40. extern void *kyro_dev_physical_regs_ptr(void);
  41. extern void *kyro_dev_virtual_regs_ptr(void);
  42. extern unsigned int kyro_dev_fb_size(void);
  43. extern unsigned int kyro_dev_regs_size(void);
  44. extern u32 kyro_dev_overlay_offset(void);
  45. /*
  46. * benedict.gaster@superh.com
  47. * Added the follow IOCTLS for the creation of overlay services...
  48. */
  49. #define KYRO_IOC_MAGIC 'k'
  50. #define KYRO_IOCTL_OVERLAY_CREATE _IO(KYRO_IOC_MAGIC, 0)
  51. #define KYRO_IOCTL_OVERLAY_VIEWPORT_SET _IO(KYRO_IOC_MAGIC, 1)
  52. #define KYRO_IOCTL_SET_VIDEO_MODE _IO(KYRO_IOC_MAGIC, 2)
  53. #define KYRO_IOCTL_UVSTRIDE _IO(KYRO_IOC_MAGIC, 3)
  54. #define KYRO_IOCTL_OVERLAY_OFFSET _IO(KYRO_IOC_MAGIC, 4)
  55. #define KYRO_IOCTL_STRIDE _IO(KYRO_IOC_MAGIC, 5)
  56. /*
  57. * The follow 3 structures are used to pass data from user space into the kernel
  58. * for the creation of overlay surfaces and setting the video mode.
  59. */
  60. typedef struct _OVERLAY_CREATE {
  61. u32 ulWidth;
  62. u32 ulHeight;
  63. int bLinear;
  64. } overlay_create;
  65. typedef struct _OVERLAY_VIEWPORT_SET {
  66. u32 xOrgin;
  67. u32 yOrgin;
  68. u32 xSize;
  69. u32 ySize;
  70. } overlay_viewport_set;
  71. typedef struct _SET_VIDEO_MODE {
  72. u32 ulWidth;
  73. u32 ulHeight;
  74. u32 ulScan;
  75. u8 displayDepth;
  76. int bLinear;
  77. } set_video_mode;
  78. #endif /* _KYRO_H */