Skip to content

Commit 0fbb110

Browse files
author
Jyri Sarha
committed
Merge branch 'peter/ti-linux-4.4.y/topic/display' of https://github.com/omap-audio/linux-audio into audio-display-ti-linux-4.4.y
First batch of display and backlight fixes for 2016.04 * 'peter/ti-linux-4.4.y/topic/display' of https://github.com/omap-audio/linux-audio: drm: drm_probe_helper: Fix output_poll_work scheduling drm/omap: Create fbdev emulation only for the first DRM connector drm/omap: display: Add displays in sorted order to the panel_list backlight: led_bl: Omit error message if parse_dt returns with -EPROBE_DEFER
2 parents 8f4c1b5 + a3678f1 commit 0fbb110

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

drivers/gpu/drm/drm_probe_helper.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ void drm_kms_helper_poll_enable_locked(struct drm_device *dev)
109109
{
110110
bool poll = false;
111111
struct drm_connector *connector;
112+
unsigned long delay = DRM_OUTPUT_POLL_PERIOD;
112113

113114
WARN_ON(!mutex_is_locked(&dev->mode_config.mutex));
114115

@@ -121,8 +122,13 @@ void drm_kms_helper_poll_enable_locked(struct drm_device *dev)
121122
poll = true;
122123
}
123124

125+
if (dev->mode_config.delayed_event) {
126+
poll = true;
127+
delay = 0;
128+
}
129+
124130
if (poll)
125-
schedule_delayed_work(&dev->mode_config.output_poll_work, DRM_OUTPUT_POLL_PERIOD);
131+
schedule_delayed_work(&dev->mode_config.output_poll_work, delay);
126132
}
127133
EXPORT_SYMBOL(drm_kms_helper_poll_enable_locked);
128134

drivers/gpu/drm/omapdrm/dss/display.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ static int disp_num_counter;
8383
int omapdss_register_display(struct omap_dss_device *dssdev)
8484
{
8585
struct omap_dss_driver *drv = dssdev->driver;
86+
struct list_head *cur;
8687
int id;
8788

8889
/*
@@ -118,7 +119,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
118119
drv->get_timings = omapdss_default_get_timings;
119120

120121
mutex_lock(&panel_list_mutex);
121-
list_add_tail(&dssdev->panel_list, &panel_list);
122+
list_for_each(cur, &panel_list) {
123+
struct omap_dss_device *ldev = list_entry(cur,
124+
struct omap_dss_device,
125+
panel_list);
126+
if (strcmp(ldev->alias, dssdev->alias) > 0)
127+
break;
128+
}
129+
list_add_tail(&dssdev->panel_list, cur);
122130
mutex_unlock(&panel_list_mutex);
123131
return 0;
124132
}

drivers/gpu/drm/omapdrm/omap_fbdev.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,9 @@ struct drm_fb_helper *omap_fbdev_init(struct drm_device *dev)
280280
goto fail;
281281
}
282282

283-
ret = drm_fb_helper_single_add_all_connectors(helper);
283+
drm_modeset_lock_all(dev);
284+
ret = drm_fb_helper_add_one_connector(helper, priv->connectors[0]);
285+
drm_modeset_unlock_all(dev);
284286
if (ret)
285287
goto fini;
286288

drivers/video/backlight/led_bl.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ static int led_bl_probe(struct platform_device *pdev)
149149

150150
ret = led_bl_parse_dt(&pdev->dev, priv);
151151
if (ret < 0) {
152-
dev_err(&pdev->dev, "failed to parse DT data\n");
152+
if (ret != -EPROBE_DEFER)
153+
dev_err(&pdev->dev, "failed to parse DT data\n");
153154
return ret;
154155
}
155156

0 commit comments

Comments
 (0)