Skip to content

Commit 34ea3d3

Browse files
thosdanvet
authored andcommitted
drm: add register and unregister functions for connectors
Introduce generic functions to register and unregister connectors. This provides a common place to add and remove associated user space interfaces. Signed-off-by: Thomas Wood <thomas.wood@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent c3e25ae commit 34ea3d3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+110
-82
lines changed

Documentation/DocBook/drm.tmpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ int max_width, max_height;</synopsis>
16101610
The connector is then registered with a call to
16111611
<function>drm_connector_init</function> with a pointer to the connector
16121612
functions and a connector type, and exposed through sysfs with a call to
1613-
<function>drm_sysfs_connector_add</function>.
1613+
<function>drm_connector_register</function>.
16141614
</para>
16151615
<para>
16161616
Supported connector types are
@@ -1768,7 +1768,7 @@ int max_width, max_height;</synopsis>
17681768
(<function>drm_encoder_cleanup</function>) and connectors
17691769
(<function>drm_connector_cleanup</function>). Furthermore, connectors
17701770
that have been added to sysfs must be removed by a call to
1771-
<function>drm_sysfs_connector_remove</function> before calling
1771+
<function>drm_connector_unregister</function> before calling
17721772
<function>drm_connector_cleanup</function>.
17731773
</para>
17741774
<para>
@@ -1813,7 +1813,7 @@ void intel_crt_init(struct drm_device *dev)
18131813
drm_encoder_helper_add(&intel_output->enc, &intel_crt_helper_funcs);
18141814
drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
18151815
1816-
drm_sysfs_connector_add(connector);
1816+
drm_connector_register(connector);
18171817
}]]></programlisting>
18181818
<para>
18191819
In the example above (taken from the i915 driver), a CRTC, connector and

drivers/gpu/drm/armada/armada_output.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ static void armada_drm_connector_destroy(struct drm_connector *conn)
4848
{
4949
struct armada_connector *dconn = drm_to_armada_conn(conn);
5050

51-
drm_sysfs_connector_remove(conn);
51+
drm_connector_unregister(conn);
5252
drm_connector_cleanup(conn);
5353
kfree(dconn);
5454
}
@@ -141,7 +141,7 @@ int armada_output_create(struct drm_device *dev,
141141
if (ret)
142142
goto err_conn;
143143

144-
ret = drm_sysfs_connector_add(&dconn->conn);
144+
ret = drm_connector_register(&dconn->conn);
145145
if (ret)
146146
goto err_sysfs;
147147

drivers/gpu/drm/ast/ast_mode.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ static void ast_connector_destroy(struct drm_connector *connector)
829829
{
830830
struct ast_connector *ast_connector = to_ast_connector(connector);
831831
ast_i2c_destroy(ast_connector->i2c);
832-
drm_sysfs_connector_remove(connector);
832+
drm_connector_unregister(connector);
833833
drm_connector_cleanup(connector);
834834
kfree(connector);
835835
}
@@ -871,7 +871,7 @@ static int ast_connector_init(struct drm_device *dev)
871871
connector->interlace_allowed = 0;
872872
connector->doublescan_allowed = 0;
873873

874-
drm_sysfs_connector_add(connector);
874+
drm_connector_register(connector);
875875

876876
connector->polled = DRM_CONNECTOR_POLL_CONNECT;
877877

drivers/gpu/drm/bridge/ptn3460.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder,
328328
}
329329
drm_connector_helper_add(&ptn_bridge->connector,
330330
&ptn3460_connector_helper_funcs);
331-
drm_sysfs_connector_add(&ptn_bridge->connector);
331+
drm_connector_register(&ptn_bridge->connector);
332332
drm_mode_connector_attach_encoder(&ptn_bridge->connector, encoder);
333333

334334
return 0;

drivers/gpu/drm/drm_crtc.c

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -920,6 +920,34 @@ void drm_connector_cleanup(struct drm_connector *connector)
920920
}
921921
EXPORT_SYMBOL(drm_connector_cleanup);
922922

