@@ -68,14 +68,15 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_get_obj);
68
68
static int
69
69
drm_gem_fb_init (struct drm_device * dev ,
70
70
struct drm_framebuffer * fb ,
71
+ const struct drm_format_info * info ,
71
72
const struct drm_mode_fb_cmd2 * mode_cmd ,
72
73
struct drm_gem_object * * obj , unsigned int num_planes ,
73
74
const struct drm_framebuffer_funcs * funcs )
74
75
{
75
76
unsigned int i ;
76
77
int ret ;
77
78
78
- drm_helper_mode_fill_fb_struct (dev , fb , NULL , mode_cmd );
79
+ drm_helper_mode_fill_fb_struct (dev , fb , info , mode_cmd );
79
80
80
81
for (i = 0 ; i < num_planes ; i ++ )
81
82
fb -> obj [i ] = obj [i ];
@@ -136,6 +137,7 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
136
137
* @dev: DRM device
137
138
* @fb: framebuffer object
138
139
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
140
+ * @info: pixel format information
139
141
* @mode_cmd: Metadata from the userspace framebuffer creation request
140
142
* @funcs: vtable to be used for the new framebuffer object
141
143
*
@@ -152,21 +154,14 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
152
154
int drm_gem_fb_init_with_funcs (struct drm_device * dev ,
153
155
struct drm_framebuffer * fb ,
154
156
struct drm_file * file ,
157
+ const struct drm_format_info * info ,
155
158
const struct drm_mode_fb_cmd2 * mode_cmd ,
156
159
const struct drm_framebuffer_funcs * funcs )
157
160
{
158
- const struct drm_format_info * info ;
159
161
struct drm_gem_object * objs [DRM_FORMAT_MAX_PLANES ];
160
162
unsigned int i ;
161
163
int ret ;
162
164
163
- info = drm_get_format_info (dev , mode_cmd -> pixel_format ,
164
- mode_cmd -> modifier [0 ]);
165
- if (!info ) {
166
- drm_dbg_kms (dev , "Failed to get FB format info\n" );
167
- return - EINVAL ;
168
- }
169
-
170
165
if (drm_drv_uses_atomic_modeset (dev ) &&
171
166
!drm_any_plane_has_format (dev , mode_cmd -> pixel_format ,
172
167
mode_cmd -> modifier [0 ])) {
@@ -201,7 +196,7 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
201
196
}
202
197
}
203
198
204
- ret = drm_gem_fb_init (dev , fb , mode_cmd , objs , i , funcs );
199
+ ret = drm_gem_fb_init (dev , fb , info , mode_cmd , objs , i , funcs );
205
200
if (ret )
206
201
goto err_gem_object_put ;
207
202
@@ -222,6 +217,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
222
217
* callback
223
218
* @dev: DRM device
224
219
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
220
+ * @info: pixel format information
225
221
* @mode_cmd: Metadata from the userspace framebuffer creation request
226
222
* @funcs: vtable to be used for the new framebuffer object
227
223
*
@@ -234,6 +230,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
234
230
*/
235
231
struct drm_framebuffer *
236
232
drm_gem_fb_create_with_funcs (struct drm_device * dev , struct drm_file * file ,
233
+ const struct drm_format_info * info ,
237
234
const struct drm_mode_fb_cmd2 * mode_cmd ,
238
235
const struct drm_framebuffer_funcs * funcs )
239
236
{
@@ -244,7 +241,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
244
241
if (!fb )
245
242
return ERR_PTR (- ENOMEM );
246
243
247
- ret = drm_gem_fb_init_with_funcs (dev , fb , file , mode_cmd , funcs );
244
+ ret = drm_gem_fb_init_with_funcs (dev , fb , file , info , mode_cmd , funcs );
248
245
if (ret ) {
249
246
kfree (fb );
250
247
return ERR_PTR (ret );
@@ -287,7 +284,7 @@ drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
287
284
const struct drm_format_info * info ,
288
285
const struct drm_mode_fb_cmd2 * mode_cmd )
289
286
{
290
- return drm_gem_fb_create_with_funcs (dev , file , mode_cmd ,
287
+ return drm_gem_fb_create_with_funcs (dev , file , info , mode_cmd ,
291
288
& drm_gem_fb_funcs );
292
289
}
293
290
EXPORT_SYMBOL_GPL (drm_gem_fb_create );
@@ -327,7 +324,7 @@ drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
327
324
const struct drm_format_info * info ,
328
325
const struct drm_mode_fb_cmd2 * mode_cmd )
329
326
{
330
- return drm_gem_fb_create_with_funcs (dev , file , mode_cmd ,
327
+ return drm_gem_fb_create_with_funcs (dev , file , info , mode_cmd ,
331
328
& drm_gem_fb_funcs_dirtyfb );
332
329
}
333
330
EXPORT_SYMBOL_GPL (drm_gem_fb_create_with_dirty );
0 commit comments