Clean up engine and hooks

* clean up radeon_hd engine tracing
* clean up radeon_hd engine
* clean up radeon_hd hooks
* add engine accelerant count function
This commit is contained in:
Alexander von Gluck IV
2011-11-21 14:52:45 -06:00
parent fd651d785a
commit db528c0065
3 changed files with 36 additions and 13 deletions
@@ -37,6 +37,7 @@ status_t radeon_get_pixel_clock_limits(display_mode *mode,
status_t radeon_get_edid_info(void* info, size_t size, uint32* edid_version); status_t radeon_get_edid_info(void* info, size_t size, uint32* edid_version);
// accelerant engine // accelerant engine
uint32 radeon_accelerant_engine_count(void);
status_t radeon_acquire_engine(uint32 capabilities, uint32 maxWait, status_t radeon_acquire_engine(uint32 capabilities, uint32 maxWait,
sync_token *syncToken, engine_token **_engineToken); sync_token *syncToken, engine_token **_engineToken);
status_t radeon_release_engine(engine_token *engineToken, status_t radeon_release_engine(engine_token *engineToken,
+14 -7
View File
@@ -1,9 +1,10 @@
/* /*
* Copyright 2006-2007, Haiku, Inc. All Rights Reserved. * Copyright 2006-2011, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Axel Dörfler, [email protected] * Axel Dörfler, [email protected]
* Alexander von Gluck IV, [email protected]
*/ */
@@ -17,9 +18,9 @@
#define TRACE_ENGINE #define TRACE_ENGINE
#ifdef TRACE_ENGINE #ifdef TRACE_ENGINE
# define TRACE(x) _sPrintf x # define TRACE(x...) _sPrintf("radeon_hd: " x)
#else #else
# define TRACE(x) ; # define TRACE(x...) ;
#endif #endif
@@ -29,11 +30,19 @@ static engine_token sEngineToken = {1, 0 /*B_2D_ACCELERATION*/, NULL};
// #pragma mark - engine management // #pragma mark - engine management
uint32
radeon_accelerant_engine_count(void)
{
TRACE("%s\n", __func__);
return 1;
}
status_t status_t
radeon_acquire_engine(uint32 capabilities, uint32 maxWait, radeon_acquire_engine(uint32 capabilities, uint32 maxWait,
sync_token *syncToken, engine_token **_engineToken) sync_token *syncToken, engine_token **_engineToken)
{ {
TRACE(("radeon_acquire_engine()\n")); TRACE("%s\n", __func__);
*_engineToken = &sEngineToken; *_engineToken = &sEngineToken;
if (acquire_lock(&gInfo->shared_info->engine_lock) != B_OK) if (acquire_lock(&gInfo->shared_info->engine_lock) != B_OK)
@@ -46,12 +55,10 @@ radeon_acquire_engine(uint32 capabilities, uint32 maxWait,
status_t status_t
radeon_release_engine(engine_token *engineToken, sync_token *syncToken) radeon_release_engine(engine_token *engineToken, sync_token *syncToken)
{ {
TRACE(("radeon_release_engine()\n")); TRACE("%s\n", __func__);
if (syncToken != NULL) if (syncToken != NULL)
syncToken->engine_id = engineToken->engine_id; syncToken->engine_id = engineToken->engine_id;
release_lock(&gInfo->shared_info->engine_lock); release_lock(&gInfo->shared_info->engine_lock);
return B_OK; return B_OK;
} }
+21 -6
View File
@@ -4,6 +4,7 @@
* *
* Authors: * Authors:
* Axel Dörfler, [email protected] * Axel Dörfler, [email protected]
* Alexander von Gluck IV, [email protected]
*/ */
@@ -26,13 +27,11 @@ get_accelerant_hook(uint32 feature, void *data)
return (void*)radeon_accelerant_clone_info_size; return (void*)radeon_accelerant_clone_info_size;
case B_GET_ACCELERANT_CLONE_INFO: case B_GET_ACCELERANT_CLONE_INFO:
return (void*)radeon_get_accelerant_clone_info; return (void*)radeon_get_accelerant_clone_info;
*/
case B_GET_ACCELERANT_DEVICE_INFO:
return (void*)radeon_get_accelerant_device_info;
/*
case B_ACCELERANT_RETRACE_SEMAPHORE: case B_ACCELERANT_RETRACE_SEMAPHORE:
return (void*)radeon_accelerant_retrace_semaphore; return (void*)radeon_accelerant_retrace_semaphore;
*/ */
case B_GET_ACCELERANT_DEVICE_INFO:
return (void*)radeon_get_accelerant_device_info;
/* DPMS */ /* DPMS */
case B_DPMS_CAPABILITIES: case B_DPMS_CAPABILITIES:
@@ -45,24 +44,40 @@ get_accelerant_hook(uint32 feature, void *data)
/* mode configuration */ /* mode configuration */
case B_ACCELERANT_MODE_COUNT: case B_ACCELERANT_MODE_COUNT:
return (void*)radeon_accelerant_mode_count; return (void*)radeon_accelerant_mode_count;
case B_GET_EDID_INFO:
return (void*)radeon_get_edid_info;
case B_GET_MODE_LIST: case B_GET_MODE_LIST:
return (void*)radeon_get_mode_list; return (void*)radeon_get_mode_list;
case B_SET_DISPLAY_MODE: case B_SET_DISPLAY_MODE:
return (void*)radeon_set_display_mode; return (void*)radeon_set_display_mode;
case B_GET_DISPLAY_MODE: case B_GET_DISPLAY_MODE:
return (void*)radeon_get_display_mode; return (void*)radeon_get_display_mode;
case B_GET_EDID_INFO:
return (void*)radeon_get_edid_info;
/* memory controller */
case B_GET_FRAME_BUFFER_CONFIG: case B_GET_FRAME_BUFFER_CONFIG:
return (void*)radeon_get_frame_buffer_config; return (void*)radeon_get_frame_buffer_config;
case B_GET_PIXEL_CLOCK_LIMITS: case B_GET_PIXEL_CLOCK_LIMITS:
return (void*)radeon_get_pixel_clock_limits; return (void*)radeon_get_pixel_clock_limits;
/* engine */
case B_ACCELERANT_ENGINE_COUNT:
return (void*)radeon_accelerant_engine_count;
case B_ACQUIRE_ENGINE: case B_ACQUIRE_ENGINE:
return (void*)radeon_acquire_engine; return (void*)radeon_acquire_engine;
case B_RELEASE_ENGINE: case B_RELEASE_ENGINE:
return (void*)radeon_release_engine; return (void*)radeon_release_engine;
/* 2D acceleration */
/*
case B_SCREEN_TO_SCREEN_BLIT:
return (void*)radeon_screen_to_screen_blit;
case B_FILL_RECTANGLE:
return (void*)radeon_fill_rectangle;
case B_INVERT_RECTANGLE:
return (void*)radeon_invert_rectangle;
case B_FILL_SPAN:
return (void*)radeon_fill_span;
*/
} }
return NULL; return NULL;