923+
/**
924+
* drm_connector_register - register a connector
925+
* @connector: the connector to register
926+
*
927+
* Register userspace interfaces for a connector
928+
*
929+
* Returns:
930+
* Zero on success, error code on failure.
931+
*/
932+
int drm_connector_register(struct drm_connector *connector)
933+
{
934+
return drm_sysfs_connector_add(connector);
935+
}
936+
EXPORT_SYMBOL(drm_connector_register);
937+
938+
/**
939+
* drm_connector_unregister - unregister a connector
940+
* @connector: the connector to unregister
941+
*
942+
* Unregister userspace interfaces for a connector
943+
*/
944+
void drm_connector_unregister(struct drm_connector *connector)
945+
{
946+
drm_sysfs_connector_remove(connector);
947+
}
948+
EXPORT_SYMBOL(drm_connector_unregister);
949+
950+
923951
/**
924952
* drm_connector_unplug_all - unregister connector userspace interfaces
925953
* @dev: drm device
@@ -934,7 +962,7 @@ void drm_connector_unplug_all(struct drm_device *dev)
934962

935963
/* taking the mode config mutex ends up in a clash with sysfs */
936964
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
937-
drm_sysfs_connector_remove(connector);
965+
drm_connector_unregister(connector);
938966

939967
}
940968
EXPORT_SYMBOL(drm_connector_unplug_all);

drivers/gpu/drm/drm_sysfs.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,6 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
438438
out:
439439
return ret;
440440
}
441-
EXPORT_SYMBOL(drm_sysfs_connector_add);
442441

