drm/gma500: Don't destroy DRM properties in the driver
When drm properties are created, they are added to mode_config.property_list which is then used in drm_mode_config_cleanup() to destroy every single property created by the driver. Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
9d5fab402d
Коммит
ba8ce31f43
|
@ -1631,57 +1631,8 @@ static int psb_intel_sdvo_get_modes(struct drm_connector *connector)
|
|||
return !list_empty(&connector->probed_modes);
|
||||
}
|
||||
|
||||
static void
|
||||
psb_intel_sdvo_destroy_enhance_property(struct drm_connector *connector)
|
||||
{
|
||||
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
|
||||
struct drm_device *dev = connector->dev;
|
||||
|
||||
if (psb_intel_sdvo_connector->left)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->left);
|
||||
if (psb_intel_sdvo_connector->right)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->right);
|
||||
if (psb_intel_sdvo_connector->top)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->top);
|
||||
if (psb_intel_sdvo_connector->bottom)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->bottom);
|
||||
if (psb_intel_sdvo_connector->hpos)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->hpos);
|
||||
if (psb_intel_sdvo_connector->vpos)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->vpos);
|
||||
if (psb_intel_sdvo_connector->saturation)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->saturation);
|
||||
if (psb_intel_sdvo_connector->contrast)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->contrast);
|
||||
if (psb_intel_sdvo_connector->hue)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->hue);
|
||||
if (psb_intel_sdvo_connector->sharpness)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->sharpness);
|
||||
if (psb_intel_sdvo_connector->flicker_filter)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->flicker_filter);
|
||||
if (psb_intel_sdvo_connector->flicker_filter_2d)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->flicker_filter_2d);
|
||||
if (psb_intel_sdvo_connector->flicker_filter_adaptive)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->flicker_filter_adaptive);
|
||||
if (psb_intel_sdvo_connector->tv_luma_filter)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->tv_luma_filter);
|
||||
if (psb_intel_sdvo_connector->tv_chroma_filter)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->tv_chroma_filter);
|
||||
if (psb_intel_sdvo_connector->dot_crawl)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->dot_crawl);
|
||||
if (psb_intel_sdvo_connector->brightness)
|
||||
drm_property_destroy(dev, psb_intel_sdvo_connector->brightness);
|
||||
}
|
||||
|
||||
static void psb_intel_sdvo_destroy(struct drm_connector *connector)
|
||||
{
|
||||
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
|
||||
|
||||
if (psb_intel_sdvo_connector->tv_format)
|
||||
drm_property_destroy(connector->dev,
|
||||
psb_intel_sdvo_connector->tv_format);
|
||||
|
||||
psb_intel_sdvo_destroy_enhance_property(connector);
|
||||
drm_connector_unregister(connector);
|
||||
drm_connector_cleanup(connector);
|
||||
kfree(connector);
|
||||
|
|
Загрузка…
Ссылка в новой задаче