From patchwork Thu Feb 22 17:46:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jyri Sarha X-Patchwork-Id: 129305 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp855191lja; Thu, 22 Feb 2018 09:47:27 -0800 (PST) X-Google-Smtp-Source: AH8x224emn/nW9KyI8Zqb/ZYT25jChIUwlTV/1g12zqWRRTqQaD2xkPbt41SpTLWbIfBKOMvBZwH X-Received: by 10.99.122.70 with SMTP id j6mr6266903pgn.17.1519321647360; Thu, 22 Feb 2018 09:47:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519321647; cv=none; d=google.com; s=arc-20160816; b=gR236V5eVjYiVN50p211seK/V8ZY8anmriOqNFy7JlsQVBo3NCDxVpERscZh73WF0C UqhPz+1CiSIENWHSO0FU+N5ljvpHcmLIoJnUCvmtDB0QnCjkfuAAGxBfZIH4X1scI3O7 KAN9dfHW5tcH0bWQ2SUoBQVuoq1xt+jHMPI3OB9YvE1TNUL3WmzEw3MlcmE/Ph2660Ze tV1ZB66TW1jwPc8XoyS7eXH/8d4GgOsGt4Q6LumYEF9d8XnZPJ8QE+YPpHSgh+pUip6d wtsySfG+j7JnwggTwthdtjbYYORSrQMBc2PMkmFAVibby7La6NNFX8PBIHbWJ+GxlFhX l2dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:mime-version:references:in-reply-to:message-id:date :subject:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=/mFoUT3KDoDMixrePbA/75LwqCRPvr9kTHI8qb0kFN4=; b=TuNSzYulk7+NZM7/3SkPuJoYlCghFo1DUDrnSDVkEFEzR4Wb27fkhyZAjvAD3bZ8kq 2Pa6saN2UkoCu7xHfVYEqiHQBQHCQcx7qYnFb2PHbpVv5Ihr1pLr+pFS3Aor1hm3hLfv 0zS3SaQuB7aiLaaFtQMPO05iO+lyFE02PTpSIJaMlUL8n29+/B8dgusFU+jKRhJR+h0E TEueuq+4/jXdQRVTRt1OAGpzk2TcpVM8jSl3YRCdzrUNea0AGpqfQN0jh6R+2K36+dRW gnM268khejQp9Kggqr9vRO+oERQQMf+T7wdfJp90Uxv+madIHt/EiG1Yo/VV2L+FP/pL /xIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@ti.com header.s=ti-com-17Q1 header.b=wSEKaJUD; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from gabe.freedesktop.org (gabe.freedesktop.org. [131.252.210.177]) by mx.google.com with ESMTPS id 68-v6si355353pla.767.2018.02.22.09.47.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 22 Feb 2018 09:47:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) client-ip=131.252.210.177; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@ti.com header.s=ti-com-17Q1 header.b=wSEKaJUD; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E6B4C6EF21; Thu, 22 Feb 2018 17:47:24 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from fllnx209.ext.ti.com (fllnx209.ext.ti.com [198.47.19.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id 340596EF21 for ; Thu, 22 Feb 2018 17:47:23 +0000 (UTC) Received: from dflxv15.itg.ti.com ([128.247.5.124]) by fllnx209.ext.ti.com (8.15.1/8.15.1) with ESMTP id w1MHlLOS002548; Thu, 22 Feb 2018 11:47:21 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1519321641; bh=FqkGiK7DIx1KNznWnTbafGSzsVgKZ64Mc8i27EjeUr4=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=wSEKaJUDbTOwqDCydDMCOoSkFFbHiPhP5l3Fkpbji222BSbP+8i7uA//CNgGC1ALX 43kWB4Q1zmw3nucq+lxhkxLO7NpRWp81CsFrv7AY+UxPD8/P5KDAdynDGF9u1B3zPK 5OQaIWVmZUKshIc5fNjsh27rb001Iz8xIE9o6mV4= Received: from DLEE103.ent.ti.com (dlee103.ent.ti.com [157.170.170.33]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id w1MHlLcs019480; Thu, 22 Feb 2018 11:47:21 -0600 Received: from DLEE105.ent.ti.com (157.170.170.35) by DLEE103.ent.ti.com (157.170.170.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.35; Thu, 22 Feb 2018 11:47:21 -0600 Received: from dlep32.itg.ti.com (157.170.170.100) by DLEE105.ent.ti.com (157.170.170.35) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1261.35 via Frontend Transport; Thu, 22 Feb 2018 11:47:21 -0600 Received: from jadmar.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep32.itg.ti.com (8.14.3/8.13.8) with ESMTP id w1MHlFZF026313; Thu, 22 Feb 2018 11:47:19 -0600 From: Jyri Sarha To: Subject: [PATCH 2/2] drm/panel: Add device_link from panel device to drm device Date: Thu, 22 Feb 2018 19:46:27 +0200 Message-ID: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 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: airlied@linux.ie, Jyri Sarha , tomi.valkeinen@ti.com, thierry.reding@gmail.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add device_link from panel device (supplier) to drm device (consumer) with DL_FLAG_AUTOREMOVE when drm_panel_attach() is called. Currently the master drm driver is not protected against the attached. The device_link with DL_FLAG_AUTOREMOVE should make sure the drm device is unbound before the panel driver becomes unavailable. The device_link is removed when drm_panel_detach() is called. The drm_panel_detach() should be called by the panel driver it self when it is removed. Otherwise the both driver are racing to delete the same link. Signed-off-by: Jyri Sarha --- drivers/gpu/drm/drm_panel.c | 12 ++++++++++++ include/drm/drm_panel.h | 1 + 2 files changed, 13 insertions(+) diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index 308d442..d9452e98 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -98,9 +99,18 @@ EXPORT_SYMBOL(drm_panel_remove); */ int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector) { + u32 flags = DL_FLAG_AUTOREMOVE; + if (panel->connector) return -EBUSY; + panel->link = device_link_add(connector->dev->dev, panel->dev, flags); + if (!panel->link) { + dev_err(panel->dev, "failed to link panel %s to %s\n", + dev_name(connector->dev->dev), dev_name(panel->dev)); + return -EINVAL; + } + panel->connector = connector; panel->drm = connector->dev; @@ -119,6 +129,8 @@ EXPORT_SYMBOL(drm_panel_attach); */ int drm_panel_detach(struct drm_panel *panel) { + device_link_del(panel->link); + panel->connector = NULL; panel->drm = NULL; diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 14ac240..26a1b5f 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -89,6 +89,7 @@ struct drm_panel { struct drm_device *drm; struct drm_connector *connector; struct device *dev; + struct device_link *link; const struct drm_panel_funcs *funcs;