aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss/omapdss.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/omapdss.h')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss.h95
1 files changed, 56 insertions, 39 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 4bf7843b4aec..a4f71e082c1c 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -62,6 +62,8 @@
62struct dss_device; 62struct dss_device;
63struct omap_drm_private; 63struct omap_drm_private;
64struct omap_dss_device; 64struct omap_dss_device;
65struct dispc_device;
66struct dss_device;
65struct dss_lcd_mgr_config; 67struct dss_lcd_mgr_config;
66struct snd_aes_iec958; 68struct snd_aes_iec958;
67struct snd_cea_861_aud_if; 69struct snd_cea_861_aud_if;
@@ -690,49 +692,64 @@ void dss_mgr_unregister_framedone_handler(struct omap_dss_device *dssdev,
690/* dispc ops */ 692/* dispc ops */
691 693
692struct dispc_ops { 694struct dispc_ops {
693 u32 (*read_irqstatus)(void); 695 u32 (*read_irqstatus)(struct dispc_device *dispc);
694 void (*clear_irqstatus)(u32 mask); 696 void (*clear_irqstatus)(struct dispc_device *dispc, u32 mask);
695 void (*write_irqenable)(u32 mask); 697 void (*write_irqenable)(struct dispc_device *dispc, u32 mask);
696 698
697 int (*request_irq)(irq_handler_t handler, void *dev_id); 699 int (*request_irq)(struct dispc_device *dispc, irq_handler_t handler,
698 void (*free_irq)(void *dev_id); 700 void *dev_id);
699 701 void (*free_irq)(struct dispc_device *dispc, void *dev_id);
700 int (*runtime_get)(void); 702
701 void (*runtime_put)(void); 703 int (*runtime_get)(struct dispc_device *dispc);
702 704 void (*runtime_put)(struct dispc_device *dispc);
703 int (*get_num_ovls)(void); 705
704 int (*get_num_mgrs)(void); 706 int (*get_num_ovls)(struct dispc_device *dispc);
705 707 int (*get_num_mgrs)(struct dispc_device *dispc);
706 u32 (*get_memory_bandwidth_limit)(void); 708
707 709 u32 (*get_memory_bandwidth_limit)(struct dispc_device *dispc);
708 void (*mgr_enable)(enum omap_channel channel, bool enable); 710
709 bool (*mgr_is_enabled)(enum omap_channel channel); 711 void (*mgr_enable)(struct dispc_device *dispc,
710 u32 (*mgr_get_vsync_irq)(enum omap_channel channel); 712 enum omap_channel channel, bool enable);
711 u32 (*mgr_get_framedone_irq)(enum omap_channel channel); 713 bool (*mgr_is_enabled)(struct dispc_device *dispc,
712 u32 (*mgr_get_sync_lost_irq)(enum omap_channel channel); 714 enum omap_channel channel);
713 bool (*mgr_go_busy)(enum omap_channel channel); 715 u32 (*mgr_get_vsync_irq)(struct dispc_device *dispc,
714 void (*mgr_go)(enum omap_channel channel); 716 enum omap_channel channel);
715 void (*mgr_set_lcd_config)(enum omap_channel channel, 717 u32 (*mgr_get_framedone_irq)(struct dispc_device *dispc,
716 const struct dss_lcd_mgr_config *config); 718 enum omap_channel channel);
717 void (*mgr_set_timings)(enum omap_channel channel, 719 u32 (*mgr_get_sync_lost_irq)(struct dispc_device *dispc,
718 const struct videomode *vm); 720 enum omap_channel channel);
719 void (*mgr_setup)(enum omap_channel channel, 721 bool (*mgr_go_busy)(struct dispc_device *dispc,
720 const struct omap_overlay_manager_info *info); 722 enum omap_channel channel);
721 enum omap_dss_output_id (*mgr_get_supported_outputs)(enum omap_channel channel); 723 void (*mgr_go)(struct dispc_device *dispc, enum omap_channel channel);
722 u32 (*mgr_gamma_size)(enum omap_channel channel); 724 void (*mgr_set_lcd_config)(struct dispc_device *dispc,
723 void (*mgr_set_gamma)(enum omap_channel channel, 725 enum omap_channel channel,
724 const struct drm_color_lut *lut, 726 const struct dss_lcd_mgr_config *config);
725 unsigned int length); 727 void (*mgr_set_timings)(struct dispc_device *dispc,
726 728 enum omap_channel channel,
727 int (*ovl_enable)(enum omap_plane_id plane, bool enable); 729 const struct videomode *vm);
728 int (*ovl_setup)(enum omap_plane_id plane, 730 void (*mgr_setup)(struct dispc_device *dispc, enum omap_channel channel,
731 const struct omap_overlay_manager_info *info);
732 enum omap_dss_output_id (*mgr_get_supported_outputs)(
733 struct dispc_device *dispc, enum omap_channel channel);
734 u32 (*mgr_gamma_size)(struct dispc_device *dispc,
735 enum omap_channel channel);
736 void (*mgr_set_gamma)(struct dispc_device *dispc,
737 enum omap_channel channel,
738 const struct drm_color_lut *lut,
739 unsigned int length);
740
741 int (*ovl_enable)(struct dispc_device *dispc, enum omap_plane_id plane,
742 bool enable);
743 int (*ovl_setup)(struct dispc_device *dispc, enum omap_plane_id plane,
729 const struct omap_overlay_info *oi, 744 const struct omap_overlay_info *oi,
730 const struct videomode *vm, bool mem_to_mem, 745 const struct videomode *vm, bool mem_to_mem,
731 enum omap_channel channel); 746 enum omap_channel channel);
732 747
733 const u32 *(*ovl_get_color_modes)(enum omap_plane_id plane); 748 const u32 *(*ovl_get_color_modes)(struct dispc_device *dispc,
749 enum omap_plane_id plane);
734}; 750};
735 751
752struct dispc_device *dispc_get_dispc(struct dss_device *dss);
736const struct dispc_ops *dispc_get_ops(struct dss_device *dss); 753const struct dispc_ops *dispc_get_ops(struct dss_device *dss);
737 754
738bool omapdss_component_is_display(struct device_node *node); 755bool omapdss_component_is_display(struct device_node *node);