Re: [PATCH 2/5] edac: synopsys: Add EDAC ECC support for ZynqMP DDRC
From: Michal Simek
Date: Mon Aug 07 2017 - 02:21:19 EST
On 7.8.2017 06:03, Borislav Petkov wrote:
> On Fri, Aug 04, 2017 at 02:00:24PM +0200, Michal Simek wrote:
>> From: Naga Sureshkumar Relli <naga.sureshkumar.relli@xxxxxxxxxx>
>>
>> This patch adds EDAC ECC support for ZynqMP DDRC IP
>>
>> Signed-off-by: Naga Sureshkumar Relli <nagasure@xxxxxxxxxx>
>> Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx>
>> ---
>>
>> drivers/edac/Kconfig | 2 +-
>> drivers/edac/synopsys_edac.c | 306 ++++++++++++++++++++++++++++++++++++++++++-
>> 2 files changed, 302 insertions(+), 6 deletions(-)
>
> ...
>
>> @@ -440,9 +706,12 @@ static int synps_edac_mc_init(struct mem_ctl_info *mci,
>> mci->dev_name = SYNPS_EDAC_MOD_STRING;
>> mci->mod_name = SYNPS_EDAC_MOD_VER;
>> mci->mod_ver = "1";
>> -
>> - edac_op_state = EDAC_OPSTATE_POLL;
>> - mci->edac_check = synps_edac_check;
>> + if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT) {
>> + edac_op_state = EDAC_OPSTATE_INT;
>> + } else {
>> + edac_op_state = EDAC_OPSTATE_POLL;
>> + mci->edac_check = synps_edac_check;
>> + }
>> mci->ctl_page_to_phys = NULL;
>>
>> status = synps_edac_init_csrows(mci);
>
> This hunk doesn't apply cleanly:
>
> $ test-apply.sh -q /tmp/02-edac-synopsys-add_edac_ecc_support_for_zynqmp_ddrc.patch
> checking file drivers/edac/Kconfig
> checking file drivers/edac/synopsys_edac.c
> Hunk #11 FAILED at 706.
> Hunk #12 succeeded at 723 (offset -1 lines).
> Hunk #13 succeeded at 754 (offset -1 lines).
> Hunk #14 succeeded at 803 (offset -1 lines).
> 1 out of 14 hunks FAILED
>
> Please redo your patches against this branch:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git/log/?h=for-next
>
The patch "EDAC: Get rid of mci->mod_ver" is causing that collision.
Will fix.
> Thx.
>
>> @@ -458,8 +727,18 @@ static int synps_edac_mc_init(struct mem_ctl_info *mci,
>> .quirks = 0,
>> };
>>
>> +static const struct synps_platform_data zynqmp_enh_edac_def = {
>> + .synps_edac_geterror_info = synps_enh_edac_geterror_info,
>> + .synps_edac_get_mtype = synps_enh_edac_get_mtype,
>> + .synps_edac_get_dtype = synps_enh_edac_get_dtype,
>> + .synps_edac_get_eccstate = synps_enh_edac_get_eccstate,
>> + .quirks = DDR_ECC_INTR_SUPPORT,
>> +};
>> +
>> static const struct of_device_id synps_edac_match[] = {
>> { .compatible = "xlnx,zynq-ddrc-a05", .data = (void *)&zynq_edac_def },
>> + { .compatible = "xlnx,zynqmp-ddrc-2.40a",
>> + .data = (void *)&zynqmp_enh_edac_def},
>
> WARNING: DT compatible string "xlnx,zynqmp-ddrc-2.40a" appears un-documented -- check ./Documentation/devicetree/bindings/
> #414: FILE: drivers/edac/synopsys_edac.c:740:
> + { .compatible = "xlnx,zynqmp-ddrc-2.40a",
>
> Please integrate checkpatch.pl into your patch creation workflow.
>
Thanks,
Michal