[PATCH v2 2/3] [ARM] perfevents: Add support for Scorpion performance monitors
Sheetal Sahasrabudhe
sheetals at codeaurora.org
Tue Mar 8 13:31:46 EST 2011
Hi Will,
On Tue, March 8, 2011 6:52 am, Will Deacon wrote:
> [...]
>
>> +static DEFINE_PER_CPU(u32, venum_orig_val);
>> +static DEFINE_PER_CPU(u32, fp_orig_val);
>> +
>> +static void scorpion_pre_vlpm(void)
>> +{
>> + u32 venum_new_val;
>> + u32 fp_new_val;
>> + /* CPACR Enable CP10 access*/
>> + asm volatile("mrc p15, 0, %0, c1, c0, 2" : "=r" (venum_orig_val));
>> + venum_new_val = venum_orig_val | 0x00100000;
>> + asm volatile("mcr p15, 0, %0, c1, c0, 2" : : "r" (venum_new_val));
>> + isb();
>> + /* Enable FPEXC */
>> + fp_orig_val = fmrx(FPEXC);
>> + fp_new_val = fp_orig_val | FPEXC_EN;
>> + fmxr(FPEXC, fp_new_val);
>> +}
>> +
>
> When I looked at this originally, I thought it would be nice to have
> some functions or macros for poking with the CPACR and planned to submit
> that as a separate patch...
>
> ... well it turns out we already have this! Please can you update this
> bit of code to use the {get,set}_copro_access functions in asm/system.h?
> You can use the CPACC_SVC macro to generate the access mask too instead
> of hardcoding the 0x00100000.
Great! I have made the change and reposted the patch.
Please let me know if it looks good.
Thanks,
Sheetal
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
More information about the linux-arm-kernel
mailing list