Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'drm-fixes-2018-08-03' of git://anongit.freedesktop.org/drm/drm

Pull drm fixes from Dave Airlie:
"Nothing too major at this late stage:

- adv7511: reset fix

- vc4: scaling fix

- two atomic core fixes

- one legacy core error handling fix

I had a bunch of driver fixes from hdlcd but I think I'll leave them
for -next at this point"

* tag 'drm-fixes-2018-08-03' of git://anongit.freedesktop.org/drm/drm:
drm/vc4: Reset ->{x, y}_scaling[1] when dealing with uniplanar formats
drm/atomic: Initialize variables in drm_atomic_helper_async_check() to make gcc happy
drm/atomic: Check old_plane_state->crtc in drm_atomic_helper_async_check()
drm: re-enable error handling
drm/bridge: adv7511: Reset registers on hotplug

+21 -4
+12
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
··· 429 429 else 430 430 status = connector_status_disconnected; 431 431 432 + /* 433 + * The bridge resets its registers on unplug. So when we get a plug 434 + * event and we're already supposed to be powered, cycle the bridge to 435 + * restore its state. 436 + */ 437 + if (status == connector_status_connected && 438 + adv7511->connector.status == connector_status_disconnected && 439 + adv7511->powered) { 440 + regcache_mark_dirty(adv7511->regmap); 441 + adv7511_power_on(adv7511); 442 + } 443 + 432 444 if (adv7511->connector.status != status) { 433 445 adv7511->connector.status = status; 434 446 if (status == connector_status_disconnected)
+5 -3
drivers/gpu/drm/drm_atomic_helper.c
··· 1510 1510 { 1511 1511 struct drm_crtc *crtc; 1512 1512 struct drm_crtc_state *crtc_state; 1513 - struct drm_plane *plane; 1514 - struct drm_plane_state *old_plane_state, *new_plane_state; 1513 + struct drm_plane *plane = NULL; 1514 + struct drm_plane_state *old_plane_state = NULL; 1515 + struct drm_plane_state *new_plane_state = NULL; 1515 1516 const struct drm_plane_helper_funcs *funcs; 1516 1517 int i, n_planes = 0; 1517 1518 ··· 1528 1527 if (n_planes != 1) 1529 1528 return -EINVAL; 1530 1529 1531 - if (!new_plane_state->crtc) 1530 + if (!new_plane_state->crtc || 1531 + old_plane_state->crtc != new_plane_state->crtc) 1532 1532 return -EINVAL; 1533 1533 1534 1534 funcs = plane->helper_private;
+1 -1
drivers/gpu/drm/drm_context.c
··· 372 372 ctx->handle = drm_legacy_ctxbitmap_next(dev); 373 373 } 374 374 DRM_DEBUG("%d\n", ctx->handle); 375 - if (ctx->handle == -1) { 375 + if (ctx->handle < 0) { 376 376 DRM_DEBUG("Not enough free contexts.\n"); 377 377 /* Should this return -EBUSY instead? */ 378 378 return -ENOMEM;
+3
drivers/gpu/drm/vc4/vc4_plane.c
··· 320 320 vc4_state->x_scaling[0] = VC4_SCALING_TPZ; 321 321 if (vc4_state->y_scaling[0] == VC4_SCALING_NONE) 322 322 vc4_state->y_scaling[0] = VC4_SCALING_TPZ; 323 + } else { 324 + vc4_state->x_scaling[1] = VC4_SCALING_NONE; 325 + vc4_state->y_scaling[1] = VC4_SCALING_NONE; 323 326 } 324 327 325 328 vc4_state->is_unity = (vc4_state->x_scaling[0] == VC4_SCALING_NONE &&