linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: hanjun.guo@linaro.org (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] arch_timer: acpi: add hisi timer erratum data
Date: Tue, 24 Jan 2017 21:50:59 +0800	[thread overview]
Message-ID: <58875BC3.4090101@linaro.org> (raw)
In-Reply-To: <20170124105717.GB6277@leverpostej>

On 01/24/2017 06:57 PM, Mark Rutland wrote:
> On Tue, Jan 24, 2017 at 06:39:51PM +0800, Hanjun Guo wrote:
>> From: Hanjun Guo <hanjun.guo@linaro.org>
>>
>> Add hisilicon timer specific erratum fixes.
>>
>> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
>> ---
>>   drivers/clocksource/arm_arch_timer.c | 22 ++++++++++++++++++++++
>>   1 file changed, 22 insertions(+)
>>
>> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
>> index 80d6f76..3e62a09 100644
>> --- a/drivers/clocksource/arm_arch_timer.c
>> +++ b/drivers/clocksource/arm_arch_timer.c
>> @@ -1156,10 +1156,32 @@ struct gtdt_arch_timer_fixup {
>>   	void *context;
>>   };
>>
>> +#ifdef CONFIG_HISILICON_ERRATUM_161010101
>> +static void __init hisi_erratum_workaroud_enable(void *context)
>> +{
>> +	int i;
>> +
>> +	for (i = 0; i < ARRAY_SIZE(ool_workarounds); i++) {
>> +		if (!strcmp(context, ool_workarounds[i].id)) {
>> +			timer_unstable_counter_workaround = &ool_workarounds[i];
>> +			static_branch_enable(&arch_timer_read_ool_enabled);
>> +			pr_info("arch_timer: Enabling workaround for %s\n",
>> +				timer_unstable_counter_workaround->id);
>> +			break;
>> +		}
>> +	}
>> +}
>> +#endif
>> +
>>   /* note: this needs to be updated according to the doc of OEM ID
>>    * and TABLE ID for different board.
>>    */
>>   static struct gtdt_arch_timer_fixup arch_timer_quirks[] __initdata = {
>> +#ifdef CONFIG_HISILICON_ERRATUM_161010101
>> +	{"HISI  ", "HIP05   ", 0, &hisi_erratum_workaroud_enable, "hisilicon,erratum-161010101"},
>> +	{"HISI  ", "HIP06   ", 0, &hisi_erratum_workaroud_enable, "hisilicon,erratum-161010101"},
>> +	{"HISI  ", "HIP07   ", 0, &hisi_erratum_workaroud_enable, "hisilicon,erratum-161010101"},
>> +#endif
>>   };
>
> NAK. This duplicates logic unnecessarily (for enabling the workaround),
> and (ab)uses the id, which was intended to be specific to DT (since it
> is a DT property name).
>
> We should split the matching from the particular workaround (and
> enabling thereof), so that we can go straight from ACPI match to
> workaround (without having to use the DT id in this manner), and don't
> have to duplicate the logic to enable the workaround.

maybe we can add ACPI quirk matching information in
struct arch_timer_erratum_workaround, then reuse the
code for both ACPI and DT, but it needs further cleanup
to support multi platforms sharing the same erratum in
ACPI way.

Thanks
Hanjun

  parent reply	other threads:[~2017-01-24 13:50 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-24 10:39 [PATCH 0/2] arch_timer: acpi: Add workaround for hisilicon-161010101 erratum Hanjun Guo
2017-01-24 10:39 ` [PATCH 1/2] arm64: arch_timer: acpi: Introduce a generic aquirk framework for erratum Hanjun Guo
2017-01-24 10:39 ` [PATCH 2/2] arch_timer: acpi: add hisi timer erratum data Hanjun Guo
2017-01-24 10:57   ` Mark Rutland
2017-01-24 11:32     ` Marc Zyngier
2017-01-24 12:35       ` John Garry
2017-01-24 13:08         ` Marc Zyngier
2017-01-24 13:28           ` Shameerali Kolothum Thodi
2017-01-24 13:22       ` Hanjun Guo
2017-02-10  7:10       ` Hanjun Guo
2017-02-16  8:42         ` Alexander Graf
2017-02-16  9:14           ` Daniel Lezcano
2017-02-16  9:32             ` Alexander Graf
2017-02-16  9:41               ` Ding Tianhong
2017-02-16  9:46                 ` Sanil Kumar
2017-02-16  9:49                   ` Daniel Lezcano
2017-02-16  9:42             ` Hanjun Guo
2017-02-16 10:04         ` Marc Zyngier
2017-02-20 19:00         ` Marc Zyngier
2017-02-21 11:56           ` Hanjun Guo
2017-02-21 15:22             ` Marc Zyngier
2017-02-22  4:08               ` Alexander Graf
2017-02-22  9:29                 ` Marc Zyngier
2017-02-22  7:41               ` Hanjun Guo
2017-02-21 12:46           ` Ding Tianhong
2017-01-24 13:50     ` Hanjun Guo [this message]
2017-01-24 10:49 ` [PATCH 0/2] arch_timer: acpi: Add workaround for hisilicon-161010101 erratum Hanjun Guo

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=58875BC3.4090101@linaro.org \
    --to=hanjun.guo@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).