Skip to content

Commit 1c21348

Browse files
committed
drm/i915: move intel connector specific functions to intel_connector.c
Now that we have intel_connector.c, move the connector specific functions from intel_display.c there. Fix a few checkpatch complaints while at it. No functional changes. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181010075205.7713-2-jani.nikula@intel.com
1 parent 360fa66 commit 1c21348

File tree

4 files changed

+119
-116
lines changed

4 files changed

+119
-116
lines changed

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3492,8 +3492,6 @@ mkwrite_device_info(struct drm_i915_private *dev_priv)
34923492
extern void intel_modeset_init_hw(struct drm_device *dev);
34933493
extern int intel_modeset_init(struct drm_device *dev);
34943494
extern void intel_modeset_cleanup(struct drm_device *dev);
3495-
extern int intel_connector_register(struct drm_connector *);
3496-
extern void intel_connector_unregister(struct drm_connector *);
34973495
extern int intel_modeset_vga_set_state(struct drm_i915_private *dev_priv,
34983496
bool state);
34993497
extern void intel_display_resume(struct drm_device *dev);

drivers/gpu/drm/i915/intel_connector.c

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,121 @@
2525

2626
#include <linux/slab.h>
2727
#include <linux/i2c.h>
28+
#include <drm/drm_atomic_helper.h>
2829
#include <drm/drm_edid.h>
2930
#include <drm/drmP.h>
3031
#include "intel_drv.h"
3132
#include "i915_drv.h"
3233

