aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h79
1 files changed, 25 insertions, 54 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index 54f06c959340..d6416ee52e32 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -267,8 +267,6 @@ struct amdgpu_display_funcs {
267 void (*bandwidth_update)(struct amdgpu_device *adev); 267 void (*bandwidth_update)(struct amdgpu_device *adev);
268 /* get frame count */ 268 /* get frame count */
269 u32 (*vblank_get_counter)(struct amdgpu_device *adev, int crtc); 269 u32 (*vblank_get_counter)(struct amdgpu_device *adev, int crtc);
270 /* wait for vblank */
271 void (*vblank_wait)(struct amdgpu_device *adev, int crtc);
272 /* set backlight level */ 270 /* set backlight level */
273 void (*backlight_set_level)(struct amdgpu_encoder *amdgpu_encoder, 271 void (*backlight_set_level)(struct amdgpu_encoder *amdgpu_encoder,
274 u8 level); 272 u8 level);
@@ -352,6 +350,7 @@ struct amdgpu_mode_info {
352 u16 firmware_flags; 350 u16 firmware_flags;
353 /* pointer to backlight encoder */ 351 /* pointer to backlight encoder */
354 struct amdgpu_encoder *bl_encoder; 352 struct amdgpu_encoder *bl_encoder;
353 u8 bl_level; /* saved backlight level */
355 struct amdgpu_audio audio; /* audio stuff */ 354 struct amdgpu_audio audio; /* audio stuff */
356 int num_crtc; /* number of crtcs */ 355 int num_crtc; /* number of crtcs */
357 int num_hpd; /* number of hpd pins */ 356 int num_hpd; /* number of hpd pins */
@@ -552,14 +551,6 @@ struct amdgpu_connector {
552 /* we need to mind the EDID between detect 551 /* we need to mind the EDID between detect
553 and get modes due to analog/digital/tvencoder */ 552 and get modes due to analog/digital/tvencoder */
554 struct edid *edid; 553 struct edid *edid;
555 /* number of modes generated from EDID at 'dc_sink' */
556 int num_modes;
557 /* The 'old' sink - before an HPD.
558 * The 'current' sink is in dc_link->sink. */
559 struct dc_sink *dc_sink;
560 struct dc_link *dc_link;
561 struct dc_sink *dc_em_sink;
562 const struct dc_stream *stream;
563 void *con_priv; 554 void *con_priv;
564 bool dac_load_detect; 555 bool dac_load_detect;
565 bool detected_by_load; /* if the connection status was determined by load */ 556 bool detected_by_load; /* if the connection status was determined by load */
@@ -570,27 +561,6 @@ struct amdgpu_connector {
570 enum amdgpu_connector_audio audio; 561 enum amdgpu_connector_audio audio;
571 enum amdgpu_connector_dither dither; 562 enum amdgpu_connector_dither dither;
572 unsigned pixelclock_for_modeset; 563 unsigned pixelclock_for_modeset;
573
574 struct drm_dp_mst_topology_mgr mst_mgr;
575 struct amdgpu_dm_dp_aux dm_dp_aux;
576 struct drm_dp_mst_port *port;
577 struct amdgpu_connector *mst_port;
578 struct amdgpu_encoder *mst_encoder;
579 struct semaphore mst_sem;
580
581 /* TODO see if we can merge with ddc_bus or make a dm_connector */
582 struct amdgpu_i2c_adapter *i2c;
583
584 /* Monitor range limits */
585 int min_vfreq ;
586 int max_vfreq ;
587 int pixel_clock_mhz;
588
589 /*freesync caps*/
590 struct mod_freesync_caps caps;
591
592 struct mutex hpd_lock;
593
594}; 564};
595 565
596/* TODO: start to use this struct and remove same field from base one */ 566/* TODO: start to use this struct and remove same field from base one */
@@ -608,7 +578,7 @@ struct amdgpu_mst_connector {
608#define ENCODER_MODE_IS_DP(em) (((em) == ATOM_ENCODER_MODE_DP) || \ 578#define ENCODER_MODE_IS_DP(em) (((em) == ATOM_ENCODER_MODE_DP) || \
609 ((em) == ATOM_ENCODER_MODE_DP_MST)) 579 ((em) == ATOM_ENCODER_MODE_DP_MST))
610 580
611/* Driver internal use only flags of amdgpu_get_crtc_scanoutpos() */ 581/* Driver internal use only flags of amdgpu_display_get_crtc_scanoutpos() */
612#define DRM_SCANOUTPOS_VALID (1 << 0) 582#define DRM_SCANOUTPOS_VALID (1 << 0)
613#define DRM_SCANOUTPOS_IN_VBLANK (1 << 1) 583#define DRM_SCANOUTPOS_IN_VBLANK (1 << 1)
614#define DRM_SCANOUTPOS_ACCURATE (1 << 2) 584#define DRM_SCANOUTPOS_ACCURATE (1 << 2)
@@ -627,30 +597,31 @@ bool amdgpu_dig_monitor_is_duallink(struct drm_encoder *encoder,
627u16 amdgpu_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder); 597u16 amdgpu_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder);
628struct drm_encoder *amdgpu_get_external_encoder(struct drm_encoder *encoder); 598struct drm_encoder *amdgpu_get_external_encoder(struct drm_encoder *encoder);
629 599
630bool amdgpu_ddc_probe(struct amdgpu_connector *amdgpu_connector, bool use_aux); 600bool amdgpu_display_ddc_probe(struct amdgpu_connector *amdgpu_connector,
601 bool use_aux);
631 602
632void amdgpu_encoder_set_active_device(struct drm_encoder *encoder); 603void amdgpu_encoder_set_active_device(struct drm_encoder *encoder);
633 604
634int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, 605int amdgpu_display_get_crtc_scanoutpos(struct drm_device *dev,
635 unsigned int flags, int *vpos, int *hpos, 606 unsigned int pipe, unsigned int flags, int *vpos,
636 ktime_t *stime, ktime_t *etime, 607 int *hpos, ktime_t *stime, ktime_t *etime,
637 const struct drm_display_mode *mode); 608 const struct drm_display_mode *mode);
638 609
639int amdgpu_framebuffer_init(struct drm_device *dev, 610int amdgpu_display_framebuffer_init(struct drm_device *dev,
640 struct amdgpu_framebuffer *rfb, 611 struct amdgpu_framebuffer *rfb,
641 const struct drm_mode_fb_cmd2 *mode_cmd, 612 const struct drm_mode_fb_cmd2 *mode_cmd,
642 struct drm_gem_object *obj); 613 struct drm_gem_object *obj);
643 614
644int amdgpufb_remove(struct drm_device *dev, struct drm_framebuffer *fb); 615int amdgpufb_remove(struct drm_device *dev, struct drm_framebuffer *fb);
645 616
646void amdgpu_enc_destroy(struct drm_encoder *encoder); 617void amdgpu_enc_destroy(struct drm_encoder *encoder);
647void amdgpu_copy_fb(struct drm_device *dev, struct drm_gem_object *dst_obj); 618void amdgpu_copy_fb(struct drm_device *dev, struct drm_gem_object *dst_obj);
648bool amdgpu_crtc_scaling_mode_fixup(struct drm_crtc *crtc, 619bool amdgpu_display_crtc_scaling_mode_fixup(struct drm_crtc *crtc,
649 const struct drm_display_mode *mode, 620 const struct drm_display_mode *mode,
650 struct drm_display_mode *adjusted_mode); 621 struct drm_display_mode *adjusted_mode);
651void amdgpu_panel_mode_fixup(struct drm_encoder *encoder, 622void amdgpu_panel_mode_fixup(struct drm_encoder *encoder,
652 struct drm_display_mode *adjusted_mode); 623 struct drm_display_mode *adjusted_mode);
653int amdgpu_crtc_idx_to_irq_type(struct amdgpu_device *adev, int crtc); 624int amdgpu_display_crtc_idx_to_irq_type(struct amdgpu_device *adev, int crtc);
654 625
655/* fbdev layer */ 626/* fbdev layer */
656int amdgpu_fbdev_init(struct amdgpu_device *adev); 627int amdgpu_fbdev_init(struct amdgpu_device *adev);
@@ -662,15 +633,15 @@ bool amdgpu_fbdev_robj_is_fb(struct amdgpu_device *adev, struct amdgpu_bo *robj)
662int amdgpu_align_pitch(struct amdgpu_device *adev, int width, int bpp, bool tiled); 633int amdgpu_align_pitch(struct amdgpu_device *adev, int width, int bpp, bool tiled);
663 634
664/* amdgpu_display.c */ 635/* amdgpu_display.c */
665void amdgpu_print_display_setup(struct drm_device *dev); 636void amdgpu_display_print_display_setup(struct drm_device *dev);
666int amdgpu_modeset_create_props(struct amdgpu_device *adev); 637int amdgpu_display_modeset_create_props(struct amdgpu_device *adev);
667int amdgpu_crtc_set_config(struct drm_mode_set *set, 638int amdgpu_display_crtc_set_config(struct drm_mode_set *set,
668 struct drm_modeset_acquire_ctx *ctx); 639 struct drm_modeset_acquire_ctx *ctx);
669int amdgpu_crtc_page_flip_target(struct drm_crtc *crtc, 640int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,
670 struct drm_framebuffer *fb, 641 struct drm_framebuffer *fb,
671 struct drm_pending_vblank_event *event, 642 struct drm_pending_vblank_event *event,
672 uint32_t page_flip_flags, uint32_t target, 643 uint32_t page_flip_flags, uint32_t target,
673 struct drm_modeset_acquire_ctx *ctx); 644 struct drm_modeset_acquire_ctx *ctx);
674extern const struct drm_mode_config_funcs amdgpu_mode_funcs; 645extern const struct drm_mode_config_funcs amdgpu_mode_funcs;
675 646
676#endif 647#endif