diff mbox

ARM: OMAP: DRA7: Make use of omap_revision information for soc_is* calls

Message ID 1455706123-26497-1-git-send-email-j-keerthy@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

J, KEERTHY Feb. 17, 2016, 10:48 a.m. UTC
Currently of_machine_is_compatible is used to detect the soc which
employs string comparison operations. We already have all the required
information in the omap_revision. Hence make use of the same like
the previous OMAPs and avoid costly string comparisons.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---

Couple of checkpatch warnings present but stuck to the code
convention followed in the file already.

Boot tested on both DRA7-EVM and DRA72-EVM.

Previous discussion:

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/378615.html

 arch/arm/mach-omap2/soc.h | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

Comments

Tony Lindgren Feb. 19, 2016, 6:15 p.m. UTC | #1
* Keerthy <j-keerthy@ti.com> [160217 02:49]:
> Currently of_machine_is_compatible is used to detect the soc which
> employs string comparison operations. We already have all the required
> information in the omap_revision. Hence make use of the same like
> the previous OMAPs and avoid costly string comparisons.

Looks good to me thanks. Applying into omap-for-v4.6/soc.

Tony
Keerthy Feb. 22, 2016, 3:27 a.m. UTC | #2
On Friday 19 February 2016 11:45 PM, Tony Lindgren wrote:
> * Keerthy <j-keerthy@ti.com> [160217 02:49]:
>> Currently of_machine_is_compatible is used to detect the soc which
>> employs string comparison operations. We already have all the required
>> information in the omap_revision. Hence make use of the same like
>> the previous OMAPs and avoid costly string comparisons.
>
> Looks good to me thanks. Applying into omap-for-v4.6/soc.

Thanks Tony.

>
> Tony
>
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h
index 79ca3c3..70df8f6 100644
--- a/arch/arm/mach-omap2/soc.h
+++ b/arch/arm/mach-omap2/soc.h
@@ -181,6 +181,14 @@  static inline int is_ti ##class (void)		\
 	return (GET_TI_CLASS == (id)) ? 1 : 0;	\
 }
 
+#define GET_DRA_CLASS	((omap_rev() >> 24) & 0xff)
+
+#define IS_DRA_CLASS(class, id)				\
+static inline int is_dra ##class (void)			\
+{							\
+	return (GET_DRA_CLASS == (id)) ? 1 : 0;		\
+}
+
 #define GET_OMAP_SUBCLASS	((omap_rev() >> 20) & 0x0fff)
 
 #define IS_OMAP_SUBCLASS(subclass, id)			\
@@ -201,6 +209,12 @@  static inline int is_am ##subclass (void)		\
 	return (GET_OMAP_SUBCLASS == (id)) ? 1 : 0;	\
 }
 
+#define IS_DRA_SUBCLASS(subclass, id)			\
+static inline int is_dra ##subclass (void)		\
+{							\
+	return (GET_OMAP_SUBCLASS == (id)) ? 1 : 0;	\
+}
+
 IS_OMAP_CLASS(24xx, 0x24)
 IS_OMAP_CLASS(34xx, 0x34)
 IS_OMAP_CLASS(44xx, 0x44)
@@ -210,6 +224,7 @@  IS_AM_CLASS(33xx, 0x33)
 IS_AM_CLASS(43xx, 0x43)
 
 IS_TI_CLASS(81xx, 0x81)
+IS_DRA_CLASS(7xx, 0x7)
 
 IS_OMAP_SUBCLASS(242x, 0x242)
 IS_OMAP_SUBCLASS(243x, 0x243)
@@ -224,6 +239,8 @@  IS_TI_SUBCLASS(816x, 0x816)
 IS_TI_SUBCLASS(814x, 0x814)
 IS_AM_SUBCLASS(335x, 0x335)
 IS_AM_SUBCLASS(437x, 0x437)
+IS_DRA_SUBCLASS(75x, 0x75)
+IS_DRA_SUBCLASS(72x, 0x72)
 
 #define soc_is_omap24xx()		0
 #define soc_is_omap242x()		0
@@ -397,9 +414,9 @@  IS_OMAP_TYPE(3430, 0x3430)
 #undef soc_is_dra7xx
 #undef soc_is_dra74x
 #undef soc_is_dra72x
-#define soc_is_dra7xx()	(of_machine_is_compatible("ti,dra7"))
-#define soc_is_dra74x()	(of_machine_is_compatible("ti,dra74"))
-#define soc_is_dra72x()	(of_machine_is_compatible("ti,dra72"))
+#define soc_is_dra7xx()	is_dra7xx()
+#define soc_is_dra74x()	is_dra75x()
+#define soc_is_dra72x()	is_dra72x()
 #endif
 
 /* Various silicon revisions for omap2 */