]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/drm_bridge.c
Revert "drm/bridge: Add a drm_bridge_state object"
[linux.git] / drivers / gpu / drm / drm_bridge.c
index a213c9042f2c8fac694aa44f4da92e6696ce6972..c2cf0c90fa265d5a369194b75bd161dbe272b378 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/module.h>
 #include <linux/mutex.h>
 
-#include <drm/drm_atomic_state_helper.h>
 #include <drm/drm_bridge.h>
 #include <drm/drm_encoder.h>
 
@@ -90,74 +89,6 @@ void drm_bridge_remove(struct drm_bridge *bridge)
 }
 EXPORT_SYMBOL(drm_bridge_remove);
 
-static struct drm_bridge_state *
-drm_atomic_default_bridge_duplicate_state(struct drm_bridge *bridge)
-{
-       struct drm_bridge_state *new;
-
-       if (WARN_ON(!bridge->base.state))
-               return NULL;
-
-       new = kzalloc(sizeof(*new), GFP_KERNEL);
-       if (new)
-               __drm_atomic_helper_bridge_duplicate_state(bridge, new);
-
-       return new;
-}
-
-static struct drm_private_state *
-drm_bridge_atomic_duplicate_priv_state(struct drm_private_obj *obj)
-{
-       struct drm_bridge *bridge = drm_priv_to_bridge(obj);
-       struct drm_bridge_state *state;
-
-       if (bridge->funcs->atomic_duplicate_state)
-               state = bridge->funcs->atomic_duplicate_state(bridge);
-       else
-               state = drm_atomic_default_bridge_duplicate_state(bridge);
-
-       return state ? &state->base : NULL;
-}
-
-static void
-drm_atomic_default_bridge_destroy_state(struct drm_bridge *bridge,
-                                       struct drm_bridge_state *state)
-{
-       /* Just a simple kfree() for now */
-       kfree(state);
-}
-
-static void
-drm_bridge_atomic_destroy_priv_state(struct drm_private_obj *obj,
-                                    struct drm_private_state *s)
-{
-       struct drm_bridge_state *state = drm_priv_to_bridge_state(s);
-       struct drm_bridge *bridge = drm_priv_to_bridge(obj);
-
-       if (bridge->funcs->atomic_destroy_state)
-               bridge->funcs->atomic_destroy_state(bridge, state);
-       else
-               drm_atomic_default_bridge_destroy_state(bridge, state);
-}
-
-static const struct drm_private_state_funcs drm_bridge_priv_state_funcs = {
-       .atomic_duplicate_state = drm_bridge_atomic_duplicate_priv_state,
-       .atomic_destroy_state = drm_bridge_atomic_destroy_priv_state,
-};
-
-static struct drm_bridge_state *
-drm_atomic_default_bridge_reset(struct drm_bridge *bridge)
-{
-       struct drm_bridge_state *bridge_state;
-
-       bridge_state = kzalloc(sizeof(*bridge_state), GFP_KERNEL);
-       if (!bridge_state)
-               return ERR_PTR(-ENOMEM);
-
-       __drm_atomic_helper_bridge_reset(bridge, bridge_state);
-       return bridge_state;
-}
-
 /**
  * drm_bridge_attach - attach the bridge to an encoder's chain
  *
@@ -183,7 +114,6 @@ drm_atomic_default_bridge_reset(struct drm_bridge *bridge)
 int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
                      struct drm_bridge *previous)
 {
-       struct drm_bridge_state *state;
        int ret;
 
        if (!encoder || !bridge)
@@ -205,35 +135,15 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
 
        if (bridge->funcs->attach) {
                ret = bridge->funcs->attach(bridge);
-               if (ret < 0)
-                       goto err_reset_bridge;
-       }
-
-       if (bridge->funcs->atomic_reset)
-               state = bridge->funcs->atomic_reset(bridge);
-       else
-               state = drm_atomic_default_bridge_reset(bridge);
-
-       if (IS_ERR(state)) {
-               ret = PTR_ERR(state);
-               goto err_detach_bridge;
+               if (ret < 0) {
+                       list_del(&bridge->chain_node);
+                       bridge->dev = NULL;
+                       bridge->encoder = NULL;
+                       return ret;
+               }
        }
 
-       drm_atomic_private_obj_init(bridge->dev, &bridge->base,
-                                   &state->base,
-                                   &drm_bridge_priv_state_funcs);
-
        return 0;
-
-err_detach_bridge:
-       if (bridge->funcs->detach)
-               bridge->funcs->detach(bridge);
-
-err_reset_bridge:
-       bridge->dev = NULL;
-       bridge->encoder = NULL;
-       list_del(&bridge->chain_node);
-       return ret;
 }
 EXPORT_SYMBOL(drm_bridge_attach);
 
@@ -245,8 +155,6 @@ void drm_bridge_detach(struct drm_bridge *bridge)
        if (WARN_ON(!bridge->dev))
                return;
 
-       drm_atomic_private_obj_fini(&bridge->base);
-
        if (bridge->funcs->detach)
                bridge->funcs->detach(bridge);
 
@@ -608,41 +516,6 @@ void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
 }
 EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);
 
-/**
- * __drm_atomic_helper_bridge_reset() - Initialize a bridge state to its
- *                                     default
- * @bridge: the bridge this state is refers to
- * @state: bridge state to initialize
- *
- * Initialize the bridge state to default values. This is meant to be* called
- * by the bridge &drm_plane_funcs.reset hook for bridges that subclass the
- * bridge state.
- */
-void __drm_atomic_helper_bridge_reset(struct drm_bridge *bridge,
-                                     struct drm_bridge_state *state)
-{
-       memset(state, 0, sizeof(*state));
-       state->bridge = bridge;
-}
-EXPORT_SYMBOL(__drm_atomic_helper_bridge_reset);
-
-/**
- * __drm_atomic_helper_bridge_duplicate_state() - Copy atomic bridge state
- * @bridge: bridge object
- * @state: atomic bridge state
- *
- * Copies atomic state from a bridge's current state and resets inferred values.
- * This is useful for drivers that subclass the bridge state.
- */
-void __drm_atomic_helper_bridge_duplicate_state(struct drm_bridge *bridge,
-                                               struct drm_bridge_state *state)
-{
-       __drm_atomic_helper_private_obj_duplicate_state(&bridge->base,
-                                                       &state->base);
-       state->bridge = bridge;
-}
-EXPORT_SYMBOL(__drm_atomic_helper_bridge_duplicate_state);
-
 #ifdef CONFIG_OF
 /**
  * of_drm_find_bridge - find the bridge corresponding to the device node in