From patchwork Tue Jul 3 19:14:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Hellstrom X-Patchwork-Id: 10505013 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BF206601D3 for ; Tue, 3 Jul 2018 19:17:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD9C428C60 for ; Tue, 3 Jul 2018 19:17:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A14BF28C7F; Tue, 3 Jul 2018 19:17:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1E52528C60 for ; Tue, 3 Jul 2018 19:17:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6AAEB6E8E0; Tue, 3 Jul 2018 19:16:52 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710045.outbound.protection.outlook.com [40.107.71.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 074296E8DB for ; Tue, 3 Jul 2018 19:16:50 +0000 (UTC) Received: from fedoratest.localdomain (155.4.205.56) by DM6PR05MB4587.namprd05.prod.outlook.com (2603:10b6:5:9f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.930.11; Tue, 3 Jul 2018 19:16:46 +0000 From: Thomas Hellstrom To: dri-devel@lists.freedesktop.org Subject: [PATCH -next 10/15] drm/vmwgfx: Use a mutex to protect gui positioning in vmw_display_unit Date: Tue, 3 Jul 2018 21:14:55 +0200 Message-Id: <20180703191500.2374-11-thellstrom@vmware.com> X-Mailer: git-send-email 2.18.0.rc1 In-Reply-To: <20180703191500.2374-1-thellstrom@vmware.com> References: <20180703191500.2374-1-thellstrom@vmware.com> MIME-Version: 1.0 X-Originating-IP: [155.4.205.56] X-ClientProxiedBy: DM5PR21CA0042.namprd21.prod.outlook.com (2603:10b6:3:ed::28) To DM6PR05MB4587.namprd05.prod.outlook.com (2603:10b6:5:9f::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ea493fcb-1c30-46ee-2074-08d5e11985c6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB4587; X-Microsoft-Exchange-Diagnostics: 1; DM6PR05MB4587; 3:67oGIEGFcJ3Gg2wWeDLfiL9b+NaLvA7AXeomKRYe+yeABuRRGid8Caln5AYOUf3X/UQlMeGNnzZMOIK5YzVLdFiEg/50/qBDjNMS5yBOotkLrsVkSJwirWEylycKqbbB92wu4pAFACJQstaXqmT1DsHaYwDCtMm6qPPE/c9alxuLgsLdxI4zUUZ5bWnxeNe6X5HymQiN2inj702oBiqKWSNpNg2cxuPvbGBO6a909LuV1L8thjv0pzIWo/gNA57N; 25:j5vRF8qZ5dKCoy1So8kKLyOa8kV03ZlMAteVRozRYHvHjR2ijQUMizvTZUwsvzlMgM0fE4kvsGVB1VwM+9xRZ0dPU7QE+eiAEPXisBGe5imrjfXCt3DRNSTWIVYadHyQGspOCJAjWIkuklMyMzHzVHtPjgwDozhS2lPWOpheXutx0UrQAXNmEgG4OrnuUDUv5iC24Mu6VaPmYusJp4Rc75ZX4Po5KSZGdBHCI7tLmi4klh4wdw78evhEc720elolvLy/dvVWuYS1uxt5sli0EP2BSbIRCzDKj90YuG3NshUAl8W/bHlXtoHzN4LGbMPZ8fw+W+RJyWQ9nDkb4trzbg==; 31:drClhztBvk0yum9cupQbzzw+RE5nqCLbvu7cV43psHEfmJ6gHfAGtrOcXf+/aWWLuvouHs6qxaoFFMEm1cbIebkiD86ZSJePN9pRnQAcf2trafx3NRKG0ESosATeZjbzS04QpQUeAjXKcCwDoXhmzqZ+EbV5OYIV8GkcrQRu5+VSIXXbEdjE7/SjEL35Ubg4Cq890S3EFAXbhIA/+AS8DioTvK5hMrNQgG7MDmFUTpE= X-MS-TrafficTypeDiagnostic: DM6PR05MB4587: X-LD-Processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DM6PR05MB4587; 20:4y+VKpGWumwcoMEe3+UXWeSZDK/XkM51FRMBGs9ZR+BKq8Ko6fa6NpKR6pHqt39AHuFsqMQUb02n/OPbDmdVGnaHmKiEpfC/YedtOvJv6Xg8ivRN+Xik3M+89fRz1bk3y7PNpsVkriMPq2Db5Tk09qu8lMUctXt3TXpbmCjo5rCSwKHtV1VHDqapHN26LE8e9lLEdAEC+/4QieTjvaxKIlh3+PHk4SwHcawRRzhYH3L4jMMWpHJzkvn9bKe02BFWueXIsy91fNyE7CeZdN29iPEGbnJOMEpLmMLv8B681AK9Lp7+ERz8IG5RmAINxBmGqubv698t5jukFHrIz4GKFlfG9AL678mhzidtaXrOr5FEKtF3mopdgGYYc2CM4EfqaO1kg0Nvdjviv8ChUX2vEuZ78Dhh2xgy5u8ExOARLUTZRJMck8837Lb1bDB9K7/O3LjaCWmjuPcPzea50BqYL/eIY6AJx3Tq5JJbTzpfiy1qkVt2/WsyzcFuNtZ2hQXZ; 4:HexQZqsMhpwR5o+QvJerp8h8QENPFqafc+wQPMp6qjfXcdEvXuhJmfyLr//bt5Fp7oVZXrNstCEzY/7d9dYT8vufWshfcHZE9Q1y15CcE1wFegLrM1rwEgvq7Vpf/EztawzAmtMow5m1cizN/3aQ3ElgITOn4yzEWyhQeRr64VVnPIdv8VRlTLftYJgfBm/QwK8crwD2Au/3I0hgPyX0CW8j+UMb2oovudJI81kEh1bEloAmUjXGKjDavwx5ETCqmssIgmRVdktSu+tWfBfdn0SmE5Irg+ggHv5Tj2VtUjsXFxpYWey+j1YiSeiBad25 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(61668805478150); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DM6PR05MB4587; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB4587; X-Forefront-PRVS: 0722981D2A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(136003)(366004)(39860400002)(396003)(376002)(346002)(199004)(189003)(2361001)(53936002)(76176011)(68736007)(52116002)(51416003)(47776003)(26005)(2351001)(50226002)(16526019)(97736004)(575784001)(86362001)(386003)(2906002)(6506007)(66066001)(186003)(316002)(16586007)(48376002)(446003)(6486002)(50466002)(54906003)(14444005)(11346002)(2616005)(1076002)(956004)(6116002)(6512007)(476003)(81166006)(8676002)(81156014)(36756003)(3846002)(5660300001)(486006)(107886003)(106356001)(305945005)(25786009)(7736002)(4326008)(478600001)(6916009)(105586002)(6666003)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR05MB4587; H:fedoratest.localdomain; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR05MB4587; 23:8bNPgqx0xr8tyduRpifet1dqFbs6DWzRZSz/UTfCU?= =?us-ascii?Q?j9f4ryWoktmzRTUraLdjQGlQqznBRo6Vm+FEXs269T4wqEMlY5ThuX+zsQdy?= =?us-ascii?Q?vIwtb0iZ3s+zIy3kvQLox7xn/RYAYxlQmEN2J0X4Q5zB81OuKz2ASH5vBpe4?= =?us-ascii?Q?s1gCsqFAau5FgmoW3Woo05BXofdkXGV8GkDeiu4kpUvPK7URjJRGe+4yBKGD?= =?us-ascii?Q?DuRXralpmYIzRBlU1xTx0tFCRkzbQeZsgGwThIrZMfQXl41oEoZBStL8jRrq?= =?us-ascii?Q?Quu/Bu9dpDn4o/rHTtLKuqSfg9ZF+hhi4+zdfWzSxB+cfhKmPuLDLSFYT0Ow?= =?us-ascii?Q?tgBWHly/MxnBIBUXFVmAto+UamKIpc83xzqi2/lc2DcNeAjFwPdkdjpxNeDz?= =?us-ascii?Q?hS1ymzS5xkuoPhB2tSTYBbYxKDYB1m71PzOriPmiC3wSQm9KhiCJ3DTQFfu/?= =?us-ascii?Q?kjHLDaITAo32vcFzu1pmAnD5aMrToyB1sbXDdc6LvMF9diJKuUIl2BQ36AvY?= =?us-ascii?Q?L6MzA02w1A/rocllVa0gnAN3NwDJ4UNwSeyPFZa5d1V9ivS2IBuDsFTCgvnn?= =?us-ascii?Q?pQbzxI6wDL4vKWDwDhrwF72vIozJoZ479G/NXa/MGbkx022ZfJ4MNxzonQw4?= =?us-ascii?Q?UNY89jDvLFS5p+pprPwnTWP7gg2AM1LsQ4zgOiNhWGAbIuZ5s6lcSh3I7kx/?= =?us-ascii?Q?58RqG0apO1U6ys2n1J9QqVg1ubEJ7uIgfgazOOPRybj5JTMLB1KJJuBDfkuT?= =?us-ascii?Q?xNh4pcnT/Zc1/kcTeRfdfWtDBM6Fhj2UYKIx5k20+n8E3JhMd1dvL1UnRfuh?= =?us-ascii?Q?ImZIgrm8P922LooLuKM5KRWzJQ5+gG/cFczwAOt9irnLmyThG6C/bu1WXSrG?= =?us-ascii?Q?VxyHARXlIkuGObXlH0CCLQ1Nvv6wPj0MT02xr+zI+8yV2fz4BNvvI2LypS1N?= =?us-ascii?Q?uFgPI9hz0AF9r5kc1YPa8exN2gRHMekSATCz89IwnGxjgfkfHIKk0sYykNoG?= =?us-ascii?Q?KGnZrEqEnas9xf/PSPf/lLLi7JvfiS9cM4HlQ2FMsbzgB3+L5UjT3Egf0zaN?= =?us-ascii?Q?Mk6pqlO5W2MhdFr2FUPsnmdv/YsoGquEF5U5RSoMpL79bDC3ZlswOybqbJbi?= =?us-ascii?Q?1FhV29mSukbSaFNhM1UGdhli/CBsUq3n2eORwuIkNC8hth82tWd2iQikIfvm?= =?us-ascii?Q?0P8XLwp1P9DbLnOQkyYzwhlrvqRHl/qogsaDEnjLa/YQTj70FnDiXs33T+cJ?= =?us-ascii?Q?3QaTrFQpDERGzj1Z/5ieihASe9RuUS+OOkO1hTGoDcARSYOokk8KCxA5sKVt?= =?us-ascii?Q?dZjfDrJyzF5S6jr6PYtsiw=3D?= X-Microsoft-Antispam-Message-Info: fNxuGw1iwbFvFqzRHfuwf/xt1zZNRA+ntH75AkWLqxE5VLa7ZcI85RG/V4Sf3G00t9jh+PgD5aVz1qCgBn39pEfWwSqc/EnagHZwFq1FLyRAYOv/O3zOYUjbfl+VcgiE+8YkC3hyV74LPQTT4L52eVVbLdL0fzN5MIlZI9KUlVu8RrH4uvNozp6NDHa30j4Z8dP7g2ADXqDe6xAKhofInwvCE/vM4xWWLcm1u6bNlMLHL8+s+Aiq2DeSZExCXS2Lnk8c2sOx0HwO2syk3svxZpLSFjL1U3ol2EWyurtwFjtK7BjEQT55z3Uvm8EXyiC0vF5r2SRSqNnqAkQYFwgsK4xCVMgEP384l4e/+9c8oF4= X-Microsoft-Exchange-Diagnostics: 1; DM6PR05MB4587; 6:KOHZrKj7nFVXE4n/OJ9CSMrjbEJXZIC3iraBE2q7byTwwF24hhZqDb6bpQoMV+aHAQbOqEJS6I1Mv6oBq13IWdfavv7E5sM0daZmYmPtTWlhFrSK0HXcg6LQA659CWgJpGqXDz2qCAgM/9/1yfWAiCNVfHIk9U/6Ks1fm4wBsP7p7yXk0Qdg4qClohCHDLKncB4fmVoz21rtjuo01ZkizZ1n81K2AitdEI7wHj4nXS0ZXA5o2NndjHDkJstJr18kGivUj5Iipr/NFtAZP86CUziaIwsX9/4jeQhOiKy3HP0FKTzoogjiDcoDKBxpBu06gZqNNKp1KOM4Jl0dO13nd+DdN3NNihZfVYew9rlUiec5GduLHtRMAw89X0WUJ2s6NSJcB0JMlDvkqEupJfRz9aLRcjYn6Adf45WfnaApw9XuXSVX6I/I5GNpp0CD0NOwtzV7WgdJPFIp35uypmSzvw==; 5:orf7LMROG22UkVBvxwh4J4YliNiCBGyW/C3FR8Le1j9Ovj4HsNHvAvy1jyfloQCkNc4C+rUAV9lLKy6xqUU7xz+wo99IOSl50ct5TnesPEcTV7sfFu/O/elrDDizMFvEgmbFHm57RK3ZGAlzCJQL+Sdybwa/hZ4MvNZolNUb1M8=; 24:jswmG5o7oE+k/wZVn7Z2fGuEJb8RUqtTAvGNPrZ9Odsi55O1bte3ljUON/SDiSbJW8O6kPJYCpcG4jo8zIrVXkOxXuxSmab88/908CvpcVA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR05MB4587; 7:o8l7u9AQSiJTfGQTx+xMSK4f2VzbAJO47Vyms4y8oOyNyZBHpVlM1g1VXPfeQZ+HLyFap12UN+ITo9k4UYxfVtXdI36Z8A5hKZZnBEGIbROHMXklEU2PumSm/Qo6j4txowdStorULpuFmFuWOx9/nZ92BjnWVyyacpyf1F9qLQwkE/bxt8ucWcP1WqWgpPLc4+2B5o9g/f0GShBN9EEN/3hYw+DtOcHibRIW/tVuxk6mgSyQNL6l5zKf5SKb7AuE; 20:/+0DQfWvY5/O2ZRNR8nS14aYqEs+f5IC79a1E4+gRo036NBxIV5BYGx+WQgpZs52trNLLUF8Dj/mFYFg6o+KG+X4Jt2QKRWKkaezkc+Uj1wLVYmMqEE9ghPpZFcmyT0k0vGnFkL8zFuQEm5gYPaE4xe3mRZcX4s8jxYS2gkdLmg= X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2018 19:16:46.9273 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ea493fcb-1c30-46ee-2074-08d5e11985c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4587 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Hellstrom , Deepak Rawat , linux-graphics-maintainer@vmware.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Rawat To avoid race condition between update_layout ioctl and modeset ioctl for access to gui_x/y positioning added a new mutex requested_layout_mutex. Also used drm_for_each_connector_iter to iterate over connector list. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom Signed-off-by: Thomas Hellstrom --- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 9 +++++++ drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 38 ++++++++++++++++++++--------- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 4f18304226bc..45dfff7733d6 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -644,6 +644,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) mutex_init(&dev_priv->cmdbuf_mutex); mutex_init(&dev_priv->release_mutex); mutex_init(&dev_priv->binding_mutex); + mutex_init(&dev_priv->requested_layout_mutex); mutex_init(&dev_priv->global_kms_state_mutex); rwlock_init(&dev_priv->resource_lock); ttm_lock_init(&dev_priv->reservation_sem); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index 769d72fabb56..a38318c3efe4 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h @@ -411,6 +411,15 @@ struct vmw_private { uint32_t num_displays; + /* + * Currently requested_layout_mutex is used to protect the gui + * positionig state in display unit. With that use case currently this + * mutex is only taken during layout ioctl and atomic check_modeset. + * Other display unit state can be protected with this mutex but that + * needs careful consideration. + */ + struct mutex requested_layout_mutex; + /* * Framebuffer info. */ diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index f0ae0b2ee2e6..a592d10e5c76 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -1577,6 +1577,7 @@ static int vmw_kms_check_display_memory(struct drm_device *dev, static int vmw_kms_check_topology(struct drm_device *dev, struct drm_atomic_state *state) { + struct vmw_private *dev_priv = vmw_priv(dev); struct drm_crtc_state *old_crtc_state, *new_crtc_state; struct drm_rect *rects; struct drm_crtc *crtc; @@ -1588,6 +1589,8 @@ static int vmw_kms_check_topology(struct drm_device *dev, if (!rects) return -ENOMEM; + mutex_lock(&dev_priv->requested_layout_mutex); + drm_for_each_crtc(crtc, dev) { struct vmw_display_unit *du = vmw_crtc_to_du(crtc); struct drm_crtc_state *crtc_state = crtc->state; @@ -1595,10 +1598,6 @@ static int vmw_kms_check_topology(struct drm_device *dev, i = drm_crtc_index(crtc); if (crtc_state && crtc_state->enable) { - /* - * There could be a race condition with update of gui_x/ - * gui_y. Those are protected by dev->mode_config.mutex. - */ rects[i].x1 = du->gui_x; rects[i].y1 = du->gui_y; rects[i].x2 = du->gui_x + crtc_state->mode.hdisplay; @@ -1636,6 +1635,7 @@ static int vmw_kms_check_topology(struct drm_device *dev, rects); clean: + mutex_unlock(&dev_priv->requested_layout_mutex); kfree(rects); return ret; } @@ -1987,10 +1987,14 @@ static int vmw_du_update_layout(struct vmw_private *dev_priv, struct drm_device *dev = dev_priv->dev; struct vmw_display_unit *du; struct drm_connector *con; + struct drm_connector_list_iter conn_iter; - mutex_lock(&dev->mode_config.mutex); - - list_for_each_entry(con, &dev->mode_config.connector_list, head) { + /* + * Currently only gui_x/y is protected with requested_layout_mutex. + */ + mutex_lock(&dev_priv->requested_layout_mutex); + drm_connector_list_iter_begin(dev, &conn_iter); + drm_for_each_connector_iter(con, &conn_iter) { du = vmw_connector_to_du(con); if (num_rects > du->unit) { du->pref_width = drm_rect_width(&rects[du->unit]); @@ -1998,6 +2002,21 @@ static int vmw_du_update_layout(struct vmw_private *dev_priv, du->pref_active = true; du->gui_x = rects[du->unit].x1; du->gui_y = rects[du->unit].y1; + } else { + du->pref_width = 800; + du->pref_height = 600; + du->pref_active = false; + du->gui_x = 0; + du->gui_y = 0; + } + } + drm_connector_list_iter_end(&conn_iter); + mutex_unlock(&dev_priv->requested_layout_mutex); + + mutex_lock(&dev->mode_config.mutex); + list_for_each_entry(con, &dev->mode_config.connector_list, head) { + du = vmw_connector_to_du(con); + if (num_rects > du->unit) { drm_object_property_set_value (&con->base, dev->mode_config.suggested_x_property, du->gui_x); @@ -2005,9 +2024,6 @@ static int vmw_du_update_layout(struct vmw_private *dev_priv, (&con->base, dev->mode_config.suggested_y_property, du->gui_y); } else { - du->pref_width = 800; - du->pref_height = 600; - du->pref_active = false; drm_object_property_set_value (&con->base, dev->mode_config.suggested_x_property, 0); @@ -2017,8 +2033,8 @@ static int vmw_du_update_layout(struct vmw_private *dev_priv, } con->status = vmw_du_connector_detect(con, true); } - mutex_unlock(&dev->mode_config.mutex); + drm_sysfs_hotplug_event(dev); return 0;