implement AtomBios CailRead/WriteFBData callbacks

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41860 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-06-01 18:34:13 +00:00
parent 3fcaf0d61c
commit eb1b3e422f
+25 -27
View File
@@ -176,26 +176,24 @@ CailWriteMC(VOID *CAIL, ULONG Address, ULONG data)
UINT32 UINT32
CailReadFBData(VOID* CAIL, UINT32 idx) CailReadFBData(VOID* CAIL, UINT32 idx)
{ {
// TODO : This should work only in theory and needs tested
TRACE("AtomBios callback %s, idx (0x%X)\n", __func__, idx); TRACE("AtomBios callback %s, idx (0x%X)\n", __func__, idx);
// TODO : CailReadFBData
UINT32 ret = 0; UINT32 ret = 0;
/*
if (((atomBiosHandlePtr)CAIL)->fbBase) { uint32_t fbLocation
CARD8 *FBBase = (CARD8*) = gInfo->shared_info->frame_buffer_phys & 0xffffffff;
RHDPTRI((atomBiosHandlePtr)CAIL)->FbBase;
ret = *((CARD32*)(FBBase + (((atomBiosHandlePtr)CAIL)->fbBase) // If we have a physical offset for our frame buffer, use it
+ idx)); if (fbLocation > 0)
TRACE(("%s(%x) = %x\n", __func__, idx, ret)); ret = read32(fbLocation + idx);
} else if (((atomBiosHandlePtr)CAIL)->scratchBase) { else {
ret = *(CARD32*)((CARD8*)(((atomBiosHandlePtr)CAIL)->scratchBase) TRACE("%s: ERROR: Frame Buffer offset not defined\n",
+ idx); __func__);
TRACE(("%s(%x) = %x\n", __func__, idx, ret));
} else {
TRACE(("%s: no fbbase set\n", __func__));
return 0; return 0;
} }
*/
return ret; return ret;
} }
@@ -203,19 +201,19 @@ CailReadFBData(VOID* CAIL, UINT32 idx)
VOID VOID
CailWriteFBData(VOID *CAIL, UINT32 idx, UINT32 data) CailWriteFBData(VOID *CAIL, UINT32 idx, UINT32 data)
{ {
TRACE("AtomBios callback %s, idx (0x%X)\n", __func__, idx); // TODO : This should work only in theory and needs tested
// TODO : CailReadFBData
/* TRACE("AtomBios callback %s, idx (0x%X)\n", __func__, idx);
if (((atomBiosHandlePtr)CAIL)->fbBase) {
CARD8 *FBBase = (CARD8*) uint32_t fbLocation
RHDPTRI((atomBiosHandlePtr)CAIL)->FbBase; = gInfo->shared_info->frame_buffer_phys & 0xffffffff;
*((CARD32*)(FBBase + (((atomBiosHandlePtr)CAIL)->fbBase) + idx)) = data;
} else if (((atomBiosHandlePtr)CAIL)->scratchBase) { // If we have a physical offset for our frame buffer, use it
*(CARD32*)((CARD8*)(((atomBiosHandlePtr)CAIL)->scratchBase) + idx) = data; if (fbLocation > 0)
} else write32(fbLocation + idx, data);
TRACE(("%s: no fbbase set\n", __func__)); else
*/ TRACE("%s: ERROR: Frame Buffer offset not defined\n",
__func__);
} }