Merge branch 'master' of git://git.ucc.asn.au/tpg/acess2
[tpg/acess2.git] / KernelLand / Modules / Display / Tegra2Vid / main.c
index 09bbbb8..a249fd8 100644 (file)
@@ -24,8 +24,8 @@
 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);
@@ -70,11 +70,13 @@ inline void _dumpreg(int i)
        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);
@@ -112,6 +114,7 @@ int Tegra2Vid_Install(char **Arguments)
 #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;
@@ -167,7 +170,7 @@ void Tegra2Vid_Uninstall()
 /**
  * \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;
 }
@@ -175,7 +178,7 @@ size_t Tegra2Vid_Read(tVFS_Node *node, off_t off, size_t len, void *buffer)
 /**
  * \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);
@@ -193,7 +196,7 @@ int Tegra2Vid_IOCtl(tVFS_Node *Node, int ID, void *Data)
        
        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 );
@@ -359,6 +362,7 @@ int Tegra2Vid_int_SetMode(int Mode)
                if( gpTegra2Vid_Framebuffer )
                {
                        // TODO: Free framebuffer for reallocation
+                       Log_Error("Tegra2Vid", "TODO: Free existing framebuffer");
                }
 
                giTegra2Vid_FramebufferSize = w*h*4;            

UCC git Repository :: git.ucc.asn.au