| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 Travis Geiselbrecht | 2 * Copyright (c) 2010 Travis Geiselbrecht |
| 3 * | 3 * |
| 4 * Permission is hereby granted, free of charge, to any person obtaining | 4 * Permission is hereby granted, free of charge, to any person obtaining |
| 5 * a copy of this software and associated documentation files | 5 * a copy of this software and associated documentation files |
| 6 * (the "Software"), to deal in the Software without restriction, | 6 * (the "Software"), to deal in the Software without restriction, |
| 7 * including without limitation the rights to use, copy, modify, merge, | 7 * including without limitation the rights to use, copy, modify, merge, |
| 8 * publish, distribute, sublicense, and/or sell copies of the Software, | 8 * publish, distribute, sublicense, and/or sell copies of the Software, |
| 9 * and to permit persons to whom the Software is furnished to do so, | 9 * and to permit persons to whom the Software is furnished to do so, |
| 10 * subject to the following conditions: | 10 * subject to the following conditions: |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 22 */ | 22 */ |
| 23 #include <err.h> | 23 #include <err.h> |
| 24 #include <debug.h> | 24 #include <debug.h> |
| 25 #include <platform.h> | 25 #include <platform.h> |
| 26 #include "platform_p.h" | 26 #include "platform_p.h" |
| 27 #include <platform/armemu.h> | 27 #include <platform/armemu.h> |
| 28 #include <dev/display.h> | 28 #include <dev/display.h> |
| 29 #include <lib/gfx.h> | 29 #include <lib/gfx.h> |
| 30 #include <reg.h> | 30 #include <reg.h> |
| 31 #include <assert.h> |
| 31 | 32 |
| 32 #define DRAW_TEST_PATTERN 0 | 33 #define DRAW_TEST_PATTERN 0 |
| 33 | 34 |
| 34 static int display_w, display_h; | 35 static int display_w, display_h; |
| 35 static void *display_fb; | 36 static void *display_fb; |
| 36 | 37 |
| 37 inline static int has_display(void) | 38 inline static int has_display(void) |
| 38 { | 39 { |
| 39 return *REG32(SYSINFO_FEATURES) & SYSINFO_FEATURE_DISPLAY; | 40 return *REG32(SYSINFO_FEATURES) & SYSINFO_FEATURE_DISPLAY; |
| 40 } | 41 } |
| 41 | 42 |
| 42 void platform_init_display(void) | 43 void platform_init_display(void) |
| 43 { | 44 { |
| 44 if (!has_display()) | 45 if (!has_display()) |
| 45 return; | 46 return; |
| 46 | 47 |
| 47 display_fb = (void *)DISPLAY_FRAMEBUFFER; | 48 display_fb = (void *)DISPLAY_FRAMEBUFFER; |
| 48 display_w = *REG32(DISPLAY_WIDTH); | 49 display_w = *REG32(DISPLAY_WIDTH); |
| 49 display_h = *REG32(DISPLAY_HEIGHT); | 50 display_h = *REG32(DISPLAY_HEIGHT); |
| 50 | 51 |
| 51 #if DRAW_TEST_PATTERN | 52 #if DRAW_TEST_PATTERN |
| 52 gfx_draw_pattern(); | 53 gfx_draw_pattern(); |
| 53 #endif | 54 #endif |
| 54 } | 55 } |
| 55 | 56 |
| 57 status_t display_get_framebuffer(struct display_framebuffer *fb) |
| 58 { |
| 59 DEBUG_ASSERT(fb); |
| 60 if (!has_display()) |
| 61 return ERR_NOT_FOUND; |
| 62 |
| 63 fb->image.format = IMAGE_FORMAT_RGB_x888; |
| 64 fb->image.pixels = display_fb; |
| 65 fb->image.width = display_w; |
| 66 fb->image.height = display_h; |
| 67 fb->image.stride = display_w; |
| 68 fb->image.rowbytes = display_w * 4; |
| 69 fb->flush = NULL; |
| 70 fb->format = DISPLAY_FORMAT_RGB_x888; |
| 71 |
| 72 return NO_ERROR; |
| 73 } |
| 74 |
| 56 status_t display_get_info(struct display_info *info) | 75 status_t display_get_info(struct display_info *info) |
| 57 { | 76 { |
| 77 DEBUG_ASSERT(info); |
| 58 if (!has_display()) | 78 if (!has_display()) |
| 59 return ERR_NOT_FOUND; | 79 return ERR_NOT_FOUND; |
| 60 | 80 |
| 61 info->framebuffer = display_fb; | 81 info->format = DISPLAY_FORMAT_RGB_x888; |
| 62 info->format = GFX_FORMAT_RGB_x888; | |
| 63 info->width = display_w; | 82 info->width = display_w; |
| 64 info->height = display_h; | 83 info->height = display_h; |
| 65 info->stride = display_w; | |
| 66 info->flush = NULL; | |
| 67 | 84 |
| 68 return NO_ERROR; | 85 return NO_ERROR; |
| 69 } | 86 } |
| 70 | 87 |
| OLD | NEW |