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);
|
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)
|
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_unregister(connector);
|
||||||
drm_connector_cleanup(connector);
|
drm_connector_cleanup(connector);
|
||||||
kfree(connector);
|
kfree(connector);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче