• Prakash, Prashanth's avatar
    mailbox: pcc: optimized pcc_send_data · 8b0f5788
    Prakash, Prashanth authored
    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: default avatarPrashanth Prakash <pprakash@codeaurora.org>
    Acked-by: default avatarAshwin Chaugule <ashwin.chaugule@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    8b0f5788
pcc.c 12.2 KB