void Tegra2Vid_Uninstall();\r
// Internal\r
// Filesystem\r
-Uint64 Tegra2Vid_Read(tVFS_Node *node, Uint64 off, Uint64 len, void *buffer);\r
-Uint64 Tegra2Vid_Write(tVFS_Node *node, Uint64 off, Uint64 len, void *buffer);\r
+size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer);\r
+size_t Tegra2Vid_Write(tVFS_Node *node, off_t off, size_t len, const void *buffer);\r
int Tegra2Vid_IOCtl(tVFS_Node *node, int id, void *data);\r
// -- Internals\r
int Tegra2Vid_int_SetMode(int Mode);\r
\r
// === GLOBALS ===\r
MODULE_DEFINE(0, VERSION, Tegra2Vid, Tegra2Vid_Install, NULL, NULL);\r
-tDevFS_Driver gTegra2Vid_DriverStruct = {\r
- NULL, "Tegra2Vid",\r
- {\r
+tVFS_NodeType gTegra2Vid_NodeType = {\r
.Read = Tegra2Vid_Read,\r
.Write = Tegra2Vid_Write,\r
.IOCtl = Tegra2Vid_IOCtl\r
- }\r
+ };\r
+tDevFS_Driver gTegra2Vid_DriverStruct = {\r
+ NULL, "Tegra2Vid",\r
+ {.Type = &gTegra2Vid_NodeType}\r
};\r
// -- Options\r
tPAddr gTegra2Vid_PhysBase = TEGRA2VID_BASE;\r
*/\r
int Tegra2Vid_Install(char **Arguments)\r
{\r
+ return MODULE_ERR_NOTNEEDED;\r
// KeyVal_Parse(&gTegra2Vid_KeyValueParser, Arguments);\r
\r
gpTegra2Vid_IOMem = (void*)MM_MapHWPages(gTegra2Vid_PhysBase, 256/4);\r
Log_Debug("Tegra2Vid", "[0x%03x] = 0x%08x", i, gpTegra2Vid_IOMem[i]);\r
}\r
// return 1;\r
- \r
+\r
+ // HACK!!!\r
+#if 0\r
+ {\r
+ int w = 1680, h = 1050;\r
+ gpTegra2Vid_IOMem[DC_DISP_DISP_ACTIVE_0] = (h << 16) | w;\r
+ gpTegra2Vid_IOMem[DC_WIN_A_SIZE_0] = (h << 16) | w;\r
+ gpTegra2Vid_IOMem[DC_WIN_A_PRESCALED_SIZE_0] = (h << 16) | w;\r
+ }\r
+#endif\r
+\r
giTegra2Vid_FramebufferSize =\r
(gpTegra2Vid_IOMem[DC_WIN_A_SIZE_0]&0xFFFF)\r
*(gpTegra2Vid_IOMem[DC_WIN_A_SIZE_0]>>16)*4;\r
\r
Log_Debug("Tegra2Vid", "giTegra2Vid_FramebufferSize = 0x%x", giTegra2Vid_FramebufferSize);\r
- gpTegra2Vid_Framebuffer = MM_MapHWPages(\r
+ gpTegra2Vid_Framebuffer = (void*)MM_MapHWPages(\r
gpTegra2Vid_IOMem[DC_WINBUF_A_START_ADDR_0],\r
(giTegra2Vid_FramebufferSize+PAGE_SIZE-1)/PAGE_SIZE\r
);\r
- memset(gpTegra2Vid_Framebuffer, 0x1F, 0x1000);\r
+ memset(gpTegra2Vid_Framebuffer, 0xFF, 0x1000);\r
+\r
+// gpTegra2Vid_IOMem[DC_WIN_A_WIN_OPTIONS_0] &= ~0x40;\r
+// gpTegra2Vid_IOMem[DC_WIN_A_COLOR_DEPTH_0] = 12; // Could be 13 (BGR/RGB)\r
+ gTegra2Vid_DrvUtil_BufInfo.Width = 1024;\r
+ gTegra2Vid_DrvUtil_BufInfo.Height = 768;\r
+ gTegra2Vid_DrvUtil_BufInfo.Pitch = 1024*4;\r
+ gTegra2Vid_DrvUtil_BufInfo.Depth = 32;\r
+ gTegra2Vid_DrvUtil_BufInfo.Framebuffer = gpTegra2Vid_Framebuffer;\r
\r
\r
// Tegra2Vid_int_SetMode(4);\r
/**\r
* \brief Read from the framebuffer\r
*/\r
-Uint64 Tegra2Vid_Read(tVFS_Node *node, Uint64 off, Uint64 len, void *buffer)\r
+size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer)\r
{\r
return 0;\r
}\r
/**\r
* \brief Write to the framebuffer\r
*/\r
-Uint64 Tegra2Vid_Write(tVFS_Node *Node, Uint64 Offset, Uint64 Length, void *Buffer)\r
+size_t Tegra2Vid_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer)\r
{\r
gTegra2Vid_DrvUtil_BufInfo.BufferFormat = giTegra2Vid_BufferMode;\r
return DrvUtil_Video_WriteLFB(&gTegra2Vid_DrvUtil_BufInfo, Offset, Length, Buffer);\r
case VIDEO_IOCTL_FINDMODE:\r
{\r
tVideo_IOCtl_Mode *mode = Data;\r
- int closest, closestArea, reqArea = 0;\r
+ int closest=0, closestArea, reqArea = 0;\r
if(!Data || !CheckMem(Data, sizeof(tVideo_IOCtl_Mode)))\r
LEAVE_RET('i', -1);\r
if( mode->bpp != 32 )\r
*(Uint32*)(gpTegra2Vid_IOMem + DC_DISP_DISP_ACTIVE_0) = (mode->H << 16) | mode->W;\r
\r
*(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_POSITION_0) = 0;\r
- *(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_SIZE_0) = (mode->H << 16) | mode->W;\r
+ *(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_SIZE_0) = (h << 16) | w;\r
*(Uint32*)(gpTegra2Vid_IOMem + DC_DISP_DISP_COLOR_CONTROL_0) = 0x8; // BASE888\r
*(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_COLOR_DEPTH_0) = 12; // Could be 13 (BGR/RGB)\r
- *(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_PRESCALED_SIZE_0) = (mode->H << 16) | mode->W;\r
+ *(Uint32*)(gpTegra2Vid_IOMem + DC_WIN_A_PRESCALED_SIZE_0) = (h << 16) | w;\r
\r
Log_Debug("Tegra2Vid", "Mode %i (%ix%i) selected", Mode, w, h);\r
\r