X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FDisplay%2FTegra2Vid%2Fmain.c;h=a249fd8dc51f683a9ecb9bf171e993a5155ea269;hb=845b6f9d90bb87b5e760e4d49aa93b0e003ab750;hp=34b58f11f760dcf571446cbb4493e3dea0efd3ff;hpb=36b950d17b828c7cd2e5e9dbe5fb4cbded89889c;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Display/Tegra2Vid/main.c b/KernelLand/Modules/Display/Tegra2Vid/main.c index 34b58f11..a249fd8d 100644 --- a/KernelLand/Modules/Display/Tegra2Vid/main.c +++ b/KernelLand/Modules/Display/Tegra2Vid/main.c @@ -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); @@ -98,7 +100,7 @@ int Tegra2Vid_Install(char **Arguments) gpTegra2Vid_IOMem = (void*)MM_MapHWPages(gTegra2Vid_PhysBase, 256/4); #if DUMP_REGISTERS - Tegra2Vid_int_DumpRegisters(); +// Tegra2Vid_int_DumpRegisters(); #endif // HACK!!! @@ -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; @@ -148,6 +151,7 @@ int Tegra2Vid_Install(char **Arguments) #endif gpTegra2Vid_Cursor = (void*)MM_AllocDMA(1, 26, NULL); + Log_Debug("Tegra2Vid", "gpTegra2Vid_Cursor = %p", gpTegra2Vid_Cursor); Tegra2Vid_int_SetMode(0); @@ -166,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; } @@ -174,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); @@ -192,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 ); @@ -358,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;