From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A191C433E0 for ; Fri, 12 Jun 2020 03:05:00 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6E81320853 for ; Fri, 12 Jun 2020 03:05:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Hxr0w9l1"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rPRWkJxB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6E81320853 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6DHXvG4pPtaCTX0JbRa1F8lUieMOSIB7/REeE6nRfcg=; b=Hxr0w9l1YGi5Xh lz2O/+V4KR/VA8fv2qY7KM7eMbK954YIXCIBgE64JmP3yUgt59SgzbSuGnIYRbFghXBg1O2ULsrcx 9yNlJ7pGLIU3jMZIA7UsPH6jK0RrltROXGxupv7ENDkj+tlID0c7tPRUGioCaA6LqNJh7Myt4KpPH 4WFMDn0GPfKPlrGGmgVJj1kKrEvas6HGkFDfKP0/EZEdPTP4cAQgvUEURdxfGyvXr9yXcERBIWyZw G2mJm4e096XMatdrMDNPlneFJm/hbHT1C/A400ELDlKqQLZZdl5BichDebnU4+6oiG+xgFmVG4OiQ oKibULYRNqeV3HKJ6cEw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjZzv-0004xI-VG; Fri, 12 Jun 2020 03:04:51 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjZzs-0004we-Rf; Fri, 12 Jun 2020 03:04:50 +0000 X-UUID: a0a94743c2d247fb80686d977340cd5d-20200611 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=4ugaD47iUL4BuPnMM1qrVPvyuTBGu1L6KG0vHWf0DCc=; b=rPRWkJxBR1yYN75ni+N1ZK1CPz2zpQccPkSTbyJiJnKOxG70PpMbuijmNTC8y+u6jg1G3EIW+SH4WLGoqXH3Vk7qjuorjhVF2dbkojBksaEo27rYn5B7vLbRjFxzUsEOmY9rYpXNWjFgFsEREo8/K5C6e3Ga12x3psZCiO7VNzU=; X-UUID: a0a94743c2d247fb80686d977340cd5d-20200611 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 99498391; Thu, 11 Jun 2020 19:04:39 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 20:03:58 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 12 Jun 2020 11:03:56 +0800 Received: from [172.21.77.33] (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 12 Jun 2020 11:03:56 +0800 Message-ID: <1591931042.32738.26.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu Date: Fri, 12 Jun 2020 11:04:02 +0800 In-Reply-To: References: <1591698261-22639-1-git-send-email-neal.liu@mediatek.com> <1591698261-22639-3-git-send-email-neal.liu@mediatek.com> <1591867563.27949.9.camel@mtkswgap22> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 005BB3DA2D65FC5B57A0519DAAFE8FDBD2C12F6D6217733C280C03F26BF6CFFA2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200611_200448_900891_00621757 X-CRM114-Status: GOOD ( 16.49 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "devicetree@vger.kernel.org" , wsd_upstream , linux-kernel , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , Neal Liu , Linux ARM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Hi Chun-Kuang, [snip] > > > > +/* > > > > + * devapc_violation_irq - the devapc Interrupt Service Routine (ISR) will dump > > > > + * violation information including which master violates > > > > + * access slave. > > > > + */ > > > > +static irqreturn_t devapc_violation_irq(int irq_number, void *dev_id) > > > > +{ > > > > + u32 slave_type_num = mtk_devapc_ctx->soc->slave_type_num; > > > > + const struct mtk_device_info **device_info; > > > > + struct mtk_devapc_vio_info *vio_info; > > > > + int slave_type, vio_idx, index; > > > > + const char *vio_master; > > > > + unsigned long flags; > > > > + bool normal; > > > > + u8 perm; > > > > + > > > > + spin_lock_irqsave(&devapc_lock, flags); > > > > + > > > > + device_info = mtk_devapc_ctx->soc->device_info; > > > > + vio_info = mtk_devapc_ctx->soc->vio_info; > > > > + normal = false; > > > > + vio_idx = -1; > > > > + index = -1; > > > > + > > > > + /* There are multiple DEVAPC_PD */ > > > > + for (slave_type = 0; slave_type < slave_type_num; slave_type++) { > > > > + if (!check_type2_vio_status(slave_type, &vio_idx, &index)) > > > > + if (!mtk_devapc_dump_vio_dbg(slave_type, &vio_idx, > > > > + &index)) > > > > + continue; > > > > + > > > > + /* Ensure that violation info are written before > > > > + * further operations > > > > + */ > > > > + smp_mb(); > > > > + normal = true; > > > > + > > > > + mask_module_irq(slave_type, vio_idx, true); > > > > + > > > > + if (clear_vio_status(slave_type, vio_idx)) > > > > + pr_warn(PFX "%s, %s:0x%x, %s:0x%x\n", > > > > + "clear vio status failed", > > > > + "slave_type", slave_type, > > > > + "vio_index", vio_idx); > > > > + > > > > + perm = get_permission(slave_type, index, vio_info->domain_id); > > > > + > > > > + vio_master = mtk_devapc_ctx->soc->master_get > > > > + (vio_info->master_id, > > > > + vio_info->vio_addr, > > > > + slave_type, > > > > + vio_info->shift_sta_bit, > > > > + vio_info->domain_id); > > > > > > Call mt6873_bus_id_to_master() directly. For first patch, make things > > > as simple as possible. > > > > In devapc_violation_irq() function, we use common flow to handle each > > devapc violation on different platforms. The master_get() has different > > implementation on different platforms, that why it called indirectly. > > > > Once we have new platform, we only have to update devapc-mtxxxx.c > > instead of common handler flow. > > You just upstream one SoC now, so I have no information of 2nd SoC. > Without the 2nd SoC, how do we know what is common and what is SoC special? > So the first patch should not consider the things which does not exist yet. > > Regards, > Chun-Kuang. > It has lots of refactoring work need to do if you really want make it "simple". Could I explain more details and let you judge it is simple enough? For most MediaTek DEVAPC hw, the violation interrupt handling sequence is shown below. 1. Domain processor receives a interrupt issued by DEVAPC. 2. Software read the violation status and identify it. 3. Software read the debug information which are stored in hw register. a. debug information includes master ID, domain ID, violation address, ... 4. Transfer debug information to human readable strings. 5. Extra handler to dispatch owner directly. What we really care is which master violates the rules, and which slave had been accessed unexpectedly. Here are platform specific information: 1. Slaves layout (platform devices) 2. hw register layout which are stored violation information 3. Master ID mapping table 4. Domain ID mapping table Hope these steps could help you understand what is common and what is SoC specific. If you want to see the 2nd SoC's driver, I can also send it for you to take a look. Thanks, Neal > > > > > > > > > + > > > > + if (!vio_master) { > > > > + pr_warn(PFX "master_get failed\n"); > > > > + vio_master = "UNKNOWN_MASTER"; > > > > + } > > > > + > > > > + pr_info(PFX "%s - %s:0x%x, %s:0x%x, %s:0x%x, %s:0x%x\n", > > > > + "Violation", "slave_type", slave_type, > > > > + "sys_index", > > > > + device_info[slave_type][index].sys_index, > > > > + "ctrl_index", > > > > + device_info[slave_type][index].ctrl_index, > > > > + "vio_index", > > > > + device_info[slave_type][index].vio_index); > > > > + > > > > + pr_info(PFX "%s %s %s %s\n", > > > > + "Violation - master:", vio_master, > > > > + "access violation slave:", > > > > + device_info[slave_type][index].device); > > > > + > > > > + devapc_vio_reason(perm); > > > > + > > > > + devapc_extra_handler(slave_type, vio_master, vio_idx, > > > > + vio_info->vio_addr); > > > > + > > > > + mask_module_irq(slave_type, vio_idx, false); > > > > + } > > > > + > > > > + if (normal) { > > > > + spin_unlock_irqrestore(&devapc_lock, flags); > > > > + return IRQ_HANDLED; > > > > + } > > > > + > > > > + spin_unlock_irqrestore(&devapc_lock, flags); > > > > + return IRQ_HANDLED; > > > > +} > > > > + > > > > [snip] > > > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 946BDC433E1 for ; Fri, 12 Jun 2020 03:05:02 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6A5B520835 for ; Fri, 12 Jun 2020 03:05:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="txR6H0iU"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rPRWkJxB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A5B520835 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Xq5PEOKS7UigJSVJbsClHMCpnrpplHt+L5bSTXRt3W4=; b=txR6H0iUgCA8ed QNiCBsezDCyILQvczMp5y05BYHaYRV49jn9jOKPWsj33aTSBcBwmS6Fod0UVt+wd1XPdMKjngekp/ t2h3niFUC8F4xz1qKLqJzdM+fOZ32/XgXbRndeykzrxeiwgz0VF3ztT9e2xFhy+FAjW3MFFPkSQxh PQ/1fyUwW0E03tS0sUCI0a7xryGCdn+SkC0ozd+E9hDiLPnINQ2ZFO9hDQwcnuDoFgUEKqGCVEdxr TNskuIHsap9xG6O/78cF9DZ3TpEZUh2mdi/SJwP+Y6cVfT1KOcoxoCjxWaJFZb0LbbFvHnB9zjV2L 2eVAwFoDDZAPh1Zivfmg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjZzw-0004xw-Sr; Fri, 12 Jun 2020 03:04:52 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjZzs-0004we-Rf; Fri, 12 Jun 2020 03:04:50 +0000 X-UUID: a0a94743c2d247fb80686d977340cd5d-20200611 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=4ugaD47iUL4BuPnMM1qrVPvyuTBGu1L6KG0vHWf0DCc=; b=rPRWkJxBR1yYN75ni+N1ZK1CPz2zpQccPkSTbyJiJnKOxG70PpMbuijmNTC8y+u6jg1G3EIW+SH4WLGoqXH3Vk7qjuorjhVF2dbkojBksaEo27rYn5B7vLbRjFxzUsEOmY9rYpXNWjFgFsEREo8/K5C6e3Ga12x3psZCiO7VNzU=; X-UUID: a0a94743c2d247fb80686d977340cd5d-20200611 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 99498391; Thu, 11 Jun 2020 19:04:39 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 20:03:58 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 12 Jun 2020 11:03:56 +0800 Received: from [172.21.77.33] (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 12 Jun 2020 11:03:56 +0800 Message-ID: <1591931042.32738.26.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu Date: Fri, 12 Jun 2020 11:04:02 +0800 In-Reply-To: References: <1591698261-22639-1-git-send-email-neal.liu@mediatek.com> <1591698261-22639-3-git-send-email-neal.liu@mediatek.com> <1591867563.27949.9.camel@mtkswgap22> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 005BB3DA2D65FC5B57A0519DAAFE8FDBD2C12F6D6217733C280C03F26BF6CFFA2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200611_200448_900891_00621757 X-CRM114-Status: GOOD ( 16.49 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "devicetree@vger.kernel.org" , wsd_upstream , linux-kernel , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , Neal Liu , Linux ARM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Chun-Kuang, [snip] > > > > +/* > > > > + * devapc_violation_irq - the devapc Interrupt Service Routine (ISR) will dump > > > > + * violation information including which master violates > > > > + * access slave. > > > > + */ > > > > +static irqreturn_t devapc_violation_irq(int irq_number, void *dev_id) > > > > +{ > > > > + u32 slave_type_num = mtk_devapc_ctx->soc->slave_type_num; > > > > + const struct mtk_device_info **device_info; > > > > + struct mtk_devapc_vio_info *vio_info; > > > > + int slave_type, vio_idx, index; > > > > + const char *vio_master; > > > > + unsigned long flags; > > > > + bool normal; > > > > + u8 perm; > > > > + > > > > + spin_lock_irqsave(&devapc_lock, flags); > > > > + > > > > + device_info = mtk_devapc_ctx->soc->device_info; > > > > + vio_info = mtk_devapc_ctx->soc->vio_info; > > > > + normal = false; > > > > + vio_idx = -1; > > > > + index = -1; > > > > + > > > > + /* There are multiple DEVAPC_PD */ > > > > + for (slave_type = 0; slave_type < slave_type_num; slave_type++) { > > > > + if (!check_type2_vio_status(slave_type, &vio_idx, &index)) > > > > + if (!mtk_devapc_dump_vio_dbg(slave_type, &vio_idx, > > > > + &index)) > > > > + continue; > > > > + > > > > + /* Ensure that violation info are written before > > > > + * further operations > > > > + */ > > > > + smp_mb(); > > > > + normal = true; > > > > + > > > > + mask_module_irq(slave_type, vio_idx, true); > > > > + > > > > + if (clear_vio_status(slave_type, vio_idx)) > > > > + pr_warn(PFX "%s, %s:0x%x, %s:0x%x\n", > > > > + "clear vio status failed", > > > > + "slave_type", slave_type, > > > > + "vio_index", vio_idx); > > > > + > > > > + perm = get_permission(slave_type, index, vio_info->domain_id); > > > > + > > > > + vio_master = mtk_devapc_ctx->soc->master_get > > > > + (vio_info->master_id, > > > > + vio_info->vio_addr, > > > > + slave_type, > > > > + vio_info->shift_sta_bit, > > > > + vio_info->domain_id); > > > > > > Call mt6873_bus_id_to_master() directly. For first patch, make things > > > as simple as possible. > > > > In devapc_violation_irq() function, we use common flow to handle each > > devapc violation on different platforms. The master_get() has different > > implementation on different platforms, that why it called indirectly. > > > > Once we have new platform, we only have to update devapc-mtxxxx.c > > instead of common handler flow. > > You just upstream one SoC now, so I have no information of 2nd SoC. > Without the 2nd SoC, how do we know what is common and what is SoC special? > So the first patch should not consider the things which does not exist yet. > > Regards, > Chun-Kuang. > It has lots of refactoring work need to do if you really want make it "simple". Could I explain more details and let you judge it is simple enough? For most MediaTek DEVAPC hw, the violation interrupt handling sequence is shown below. 1. Domain processor receives a interrupt issued by DEVAPC. 2. Software read the violation status and identify it. 3. Software read the debug information which are stored in hw register. a. debug information includes master ID, domain ID, violation address, ... 4. Transfer debug information to human readable strings. 5. Extra handler to dispatch owner directly. What we really care is which master violates the rules, and which slave had been accessed unexpectedly. Here are platform specific information: 1. Slaves layout (platform devices) 2. hw register layout which are stored violation information 3. Master ID mapping table 4. Domain ID mapping table Hope these steps could help you understand what is common and what is SoC specific. If you want to see the 2nd SoC's driver, I can also send it for you to take a look. Thanks, Neal > > > > > > > > > + > > > > + if (!vio_master) { > > > > + pr_warn(PFX "master_get failed\n"); > > > > + vio_master = "UNKNOWN_MASTER"; > > > > + } > > > > + > > > > + pr_info(PFX "%s - %s:0x%x, %s:0x%x, %s:0x%x, %s:0x%x\n", > > > > + "Violation", "slave_type", slave_type, > > > > + "sys_index", > > > > + device_info[slave_type][index].sys_index, > > > > + "ctrl_index", > > > > + device_info[slave_type][index].ctrl_index, > > > > + "vio_index", > > > > + device_info[slave_type][index].vio_index); > > > > + > > > > + pr_info(PFX "%s %s %s %s\n", > > > > + "Violation - master:", vio_master, > > > > + "access violation slave:", > > > > + device_info[slave_type][index].device); > > > > + > > > > + devapc_vio_reason(perm); > > > > + > > > > + devapc_extra_handler(slave_type, vio_master, vio_idx, > > > > + vio_info->vio_addr); > > > > + > > > > + mask_module_irq(slave_type, vio_idx, false); > > > > + } > > > > + > > > > + if (normal) { > > > > + spin_unlock_irqrestore(&devapc_lock, flags); > > > > + return IRQ_HANDLED; > > > > + } > > > > + > > > > + spin_unlock_irqrestore(&devapc_lock, flags); > > > > + return IRQ_HANDLED; > > > > +} > > > > + > > > > [snip] > > > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2020C433E0 for ; Fri, 12 Jun 2020 03:04:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 86D9120853 for ; Fri, 12 Jun 2020 03:04:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rPRWkJxB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726577AbgFLDEJ (ORCPT ); Thu, 11 Jun 2020 23:04:09 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:39216 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726327AbgFLDEJ (ORCPT ); Thu, 11 Jun 2020 23:04:09 -0400 X-UUID: 9289430a6f7a4651b403a25c04cb661f-20200612 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=4ugaD47iUL4BuPnMM1qrVPvyuTBGu1L6KG0vHWf0DCc=; b=rPRWkJxBR1yYN75ni+N1ZK1CPz2zpQccPkSTbyJiJnKOxG70PpMbuijmNTC8y+u6jg1G3EIW+SH4WLGoqXH3Vk7qjuorjhVF2dbkojBksaEo27rYn5B7vLbRjFxzUsEOmY9rYpXNWjFgFsEREo8/K5C6e3Ga12x3psZCiO7VNzU=; X-UUID: 9289430a6f7a4651b403a25c04cb661f-20200612 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 173163943; Fri, 12 Jun 2020 11:04:04 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 12 Jun 2020 11:03:56 +0800 Received: from [172.21.77.33] (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 12 Jun 2020 11:03:56 +0800 Message-ID: <1591931042.32738.26.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu CC: Neal Liu , "devicetree@vger.kernel.org" , wsd_upstream , linux-kernel , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , Linux ARM Date: Fri, 12 Jun 2020 11:04:02 +0800 In-Reply-To: References: <1591698261-22639-1-git-send-email-neal.liu@mediatek.com> <1591698261-22639-3-git-send-email-neal.liu@mediatek.com> <1591867563.27949.9.camel@mtkswgap22> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 005BB3DA2D65FC5B57A0519DAAFE8FDBD2C12F6D6217733C280C03F26BF6CFFA2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org SGkgQ2h1bi1LdWFuZywNCg0KW3NuaXBdDQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogZGV2YXBj X3Zpb2xhdGlvbl9pcnEgLSB0aGUgZGV2YXBjIEludGVycnVwdCBTZXJ2aWNlIFJvdXRpbmUgKElT Uikgd2lsbCBkdW1wDQo+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgdmlvbGF0aW9u IGluZm9ybWF0aW9uIGluY2x1ZGluZyB3aGljaCBtYXN0ZXIgdmlvbGF0ZXMNCj4gPiA+ID4gKyAq ICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Mgc2xhdmUuDQo+ID4gPiA+ICsgKi8NCj4gPiA+ ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCBkZXZhcGNfdmlvbGF0aW9uX2lycShpbnQgaXJxX251bWJl ciwgdm9pZCAqZGV2X2lkKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArICAgICAgIHUzMiBzbGF2ZV90 eXBlX251bSA9IG10a19kZXZhcGNfY3R4LT5zb2MtPnNsYXZlX3R5cGVfbnVtOw0KPiA+ID4gPiAr ICAgICAgIGNvbnN0IHN0cnVjdCBtdGtfZGV2aWNlX2luZm8gKipkZXZpY2VfaW5mbzsNCj4gPiA+ ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5mbyAqdmlvX2luZm87DQo+ID4gPiA+ ICsgICAgICAgaW50IHNsYXZlX3R5cGUsIHZpb19pZHgsIGluZGV4Ow0KPiA+ID4gPiArICAgICAg IGNvbnN0IGNoYXIgKnZpb19tYXN0ZXI7DQo+ID4gPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsNCj4gPiA+ID4gKyAgICAgICBib29sIG5vcm1hbDsNCj4gPiA+ID4gKyAgICAgICB1OCBw ZXJtOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRldmFw Y19sb2NrLCBmbGFncyk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICBkZXZpY2VfaW5mbyA9 IG10a19kZXZhcGNfY3R4LT5zb2MtPmRldmljZV9pbmZvOw0KPiA+ID4gPiArICAgICAgIHZpb19p bmZvID0gbXRrX2RldmFwY19jdHgtPnNvYy0+dmlvX2luZm87DQo+ID4gPiA+ICsgICAgICAgbm9y bWFsID0gZmFsc2U7DQo+ID4gPiA+ICsgICAgICAgdmlvX2lkeCA9IC0xOw0KPiA+ID4gPiArICAg ICAgIGluZGV4ID0gLTE7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAvKiBUaGVyZSBhcmUg bXVsdGlwbGUgREVWQVBDX1BEICovDQo+ID4gPiA+ICsgICAgICAgZm9yIChzbGF2ZV90eXBlID0g MDsgc2xhdmVfdHlwZSA8IHNsYXZlX3R5cGVfbnVtOyBzbGF2ZV90eXBlKyspIHsNCj4gPiA+ID4g KyAgICAgICAgICAgICAgIGlmICghY2hlY2tfdHlwZTJfdmlvX3N0YXR1cyhzbGF2ZV90eXBlLCAm dmlvX2lkeCwgJmluZGV4KSkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFt dGtfZGV2YXBjX2R1bXBfdmlvX2RiZyhzbGF2ZV90eXBlLCAmdmlvX2lkeCwNCj4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5kZXgp KQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ ID4gPiArDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAvKiBFbnN1cmUgdGhhdCB2aW9sYXRpb24g aW5mbyBhcmUgd3JpdHRlbiBiZWZvcmUNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqIGZ1cnRo ZXIgb3BlcmF0aW9ucw0KPiA+ID4gPiArICAgICAgICAgICAgICAgICovDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICBzbXBfbWIoKTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIG5vcm1hbCA9IHRy dWU7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIG1hc2tfbW9kdWxlX2lycShz bGF2ZV90eXBlLCB2aW9faWR4LCB0cnVlKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICAg ICAgICAgaWYgKGNsZWFyX3Zpb19zdGF0dXMoc2xhdmVfdHlwZSwgdmlvX2lkeCkpDQo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIHByX3dhcm4oUEZYICIlcywgJXM6MHgleCwgJXM6MHgl eFxuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xlYXIgdmlv IHN0YXR1cyBmYWlsZWQiLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzbGF2ZV90eXBlIiwgc2xhdmVfdHlwZSwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidmlvX2luZGV4IiwgdmlvX2lkeCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAg ICAgICAgICAgICAgIHBlcm0gPSBnZXRfcGVybWlzc2lvbihzbGF2ZV90eXBlLCBpbmRleCwgdmlv X2luZm8tPmRvbWFpbl9pZCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHZp b19tYXN0ZXIgPSBtdGtfZGV2YXBjX2N0eC0+c29jLT5tYXN0ZXJfZ2V0DQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICh2aW9faW5mby0+bWFzdGVyX2lkLA0KPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgdmlvX2luZm8tPnZpb19hZGRyLA0KPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgc2xhdmVfdHlwZSwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHZpb19pbmZvLT5zaGlmdF9zdGFfYml0LA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgdmlvX2luZm8tPmRvbWFpbl9pZCk7DQo+ID4gPg0KPiA+ID4gQ2FsbCBtdDY4NzNfYnVz X2lkX3RvX21hc3RlcigpIGRpcmVjdGx5LiBGb3IgZmlyc3QgcGF0Y2gsIG1ha2UgdGhpbmdzDQo+ ID4gPiBhcyBzaW1wbGUgYXMgcG9zc2libGUuDQo+ID4NCj4gPiBJbiBkZXZhcGNfdmlvbGF0aW9u X2lycSgpIGZ1bmN0aW9uLCB3ZSB1c2UgY29tbW9uIGZsb3cgdG8gaGFuZGxlIGVhY2gNCj4gPiBk ZXZhcGMgdmlvbGF0aW9uIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuIFRoZSBtYXN0ZXJfZ2V0KCkg aGFzIGRpZmZlcmVudA0KPiA+IGltcGxlbWVudGF0aW9uIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMs IHRoYXQgd2h5IGl0IGNhbGxlZCBpbmRpcmVjdGx5Lg0KPiA+DQo+ID4gT25jZSB3ZSBoYXZlIG5l dyBwbGF0Zm9ybSwgd2Ugb25seSBoYXZlIHRvIHVwZGF0ZSBkZXZhcGMtbXR4eHh4LmMNCj4gPiBp bnN0ZWFkIG9mIGNvbW1vbiBoYW5kbGVyIGZsb3cuDQo+IA0KPiBZb3UganVzdCB1cHN0cmVhbSBv bmUgU29DIG5vdywgc28gSSBoYXZlIG5vIGluZm9ybWF0aW9uIG9mIDJuZCBTb0MuDQo+IFdpdGhv dXQgdGhlIDJuZCBTb0MsIGhvdyBkbyB3ZSBrbm93IHdoYXQgaXMgY29tbW9uIGFuZCB3aGF0IGlz IFNvQyBzcGVjaWFsPw0KPiBTbyB0aGUgZmlyc3QgcGF0Y2ggc2hvdWxkIG5vdCBjb25zaWRlciB0 aGUgdGhpbmdzIHdoaWNoIGRvZXMgbm90IGV4aXN0IHlldC4NCj4gDQo+IFJlZ2FyZHMsDQo+IENo dW4tS3VhbmcuDQo+IA0KDQpJdCBoYXMgbG90cyBvZiByZWZhY3RvcmluZyB3b3JrIG5lZWQgdG8g ZG8gaWYgeW91IHJlYWxseSB3YW50IG1ha2UgaXQNCiJzaW1wbGUiLiBDb3VsZCBJIGV4cGxhaW4g bW9yZSBkZXRhaWxzIGFuZCBsZXQgeW91IGp1ZGdlIGl0IGlzIHNpbXBsZQ0KZW5vdWdoPw0KRm9y IG1vc3QgTWVkaWFUZWsgREVWQVBDIGh3LCB0aGUgdmlvbGF0aW9uIGludGVycnVwdCBoYW5kbGlu ZyBzZXF1ZW5jZQ0KaXMgc2hvd24gYmVsb3cuDQoNCjEuIERvbWFpbiBwcm9jZXNzb3IgcmVjZWl2 ZXMgYSBpbnRlcnJ1cHQgaXNzdWVkIGJ5IERFVkFQQy4NCjIuIFNvZnR3YXJlIHJlYWQgdGhlIHZp b2xhdGlvbiBzdGF0dXMgYW5kIGlkZW50aWZ5IGl0Lg0KMy4gU29mdHdhcmUgcmVhZCB0aGUgZGVi dWcgaW5mb3JtYXRpb24gd2hpY2ggYXJlIHN0b3JlZCBpbiBodyByZWdpc3Rlci4NCglhLiBkZWJ1 ZyBpbmZvcm1hdGlvbiBpbmNsdWRlcyBtYXN0ZXIgSUQsIGRvbWFpbiBJRCwgdmlvbGF0aW9uDQph ZGRyZXNzLCAuLi4NCjQuIFRyYW5zZmVyIGRlYnVnIGluZm9ybWF0aW9uIHRvIGh1bWFuIHJlYWRh YmxlIHN0cmluZ3MuDQo1LiBFeHRyYSBoYW5kbGVyIHRvIGRpc3BhdGNoIG93bmVyIGRpcmVjdGx5 Lg0KDQpXaGF0IHdlIHJlYWxseSBjYXJlIGlzIHdoaWNoIG1hc3RlciB2aW9sYXRlcyB0aGUgcnVs ZXMsIGFuZCB3aGljaCBzbGF2ZQ0KaGFkIGJlZW4gYWNjZXNzZWQgdW5leHBlY3RlZGx5Lg0KDQpI ZXJlIGFyZSBwbGF0Zm9ybSBzcGVjaWZpYyBpbmZvcm1hdGlvbjoNCjEuIFNsYXZlcyBsYXlvdXQg KHBsYXRmb3JtIGRldmljZXMpDQoyLiBodyByZWdpc3RlciBsYXlvdXQgd2hpY2ggYXJlIHN0b3Jl ZCB2aW9sYXRpb24gaW5mb3JtYXRpb24NCjMuIE1hc3RlciBJRCBtYXBwaW5nIHRhYmxlDQo0LiBE b21haW4gSUQgbWFwcGluZyB0YWJsZQ0KDQpIb3BlIHRoZXNlIHN0ZXBzIGNvdWxkIGhlbHAgeW91 IHVuZGVyc3RhbmQgd2hhdCBpcyBjb21tb24gYW5kIHdoYXQgaXMNClNvQyBzcGVjaWZpYy4gSWYg eW91IHdhbnQgdG8gc2VlIHRoZSAybmQgU29DJ3MgZHJpdmVyLCBJIGNhbiBhbHNvIHNlbmQNCml0 IGZvciB5b3UgdG8gdGFrZSBhIGxvb2suDQoNClRoYW5rcywNCk5lYWwNCg0KPiA+DQo+ID4gPg0K PiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAoIXZpb19tYXN0ZXIpIHsNCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfd2FybihQRlggIm1hc3Rlcl9nZXQgZmFp bGVkXG4iKTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdmlvX21hc3RlciA9ICJV TktOT1dOX01BU1RFUiI7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gPiA+ICsNCj4g PiA+ID4gKyAgICAgICAgICAgICAgIHByX2luZm8oUEZYICIlcyAtICVzOjB4JXgsICVzOjB4JXgs ICVzOjB4JXgsICVzOjB4JXhcbiIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICJW aW9sYXRpb24iLCAic2xhdmVfdHlwZSIsIHNsYXZlX3R5cGUsDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICJzeXNfaW5kZXgiLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uc3lzX2luZGV4LA0KPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAiY3RybF9pbmRleCIsDQo+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGRldmljZV9pbmZvW3NsYXZlX3R5cGVdW2luZGV4XS5jdHJsX2luZGV4LA0KPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAidmlvX2luZGV4IiwNCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgZGV2aWNlX2luZm9bc2xhdmVfdHlwZV1baW5kZXhdLnZpb19pbmRl eCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHByX2luZm8oUEZYICIlcyAl cyAlcyAlc1xuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIlZpb2xhdGlvbiAt IG1hc3RlcjoiLCB2aW9fbWFzdGVyLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAi YWNjZXNzIHZpb2xhdGlvbiBzbGF2ZToiLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uZGV2aWNlKTsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArICAgICAgICAgICAgICAgZGV2YXBjX3Zpb19yZWFzb24ocGVybSk7DQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGRldmFwY19leHRyYV9oYW5kbGVyKHNsYXZlX3R5cGUs IHZpb19tYXN0ZXIsIHZpb19pZHgsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2aW9faW5mby0+dmlvX2FkZHIpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICBtYXNrX21vZHVsZV9pcnEoc2xhdmVfdHlwZSwgdmlvX2lkeCwgZmFsc2UpOw0K PiA+ID4gPiArICAgICAgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgIGlmIChub3JtYWwp IHsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldmFw Y19sb2NrLCBmbGFncyk7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gSVJRX0hBTkRM RUQ7DQo+ID4gPiA+ICsgICAgICAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGV2YXBjX2xvY2ssIGZsYWdzKTsNCj4gPiA+ID4gKyAgICAgICBy ZXR1cm4gSVJRX0hBTkRMRUQ7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPg0KPiA+IFtzbmlw XQ0KPiA+DQo+ID4NCg0K