From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [RFC v2 4/5] drm/dsi: Add routine to unregister dsi device Date: Tue, 6 Oct 2015 14:54:41 +0530 Message-ID: <1444123482-25579-5-git-send-email-architt@codeaurora.org> References: <1435641851-27295-1-git-send-email-architt@codeaurora.org> <1444123482-25579-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1444123482-25579-1-git-send-email-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, a.hajda@samsung.com Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, treding@nvidia.com List-Id: linux-arm-msm@vger.kernel.org QSBkcml2ZXIgY2FsbGluZyBtaXBpX2RzaV9kZXZpY2VfbmV3IG1pZ2h0IHdhbnQgdG8gdW5yZWdp c3RlciB0aGUgZGV2aWNlCm9uY2UgaXQncyBkb25lLiBJdCBtaWdodCBhbHNvIHJlcXVpcmUgaXQg aW4gYW4gZXJyb3IgaGFuZGxpbmcgcGF0aCBpbgpjYXNlIHNvbWV0aGluZyBkaWRuJ3QgZ28gcmln aHQuCgpXaGVuIHRoZSBkc2kgaG9zdCBkcml2ZXIgY2FsbHMgbWlwaV9kc2lfaG9zdF91bnJlZ2lz dGVyLCB0aGUgZGV2aWNlcwpjcmVhdGVkIGJ5IGJvdGggRFQgYW5kIGFuZCB3aXRob3V0IERUIHdp bGwgYmUgcmVtb3ZlZC4gVGhpcyBkb2VzIGxlYXZlCnRoZSBwb3NzaWJpbGl0eSBvZiB0aGUgaG9z dCByZW1vdmluZyB0aGUgZHNpIGRldmljZSB3aXRob3V0IHRoZQpwZXJpcGhlcmFsIGRyaXZlciBi ZWluZyBhd2FyZSBvZiBpdC4gSSBkb24ndCBrbm93IGEgZ29vZCB3YXkgdG8gc29sdmUKdGhpcy4g U29tZSBzdWdnZXN0aW9ucyBoZXJlIHdvdWxkIGJlIG9mIGhlbHAgdG9vLgoKU2lnbmVkLW9mZi1i eTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vZHJtX21pcGlfZHNpLmMgfCA3ICsrKysrKysKIGluY2x1ZGUvZHJtL2RybV9taXBpX2Rz aS5oICAgICB8IDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9taXBpX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9taXBpX2RzaS5jCmluZGV4IGRiNjEzMGEuLmNiYjczNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fbWlwaV9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNp LmMKQEAgLTE4Myw2ICsxODMsMTMgQEAgZXJyOgogfQogRVhQT1JUX1NZTUJPTChtaXBpX2RzaV9k ZXZpY2VfbmV3KTsKIAordm9pZCBtaXBpX2RzaV9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgbWlw aV9kc2lfZGV2aWNlICpkc2kpCit7CisJaWYgKGRzaSkKKwkJZGV2aWNlX3VucmVnaXN0ZXIoJmRz aS0+ZGV2KTsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kc2lfZGV2aWNlX3VucmVnaXN0ZXIpOwor CiBzdGF0aWMgc3RydWN0IG1pcGlfZHNpX2RldmljZSAqCiBvZl9taXBpX2RzaV9kZXZpY2VfYWRk KHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiB7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaCBiL2luY2x1ZGUvZHJtL2Ry bV9taXBpX2RzaS5oCmluZGV4IDkzZGVjN2IuLjY4ZjQ5ZjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2RybV9taXBpX2RzaS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9taXBpX2RzaS5oCkBAIC0x OTcsNiArMTk3LDggQEAgc3NpemVfdCBtaXBpX2RzaV9nZW5lcmljX3JlYWQoc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpLCBjb25zdCB2b2lkICpwYXJhbXMsCiAKIHN0cnVjdCBtaXBpX2RzaV9k ZXZpY2UgKm1pcGlfZHNpX2RldmljZV9uZXcoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJ CQkJCSAgICBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlX2luZm8gKmluZm8pOwordm9pZCBtaXBpX2Rz aV9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpOworCiAvKioK ICAqIGVudW0gbWlwaV9kc2lfZGNzX3RlYXJfbW9kZSAtIFRlYXJpbmcgRWZmZWN0IE91dHB1dCBM aW5lIG1vZGUKICAqIEBNSVBJX0RTSV9EQ1NfVEVBUl9NT0RFX1ZCTEFOSzogdGhlIFRFIG91dHB1 dCBsaW5lIGNvbnNpc3RzIG9mIFYtQmxhbmtpbmcKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9u IENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmhvc3Rl ZCBieSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752877AbbJFJZI (ORCPT ); Tue, 6 Oct 2015 05:25:08 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49468 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751973AbbJFJZF (ORCPT ); Tue, 6 Oct 2015 05:25:05 -0400 From: Archit Taneja To: dri-devel@lists.freedesktop.org, a.hajda@samsung.com Cc: linux-kernel@vger.kernel.org, airlied@linux.ie, daniel@ffwll.ch, treding@nvidia.com, l.stach@pengutronix.de, robh@kernel.org, linux-arm-msm@vger.kernel.org, jani.nikula@linux.intel.com, Archit Taneja Subject: [RFC v2 4/5] drm/dsi: Add routine to unregister dsi device Date: Tue, 6 Oct 2015 14:54:41 +0530 Message-Id: <1444123482-25579-5-git-send-email-architt@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1444123482-25579-1-git-send-email-architt@codeaurora.org> References: <1435641851-27295-1-git-send-email-architt@codeaurora.org> <1444123482-25579-1-git-send-email-architt@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A driver calling mipi_dsi_device_new might want to unregister the device once it's done. It might also require it in an error handling path in case something didn't go right. When the dsi host driver calls mipi_dsi_host_unregister, the devices created by both DT and and without DT will be removed. This does leave the possibility of the host removing the dsi device without the peripheral driver being aware of it. I don't know a good way to solve this. Some suggestions here would be of help too. Signed-off-by: Archit Taneja --- drivers/gpu/drm/drm_mipi_dsi.c | 7 +++++++ include/drm/drm_mipi_dsi.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c index db6130a..cbb7373 100644 --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@ -183,6 +183,13 @@ err: } EXPORT_SYMBOL(mipi_dsi_device_new); +void mipi_dsi_device_unregister(struct mipi_dsi_device *dsi) +{ + if (dsi) + device_unregister(&dsi->dev); +} +EXPORT_SYMBOL(mipi_dsi_device_unregister); + static struct mipi_dsi_device * of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node) { diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 93dec7b..68f49f4 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -197,6 +197,8 @@ ssize_t mipi_dsi_generic_read(struct mipi_dsi_device *dsi, const void *params, struct mipi_dsi_device *mipi_dsi_device_new(struct mipi_dsi_host *host, struct mipi_dsi_device_info *info); +void mipi_dsi_device_unregister(struct mipi_dsi_device *dsi); + /** * enum mipi_dsi_dcs_tear_mode - Tearing Effect Output Line mode * @MIPI_DSI_DCS_TEAR_MODE_VBLANK: the TE output line consists of V-Blanking -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation