armada_output.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (C) 2012 Russell King
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #ifndef ARMADA_CONNETOR_H
  9. #define ARMADA_CONNETOR_H
  10. #define encoder_helper_funcs(encoder) \
  11. ((struct drm_encoder_helper_funcs *)encoder->helper_private)
  12. struct armada_output_type {
  13. int connector_type;
  14. enum drm_connector_status (*detect)(struct drm_connector *, bool);
  15. int (*create)(struct drm_connector *, const void *);
  16. int (*set_property)(struct drm_connector *, struct drm_property *,
  17. uint64_t);
  18. };
  19. struct drm_encoder *armada_drm_connector_encoder(struct drm_connector *conn);
  20. void armada_drm_encoder_prepare(struct drm_encoder *encoder);
  21. void armada_drm_encoder_commit(struct drm_encoder *encoder);
  22. bool armada_drm_encoder_mode_fixup(struct drm_encoder *encoder,
  23. const struct drm_display_mode *mode, struct drm_display_mode *adj);
  24. int armada_drm_slave_encoder_mode_valid(struct drm_connector *conn,
  25. struct drm_display_mode *mode);
  26. int armada_drm_slave_encoder_set_property(struct drm_connector *conn,
  27. struct drm_property *property, uint64_t value);
  28. int armada_output_create(struct drm_device *dev,
  29. const struct armada_output_type *type, const void *data);
  30. #endif