diff options
Diffstat (limited to 'drivers/gpu/drm/drm_sysfs.c')
| -rw-r--r-- | drivers/gpu/drm/drm_sysfs.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 49daf37e5043..3a3a451d0bf8 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c | |||
| @@ -354,7 +354,10 @@ static struct bin_attribute edid_attr = { | |||
| 354 | int drm_sysfs_connector_add(struct drm_connector *connector) | 354 | int drm_sysfs_connector_add(struct drm_connector *connector) |
| 355 | { | 355 | { |
| 356 | struct drm_device *dev = connector->dev; | 356 | struct drm_device *dev = connector->dev; |
| 357 | int ret = 0, i, j; | 357 | int attr_cnt = 0; |
| 358 | int opt_cnt = 0; | ||
| 359 | int i; | ||
| 360 | int ret = 0; | ||
| 358 | 361 | ||
| 359 | /* We shouldn't get called more than once for the same connector */ | 362 | /* We shouldn't get called more than once for the same connector */ |
| 360 | BUG_ON(device_is_registered(&connector->kdev)); | 363 | BUG_ON(device_is_registered(&connector->kdev)); |
| @@ -377,8 +380,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector) | |||
| 377 | 380 | ||
| 378 | /* Standard attributes */ | 381 | /* Standard attributes */ |
| 379 | 382 | ||
| 380 | for (i = 0; i < ARRAY_SIZE(connector_attrs); i++) { | 383 | for (attr_cnt = 0; attr_cnt < ARRAY_SIZE(connector_attrs); attr_cnt++) { |
| 381 | ret = device_create_file(&connector->kdev, &connector_attrs[i]); | 384 | ret = device_create_file(&connector->kdev, &connector_attrs[attr_cnt]); |
| 382 | if (ret) | 385 | if (ret) |
| 383 | goto err_out_files; | 386 | goto err_out_files; |
| 384 | } | 387 | } |
| @@ -394,8 +397,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector) | |||
| 394 | case DRM_MODE_CONNECTOR_SVIDEO: | 397 | case DRM_MODE_CONNECTOR_SVIDEO: |
| 395 | case DRM_MODE_CONNECTOR_Component: | 398 | case DRM_MODE_CONNECTOR_Component: |
| 396 | case DRM_MODE_CONNECTOR_TV: | 399 | case DRM_MODE_CONNECTOR_TV: |
| 397 | for (i = 0; i < ARRAY_SIZE(connector_attrs_opt1); i++) { | 400 | for (opt_cnt = 0; opt_cnt < ARRAY_SIZE(connector_attrs_opt1); opt_cnt++) { |
| 398 | ret = device_create_file(&connector->kdev, &connector_attrs_opt1[i]); | 401 | ret = device_create_file(&connector->kdev, &connector_attrs_opt1[opt_cnt]); |
| 399 | if (ret) | 402 | if (ret) |
| 400 | goto err_out_files; | 403 | goto err_out_files; |
| 401 | } | 404 | } |
| @@ -414,10 +417,10 @@ int drm_sysfs_connector_add(struct drm_connector *connector) | |||
| 414 | return 0; | 417 | return 0; |
| 415 | 418 | ||
| 416 | err_out_files: | 419 | err_out_files: |
| 417 | if (i > 0) | 420 | for (i = 0; i < opt_cnt; i++) |
| 418 | for (j = 0; j < i; j++) | 421 | device_remove_file(&connector->kdev, &connector_attrs_opt1[i]); |
| 419 | device_remove_file(&connector->kdev, | 422 | for (i = 0; i < attr_cnt; i++) |
| 420 | &connector_attrs[i]); | 423 | device_remove_file(&connector->kdev, &connector_attrs[i]); |
| 421 | device_unregister(&connector->kdev); | 424 | device_unregister(&connector->kdev); |
| 422 | 425 | ||
| 423 | out: | 426 | out: |
