@@ -29,25 +29,23 @@ static const struct drm_framebuffer_funcs psb_fb_funcs = {
29
29
*/
30
30
static int psb_framebuffer_init (struct drm_device * dev ,
31
31
struct drm_framebuffer * fb ,
32
+ const struct drm_format_info * info ,
32
33
const struct drm_mode_fb_cmd2 * mode_cmd ,
33
34
struct drm_gem_object * obj )
34
35
{
35
- const struct drm_format_info * info ;
36
36
int ret ;
37
37
38
38
/*
39
39
* Reject unknown formats, YUV formats, and formats with more than
40
40
* 4 bytes per pixel.
41
41
*/
42
- info = drm_get_format_info (dev , mode_cmd -> pixel_format ,
43
- mode_cmd -> modifier [0 ]);
44
- if (!info || !info -> depth || info -> cpp [0 ] > 4 )
42
+ if (!info -> depth || info -> cpp [0 ] > 4 )
45
43
return - EINVAL ;
46
44
47
45
if (mode_cmd -> pitches [0 ] & 63 )
48
46
return - EINVAL ;
49
47
50
- drm_helper_mode_fill_fb_struct (dev , fb , NULL , mode_cmd );
48
+ drm_helper_mode_fill_fb_struct (dev , fb , info , mode_cmd );
51
49
fb -> obj [0 ] = obj ;
52
50
ret = drm_framebuffer_init (dev , fb , & psb_fb_funcs );
53
51
if (ret ) {
@@ -60,6 +58,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
60
58
/**
61
59
* psb_framebuffer_create - create a framebuffer backed by gt
62
60
* @dev: our DRM device
61
+ * @info: pixel format information
63
62
* @mode_cmd: the description of the requested mode
64
63
* @obj: the backing object
65
64
*
@@ -69,6 +68,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
69
68
* TODO: review object references
70
69
*/
71
70
struct drm_framebuffer * psb_framebuffer_create (struct drm_device * dev ,
71
+ const struct drm_format_info * info ,
72
72
const struct drm_mode_fb_cmd2 * mode_cmd ,
73
73
struct drm_gem_object * obj )
74
74
{
@@ -79,7 +79,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
79
79
if (!fb )
80
80
return ERR_PTR (- ENOMEM );
81
81
82
- ret = psb_framebuffer_init (dev , fb , mode_cmd , obj );
82
+ ret = psb_framebuffer_init (dev , fb , info , mode_cmd , obj );
83
83
if (ret ) {
84
84
kfree (fb );
85
85
return ERR_PTR (ret );
@@ -112,7 +112,7 @@ static struct drm_framebuffer *psb_user_framebuffer_create
112
112
return ERR_PTR (- ENOENT );
113
113
114
114
/* Let the core code do all the work */
115
- fb = psb_framebuffer_create (dev , cmd , obj );
115
+ fb = psb_framebuffer_create (dev , info , cmd , obj );
116
116
if (IS_ERR (fb ))
117
117
drm_gem_object_put (obj );
118
118
0 commit comments