From: Thor Thayer <tthayer@opensource.altera.com>
To: Borislav Petkov <bp@alien8.de>
Cc: dougthompson@xmission.com, m.chehab@samsung.com,
robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com,
ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
linux@arm.linux.org.uk, dinguyen@opensource.altera.com,
grant.likely@linaro.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-edac@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tthayer.linux@gmail.com
Subject: Re: [PATCHv3 5/7] EDAC, altera: Add Arria10 ECC memory init functions
Date: Fri, 17 Jun 2016 12:42:39 -0500 [thread overview]
Message-ID: <5764368F.6040800@opensource.altera.com> (raw)
In-Reply-To: <20160617172150.GJ3912@pd.tnic>
On 06/17/2016 12:21 PM, Borislav Petkov wrote:
> On Mon, Jun 13, 2016 at 04:19:10PM -0500, tthayer@opensource.altera.com wrote:
>> From: Thor Thayer <tthayer@opensource.altera.com>
>>
>> In preparation for additional memory module ECCs, add the
>> memory initialization functions and helper functions used
>> for memory initialization.
>>
>> Signed-off-by: Thor Thayer <tthayer@opensource.altera.com>
>> ---
>> v2: Specify INTMODE selection -> IRQ on each ECC error.
>> Insert functions above memory-specific functions so that function
>> declarations are not required.
>> Use ERRINTENS & ERRINTENR registers instead of read/modify/write.
>> v3: Changes for common compatibility string:
>> - Pass node instead of compatibility string.
>> - New altr_init_a10_ecc_device_type() for peripherals.
>> - Add __init to altr_init_a10_ecc_block().
>> - Add a10_get_irq_mask().
>> ---
>> drivers/edac/altera_edac.c | 197 ++++++++++++++++++++++++++++++++++++++++++++
>> drivers/edac/altera_edac.h | 8 ++
>> 2 files changed, 205 insertions(+)
>
>> +/*
>> + * This function uses the memory initialization block in the Arria10 ECC
>> + * controller to initialize/clear the entire memory data and ECC data.
>> + */
>> +static int altr_init_memory_port(void __iomem *ioaddr, int port)
>> +{
>> + int limit = ALTR_A10_ECC_INIT_WATCHDOG_10US;
>> + u32 init_mask = ALTR_A10_ECC_INITA;
>> + u32 stat_mask = ALTR_A10_ECC_INITCOMPLETEA;
>> + u32 clear_mask = ALTR_A10_ECC_ERRPENA_MASK;
>> + int ret = 0;
>> +
>> + if (port) {
>> + init_mask = ALTR_A10_ECC_INITB;
>> + stat_mask = ALTR_A10_ECC_INITCOMPLETEB;
>> + clear_mask = ALTR_A10_ECC_ERRPENB_MASK;
>> + }
>
> Do a
> u32 init_mask, stat_mask, clear_mask;
>
> if (port) {
> init_mask = ALTR_A10_ECC_INITB;
> ...
> } else {
> init_mask = ALTR_A10_ECC_INITA;
> ...
> }
>
> so that you don't have to repeat the assignments in the if (port) case.
>
OK. I only have one PORTB peripheral so normally the if (port) branch
won't execute but I see your point.
>> +
>> + ecc_set_bits(init_mask, (ioaddr + ALTR_A10_ECC_CTRL_OFST));
>> + while (limit--) {
>> + if (ecc_test_bits(stat_mask,
>> + (ioaddr + ALTR_A10_ECC_INITSTAT_OFST)))
>> + break;
>> + udelay(1);
>> + }
>> + if (limit < 0)
>> + ret = -EBUSY;
>> +
>> + /* Clear any pending ECC interrupts */
>> + writel(clear_mask, (ioaddr + ALTR_A10_ECC_INTSTAT_OFST));
>> +
>> + return ret;
>> +}
>> +
>> +/*
>> + * Aside from the L2 ECC, the Arria10 ECC memories have a common register
>> + * layout so the following functions can be shared between all peripherals.
>
> I don't understand - we're here under
>
> #if defined(CONFIG_EDAC_ALTERA_ETHERNET)
>
> What sharing do you mean?
>
I'll be adding a number of peripheral FIFOs in future patches but I
agree that the comment is misleading in this case. I'll fix it.
next prev parent reply other threads:[~2016-06-17 17:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-13 21:19 [PATCHv3 0/7] Add Ethernet EDAC & peripheral init functions tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
[not found] ` <1465852752-11018-1-git-send-email-tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2016-06-13 21:19 ` [PATCHv3 1/7] EDAC, altera: Check parent status for Arria10 EDAC block tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
[not found] ` <1465852752-11018-2-git-send-email-tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2016-06-17 16:46 ` Borislav Petkov
2016-06-17 16:54 ` Thor Thayer
2016-06-17 16:54 ` Borislav Petkov
2016-06-13 21:19 ` [PATCHv3 4/7] Documentation: dt: socfpga: Add Arria10 Ethernet binding tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
[not found] ` <1465852752-11018-5-git-send-email-tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2016-06-16 18:39 ` Rob Herring
2016-06-16 19:12 ` Thor Thayer
2016-06-13 21:19 ` [PATCHv3 5/7] EDAC, altera: Add Arria10 ECC memory init functions tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
2016-06-17 17:21 ` Borislav Petkov
2016-06-17 17:42 ` Thor Thayer [this message]
2016-06-13 21:19 ` [PATCHv3 2/7] EDAC, altera: Add panic flag check to A10 IRQ tthayer
2016-06-17 16:51 ` Borislav Petkov
2016-06-17 17:05 ` Thor Thayer
2016-06-17 17:02 ` Borislav Petkov
2016-06-17 17:11 ` Thor Thayer
2016-06-13 21:19 ` [PATCHv3 3/7] EDAC, altera: Share Arria10 check_deps & IRQ functions tthayer
2016-06-17 17:00 ` Borislav Petkov
2016-06-17 17:09 ` Thor Thayer
2016-06-17 17:11 ` Borislav Petkov
2016-06-17 17:37 ` Thor Thayer
2016-06-13 21:19 ` [PATCHv3 6/7] EDAC, altera: Add Arria10 Ethernet EDAC support tthayer
[not found] ` <1465852752-11018-7-git-send-email-tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2016-06-17 17:29 ` Borislav Petkov
2016-06-17 17:43 ` Thor Thayer
2016-06-13 21:19 ` [PATCHv3 7/7] ARM: dts: Add Arria10 Ethernet EDAC devicetree entry tthayer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5764368F.6040800@opensource.altera.com \
--to=tthayer@opensource.altera.com \
--cc=bp@alien8.de \
--cc=devicetree@vger.kernel.org \
--cc=dinguyen@opensource.altera.com \
--cc=dougthompson@xmission.com \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-edac@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.chehab@samsung.com \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=tthayer.linux@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).