linux/drivers/gpu/drm/udl/udl_encoder.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2012 Red Hat
   3 * based in parts on udlfb.c:
   4 * Copyright (C) 2009 Roberto De Ioris <roberto@unbit.it>
   5 * Copyright (C) 2009 Jaya Kumar <jayakumar.lkml@gmail.com>
   6 * Copyright (C) 2009 Bernie Thompson <bernie@plugable.com>
   7 *
   8 * This file is subject to the terms and conditions of the GNU General Public
   9 * License v2. See the file COPYING in the main directory of this archive for
  10 * more details.
  11 */
  12
  13#include <drm/drmP.h>
  14#include <drm/drm_crtc.h>
  15#include <drm/drm_crtc_helper.h>
  16#include "udl_drv.h"
  17
  18/* dummy encoder */
  19static void udl_enc_destroy(struct drm_encoder *encoder)
  20{
  21        drm_encoder_cleanup(encoder);
  22        kfree(encoder);
  23}
  24
  25static void udl_encoder_disable(struct drm_encoder *encoder)
  26{
  27}
  28
  29static bool udl_mode_fixup(struct drm_encoder *encoder,
  30                           const struct drm_display_mode *mode,
  31                           struct drm_display_mode *adjusted_mode)
  32{
  33        return true;
  34}
  35
  36static void udl_encoder_prepare(struct drm_encoder *encoder)
  37{
  38}
  39
  40static void udl_encoder_commit(struct drm_encoder *encoder)
  41{
  42}
  43
  44static void udl_encoder_mode_set(struct drm_encoder *encoder,
  45                                 struct drm_display_mode *mode,
  46                                 struct drm_display_mode *adjusted_mode)
  47{
  48}
  49
  50static void
  51udl_encoder_dpms(struct drm_encoder *encoder, int mode)
  52{
  53}
  54
  55static const struct drm_encoder_helper_funcs udl_helper_funcs = {
  56        .dpms = udl_encoder_dpms,
  57        .mode_fixup = udl_mode_fixup,
  58        .prepare = udl_encoder_prepare,
  59        .mode_set = udl_encoder_mode_set,
  60        .commit = udl_encoder_commit,
  61        .disable = udl_encoder_disable,
  62};
  63
  64static const struct drm_encoder_funcs udl_enc_funcs = {
  65        .destroy = udl_enc_destroy,
  66};
  67
  68struct drm_encoder *udl_encoder_init(struct drm_device *dev)
  69{
  70        struct drm_encoder *encoder;
  71
  72        encoder = kzalloc(sizeof(struct drm_encoder), GFP_KERNEL);
  73        if (!encoder)
  74                return NULL;
  75
  76        drm_encoder_init(dev, encoder, &udl_enc_funcs, DRM_MODE_ENCODER_TMDS);
  77        drm_encoder_helper_add(encoder, &udl_helper_funcs);
  78        encoder->possible_crtcs = 1;
  79        return encoder;
  80}
  81