Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp5003958rdb; Fri, 15 Sep 2023 21:51:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHK0EhNUI/cp2xX5yFgv4ihXcL5Ut3UwhuSxIOIKPBNJ3iNkFJ7RWx0kH/E1YjgHulM/wIi X-Received: by 2002:a05:6358:249d:b0:134:e603:116e with SMTP id m29-20020a056358249d00b00134e603116emr3352181rwc.6.1694839896542; Fri, 15 Sep 2023 21:51:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694839896; cv=none; d=google.com; s=arc-20160816; b=oJaY0qxLoIz2oDXzzFtYxlAPuE6OBOPk5alh9L6LQKO/O0ySdxd4oNbx/o8mHqPo8i rBqXj5VNyZXIL8rtk/d70J+CTLjlzL4r7G6YFolPvPDwrhsXT7q1Uq4Jfm8jK9f62NQ4 ERKixFUvm3BjFV9AqHspQONrQk2QA5Sm50JZuW2x4wX70mzweCrnTGt7/vLmbyYsZjb3 iRLM2864WWbGsB7m+ZYqbn5rZ71Ch6F/wPZEFOh0TrqwSXXvo/tJzTdpbnj4CyjJ8oOd mosTsD8SYa5aFFMOzFCz2QEGWQaZMjycsnmAbhtUJ70+kGEJlEsLpWiLsaQ8IXg6a6mb sRmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=gDszUBcci3sH0bwn4J+q6F9DB6xrqqrnqQGFGyHbbiU=; fh=WdvorNt9W2LCUPiGPsn75/bW5381IkpXRxF82JgZV7c=; b=hEZw73bsp9JwH3I9uXIR2bHCHVcK+OZ6TQzLB+i2IQn3Te/hwqpd2gvjC5XggKtCsN mS+TgYQ63eM1yiLz89vLarl9R3NeRJR9Kt1E++lJNRUc7z44uW1RMTRm/6XPDD4kPJ93 eXdUCoQez1IMvAd+CnUwPYGqLsZbRo8gEStxadTjDgm/QsxEi6vqLhJQvsbRt/EgFllL 6DlnjKa6pTVi4dY5T/w91o1w4FEMzg/BFXn1l26+80VA9kyP7gfjgqYFRAJmz+AaoVAs PlZYV6mZejL+DolHKCDgkSL4abQWLcmSh2oguC0B+270/ZZPyq/jQ1Vu+y0EEJ0RoPGP AvYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=QFLKALPR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id 13-20020a63010d000000b0056c297d1644si4136802pgb.510.2023.09.15.21.51.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 21:51:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=QFLKALPR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 314648588A7F; Fri, 15 Sep 2023 13:49:52 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237541AbjIOUt1 (ORCPT + 99 others); Fri, 15 Sep 2023 16:49:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237621AbjIOUtK (ORCPT ); Fri, 15 Sep 2023 16:49:10 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AF762D45; Fri, 15 Sep 2023 13:48:36 -0700 (PDT) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38FGi3gj027258; Fri, 15 Sep 2023 20:48:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=gDszUBcci3sH0bwn4J+q6F9DB6xrqqrnqQGFGyHbbiU=; b=QFLKALPRbFzZSO9D0+sm6mjb4K0qWUteVOcJIYOz1osSNyDNdne20iJjYzzQPBpYSEfX o6L4cB8POR6vP2fTnarfriuvWUskT7aodiIJDLD07XNffVO0SRJt9YrEaIOsVp59gc5C TpDbpNANEYgp+Vzb/bWd0i1ic3njMyODmxDt3x+3IqPH7Cg4ry7dtmpUqXzruo0Lxlzh P8y04D48gktcHg1z8YMv42ugwGtEklyy2mtMMU9kZntL3mtDuwDGQfDJsQVI25etK8qs NcyWG3IFsaV7bmPbwnLjyowPO2tpGgEofPdtRnIDQaBh96shZfntcBlydprI3/kjyrat FA== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t4g86t3se-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Sep 2023 20:48:27 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 38FKmQZW000554 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Sep 2023 20:48:26 GMT Received: from khsieh-linux1.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.36; Fri, 15 Sep 2023 13:48:25 -0700 From: Kuogee Hsieh To: , , , , , , , , , , CC: Kuogee Hsieh , , , , , , , Subject: [PATCH v2 1/7] drm/msm/dp: tie dp_display_irq_handler() with dp driver Date: Fri, 15 Sep 2023 13:48:02 -0700 Message-ID: <1694810888-24461-2-git-send-email-quic_khsieh@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1694810888-24461-1-git-send-email-quic_khsieh@quicinc.com> References: <1694810888-24461-1-git-send-email-quic_khsieh@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: xZpfB6a5ErEWFxfNdkSnsrNJlelaDkrI X-Proofpoint-ORIG-GUID: xZpfB6a5ErEWFxfNdkSnsrNJlelaDkrI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-15_17,2023-09-15_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 bulkscore=0 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 priorityscore=1501 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309150186 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 15 Sep 2023 13:49:53 -0700 (PDT) Currently the dp_display_irq_handler() is executed at msm_dp_modeset_init() which ties irq registration to the DPU device's life cycle, while depending on resources that are released as the DP device is torn down. Move register DP driver irq handler at dp_display_probe() to have dp_display_irq_handler() is tied with DP device. Signed-off-by: Kuogee Hsieh --- drivers/gpu/drm/msm/dp/dp_display.c | 35 +++++++++++++---------------------- drivers/gpu/drm/msm/dp/dp_display.h | 1 - 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 76f1395..c217430 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1193,30 +1193,23 @@ static irqreturn_t dp_display_irq_handler(int irq, void *dev_id) return ret; } -int dp_display_request_irq(struct msm_dp *dp_display) +static int dp_display_request_irq(struct dp_display_private *dp) { int rc = 0; - struct dp_display_private *dp; - - if (!dp_display) { - DRM_ERROR("invalid input\n"); - return -EINVAL; - } - - dp = container_of(dp_display, struct dp_display_private, dp_display); + struct device *dev = &dp->pdev->dev; - dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); if (!dp->irq) { - DRM_ERROR("failed to get irq\n"); - return -EINVAL; + dp->irq = platform_get_irq(dp->pdev, 0); + if (!dp->irq) { + DRM_ERROR("failed to get irq\n"); + return -EINVAL; + } } - rc = devm_request_irq(dp_display->drm_dev->dev, dp->irq, - dp_display_irq_handler, + rc = devm_request_irq(dev, dp->irq, dp_display_irq_handler, IRQF_TRIGGER_HIGH, "dp_display_isr", dp); if (rc < 0) { - DRM_ERROR("failed to request IRQ%u: %d\n", - dp->irq, rc); + DRM_ERROR("failed to request IRQ%u: %d\n", dp->irq, rc); return rc; } @@ -1287,6 +1280,10 @@ static int dp_display_probe(struct platform_device *pdev) platform_set_drvdata(pdev, &dp->dp_display); + rc = dp_display_request_irq(dp); + if (rc) + return rc; + rc = component_add(&pdev->dev, &dp_display_comp_ops); if (rc) { DRM_ERROR("component add failed, rc=%d\n", rc); @@ -1549,12 +1546,6 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, dp_priv = container_of(dp_display, struct dp_display_private, dp_display); - ret = dp_display_request_irq(dp_display); - if (ret) { - DRM_ERROR("request_irq failed, ret=%d\n", ret); - return ret; - } - ret = dp_display_get_next_bridge(dp_display); if (ret) return ret; diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index 1e9415a..b3c08de 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -35,7 +35,6 @@ struct msm_dp { int dp_display_set_plugged_cb(struct msm_dp *dp_display, hdmi_codec_plugged_cb fn, struct device *codec_dev); int dp_display_get_modes(struct msm_dp *dp_display); -int dp_display_request_irq(struct msm_dp *dp_display); bool dp_display_check_video_test(struct msm_dp *dp_display); int dp_display_get_test_bpp(struct msm_dp *dp_display); void dp_display_signal_audio_start(struct msm_dp *dp_display); -- 2.7.4