drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format)
#include <linux/module.h>
#include <linux/seq_file.h>
#include <drm/drm_client.h>
#include <drm/drm_debugfs.h>
#include <drm/drm_device.h>
#include <drm/drm_file.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_mode.h>
#include <drm/drm_print.h>
#include "drm_crtc_internal.h"
#include "drm_internal.h"
static int drm_client_open(struct drm_client_dev *client)
struct drm_device *dev = client->dev;
file = drm_file_alloc(dev->primary);
mutex_lock(&dev->filelist_mutex);
list_add(&file->lhead, &dev->filelist_internal);
mutex_unlock(&dev->filelist_mutex);
static void drm_client_close(struct drm_client_dev *client)
struct drm_device *dev = client->dev;
mutex_lock(&dev->filelist_mutex);
list_del(&client->file->lhead);
mutex_unlock(&dev->filelist_mutex);
drm_file_free(client->file);
EXPORT_SYMBOL(drm_client_close);
int drm_client_init(struct drm_device *dev, struct drm_client_dev *client,
const char *name, const struct drm_client_funcs *funcs)
if (!drm_core_check_feature(dev, DRIVER_MODESET) || !dev->driver->dumb_create)
if (funcs && !try_module_get(funcs->owner))