443442
/**
444443
* drm_sysfs_connector_remove - remove an connector device from sysfs
@@ -468,7 +467,6 @@ void drm_sysfs_connector_remove(struct drm_connector *connector)
468467
device_unregister(connector->kdev);
469468
connector->kdev = NULL;
470469
}
471-
EXPORT_SYMBOL(drm_sysfs_connector_remove);
472470

473471
/**
474472
* drm_sysfs_hotplug_event - generate a DRM uevent

drivers/gpu/drm/exynos/exynos_dp_core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1018,7 +1018,7 @@ static int exynos_dp_create_connector(struct exynos_drm_display *display,
10181018
}
10191019

10201020
drm_connector_helper_add(connector, &exynos_dp_connector_helper_funcs);
1021-
drm_sysfs_connector_add(connector);
1021+
drm_connector_register(connector);
10221022
drm_mode_connector_attach_encoder(connector, encoder);
10231023

10241024
return 0;

drivers/gpu/drm/exynos/exynos_drm_connector.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ static void exynos_drm_connector_destroy(struct drm_connector *connector)
185185
struct exynos_drm_connector *exynos_connector =
186186
to_exynos_connector(connector);
187187

188-
drm_sysfs_connector_remove(connector);
188+
drm_connector_unregister(connector);
189189
drm_connector_cleanup(connector);
190190
kfree(exynos_connector);
191191
}
@@ -230,7 +230,7 @@ struct drm_connector *exynos_drm_connector_create(struct drm_device *dev,
230230
drm_connector_init(dev, connector, &exynos_connector_funcs, type);
231231
drm_connector_helper_add(connector, &exynos_connector_helper_funcs);
232232

233-
err = drm_sysfs_connector_add(connector);
233+
err = drm_connector_register(connector);
234234
if (err)
235235
goto err_connector;
236236

@@ -250,7 +250,7 @@ struct drm_connector *exynos_drm_connector_create(struct drm_device *dev,
250250
return connector;
251251

252252
err_sysfs:
253-
drm_sysfs_connector_remove(connector);
253+
drm_connector_unregister(connector);
254254
err_connector:
255255
drm_connector_cleanup(connector);
256256
kfree(exynos_connector);

drivers/gpu/drm/exynos/exynos_drm_dpi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
4848

4949
static void exynos_dpi_connector_destroy(struct drm_connector *connector)
5050
{
51-
drm_sysfs_connector_remove(connector);
51+
drm_connector_unregister(connector);
5252
drm_connector_cleanup(connector);
5353
}
5454

@@ -117,7 +117,7 @@ static int exynos_dpi_create_connector(struct exynos_drm_display *display,
117117
}
118118

119119
drm_connector_helper_add(connector, &exynos_dpi_connector_helper_funcs);
120-
drm_sysfs_connector_add(connector);
120+
drm_connector_register(connector);
121121
drm_mode_connector_attach_encoder(connector, encoder);
122122

123123
return 0;

drivers/gpu/drm/exynos/exynos_drm_dsi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,7 @@ static int exynos_dsi_create_connector(struct exynos_drm_display *display,
12461246
}
12471247

12481248
drm_connector_helper_add(connector, &exynos_dsi_connector_helper_funcs);
1249-
drm_sysfs_connector_add(connector);
1249+
drm_connector_register(connector);
12501250
drm_mode_connector_attach_encoder(connector, encoder);
12511251

12521252
return 0;

drivers/gpu/drm/exynos/exynos_drm_vidi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ static int vidi_create_connector(struct exynos_drm_display *display,
562562
}
563563

564564
drm_connector_helper_add(connector, &vidi_connector_helper_funcs);
565-
drm_sysfs_connector_add(connector);
565+
drm_connector_register(connector);
566566
drm_mode_connector_attach_encoder(connector, encoder);
567567

568568
return 0;

drivers/gpu/drm/exynos/exynos_hdmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1129,7 +1129,7 @@ static int hdmi_create_connector(struct exynos_drm_display *display,
11291129
}
11301130

11311131
drm_connector_helper_add(connector, &hdmi_connector_helper_funcs);
1132-
drm_sysfs_connector_add(connector);
1132+
drm_connector_register(connector);
11331133
drm_mode_connector_attach_encoder(connector, encoder);
11341134

11351135
return 0;

drivers/gpu/drm/gma500/cdv_intel_crt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ static void cdv_intel_crt_destroy(struct drm_connector *connector)
192192
struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
193193

194194
psb_intel_i2c_destroy(gma_encoder->ddc_bus);
195-
drm_sysfs_connector_remove(connector);
195+
drm_connector_unregister(connector);
196196
drm_connector_cleanup(connector);
197197
kfree(connector);
198198
}
@@ -304,7 +304,7 @@ void cdv_intel_crt_init(struct drm_device *dev,
304304
drm_connector_helper_add(connector,
305305
&cdv_intel_crt_connector_helper_funcs);
306306

307-
drm_sysfs_connector_add(connector);
307+
drm_connector_register(connector);
308308

309309
return;
310310
failed_ddc:

drivers/gpu/drm/gma500/cdv_intel_dp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,7 +1713,7 @@ cdv_intel_dp_destroy(struct drm_connector *connector)
17131713
}
17141714
}
17151715
i2c_del_adapter(&intel_dp->adapter);
1716-
drm_sysfs_connector_remove(connector);
1716+
drm_connector_unregister(connector);
17171717
drm_connector_cleanup(connector);
17181718
kfree(connector);
17191719
}
@@ -1847,7 +1847,7 @@ cdv_intel_dp_init(struct drm_device *dev, struct psb_intel_mode_device *mode_dev
18471847
connector->interlace_allowed = false;
18481848
connector->doublescan_allowed = false;
18491849

1850-
drm_sysfs_connector_add(connector);
1850+
drm_connector_register(connector);
18511851

18521852
/* Set up the DDC bus. */
18531853
switch (output_reg) {

drivers/gpu/drm/gma500/cdv_intel_hdmi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ static void cdv_hdmi_destroy(struct drm_connector *connector)
248248

249249
if (gma_encoder->i2c_bus)
250250
psb_intel_i2c_destroy(gma_encoder->i2c_bus);
251-
drm_sysfs_connector_remove(connector);
251+
drm_connector_unregister(connector);
252252
drm_connector_cleanup(connector);
253253
kfree(connector);
254254
}
@@ -356,7 +356,7 @@ void cdv_hdmi_init(struct drm_device *dev,
356356

357357
hdmi_priv->hdmi_i2c_adapter = &(gma_encoder->i2c_bus->adapter);
358358
hdmi_priv->dev = dev;
359-
drm_sysfs_connector_add(connector);
359+
drm_connector_register(connector);
360360
return;
361361

362362
failed_ddc:

drivers/gpu/drm/gma500/cdv_intel_lvds.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ static void cdv_intel_lvds_destroy(struct drm_connector *connector)
446446

447447
if (gma_encoder->i2c_bus)
448448
psb_intel_i2c_destroy(gma_encoder->i2c_bus);
449-
drm_sysfs_connector_remove(connector);
449+
drm_connector_unregister(connector);
450450
drm_connector_cleanup(connector);
451451
kfree(connector);
452452
}
@@ -774,7 +774,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
774774

775775
out:
776776
mutex_unlock(&dev->mode_config.mutex);
777-
drm_sysfs_connector_add(connector);
777+
drm_connector_register(connector);
778778
return;
779779

780780
failed_find:

drivers/gpu/drm/gma500/mdfld_dsi_output.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ static void mdfld_dsi_connector_destroy(struct drm_connector *connector)
318318

