196f60e37dc66091bde8d5de136ff6fda09f2d799Russell King/* 296f60e37dc66091bde8d5de136ff6fda09f2d799Russell King * Copyright (C) 2012 Russell King 396f60e37dc66091bde8d5de136ff6fda09f2d799Russell King * 496f60e37dc66091bde8d5de136ff6fda09f2d799Russell King * This program is free software; you can redistribute it and/or modify 596f60e37dc66091bde8d5de136ff6fda09f2d799Russell King * it under the terms of the GNU General Public License version 2 as 696f60e37dc66091bde8d5de136ff6fda09f2d799Russell King * published by the Free Software Foundation. 796f60e37dc66091bde8d5de136ff6fda09f2d799Russell King */ 896f60e37dc66091bde8d5de136ff6fda09f2d799Russell King#ifndef ARMADA_FB_H 996f60e37dc66091bde8d5de136ff6fda09f2d799Russell King#define ARMADA_FB_H 1096f60e37dc66091bde8d5de136ff6fda09f2d799Russell King 1196f60e37dc66091bde8d5de136ff6fda09f2d799Russell Kingstruct armada_framebuffer { 1296f60e37dc66091bde8d5de136ff6fda09f2d799Russell King struct drm_framebuffer fb; 1396f60e37dc66091bde8d5de136ff6fda09f2d799Russell King struct armada_gem_object *obj; 1496f60e37dc66091bde8d5de136ff6fda09f2d799Russell King uint8_t fmt; 1596f60e37dc66091bde8d5de136ff6fda09f2d799Russell King uint8_t mod; 1696f60e37dc66091bde8d5de136ff6fda09f2d799Russell King}; 1796f60e37dc66091bde8d5de136ff6fda09f2d799Russell King#define drm_fb_to_armada_fb(dfb) \ 1896f60e37dc66091bde8d5de136ff6fda09f2d799Russell King container_of(dfb, struct armada_framebuffer, fb) 1996f60e37dc66091bde8d5de136ff6fda09f2d799Russell King#define drm_fb_obj(fb) drm_fb_to_armada_fb(fb)->obj 2096f60e37dc66091bde8d5de136ff6fda09f2d799Russell King 2196f60e37dc66091bde8d5de136ff6fda09f2d799Russell Kingstruct armada_framebuffer *armada_framebuffer_create(struct drm_device *, 2296f60e37dc66091bde8d5de136ff6fda09f2d799Russell King struct drm_mode_fb_cmd2 *, struct armada_gem_object *); 2396f60e37dc66091bde8d5de136ff6fda09f2d799Russell King 2496f60e37dc66091bde8d5de136ff6fda09f2d799Russell King#endif 25