]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/drm/drm_bridge.h
Revert "drm/bridge: Add the necessary bits to support bus format negotiation"
[linux.git] / include / drm / drm_bridge.h
index 46e15526b087372747e62e1e96c6c09cee238e5b..ae0595c701329e561755ad9bee9c514805500065 100644 (file)
@@ -35,38 +35,6 @@ struct drm_bridge;
 struct drm_bridge_timings;
 struct drm_panel;
 
-/**
- * struct drm_bus_cfg - bus configuration
- *
- * This structure stores the configuration of a physical bus between two
- * components in an output pipeline, usually between two bridges, an encoder
- * and a bridge, or a bridge and a connector.
- *
- * The bus configuration is stored in &drm_bridge_state separately for the
- * input and output buses, as seen from the point of view of each bridge. The
- * bus configuration of a bridge output is usually identical to the
- * configuration of the next bridge's input, but may differ if the signals are
- * modified between the two bridges, for instance by an inverter on the board.
- * The input and output configurations of a bridge may differ if the bridge
- * modifies the signals internally, for instance by performing format
- * conversion, or modifying signals polarities.
- */
-struct drm_bus_cfg {
-       /**
-        * @format: format used on this bus (one of the MEDIA_BUS_FMT_* format)
-        *
-        * This field should not be directly modified by drivers
-        * (&drm_atomic_bridge_chain_select_bus_fmts() takes care of the bus
-        * format negotiation).
-        */
-       u32 format;
-
-       /**
-        * @flags: DRM_BUS_* flags used on this bus
-        */
-       u32 flags;
-};
-
 /**
  * struct drm_bridge_state - Atomic bridge state object
  * @base: inherit from &drm_private_state
@@ -76,16 +44,6 @@ struct drm_bridge_state {
        struct drm_private_state base;
 
        struct drm_bridge *bridge;
-
-       /**
-        * @input_bus_cfg: input bus configuration
-        */
-       struct drm_bus_cfg input_bus_cfg;
-
-       /**
-        * @output_bus_cfg: input bus configuration
-        */
-       struct drm_bus_cfg output_bus_cfg;
 };
 
 static inline struct drm_bridge_state *
@@ -429,72 +387,6 @@ struct drm_bridge_funcs {
        void (*atomic_destroy_state)(struct drm_bridge *bridge,
                                     struct drm_bridge_state *state);
 
-       /**
-        * @atomic_get_output_bus_fmts:
-        *
-        * Return the supported bus formats on the output end of a bridge.
-        * The returned array must be allocated with kmalloc() and will be
-        * freed by the caller. If the allocation fails, NULL should be
-        * returned. num_output_fmts must be set to the returned array size.
-        * Formats listed in the returned array should be listed in decreasing
-        * preference order (the core will try all formats until it finds one
-        * that works).
-        *
-        * This method is only called on the last element of the bridge chain
-        * as part of the bus format negotiation process that happens in
-        * &drm_atomic_bridge_chain_select_bus_fmts().
-        * This method is optional. When not implemented, the core will
-        * fall back to &drm_connector.display_info.bus_formats[0] if
-        * &drm_connector.display_info.num_bus_formats > 0,
-        * or to MEDIA_BUS_FMT_FIXED otherwise.
-        */
-       u32 *(*atomic_get_output_bus_fmts)(struct drm_bridge *bridge,
-                                          struct drm_bridge_state *bridge_state,
-                                          struct drm_crtc_state *crtc_state,
-                                          struct drm_connector_state *conn_state,
-                                          unsigned int *num_output_fmts);
-
-       /**
-        * @atomic_get_input_bus_fmts:
-        *
-        * Return the supported bus formats on the input end of a bridge for
-        * a specific output bus format.
-        *
-        * The returned array must be allocated with kmalloc() and will be
-        * freed by the caller. If the allocation fails, NULL should be
-        * returned. num_output_fmts must be set to the returned array size.
-        * Formats listed in the returned array should be listed in decreasing
-        * preference order (the core will try all formats until it finds one
-        * that works). When the format is not supported NULL should be
-        * returned and *num_output_fmts should be set to 0.
-        *
-        * This method is called on all elements of the bridge chain as part of
-        * the bus format negotiation process that happens in
-        * &drm_atomic_bridge_chain_select_bus_fmts().
-        * This method is optional. When not implemented, the core will bypass
-        * bus format negotiation on this element of the bridge without
-        * failing, and the previous element in the chain will be passed
-        * MEDIA_BUS_FMT_FIXED as its output bus format.
-        *
-        * Bridge drivers that need to support being linked to bridges that are
-        * not supporting bus format negotiation should handle the
-        * output_fmt == MEDIA_BUS_FMT_FIXED case appropriately, by selecting a
-        * sensible default value or extracting this information from somewhere
-        * else (FW property, &drm_display_mode, &drm_display_info, ...)
-        *
-        * Note: Even if input format selection on the first bridge has no
-        * impact on the negotiation process (bus format negotiation stops once
-        * we reach the first element of the chain), drivers are expected to
-        * return accurate input formats as the input format may be used to
-        * configure the CRTC output appropriately.
-        */
-       u32 *(*atomic_get_input_bus_fmts)(struct drm_bridge *bridge,
-                                         struct drm_bridge_state *bridge_state,
-                                         struct drm_crtc_state *crtc_state,
-                                         struct drm_connector_state *conn_state,
-                                         u32 output_fmt,
-                                         unsigned int *num_input_fmts);
-
        /**
         * @atomic_check:
         *
@@ -509,14 +401,6 @@ struct drm_bridge_funcs {
         * called when &drm_bridge_funcs.atomic_check() is implemented, so only
         * one of them should be provided.
         *
-        * If drivers need to tweak &drm_bridge_state.input_bus_cfg.flags or
-        * &drm_bridge_state.output_bus_cfg.flags it should should happen in
-        * this function. By default the &drm_bridge_state.output_bus_cfg.flags
-        * field is set to the next bridge
-        * &drm_bridge_state.input_bus_cfg.flags value or
-        * &drm_connector.display_info.bus_flags if the bridge is the last
-        * element in the chain.
-        *
         * RETURNS:
         * zero if the check passed, a negative error code otherwise.
         */
@@ -704,14 +588,6 @@ void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
 void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
                                    struct drm_atomic_state *state);
 
-u32 *
-drm_atomic_helper_bridge_propagate_bus_fmt(struct drm_bridge *bridge,
-                                       struct drm_bridge_state *bridge_state,
-                                       struct drm_crtc_state *crtc_state,
-                                       struct drm_connector_state *conn_state,
-                                       u32 output_fmt,
-                                       unsigned int *num_input_fmts);
-
 void __drm_atomic_helper_bridge_reset(struct drm_bridge *bridge,
                                      struct drm_bridge_state *state);
 void __drm_atomic_helper_bridge_duplicate_state(struct drm_bridge *bridge,