319319
if (!dsi_connector)
320320
return;
321-
drm_sysfs_connector_remove(connector);
321+
drm_connector_unregister(connector);
322322
drm_connector_cleanup(connector);
323323
sender = dsi_connector->pkg_sender;
324324
mdfld_dsi_pkg_sender_destroy(sender);
@@ -597,7 +597,7 @@ void mdfld_dsi_output_init(struct drm_device *dev,
597597
dsi_config->encoder = encoder;
598598
encoder->base.type = (pipe == 0) ? INTEL_OUTPUT_MIPI :
599599
INTEL_OUTPUT_MIPI2;
600-
drm_sysfs_connector_add(connector);
600+
drm_connector_register(connector);
601601
return;
602602

603603
/*TODO: add code to destroy outputs on error*/

drivers/gpu/drm/gma500/oaktrail_hdmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ void oaktrail_hdmi_init(struct drm_device *dev,
665665
connector->display_info.subpixel_order = SubPixelHorizontalRGB;
666666
connector->interlace_allowed = false;
667667
connector->doublescan_allowed = false;
668-
drm_sysfs_connector_add(connector);
668+
drm_connector_register(connector);
669669
dev_info(dev->dev, "HDMI initialised.\n");
670670

671671
return;

drivers/gpu/drm/gma500/oaktrail_lvds.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ void oaktrail_lvds_init(struct drm_device *dev,
404404
out:
405405
mutex_unlock(&dev->mode_config.mutex);
406406

407-
drm_sysfs_connector_add(connector);
407+
drm_connector_register(connector);
408408
return;
409409

410410
failed_find:

drivers/gpu/drm/gma500/psb_intel_lvds.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ void psb_intel_lvds_destroy(struct drm_connector *connector)
563563

564564
if (lvds_priv->ddc_bus)
565565
psb_intel_i2c_destroy(lvds_priv->ddc_bus);
566-
drm_sysfs_connector_remove(connector);
566+
drm_connector_unregister(connector);
567567
drm_connector_cleanup(connector);
568568
kfree(connector);
569569
}
@@ -829,7 +829,7 @@ void psb_intel_lvds_init(struct drm_device *dev,
829829
*/
830830
out:
831831
mutex_unlock(&dev->mode_config.mutex);
832-
drm_sysfs_connector_add(connector);
832+
drm_connector_register(connector);
833833
return;
834834

835835
failed_find:

drivers/gpu/drm/gma500/psb_intel_sdvo.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,7 +1682,7 @@ static void psb_intel_sdvo_destroy(struct drm_connector *connector)
16821682
psb_intel_sdvo_connector->tv_format);
16831683

16841684
psb_intel_sdvo_destroy_enhance_property(connector);
1685-
drm_sysfs_connector_remove(connector);
1685+
drm_connector_unregister(connector);
16861686
drm_connector_cleanup(connector);
16871687
kfree(connector);
16881688
}
@@ -2071,7 +2071,7 @@ psb_intel_sdvo_connector_init(struct psb_intel_sdvo_connector *connector,
20712071
connector->base.base.display_info.subpixel_order = SubPixelHorizontalRGB;
20722072

20732073
gma_connector_attach_encoder(&connector->base, &encoder->base);
2074-
drm_sysfs_connector_add(&connector->base.base);
2074+
drm_connector_register(&connector->base.base);
20752075
}
20762076

20772077
static void

drivers/gpu/drm/i915/intel_crt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,7 @@ void intel_crt_init(struct drm_device *dev)
869869

870870
drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
871871

872-
drm_sysfs_connector_add(connector);
872+
drm_connector_register(connector);
873873

874874
if (!I915_HAS_HOTPLUG(dev))
875875
intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT;

drivers/gpu/drm/i915/intel_display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12234,7 +12234,7 @@ void intel_connector_unregister(struct intel_connector *intel_connector)
1223412234
struct drm_connector *connector = &intel_connector->base;
1223512235

1223612236
intel_panel_destroy_backlight(connector);
12237-
drm_sysfs_connector_remove(connector);
12237+
drm_connector_unregister(connector);
1223812238
}
1223912239

1224012240
void intel_modeset_cleanup(struct drm_device *dev)

drivers/gpu/drm/i915/intel_dp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4246,7 +4246,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
42464246
edp_panel_vdd_work);
42474247

42484248
intel_connector_attach_encoder(intel_connector, intel_encoder);
4249-
drm_sysfs_connector_add(connector);
4249+
drm_connector_register(connector);
42504250

42514251
if (HAS_DDI(dev))
42524252
intel_connector->get_hw_state = intel_ddi_connector_get_hw_state;
@@ -4289,7 +4289,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
42894289
edp_panel_vdd_off_sync(intel_dp);
42904290
drm_modeset_unlock(&dev->mode_config.connection_mutex);
42914291
}
4292-
drm_sysfs_connector_remove(connector);
4292+
drm_connector_unregister(connector);
42934293
drm_connector_cleanup(connector);
42944294
return false;
42954295
}

0 commit comments

Comments
 (0)