drm-misc-fixes pull request for v4.18-rc7:
- Small fixes to drm_atomic_helper_async_check(). (bbrezillon) - Fix error handling in drm_legacy_addctx(). (Nicholas) - Handle register reset on hotplug in adv7511. (seanpaul) -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuXvWqAysSYEJGuVH/lWMcqZwE8MFAltawSwACgkQ/lWMcqZw E8Po2w//T20ARAwe850t5Bi8Ljt1o4DJwK/i3XUMxc946lQBtHsApKvjVKFRmXIJ CM4rifN6XY0/MzXCxAor5nCFVAuvo4ykJWgKzd7+7yRzIBvE1w6Oi+F5uZbSKDXH vO1aiknWzZivMx99JE5KwoArD3bZ0ZwxDfsSEqOSWLAoRV5B25Q08VG1rqIX0sBH 6Hqixzub01FNnNCSOmMNy0iDGypveFDTBLGTZ5Md/eb816ipAhG2341sP/adSkgx yC0geDWob1FdN+sfPqvli5eZrcIwl4lzKhgGgwZwDOGnuSCsCcU6Ki+NKH4MfC3R S3EIEO7jZ735OpYpOxzHCBR9xrmCbnfWFoz+HkeBRr07SFl0q+APVJbkPlZQxuXM 96gq76LVL6mSJqGUux+XeXpRIFd1LP/69LN5r0mSq608BXxvugUkZXqEEELS6KKr RZxJ3zMDxNlKcfR8l68vRd/PWFeZ50FWnOVGWtXbUiuB9IIkNbe9cT2h31Q9NVBW KRnDG0NeJwvP3fvtQOp7DZKdXAQZOvGgQDgj9geCuZPEFmx+MwrG7giD3K4nvNQT 6JFPkfsrk1bd4blDFqQS/HMaplAtAhp6Px8aTAIOh6RNStxSXCDjGeP9jX2Caa+D AXDsSAAcZvqL0I/qGlTt2JZhLviDlzKKtz6ImF8s/sSjjOkxAP8= =lRvA -----END PGP SIGNATURE----- Merge tag 'drm-misc-fixes-2018-07-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes drm-misc-fixes pull request for v4.18-rc7: - Small fixes to drm_atomic_helper_async_check(). (bbrezillon) - Fix error handling in drm_legacy_addctx(). (Nicholas) - Handle register reset on hotplug in adv7511. (seanpaul) Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/90e0e966-bce5-15a4-286a-eda908788b03@linux.intel.com
This commit is contained in:
Коммит
51973dc079
|
@ -429,6 +429,18 @@ static void adv7511_hpd_work(struct work_struct *work)
|
|||
else
|
||||
status = connector_status_disconnected;
|
||||
|
||||
/*
|
||||
* The bridge resets its registers on unplug. So when we get a plug
|
||||
* event and we're already supposed to be powered, cycle the bridge to
|
||||
* restore its state.
|
||||
*/
|
||||
if (status == connector_status_connected &&
|
||||
adv7511->connector.status == connector_status_disconnected &&
|
||||
adv7511->powered) {
|
||||
regcache_mark_dirty(adv7511->regmap);
|
||||
adv7511_power_on(adv7511);
|
||||
}
|
||||
|
||||
if (adv7511->connector.status != status) {
|
||||
adv7511->connector.status = status;
|
||||
if (status == connector_status_disconnected)
|
||||
|
|
|
@ -1510,8 +1510,9 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
|
|||
{
|
||||
struct drm_crtc *crtc;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
struct drm_plane *plane;
|
||||
struct drm_plane_state *old_plane_state, *new_plane_state;
|
||||
struct drm_plane *plane = NULL;
|
||||
struct drm_plane_state *old_plane_state = NULL;
|
||||
struct drm_plane_state *new_plane_state = NULL;
|
||||
const struct drm_plane_helper_funcs *funcs;
|
||||
int i, n_planes = 0;
|
||||
|
||||
|
@ -1527,7 +1528,8 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
|
|||
if (n_planes != 1)
|
||||
return -EINVAL;
|
||||
|
||||
if (!new_plane_state->crtc)
|
||||
if (!new_plane_state->crtc ||
|
||||
old_plane_state->crtc != new_plane_state->crtc)
|
||||
return -EINVAL;
|
||||
|
||||
funcs = plane->helper_private;
|
||||
|
|
|
@ -372,7 +372,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data,
|
|||
ctx->handle = drm_legacy_ctxbitmap_next(dev);
|
||||
}
|
||||
DRM_DEBUG("%d\n", ctx->handle);
|
||||
if (ctx->handle == -1) {
|
||||
if (ctx->handle < 0) {
|
||||
DRM_DEBUG("Not enough free contexts.\n");
|
||||
/* Should this return -EBUSY instead? */
|
||||
return -ENOMEM;
|
||||
|
|
|
@ -320,6 +320,9 @@ static int vc4_plane_setup_clipping_and_scaling(struct drm_plane_state *state)
|
|||
vc4_state->x_scaling[0] = VC4_SCALING_TPZ;
|
||||
if (vc4_state->y_scaling[0] == VC4_SCALING_NONE)
|
||||
vc4_state->y_scaling[0] = VC4_SCALING_TPZ;
|
||||
} else {
|
||||
vc4_state->x_scaling[1] = VC4_SCALING_NONE;
|
||||
vc4_state->y_scaling[1] = VC4_SCALING_NONE;
|
||||
}
|
||||
|
||||
vc4_state->is_unity = (vc4_state->x_scaling[0] == VC4_SCALING_NONE &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче