struct drm_bridge *panel_bridge;
        int ret;
 
-       ptn_bridge = devm_kzalloc(dev, sizeof(*ptn_bridge), GFP_KERNEL);
-       if (!ptn_bridge) {
-               return -ENOMEM;
-       }
+       ptn_bridge = devm_drm_bridge_alloc(dev, struct ptn3460_bridge, bridge,
+                                          &ptn3460_bridge_funcs);
+       if (IS_ERR(ptn_bridge))
+               return PTR_ERR(ptn_bridge);
 
        panel_bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0);
        if (IS_ERR(panel_bridge))
                return ret;
        }
 
-       ptn_bridge->bridge.funcs = &ptn3460_bridge_funcs;
        ptn_bridge->bridge.ops = DRM_BRIDGE_OP_EDID;
        ptn_bridge->bridge.type = DRM_MODE_CONNECTOR_LVDS;
        ptn_bridge->bridge.of_node = dev->of_node;