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