The module unload should not be allowed while the bridge is attached. So
still need to add these:

On 11/25/16 11:02, Jyri Sarha wrote:
> +
> +static int tfp410_attach(struct drm_bridge *bridge)
> +{
> +     struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
> +     int ret;
> +


+       if (!try_module_get(THIS_MODULE)) {
+               dev_err(dvi->dev, "Module unloading\n");
+               return -ENODEV;
+       }
+


> +     if (!bridge->encoder) {
> +             dev_err(dvi->dev, "Missing encoder\n");
> +             return -ENODEV;
> +     }
> +
> +     drm_connector_helper_add(&dvi->connector,
> +                              &tfp410_con_helper_funcs);
> +     ret = drm_connector_init(bridge->dev, &dvi->connector,
> +                              &tfp410_con_funcs, DRM_MODE_CONNECTOR_HDMIA);
> +     if (ret) {
> +             dev_err(dvi->dev, "drm_connector_init() failed: %d\n", ret);
> +             return ret;
> +     }
> +
> +     drm_mode_connector_attach_encoder(&dvi->connector,
> +                                       bridge->encoder);
> +
> +     return 0;
> +}

+static void tfp410_detach(struct drm_bridge *bridge)
+{
+       module_put(THIS_MODULE);
+}
+

> +
> +static const struct drm_bridge_funcs tfp410_bridge_funcs = {
> +     .attach         = tfp410_attach,

+       .detach         = tfp410_detach,

> +};
> +

Reply via email to