[Intel-gfx] [PATCH 04/10] drm/sysfs: Nuke TV/DVI property files

Alex Deucher alexdeucher at gmail.com
Wed Mar 30 13:49:26 UTC 2016


On Wed, Mar 30, 2016 at 5:45 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> This goes all the way back to the original KMS commit aeons ago
>
> commit f453ba0460742ad027ae0c4c7d61e62817b3e7ef
> Author: Dave Airlie <airlied at redhat.com>
> Date:   Fri Nov 7 14:05:41 2008 -0800
>
>     DRM: add mode setting support
>
> But it seems to be completely unused. Only i915 and nouveau even
> register these properties, and the corresponding DDX don't even look
> at them. Also the sysfs files are read-only, so not useful to
> configure anything.
>
> I suspect that this was added with the goal to have read-only access
> to all properties in sysfs, but we never followed through on that.
> Also, that should be done in a more generic fashion.
>
> Since it would be real work to fix up the locking (with atomic we're
> now chasing pointers when reading properties) and it seems unused lets
> just nuke this all. It's easier. Of course we'll keep the properties
> themselves, those are still exposed through the KMS ioctls.
>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/drm_sysfs.c | 156 --------------------------------------------
>  1 file changed, 156 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index 43875cb35691..fa7fadce8063 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -292,102 +292,6 @@ static ssize_t modes_show(struct device *device,
>         return written;
>  }
>
> -static ssize_t tv_subconnector_show(struct device *device,
> -                                   struct device_attribute *attr,
> -                                   char *buf)
> -{
> -       struct drm_connector *connector = to_drm_connector(device);
> -       struct drm_device *dev = connector->dev;
> -       struct drm_property *prop;
> -       uint64_t subconnector;
> -       int ret;
> -
> -       prop = dev->mode_config.tv_subconnector_property;
> -       if (!prop) {
> -               DRM_ERROR("Unable to find subconnector property\n");
> -               return 0;
> -       }
> -
> -       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
> -       if (ret)
> -               return 0;
> -
> -       return snprintf(buf, PAGE_SIZE, "%s",
> -                       drm_get_tv_subconnector_name((int)subconnector));
> -}
> -
> -static ssize_t tv_select_subconnector_show(struct device *device,
> -                                          struct device_attribute *attr,
> -                                          char *buf)
> -{
> -       struct drm_connector *connector = to_drm_connector(device);
> -       struct drm_device *dev = connector->dev;
> -       struct drm_property *prop;
> -       uint64_t subconnector;
> -       int ret;
> -
> -       prop = dev->mode_config.tv_select_subconnector_property;
> -       if (!prop) {
> -               DRM_ERROR("Unable to find select subconnector property\n");
> -               return 0;
> -       }
> -
> -       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
> -       if (ret)
> -               return 0;
> -
> -       return snprintf(buf, PAGE_SIZE, "%s",
> -                       drm_get_tv_select_name((int)subconnector));
> -}
> -
> -static ssize_t dvii_subconnector_show(struct device *device,
> -                                     struct device_attribute *attr,
> -                                     char *buf)
> -{
> -       struct drm_connector *connector = to_drm_connector(device);
> -       struct drm_device *dev = connector->dev;
> -       struct drm_property *prop;
> -       uint64_t subconnector;
> -       int ret;
> -
> -       prop = dev->mode_config.dvi_i_subconnector_property;
> -       if (!prop) {
> -               DRM_ERROR("Unable to find subconnector property\n");
> -               return 0;
> -       }
> -
> -       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
> -       if (ret)
> -               return 0;
> -
> -       return snprintf(buf, PAGE_SIZE, "%s",
> -                       drm_get_dvi_i_subconnector_name((int)subconnector));
> -}
> -
> -static ssize_t dvii_select_subconnector_show(struct device *device,
> -                                            struct device_attribute *attr,
> -                                            char *buf)
> -{
> -       struct drm_connector *connector = to_drm_connector(device);
> -       struct drm_device *dev = connector->dev;
> -       struct drm_property *prop;
> -       uint64_t subconnector;
> -       int ret;
> -
> -       prop = dev->mode_config.dvi_i_select_subconnector_property;
> -       if (!prop) {
> -               DRM_ERROR("Unable to find select subconnector property\n");
> -               return 0;
> -       }
> -
> -       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
> -       if (ret)
> -               return 0;
> -
> -       return snprintf(buf, PAGE_SIZE, "%s",
> -                       drm_get_dvi_i_select_name((int)subconnector));
> -}
> -
>  static DEVICE_ATTR_RW(status);
>  static DEVICE_ATTR_RO(enabled);
>  static DEVICE_ATTR_RO(dpms);
> @@ -401,54 +305,6 @@ static struct attribute *connector_dev_attrs[] = {
>         NULL
>  };
>
> -static DEVICE_ATTR_RO(tv_subconnector);
> -static DEVICE_ATTR_RO(tv_select_subconnector);
> -
> -static struct attribute *connector_tv_dev_attrs[] = {
> -       &dev_attr_tv_subconnector.attr,
> -       &dev_attr_tv_select_subconnector.attr,
> -       NULL
> -};
> -
> -static DEVICE_ATTR_RO(dvii_subconnector);
> -static DEVICE_ATTR_RO(dvii_select_subconnector);
> -
> -static struct attribute *connector_dvii_dev_attrs[] = {
> -       &dev_attr_dvii_subconnector.attr,
> -       &dev_attr_dvii_select_subconnector.attr,
> -       NULL
> -};
> -
> -/* Connector type related helpers */
> -static int kobj_connector_type(struct kobject *kobj)
> -{
> -       struct device *dev = kobj_to_dev(kobj);
> -       struct drm_connector *connector = to_drm_connector(dev);
> -
> -       return connector->connector_type;
> -}
> -
> -static umode_t connector_is_dvii(struct kobject *kobj,
> -                                struct attribute *attr, int idx)
> -{
> -       return kobj_connector_type(kobj) == DRM_MODE_CONNECTOR_DVII ?
> -               attr->mode : 0;
> -}
> -
> -static umode_t connector_is_tv(struct kobject *kobj,
> -                              struct attribute *attr, int idx)
> -{
> -       switch (kobj_connector_type(kobj)) {
> -       case DRM_MODE_CONNECTOR_Composite:
> -       case DRM_MODE_CONNECTOR_SVIDEO:
> -       case DRM_MODE_CONNECTOR_Component:
> -       case DRM_MODE_CONNECTOR_TV:
> -               return attr->mode;
> -       }
> -
> -       return 0;
> -}
> -
>  static struct bin_attribute edid_attr = {
>         .attr.name = "edid",
>         .attr.mode = 0444,
> @@ -466,20 +322,8 @@ static const struct attribute_group connector_dev_group = {
>         .bin_attrs = connector_bin_attrs,
>  };
>
> -static const struct attribute_group connector_tv_dev_group = {
> -       .attrs = connector_tv_dev_attrs,
> -       .is_visible = connector_is_tv,
> -};
> -
> -static const struct attribute_group connector_dvii_dev_group = {
> -       .attrs = connector_dvii_dev_attrs,
> -       .is_visible = connector_is_dvii,
> -};
> -
>  static const struct attribute_group *connector_dev_groups[] = {
>         &connector_dev_group,
> -       &connector_tv_dev_group,
> -       &connector_dvii_dev_group,
>         NULL
>  };
>
> --
> 2.8.0.rc3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the Intel-gfx mailing list