mailbox: pcc: optimized pcc_send_data
authorPrakash, Prashanth <pprakash@codeaurora.org>
Wed, 17 Feb 2016 20:21:01 +0000 (13:21 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 9 Mar 2016 22:35:29 +0000 (23:35 +0100)
commit8b0f57889843af6304b80724e36bd3d93b6484b1
treeec096586070e71378dff0711d984926745bcf7c7
parent77e3d86f2f8c533c9c72fb5585b623b447d9bd57
mailbox: pcc: optimized pcc_send_data

pcc_send_data() can be invoked during the execution of performance
critical code as in cppc_cpufreq driver. With acpi_* APIs, the
doorbell register accessed in pcc_send_data() if present in system
memory will be searched (in cached virt to phys addr mapping),
mapped, read/written and then unmapped. These operations take
significant amount of time.

This patch maps the performance critical doorbell register
during init and then reads/writes to it directly using the
mapped virtual address. This patch + similar changes to CPPC
acpi driver reduce the time per freq. transition from around
200us to about 20us for the CPPC cpufreq driver

Signed-off-by: Prashanth Prakash <pprakash@codeaurora.org>
Acked-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/mailbox/pcc.c