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,URIBL_BLOCKED,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 05F7BC433E1 for ; Thu, 11 Jun 2020 09:26:26 +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 4FD9120760 for ; Thu, 11 Jun 2020 09:26:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jmbKxzvH"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="sd7V/kvT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4FD9120760 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=Iaol3ovo6SOJpYwIE5HQ3hgpcTbhDrtl6S1Ms/AlCCA=; b=jmbKxzvHjKgmOG j7JUaJa1i26bwAvmsC/XU+l/Qi/mWb6T7oRtl2Xweu+DCrzZlzX9SxViWh2F3LpsVnDFBQ894A1Nf /F7Obrp8yZQE+qj+qFK+XmyOJIH88zkrvU2BSCIbRZAuhh0QDw/dgbOYxalousah0ngl1kiszFl/K D2dy3gY50tFPdybZnH8sX0xeueuWlfM+yFlmWqdlWrD/zcFzontnlmDh85CQvgRpIjmjMnGthcRaf J8ftwoWwt/P1eE2m3BJXnnjnhQJ2c32+Hcj+I4nXrkpYd80S0bbu/VhvuzE7C0rWH+6liffjKBTd1 PVGKCGI+M9R65fu17dSA==; 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 1jjJTU-0001Ru-Hj; Thu, 11 Jun 2020 09:26:16 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjJTR-0001QL-2G; Thu, 11 Jun 2020 09:26:14 +0000 X-UUID: 94624fa3ead5447aa6539b5f782fc22d-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=arPIeFMQZ1+NZeZaAa8iqxicI65qOT2Z+fn97VHkHyg=; b=sd7V/kvTL+bcexp3YLpxV/isLcX1pmju0wE7zCKMn1elCqftHm0oQC5Z2cT7/pIQL7bykmG0vP8ncVbo7WL1l6kipwHEW80r4NExv45dHkGT8aFrXWLqyxajPg+RTsOBxg91H98cVlz57JiRTWqXR5dV3RuxoIIr3lxeqyIUlcc=; X-UUID: 94624fa3ead5447aa6539b5f782fc22d-20200611 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 30019533; Thu, 11 Jun 2020 01:25:48 -0800 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 02:26:02 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 17:26:01 +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; Thu, 11 Jun 2020 17:26:01 +0800 Message-ID: <1591867563.27949.9.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu Date: Thu, 11 Jun 2020 17:26:03 +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> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200611_022613_117205_F827DFCD X-CRM114-Status: GOOD ( 13.64 ) 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 , 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 On Wed, 2020-06-10 at 00:01 +0800, Chun-Kuang Hu wrote: Hi Chun-Kuang, [snip] > > + > > +/* > > + * mtk_devapc_pd_get - get devapc pd_types of register address. > > + * > > + * Returns the value of reg addr > > + */ > > +static void __iomem *mtk_devapc_pd_get(int slave_type, > > + enum DEVAPC_PD_REG_TYPE pd_reg_type, > > + u32 index) > > +{ > > + struct mtk_devapc_vio_info *vio_info = mtk_devapc_ctx->soc->vio_info; > > + u32 slave_type_num = mtk_devapc_ctx->soc->slave_type_num; > > + const u32 *devapc_pds = mtk_devapc_ctx->soc->devapc_pds; > > + void __iomem *reg; > > + > > + if (!devapc_pds) > > + return NULL; > > + > > + if ((slave_type < slave_type_num && > > + index < vio_info->vio_mask_sta_num[slave_type]) && > > + pd_reg_type < PD_REG_TYPE_NUM) { > > + reg = mtk_devapc_ctx->devapc_pd_base[slave_type] + > > + devapc_pds[pd_reg_type]; > > + > > + if (pd_reg_type == VIO_MASK || pd_reg_type == VIO_STA) > > + reg += 0x4 * index; > > + > > + } else { > > + pr_err(PFX "%s:0x%x or %s:0x%x or %s:0x%x is out of boundary\n", > > + "slave_type", slave_type, > > Move "slave_type" into format string. Why is this necessary? Is there any benefit for moving this? Since the line length is almost over 80 chars. > > > + "pd_reg_type", pd_reg_type, > > + "index", index); > > + return NULL; > > + } > > + > > + return reg; > > +} > > + > [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. > > > + > > + 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,URIBL_BLOCKED,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 850E7C433DF for ; Thu, 11 Jun 2020 09:26:25 +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 2A3D120747 for ; Thu, 11 Jun 2020 09:26:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jhCQkWKw"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="sd7V/kvT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2A3D120747 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=GLQP+B4Cg2GyLIX3wJIYKLqMrGXE1wOT7O0KrWwXpyM=; b=jhCQkWKw8HOmJo W3AtGwkPkCw+3+97rp0ENn60jb8U4LmBcxEqWK/1JiAiulQqC5Z1xOjg+7Q4LIqxc/OJmT/Vt7Gfd pa3NZYgzKzwsFPCuKQ1vKNa7N3vBIQnuaNOMgst/dUlzU4Lk67uWoLkHElgWLWbvrYvDhGGZ+MgKg Yf4xiqDnP0+PgKvWHR1Uikbx3ow4oVBkQN6rP14LbQUjbymFBgZsv//5ayVMry6Pvt2pkFxweIt37 m80OLYPP9ZzrZ6pDenaZniRdEFWqLuJEXoTWtp+V9mZWAj93DQHRzdAfbk0zJA7yWQeyKneuuRWUG uR/7kwPK/T1sqIlYJJRQ==; 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 1jjJTV-0001Se-Fs; Thu, 11 Jun 2020 09:26:17 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jjJTR-0001QL-2G; Thu, 11 Jun 2020 09:26:14 +0000 X-UUID: 94624fa3ead5447aa6539b5f782fc22d-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=arPIeFMQZ1+NZeZaAa8iqxicI65qOT2Z+fn97VHkHyg=; b=sd7V/kvTL+bcexp3YLpxV/isLcX1pmju0wE7zCKMn1elCqftHm0oQC5Z2cT7/pIQL7bykmG0vP8ncVbo7WL1l6kipwHEW80r4NExv45dHkGT8aFrXWLqyxajPg+RTsOBxg91H98cVlz57JiRTWqXR5dV3RuxoIIr3lxeqyIUlcc=; X-UUID: 94624fa3ead5447aa6539b5f782fc22d-20200611 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 30019533; Thu, 11 Jun 2020 01:25:48 -0800 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 02:26:02 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 17:26:01 +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; Thu, 11 Jun 2020 17:26:01 +0800 Message-ID: <1591867563.27949.9.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu Date: Thu, 11 Jun 2020 17:26:03 +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> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200611_022613_117205_F827DFCD X-CRM114-Status: GOOD ( 13.64 ) 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 , 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 On Wed, 2020-06-10 at 00:01 +0800, Chun-Kuang Hu wrote: Hi Chun-Kuang, [snip] > > + > > +/* > > + * mtk_devapc_pd_get - get devapc pd_types of register address. > > + * > > + * Returns the value of reg addr > > + */ > > +static void __iomem *mtk_devapc_pd_get(int slave_type, > > + enum DEVAPC_PD_REG_TYPE pd_reg_type, > > + u32 index) > > +{ > > + struct mtk_devapc_vio_info *vio_info = mtk_devapc_ctx->soc->vio_info; > > + u32 slave_type_num = mtk_devapc_ctx->soc->slave_type_num; > > + const u32 *devapc_pds = mtk_devapc_ctx->soc->devapc_pds; > > + void __iomem *reg; > > + > > + if (!devapc_pds) > > + return NULL; > > + > > + if ((slave_type < slave_type_num && > > + index < vio_info->vio_mask_sta_num[slave_type]) && > > + pd_reg_type < PD_REG_TYPE_NUM) { > > + reg = mtk_devapc_ctx->devapc_pd_base[slave_type] + > > + devapc_pds[pd_reg_type]; > > + > > + if (pd_reg_type == VIO_MASK || pd_reg_type == VIO_STA) > > + reg += 0x4 * index; > > + > > + } else { > > + pr_err(PFX "%s:0x%x or %s:0x%x or %s:0x%x is out of boundary\n", > > + "slave_type", slave_type, > > Move "slave_type" into format string. Why is this necessary? Is there any benefit for moving this? Since the line length is almost over 80 chars. > > > + "pd_reg_type", pd_reg_type, > > + "index", index); > > + return NULL; > > + } > > + > > + return reg; > > +} > > + > [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. > > > + > > + 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 D5DD7C433E0 for ; Thu, 11 Jun 2020 09:26:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AFF4920747 for ; Thu, 11 Jun 2020 09:26:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="MympouM7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726905AbgFKJ0L (ORCPT ); Thu, 11 Jun 2020 05:26:11 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:62507 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726560AbgFKJ0L (ORCPT ); Thu, 11 Jun 2020 05:26:11 -0400 X-UUID: 28397743254d408eb15d093e40b26913-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=arPIeFMQZ1+NZeZaAa8iqxicI65qOT2Z+fn97VHkHyg=; b=MympouM7ONPsFXos7gNFoAWJWkGuRm/EHTeuym7LbkREm4KgjMW6EHkJ/xlQOLjYc7RTe6IWMZ4IVI5qgit6V987xZTJtiTCWSVLh3NGBemS2JYlb610XWl3NVPtipSGbTBI3ICIGDDAgRsdRWPTaly/++FaNHEq+IgukLnlvSc=; X-UUID: 28397743254d408eb15d093e40b26913-20200611 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1041489277; Thu, 11 Jun 2020 17:26:04 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 17:26:01 +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; Thu, 11 Jun 2020 17:26:01 +0800 Message-ID: <1591867563.27949.9.camel@mtkswgap22> Subject: Re: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Chun-Kuang Hu CC: "devicetree@vger.kernel.org" , wsd_upstream , linux-kernel , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , Linux ARM Date: Thu, 11 Jun 2020 17:26:03 +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> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org T24gV2VkLCAyMDIwLTA2LTEwIGF0IDAwOjAxICswODAwLCBDaHVuLUt1YW5nIEh1IHdyb3RlOg0K SGkgQ2h1bi1LdWFuZywNCg0KW3NuaXBdDQoNCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIG10a19k ZXZhcGNfcGRfZ2V0IC0gZ2V0IGRldmFwYyBwZF90eXBlcyBvZiByZWdpc3RlciBhZGRyZXNzLg0K PiA+ICsgKg0KPiA+ICsgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiByZWcgYWRkcg0KPiA+ICsgKi8N Cj4gPiArc3RhdGljIHZvaWQgX19pb21lbSAqbXRrX2RldmFwY19wZF9nZXQoaW50IHNsYXZlX3R5 cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBERVZB UENfUERfUkVHX1RZUEUgcGRfcmVnX3R5cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdTMyIGluZGV4KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRr X2RldmFwY192aW9faW5mbyAqdmlvX2luZm8gPSBtdGtfZGV2YXBjX2N0eC0+c29jLT52aW9faW5m bzsNCj4gPiArICAgICAgIHUzMiBzbGF2ZV90eXBlX251bSA9IG10a19kZXZhcGNfY3R4LT5zb2Mt PnNsYXZlX3R5cGVfbnVtOw0KPiA+ICsgICAgICAgY29uc3QgdTMyICpkZXZhcGNfcGRzID0gbXRr X2RldmFwY19jdHgtPnNvYy0+ZGV2YXBjX3BkczsNCj4gPiArICAgICAgIHZvaWQgX19pb21lbSAq cmVnOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICghZGV2YXBjX3BkcykNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKChzbGF2ZV90eXBlIDwg c2xhdmVfdHlwZV9udW0gJiYNCj4gPiArICAgICAgICAgICAgaW5kZXggPCB2aW9faW5mby0+dmlv X21hc2tfc3RhX251bVtzbGF2ZV90eXBlXSkgJiYNCj4gPiArICAgICAgICAgICBwZF9yZWdfdHlw ZSA8IFBEX1JFR19UWVBFX05VTSkgew0KPiA+ICsgICAgICAgICAgICAgICByZWcgPSBtdGtfZGV2 YXBjX2N0eC0+ZGV2YXBjX3BkX2Jhc2Vbc2xhdmVfdHlwZV0gKw0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGRldmFwY19wZHNbcGRfcmVnX3R5cGVdOw0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgaWYgKHBkX3JlZ190eXBlID09IFZJT19NQVNLIHx8IHBkX3JlZ190eXBlID09IFZJT19T VEEpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmVnICs9IDB4NCAqIGluZGV4Ow0KPiA+ ICsNCj4gPiArICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgIHByX2VycihQRlgg IiVzOjB4JXggb3IgJXM6MHgleCBvciAlczoweCV4IGlzIG91dCBvZiBib3VuZGFyeVxuIiwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICJzbGF2ZV90eXBlIiwgc2xhdmVfdHlwZSwNCj4gDQo+ IE1vdmUgInNsYXZlX3R5cGUiIGludG8gZm9ybWF0IHN0cmluZy4NCg0KV2h5IGlzIHRoaXMgbmVj ZXNzYXJ5PyBJcyB0aGVyZSBhbnkgYmVuZWZpdCBmb3IgbW92aW5nIHRoaXM/DQpTaW5jZSB0aGUg bGluZSBsZW5ndGggaXMgYWxtb3N0IG92ZXIgODAgY2hhcnMuDQoNCj4gDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAicGRfcmVnX3R5cGUiLCBwZF9yZWdfdHlwZSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICJpbmRleCIsIGluZGV4KTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IE5VTEw7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIHJlZzsNCj4g PiArfQ0KPiA+ICsNCj4gDQoNCltzbmlwXQ0KDQo+IA0KPiA+ICsNCj4gPiArLyoNCj4gPiArICog ZGV2YXBjX3Zpb2xhdGlvbl9pcnEgLSB0aGUgZGV2YXBjIEludGVycnVwdCBTZXJ2aWNlIFJvdXRp bmUgKElTUikgd2lsbCBkdW1wDQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICB2aW9sYXRp b24gaW5mb3JtYXRpb24gaW5jbHVkaW5nIHdoaWNoIG1hc3RlciB2aW9sYXRlcw0KPiA+ICsgKiAg ICAgICAgICAgICAgICAgICAgICAgYWNjZXNzIHNsYXZlLg0KPiA+ICsgKi8NCj4gPiArc3RhdGlj IGlycXJldHVybl90IGRldmFwY192aW9sYXRpb25faXJxKGludCBpcnFfbnVtYmVyLCB2b2lkICpk ZXZfaWQpDQo+ID4gK3sNCj4gPiArICAgICAgIHUzMiBzbGF2ZV90eXBlX251bSA9IG10a19kZXZh cGNfY3R4LT5zb2MtPnNsYXZlX3R5cGVfbnVtOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IG10 a19kZXZpY2VfaW5mbyAqKmRldmljZV9pbmZvOw0KPiA+ICsgICAgICAgc3RydWN0IG10a19kZXZh cGNfdmlvX2luZm8gKnZpb19pbmZvOw0KPiA+ICsgICAgICAgaW50IHNsYXZlX3R5cGUsIHZpb19p ZHgsIGluZGV4Ow0KPiA+ICsgICAgICAgY29uc3QgY2hhciAqdmlvX21hc3RlcjsNCj4gPiArICAg ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gKyAgICAgICBib29sIG5vcm1hbDsNCj4gPiAr ICAgICAgIHU4IHBlcm07DQo+ID4gKw0KPiA+ICsgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRl dmFwY19sb2NrLCBmbGFncyk7DQo+ID4gKw0KPiA+ICsgICAgICAgZGV2aWNlX2luZm8gPSBtdGtf ZGV2YXBjX2N0eC0+c29jLT5kZXZpY2VfaW5mbzsNCj4gPiArICAgICAgIHZpb19pbmZvID0gbXRr X2RldmFwY19jdHgtPnNvYy0+dmlvX2luZm87DQo+ID4gKyAgICAgICBub3JtYWwgPSBmYWxzZTsN Cj4gPiArICAgICAgIHZpb19pZHggPSAtMTsNCj4gPiArICAgICAgIGluZGV4ID0gLTE7DQo+ID4g Kw0KPiA+ICsgICAgICAgLyogVGhlcmUgYXJlIG11bHRpcGxlIERFVkFQQ19QRCAqLw0KPiA+ICsg ICAgICAgZm9yIChzbGF2ZV90eXBlID0gMDsgc2xhdmVfdHlwZSA8IHNsYXZlX3R5cGVfbnVtOyBz bGF2ZV90eXBlKyspIHsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFjaGVja190eXBlMl92aW9f c3RhdHVzKHNsYXZlX3R5cGUsICZ2aW9faWR4LCAmaW5kZXgpKQ0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGlmICghbXRrX2RldmFwY19kdW1wX3Zpb19kYmcoc2xhdmVfdHlwZSwgJnZpb19p ZHgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaW5kZXgpKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAvKiBFbnN1cmUgdGhhdCB2aW9sYXRpb24g aW5mbyBhcmUgd3JpdHRlbiBiZWZvcmUNCj4gPiArICAgICAgICAgICAgICAgICogZnVydGhlciBv cGVyYXRpb25zDQo+ID4gKyAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgICAgICAgICBz bXBfbWIoKTsNCj4gPiArICAgICAgICAgICAgICAgbm9ybWFsID0gdHJ1ZTsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG1hc2tfbW9kdWxlX2lycShzbGF2ZV90eXBlLCB2aW9faWR4LCB0cnVl KTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChjbGVhcl92aW9fc3RhdHVzKHNsYXZl X3R5cGUsIHZpb19pZHgpKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX3dhcm4oUEZY ICIlcywgJXM6MHgleCwgJXM6MHgleFxuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJjbGVhciB2aW8gc3RhdHVzIGZhaWxlZCIsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic2xhdmVfdHlwZSIsIHNsYXZlX3R5cGUsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAidmlvX2luZGV4IiwgdmlvX2lkeCk7DQo+ID4gKw0KPiA+ICsg ICAgICAgICAgICAgICBwZXJtID0gZ2V0X3Blcm1pc3Npb24oc2xhdmVfdHlwZSwgaW5kZXgsIHZp b19pbmZvLT5kb21haW5faWQpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgdmlvX21hc3Rl ciA9IG10a19kZXZhcGNfY3R4LT5zb2MtPm1hc3Rlcl9nZXQNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAodmlvX2luZm8tPm1hc3Rlcl9pZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgdmlvX2luZm8tPnZpb19hZGRyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBzbGF2 ZV90eXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB2aW9faW5mby0+c2hpZnRfc3Rh X2JpdCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgdmlvX2luZm8tPmRvbWFpbl9pZCk7 DQo+IA0KPiBDYWxsIG10Njg3M19idXNfaWRfdG9fbWFzdGVyKCkgZGlyZWN0bHkuIEZvciBmaXJz dCBwYXRjaCwgbWFrZSB0aGluZ3MNCj4gYXMgc2ltcGxlIGFzIHBvc3NpYmxlLg0KDQpJbiBkZXZh cGNfdmlvbGF0aW9uX2lycSgpIGZ1bmN0aW9uLCB3ZSB1c2UgY29tbW9uIGZsb3cgdG8gaGFuZGxl IGVhY2gNCmRldmFwYyB2aW9sYXRpb24gb24gZGlmZmVyZW50IHBsYXRmb3Jtcy4gVGhlIG1hc3Rl cl9nZXQoKSBoYXMgZGlmZmVyZW50DQppbXBsZW1lbnRhdGlvbiBvbiBkaWZmZXJlbnQgcGxhdGZv cm1zLCB0aGF0IHdoeSBpdCBjYWxsZWQgaW5kaXJlY3RseS4NCg0KT25jZSB3ZSBoYXZlIG5ldyBw bGF0Zm9ybSwgd2Ugb25seSBoYXZlIHRvIHVwZGF0ZSBkZXZhcGMtbXR4eHh4LmMNCmluc3RlYWQg b2YgY29tbW9uIGhhbmRsZXIgZmxvdy4NCg0KPiANCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGlmICghdmlvX21hc3Rlcikgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX3dhcm4o UEZYICJtYXN0ZXJfZ2V0IGZhaWxlZFxuIik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg dmlvX21hc3RlciA9ICJVTktOT1dOX01BU1RFUiI7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgICAgICAgICAgIHByX2luZm8oUEZYICIlcyAtICVzOjB4JXgsICVzOjB4 JXgsICVzOjB4JXgsICVzOjB4JXhcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIlZp b2xhdGlvbiIsICJzbGF2ZV90eXBlIiwgc2xhdmVfdHlwZSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAic3lzX2luZGV4IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2Vf aW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uc3lzX2luZGV4LA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICJjdHJsX2luZGV4IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2Vf aW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uY3RybF9pbmRleCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAidmlvX2luZGV4IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2Vf aW5mb1tzbGF2ZV90eXBlXVtpbmRleF0udmlvX2luZGV4KTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgICAgIHByX2luZm8oUEZYICIlcyAlcyAlcyAlc1xuIiwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAiVmlvbGF0aW9uIC0gbWFzdGVyOiIsIHZpb19tYXN0ZXIsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgImFjY2VzcyB2aW9sYXRpb24gc2xhdmU6IiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uZGV2aWNlKTsNCj4g PiArDQo+ID4gKyAgICAgICAgICAgICAgIGRldmFwY192aW9fcmVhc29uKHBlcm0pOw0KPiA+ICsN Cj4gPiArICAgICAgICAgICAgICAgZGV2YXBjX2V4dHJhX2hhbmRsZXIoc2xhdmVfdHlwZSwgdmlv X21hc3RlciwgdmlvX2lkeCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmlvX2luZm8tPnZpb19hZGRyKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIG1hc2tf bW9kdWxlX2lycShzbGF2ZV90eXBlLCB2aW9faWR4LCBmYWxzZSk7DQo+ID4gKyAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgaWYgKG5vcm1hbCkgew0KPiA+ICsgICAgICAgICAgICAgICBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXZhcGNfbG9jaywgZmxhZ3MpOw0KPiA+ICsgICAgICAgICAg ICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2YXBjX2xvY2ssIGZsYWdzKTsNCj4gPiArICAg ICAgIHJldHVybiBJUlFfSEFORExFRDsNCj4gPiArfQ0KPiA+ICsNCg0KW3NuaXBdDQoNCg0K