drm/i915: Add atomic_get_property entrypoint for connectors (v2)
[deliverable/linux.git] / drivers / gpu / drm / i915 / intel_dsi.h
index 657eb5c1b9d80db7993a28febb8847c2dcf8665f..22f87036a256058910d275a53207710909a476ef 100644 (file)
 #include <drm/drm_crtc.h>
 #include "intel_drv.h"
 
+/* Dual Link support */
+#define DSI_DUAL_LINK_NONE             0
+#define DSI_DUAL_LINK_FRONT_BACK       1
+#define DSI_DUAL_LINK_PIXEL_ALT                2
+
 struct intel_dsi_device {
        unsigned int panel_id;
        const char *name;
@@ -42,33 +47,13 @@ struct intel_dsi_dev_ops {
 
        void (*disable_panel_power)(struct intel_dsi_device *dsi);
 
-       /* one time programmable commands if needed */
-       void (*send_otp_cmds)(struct intel_dsi_device *dsi);
-
        /* This callback must be able to assume DSI commands can be sent */
        void (*enable)(struct intel_dsi_device *dsi);
 
        /* This callback must be able to assume DSI commands can be sent */
        void (*disable)(struct intel_dsi_device *dsi);
 
-       int (*mode_valid)(struct intel_dsi_device *dsi,
-                         struct drm_display_mode *mode);
-
-       bool (*mode_fixup)(struct intel_dsi_device *dsi,
-                          const struct drm_display_mode *mode,
-                          struct drm_display_mode *adjusted_mode);
-
-       void (*mode_set)(struct intel_dsi_device *dsi,
-                        struct drm_display_mode *mode,
-                        struct drm_display_mode *adjusted_mode);
-
-       enum drm_connector_status (*detect)(struct intel_dsi_device *dsi);
-
-       bool (*get_hw_state)(struct intel_dsi_device *dev);
-
        struct drm_display_mode *(*get_modes)(struct intel_dsi_device *dsi);
-
-       void (*destroy) (struct intel_dsi_device *dsi);
 };
 
 struct intel_dsi {
@@ -78,6 +63,9 @@ struct intel_dsi {
 
        struct intel_connector *attached_connector;
 
+       /* bit mask of ports being driven */
+       u16 ports;
+
        /* if true, use HS mode, otherwise LP */
        bool hs;
 
@@ -101,6 +89,8 @@ struct intel_dsi {
        u8 clock_stop;
 
        u8 escape_clk_div;
+       u8 dual_link;
+       u8 pixel_overlap;
        u32 port_bits;
        u32 bw_timer;
        u32 dphy_reg;
@@ -127,6 +117,10 @@ struct intel_dsi {
        u16 panel_pwr_cycle_delay;
 };
 
+#define for_each_dsi_port(__port, __ports_mask) \
+       for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++)  \
+               if ((__ports_mask) & (1 << (__port)))
+
 static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
 {
        return container_of(encoder, struct intel_dsi, base.base);
This page took 0.024706 seconds and 5 git commands to generate.