void Tegra2Vid_Uninstall();
// Internal
// Filesystem
-size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer);
-size_t Tegra2Vid_Write(tVFS_Node *node, off_t off, size_t len, const void *buffer);
+size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer, Uint Flags);
+size_t Tegra2Vid_Write(tVFS_Node *node, off_t off, size_t len, const void *buffer, Uint Flags);
int Tegra2Vid_IOCtl(tVFS_Node *node, int id, void *data);
// -- Internals
int Tegra2Vid_int_SetMode(int Mode);
Log_Debug("Tegra2Vid", "[0x%03x] = 0x%08x (%s)", i, gpTegra2Vid_IOMem[i],
(csaTegra2Vid_RegisterNames[i] ? csaTegra2Vid_RegisterNames[i] : "-"));
}
+#define DUMPREGS(s,e) do{for(int ii=(s);ii<=(e);ii++) _dumpreg(ii);}while(0)
void Tegra2Vid_int_DumpRegisters(void)
{
Log_Debug("Tegra2Vid", "Display CMD Registers");
- for( int i = 0x000; i <= 0x01A; i ++ ) _dumpreg(i);
+ DUMPREGS(0x000, 0x01A); // 00 -- 1A :: CMD (block 1)
+ DUMPREGS(0x028, 0x043); // 28 -- 43 :: CMD (block 2)
for( int i = 0x028; i <= 0x043; i ++ ) _dumpreg(i);
Log_Debug("Tegra2Vid", "Display COM Registers");
for( int i = 0x300; i <= 0x329; i ++ ) _dumpreg(i);
gpTegra2Vid_IOMem = (void*)MM_MapHWPages(gTegra2Vid_PhysBase, 256/4);
#if DUMP_REGISTERS
- Tegra2Vid_int_DumpRegisters();
+// Tegra2Vid_int_DumpRegisters();
#endif
// HACK!!!
#endif
#if 0
+ // Map the original framebuffer into memory and write to it (tests the original state)
giTegra2Vid_FramebufferSize =
(gpTegra2Vid_IOMem[DC_WIN_A_SIZE_0]&0xFFFF)
*(gpTegra2Vid_IOMem[DC_WIN_A_SIZE_0]>>16)*4;
#endif
gpTegra2Vid_Cursor = (void*)MM_AllocDMA(1, 26, NULL);
+ Log_Debug("Tegra2Vid", "gpTegra2Vid_Cursor = %p", gpTegra2Vid_Cursor);
Tegra2Vid_int_SetMode(0);
/**
* \brief Read from the framebuffer
*/
-size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer)
+size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer, Uint Flags)
{
return 0;
}
/**
* \brief Write to the framebuffer
*/
-size_t Tegra2Vid_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer)
+size_t Tegra2Vid_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags)
{
gTegra2Vid_DrvUtil_BufInfo.BufferFormat = giTegra2Vid_BufferMode;
return DrvUtil_Video_WriteLFB(&gTegra2Vid_DrvUtil_BufInfo, Offset, Length, Buffer);
switch(ID)
{
- BASE_IOCTLS(DRV_TYPE_VIDEO, "PL110", VERSION, csaTegra2Vid_IOCtls);
+ BASE_IOCTLS(DRV_TYPE_VIDEO, "Tegra2", VERSION, csaTegra2Vid_IOCtls);
case VIDEO_IOCTL_SETBUFFORMAT:
DrvUtil_Video_RemoveCursor( &gTegra2Vid_DrvUtil_BufInfo );
if( gpTegra2Vid_Framebuffer )
{
// TODO: Free framebuffer for reallocation
+ Log_Error("Tegra2Vid", "TODO: Free existing framebuffer");
}
giTegra2Vid_FramebufferSize = w*h*4;