Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8570933ybl; Thu, 16 Jan 2020 19:53:33 -0800 (PST) X-Google-Smtp-Source: APXvYqyLKOMXfGMYdccZes1Y9kRloZxAYnaDUJj4uDt9+1loBNW/ufs25irWZwFmOV7+0MBhNm3R X-Received: by 2002:aca:cdd6:: with SMTP id d205mr1957261oig.90.1579233212711; Thu, 16 Jan 2020 19:53:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579233212; cv=none; d=google.com; s=arc-20160816; b=I91EVBnsvoObFP8D7Ss9Sb5QnUIYQLnuTNaRpVkDMufM9ASLLAV4k2dytO63Pu13/f /OBAhAokP6yUjadQCB6dmiZDBk4z7IOWP1wlOin9HPy1a02GZLyNU1KZjYOZEqIo3Xzp c7NAyn3l1YgKqMMifkHiDQakDT1T7RXCHNFiYusOP2wDjx4yECQC4jPyXdY9CUNBxpqT yuN5ULpAdynI4nivMSelEoZAx2aEdrNxYQiE8XUVDQxpwJjWkh/iTtWbjS1m1EFsqyjl HRB+CjkXinF/6Uv0tV4pUoXpkb7QjnTRz2BfqvGluMExzfiuTl53DDJrBeoa4sXFGmrk fyQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=M9PfMDqq4mrgdJjoCxlePmryw2dwKhdtVpwo2rQpPHI=; b=z2CI2U8T+rwG+bF+p7tefUTCcgyYhhzYuMyOEd97H3LTlV0AxhPeNG9Fg6EIqA3mvh i4gJJwMTp+j3h8Yg0QzuUThOdsmIpDrprA+ZWdjWs3I4JHLkXd2FGZYpjp0PlJX2RFkz Yvvp/QJGlrPatZTDQR9GUrVlysQklj7PU1sTDvzVAuYov00rFk3uivQxpUv/AT6a9BRr 8imXdxl3UMST0qAT3X02MvdgwFpqcDbDpAM5KLDG36ZMeP5HftD3bOLy/lOgpCql2wMU 7dCi8zRs/YW//3iHBGZR1ewsBvEl0cPbWhcG8CFb9Q1/Pp2GkdgD9Mwrb/nKeGUEwc// owiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=PdZtFhwc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p25si13264109oto.191.2020.01.16.19.53.20; Thu, 16 Jan 2020 19:53:32 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=PdZtFhwc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730742AbgAQAbd (ORCPT + 99 others); Thu, 16 Jan 2020 19:31:33 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:38114 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730589AbgAQAbc (ORCPT ); Thu, 16 Jan 2020 19:31:32 -0500 Received: by mail-pl1-f195.google.com with SMTP id f20so9092410plj.5 for ; Thu, 16 Jan 2020 16:31:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=M9PfMDqq4mrgdJjoCxlePmryw2dwKhdtVpwo2rQpPHI=; b=PdZtFhwcbZoGTyRB0YT1AXckQK03oRubwCEsjPBt6hG1EbNxYH0Fjv9cfZuk8BKwLr Nfun0qpKSn16G4otglGI+BJlfh1NXbJLnUz19wnEiuyifT2ZaGyJeQdcvzWBZB99x0iT nUmD1tc7SEfkKKIGJXLVJXhYzFHw02R8UDDoM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=M9PfMDqq4mrgdJjoCxlePmryw2dwKhdtVpwo2rQpPHI=; b=BUMOAOtatPM/3MKR7g7OUx0WaPLPt98rX/8McKbHGKKJvYv2i1XsLcABi+inASgy4A Ol0f/brYYy/TvwCfXZbvE498WgEx+/s5Sw+DMcIHou4K/ntyAYQ11+f96730W45l8n1F wOevWFWUwX6jYDkafvMlLFPkQPFS+JJIWnzeJ8FWp9HWPYO7NiuFEBx4efEzFdIvDu+U PdHbV6EiQRxX3DinCsvO65QuGd+gknppa/V8DQMmBaDwsj/lBPF4bDHilUBZHBZXHIVp LrBBjNHGw2x6j2gJ/fxa2yfOsnOSTEhH5eXUDvE+8sJesZBSnvokkva3mhT/ZQPwR9AS jNRw== X-Gm-Message-State: APjAAAWXOs9shm3gxhvjHxQrJm24Yuuvu3kbNVtiH5rg8LPIulUivnV9 fNAkjIpGaSjCqiMIGAGFS+QRuQ== X-Received: by 2002:a17:90a:17e3:: with SMTP id q90mr2334122pja.139.1579221092047; Thu, 16 Jan 2020 16:31:32 -0800 (PST) Received: from [10.136.13.65] ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id r20sm25529366pgu.89.2020.01.16.16.31.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Jan 2020 16:31:31 -0800 (PST) Subject: Re: [PATCH v9 2/2] EDAC: add EDAC driver for DMC520 To: Shiping Ji , Borislav Petkov , James Morse , robh+dt@kernel.org, mark.rutland@arm.com Cc: devicetree@vger.kernel.org, LKML , linux-edac@vger.kernel.org, Mauro Carvalho Chehab , sashal@kernel.org, hangl@microsoft.com, Lei Wang , shji@microsoft.com, ruizhao@microsoft.com, Yuqing Shen , ray.jui@broadcom.com, wangglei@gmail.com References: <6a462190-0af2-094a-daa8-f480d54a1fbf@gmail.com> From: Scott Branden Message-ID: Date: Thu, 16 Jan 2020 16:31:27 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <6a462190-0af2-094a-daa8-f480d54a1fbf@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Shiping, Here is another small change to cleanup. On 2020-01-15 6:32 a.m., Shiping Ji wrote: > New driver supports error detection and correction on the devices with ARM > DMC-520 memory controller. > > Signed-off-by: Shiping Ji > Signed-off-by: Lei Wang > Reviewed-by: James Morse > > --- > Changes in v9: > - Removed interrupt-config and replaced with an interrupt map where names and masks are predefined > - Only one ISR function is defined, mask is retrieved from the interrupt map > - "dram_ecc_errc" and "dram_ecc_errd" are implemented > > --- > +static void dmc520_get_dram_ecc_error_info(struct dmc520_edac *edac, > + bool is_ce, > + struct ecc_error_info *info) > +{ > + u32 reg_offset_low, reg_offset_high; > + u32 reg_val_low, reg_val_high; > + bool valid; > + > + reg_offset_low = is_ce ? REG_OFFSET_DRAM_ECC_ERRC_INT_INFO_31_00 : > + REG_OFFSET_DRAM_ECC_ERRD_INT_INFO_31_00; > + reg_offset_high = is_ce ? REG_OFFSET_DRAM_ECC_ERRC_INT_INFO_63_32 : > + REG_OFFSET_DRAM_ECC_ERRD_INT_INFO_63_32; > + > + reg_val_low = dmc520_read_reg(edac, reg_offset_low); > + reg_val_high = dmc520_read_reg(edac, reg_offset_high); > + > + valid = (FIELD_GET(REG_FIELD_ERR_INFO_LOW_VALID, reg_val_low) != 0) && > + (FIELD_GET(REG_FIELD_ERR_INFO_HIGH_VALID, reg_val_high) != 0); > + > + if (valid) { > + info->col = > + FIELD_GET(REG_FIELD_ERR_INFO_LOW_COL, reg_val_low); > + info->row = > + FIELD_GET(REG_FIELD_ERR_INFO_LOW_ROW, reg_val_low); > + info->rank = > + FIELD_GET(REG_FIELD_ERR_INFO_LOW_RANK, reg_val_low); > + info->bank = > + FIELD_GET(REG_FIELD_ERR_INFO_HIGH_BANK, reg_val_high); > + } else { > + memset(info, 0, sizeof(struct ecc_error_info)); This should be sizeof(*info), not sizeof(struct ecc_error_info) for better programming to allow info to change type in the future without the code changing. > + } > +} > + >