34+
int intel_connector_init(struct intel_connector *connector)
35+
{
36+
struct intel_digital_connector_state *conn_state;
37+
38+
/*
39+
* Allocate enough memory to hold intel_digital_connector_state,
40+
* This might be a few bytes too many, but for connectors that don't
41+
* need it we'll free the state and allocate a smaller one on the first
42+
* successful commit anyway.
43+
*/
44+
conn_state = kzalloc(sizeof(*conn_state), GFP_KERNEL);
45+
if (!conn_state)
46+
return -ENOMEM;
47+
48+
__drm_atomic_helper_connector_reset(&connector->base,
49+
&conn_state->base);
50+
51+
return 0;
52+
}
53+
54+
struct intel_connector *intel_connector_alloc(void)
55+
{
56+
struct intel_connector *connector;
57+
58+
connector = kzalloc(sizeof(*connector), GFP_KERNEL);
59+
if (!connector)
60+
return NULL;
61+
62+
if (intel_connector_init(connector) < 0) {
63+
kfree(connector);
64+
return NULL;
65+
}
66+
67+
return connector;
68+
}
69+
70+
/*
71+
* Free the bits allocated by intel_connector_alloc.
72+
* This should only be used after intel_connector_alloc has returned
73+
* successfully, and before drm_connector_init returns successfully.
74+
* Otherwise the destroy callbacks for the connector and the state should
75+
* take care of proper cleanup/free (see intel_connector_destroy).
76+
*/
77+
void intel_connector_free(struct intel_connector *connector)
78+
{
79+
kfree(to_intel_digital_connector_state(connector->base.state));
80+
kfree(connector);
81+
}
82+
83+
/*
84+
* Connector type independent destroy hook for drm_connector_funcs.
85+
*/
86+
void intel_connector_destroy(struct drm_connector *connector)
87+
{
88+
struct intel_connector *intel_connector = to_intel_connector(connector);
89+
90+
kfree(intel_connector->detect_edid);
91+
92+
if (!IS_ERR_OR_NULL(intel_connector->edid))
93+
kfree(intel_connector->edid);
94+
95+
intel_panel_fini(&intel_connector->panel);
96+
97+
drm_connector_cleanup(connector);
98+
kfree(connector);
99+
}
100+
101+
int intel_connector_register(struct drm_connector *connector)
102+
{
103+
struct intel_connector *intel_connector = to_intel_connector(connector);
104+
int ret;
105+
106+
ret = intel_backlight_device_register(intel_connector);
107+
if (ret)
108+
goto err;
109+
110+
return 0;
111+
112+
err:
113+
return ret;
114+
}
115+
116+
void intel_connector_unregister(struct drm_connector *connector)
117+
{
118+
struct intel_connector *intel_connector = to_intel_connector(connector);
119+
120+
intel_backlight_device_unregister(intel_connector);
121+
}
122+
123+
void intel_connector_attach_encoder(struct intel_connector *connector,
124+
struct intel_encoder *encoder)
125+
{
126+
connector->encoder = encoder;
127+
drm_connector_attach_encoder(&connector->base, &encoder->base);
128+
}
129+
130+
/*
131+
* Simple connector->get_hw_state implementation for encoders that support only
132+
* one connector and no cloning and hence the encoder state determines the state
133+
* of the connector.
134+
*/
135+
bool intel_connector_get_hw_state(struct intel_connector *connector)
136+
{
137+
enum pipe pipe = 0;
138+
struct intel_encoder *encoder = connector->encoder;
139+
140+
return encoder->get_hw_state(encoder, &pipe);
141+
}
142+
33143
/**
34144
* intel_connector_update_modes - update connector from edid
35145
* @connector: DRM connector device to use

drivers/gpu/drm/i915/intel_display.c

Lines changed: 0 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -6324,84 +6324,6 @@ static void intel_connector_verify_state(struct drm_crtc_state *crtc_state,
63246324
}
63256325
}
63266326

6327-
int intel_connector_init(struct intel_connector *connector)
6328-
{
6329-
struct intel_digital_connector_state *conn_state;
6330-
6331-
/*
6332-
* Allocate enough memory to hold intel_digital_connector_state,
6333-
* This might be a few bytes too many, but for connectors that don't
6334-
* need it we'll free the state and allocate a smaller one on the first
6335-
* succesful commit anyway.
6336-
*/
6337-
conn_state = kzalloc(sizeof(*conn_state), GFP_KERNEL);
6338-
if (!conn_state)
6339-
return -ENOMEM;
6340-
6341-
__drm_atomic_helper_connector_reset(&connector->base,
6342-
&conn_state->base);
6343-
6344-
return 0;
6345-
}
6346-
6347-
struct intel_connector *intel_connector_alloc(void)
6348-
{
6349-
struct intel_connector *connector;
6350-
6351-
connector = kzalloc(sizeof *connector, GFP_KERNEL);
6352-
if (!connector)
6353-
return NULL;
6354-
6355-
if (intel_connector_init(connector) < 0) {
6356-
kfree(connector);
6357-
return NULL;
6358-
}
6359-
6360-
return connector;
6361-
}
6362-
6363-
/*
6364-
* Free the bits allocated by intel_connector_alloc.
6365-
* This should only be used after intel_connector_alloc has returned
6366-
* successfully, and before drm_connector_init returns successfully.
6367-
* Otherwise the destroy callbacks for the connector and the state should
6368-
* take care of proper cleanup/free (see intel_connector_destroy).
6369-
*/
6370-
void intel_connector_free(struct intel_connector *connector)
6371-
{
6372-
kfree(to_intel_digital_connector_state(connector->base.state));
6373-
kfree(connector);
6374-
}
6375-
6376-
/*
6377-
* Connector type independent destroy hook for drm_connector_funcs.
6378-
*/
6379-
void intel_connector_destroy(struct drm_connector *connector)
6380-
{
6381-
struct intel_connector *intel_connector = to_intel_connector(connector);
6382-
6383-
kfree(intel_connector->detect_edid);
6384-
6385-
if (!IS_ERR_OR_NULL(intel_connector->edid))
6386-
kfree(intel_connector->edid);
6387-
6388-
intel_panel_fini(&intel_connector->panel);
6389-
6390-
drm_connector_cleanup(connector);
6391-
kfree(connector);
6392-
}
6393-
6394-
/* Simple connector->get_hw_state implementation for encoders that support only
6395-
* one connector and no cloning and hence the encoder state determines the state
6396-
* of the connector. */
6397-
bool intel_connector_get_hw_state(struct intel_connector *connector)
6398-
{
6399-
enum pipe pipe = 0;
6400-
struct intel_encoder *encoder = connector->encoder;
6401-
6402-
return encoder->get_hw_state(encoder, &pipe);
6403-
}
6404-
64056327
static int pipe_required_fdi_lanes(struct intel_crtc_state *crtc_state)
64066328
{
64076329
if (crtc_state->base.enable && crtc_state->has_pch_encoder)
@@ -15858,28 +15780,6 @@ void intel_display_resume(struct drm_device *dev)
1585815780
drm_atomic_state_put(state);
1585915781
}
1586015782

