@@ -129,10 +129,10 @@ static
129129struct drm_connector * find_connector_by_bridge (struct drm_device * drm_dev ,
130130 struct device_node * node )
131131{
132- struct device_node * np_encoder , * np_connector = NULL ;
132+ struct device_node * np_encoder ;
133+ struct drm_bridge * bridge ;
133134 struct drm_encoder * encoder ;
134135 struct drm_connector * connector = NULL ;
135- struct device_node * port , * endpoint ;
136136 bool encoder_bridge = false;
137137 bool found_connector = false;
138138
@@ -149,33 +149,17 @@ struct drm_connector *find_connector_by_bridge(struct drm_device *drm_dev,
149149 dev_err (drm_dev -> dev , "can't found encoder bridge!\n" );
150150 goto err_put_encoder ;
151151 }
152- port = of_graph_get_port_by_id (np_encoder , 1 );
153- if (!port ) {
154- dev_err (drm_dev -> dev , "can't found port point!\n" );
155- goto err_put_encoder ;
156- }
157- for_each_available_child_of_node (port , endpoint ) {
158- np_connector = of_graph_get_remote_port_parent (endpoint );
159- if (!np_connector ) {
160- dev_err (drm_dev -> dev ,
161- "can't found connector node, please init!\n" );
162- goto err_put_port ;
163- }
164- if (!of_device_is_available (np_connector )) {
165- of_node_put (np_connector );
166- np_connector = NULL ;
167- continue ;
168- } else {
152+
153+ bridge = encoder -> bridge ;
154+ while (bridge ) {
155+ if (!bridge -> next )
169156 break ;
170- }
171- }
172- if (!np_connector ) {
173- dev_err (drm_dev -> dev , "can't found available connector node!\n" );
174- goto err_put_port ;
157+
158+ bridge = bridge -> next ;
175159 }
176160
177161 drm_for_each_connector (connector , drm_dev ) {
178- if (connector -> port == np_connector ) {
162+ if (connector -> port == bridge -> of_node ) {
179163 found_connector = true;
180164 break ;
181165 }
@@ -184,9 +168,6 @@ struct drm_connector *find_connector_by_bridge(struct drm_device *drm_dev,
184168 if (!found_connector )
185169 connector = NULL ;
186170
187- of_node_put (np_connector );
188- err_put_port :
189- of_node_put (port );
190171err_put_encoder :
191172 of_node_put (np_encoder );
192173
0 commit comments