|
@@ -321,7 +321,7 @@ int drm_mode_connector_attach_encoder(struct drm_connector *connector,
|
|
|
if (WARN_ON(connector->encoder))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
|
|
+ for (i = 0; i < ARRAY_SIZE(connector->encoder_ids); i++) {
|
|
|
if (connector->encoder_ids[i] == 0) {
|
|
|
connector->encoder_ids[i] = encoder->base.id;
|
|
|
return 0;
|
|
@@ -1706,22 +1706,19 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
|
|
|
if (!connector)
|
|
|
return -ENOENT;
|
|
|
|
|
|
- for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++)
|
|
|
- if (connector->encoder_ids[i] != 0)
|
|
|
- encoders_count++;
|
|
|
+ drm_connector_for_each_possible_encoder(connector, encoder, i)
|
|
|
+ encoders_count++;
|
|
|
|
|
|
if ((out_resp->count_encoders >= encoders_count) && encoders_count) {
|
|
|
copied = 0;
|
|
|
encoder_ptr = (uint32_t __user *)(unsigned long)(out_resp->encoders_ptr);
|
|
|
- for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
|
|
- if (connector->encoder_ids[i] != 0) {
|
|
|
- if (put_user(connector->encoder_ids[i],
|
|
|
- encoder_ptr + copied)) {
|
|
|
- ret = -EFAULT;
|
|
|
- goto out;
|
|
|
- }
|
|
|
- copied++;
|
|
|
+
|
|
|
+ drm_connector_for_each_possible_encoder(connector, encoder, i) {
|
|
|
+ if (put_user(encoder->base.id, encoder_ptr + copied)) {
|
|
|
+ ret = -EFAULT;
|
|
|
+ goto out;
|
|
|
}
|
|
|
+ copied++;
|
|
|
}
|
|
|
}
|
|
|
out_resp->count_encoders = encoders_count;
|