Thread (7 messages) flat view 7 messages, 3 authors, 2016-08-08

[PATCH v2 1/2] soc: qcom: provide mechanism for drivers to access L2 registers

From: Neil Leeder <hidden>
Date: 2016-08-05 18:53:58
Also in: linux-arm-msm, lkml

On 8/5/2016 06:00 AM, Mark Rutland wrote:
On Thu, Aug 04, 2016 at 05:11:10PM -0400, Neil Leeder wrote:
quoted
L2 registers are accessed using a select register and data
register pair. To prevent multiple concurrent writes to the
select register by independent drivers, the write to the
select register and the associated access of the data register
are protected with a lock. All drivers accessing the L2
registers use the set and get functions provided by
l2-accessors to ensure correct reads and writes to L2 registers.
As of this series, this is only used by the PMU driver. Which other
drivers do you plan to use this for?

If there's nothing else planned at the moment, it would be nicer to fold
these into the PMU driver.
I see a couple of other drivers on codeaurora.org using it: the
Error Reporting (ERP) driver and an adaptive clock generator. 
I'd guess they'll be submitted to LKML but they're not mine so I don't
know when.

As the purpose of this is to be the common interface for multiple drivers
to stop them walking over each other, I think it makes sense to keep
it separate.
[...]
quoted
+config QCOM_L2_ACCESSORS
+	bool "Qualcomm Technologies L2-cache accessors"
+	depends on ARCH_QCOM && ARM64
+	help
+	  Say y here to enable support for the Qualcomm Technologies
+	  L2 accessors.
+	  Provides support for accessing registers in the L2 cache
+	  for Qualcomm Technologies chips.
Which chips have this?
Qualcomm Technologies ARM64 chips, so currently QDF24xx family and 
anything Kryo based. I'd assume any future chip families as well.
Given the 'depends on' line, I wasn't sure there was any benefit
to essentially duplicating that in the help text.
Have drivers select this as necessary. There's no reason for this to be
used-selectable given this is trivial common infrastructure.
OK, I'll fix that
[...]
quoted
+#include <linux/spinlock.h>
+#include <linux/export.h>
+#include <linux/soc/qcom/l2-accessors.h>
+#include <asm/cputype.h>
+#include <asm/sysreg.h>
Nit: please sort these alphabetically.
OK
[...]
quoted
+EXPORT_SYMBOL(set_l2_indirect_reg);
The PMU driver isn't a module, so this doesn't need to be exported.
Until there's a modular user, please get rid of EXPORT_SYMBOL.
quoted
+EXPORT_SYMBOL(get_l2_indirect_reg);
Likewise.
OK to both of these.
Thanks,
Mark.
Thank you for the comments.
Neil

-- 
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help