15861-
int intel_connector_register(struct drm_connector *connector)
15862-
{
15863-
struct intel_connector *intel_connector = to_intel_connector(connector);
15864-
int ret;
15865-
15866-
ret = intel_backlight_device_register(intel_connector);
15867-
if (ret)
15868-
goto err;
15869-
15870-
return 0;
15871-
15872-
err:
15873-
return ret;
15874-
}
15875-
15876-
void intel_connector_unregister(struct drm_connector *connector)
15877-
{
15878-
struct intel_connector *intel_connector = to_intel_connector(connector);
15879-
15880-
intel_backlight_device_unregister(intel_connector);
15881-
}
15882-
1588315783
static void intel_hpd_poll_fini(struct drm_device *dev)
1588415784
{
1588515785
struct intel_connector *connector;
@@ -15939,13 +15839,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
1593915839
destroy_workqueue(dev_priv->modeset_wq);
1594015840
}
1594115841

15942-
void intel_connector_attach_encoder(struct intel_connector *connector,
15943-
struct intel_encoder *encoder)
15944-
{
15945-
connector->encoder = encoder;
15946-
drm_connector_attach_encoder(&connector->base, &encoder->base);
15947-
}
15948-
1594915842
/*
1595015843
* set vga decode state - true == enable VGA decode
1595115844
*/

drivers/gpu/drm/i915/intel_drv.h

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,13 +1507,6 @@ void intel_mark_idle(struct drm_i915_private *dev_priv);
15071507
int intel_display_suspend(struct drm_device *dev);
15081508
void intel_pps_unlock_regs_wa(struct drm_i915_private *dev_priv);
15091509
void intel_encoder_destroy(struct drm_encoder *encoder);
1510-
int intel_connector_init(struct intel_connector *);
1511-
struct intel_connector *intel_connector_alloc(void);
1512-
void intel_connector_free(struct intel_connector *connector);
1513-
void intel_connector_destroy(struct drm_connector *connector);
1514-
bool intel_connector_get_hw_state(struct intel_connector *connector);
1515-
void intel_connector_attach_encoder(struct intel_connector *connector,
1516-
struct intel_encoder *encoder);
15171510
struct drm_display_mode *
15181511
intel_encoder_current_mode(struct intel_encoder *encoder);
15191512
bool intel_port_is_tc(struct drm_i915_private *dev_priv, enum port port);
@@ -1669,6 +1662,15 @@ unsigned int i9xx_plane_max_stride(struct intel_plane *plane,
16691662
unsigned int rotation);
16701663

16711664
/* intel_connector.c */
1665+
int intel_connector_init(struct intel_connector *connector);
1666+
struct intel_connector *intel_connector_alloc(void);
1667+
void intel_connector_free(struct intel_connector *connector);
1668+
void intel_connector_destroy(struct drm_connector *connector);
1669+
int intel_connector_register(struct drm_connector *connector);
1670+
void intel_connector_unregister(struct drm_connector *connector);
1671+
void intel_connector_attach_encoder(struct intel_connector *connector,
1672+
struct intel_encoder *encoder);
1673+
bool intel_connector_get_hw_state(struct intel_connector *connector);
16721674
int intel_connector_update_modes(struct drm_connector *connector,
16731675
struct edid *edid);
16741676
int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter);

0 commit comments

Comments
 (0)