From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omzsmtpe01.verizonbusiness.com ([199.249.25.210]:36307 "EHLO omzsmtpe01.verizonbusiness.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932146AbdDDTdX (ORCPT ); Tue, 4 Apr 2017 15:33:23 -0400 From: alexander.levin@verizon.com To: "gregkh@linuxfoundation.org" CC: "stable@vger.kernel.org" Subject: [PATCH for 4.9 58/98] ARM: davinci: add skeleton for pdata-quirks Date: Tue, 4 Apr 2017 19:32:24 +0000 Message-ID: <20170404193158.19041-59-alexander.levin@verizon.com> References: <20170404193158.19041-1-alexander.levin@verizon.com> In-Reply-To: <20170404193158.19041-1-alexander.levin@verizon.com> Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: From: Kevin Hilman [ Upstream commit 9c9b1bc25291e275b04f758f2549c81e092954f5 ] Add skeleton pdata-quirks for davinci. Signed-off-by: Kevin Hilman [nsekhar@ti.com: move changes to build pdata-quirks.c and call to pdata_quirks_init() to this patch] Signed-off-by: Sekhar Nori Signed-off-by: Sasha Levin --- arch/arm/mach-davinci/Makefile | 2 +- arch/arm/mach-davinci/da8xx-dt.c | 1 + arch/arm/mach-davinci/include/mach/common.h | 2 ++ arch/arm/mach-davinci/pdata-quirks.c | 39 +++++++++++++++++++++++++= ++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 arch/arm/mach-davinci/pdata-quirks.c diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefil= e index da4c336..90d2e6e 100644 --- a/arch/arm/mach-davinci/Makefile +++ b/arch/arm/mach-davinci/Makefile @@ -21,7 +21,7 @@ obj-$(CONFIG_AINTC) +=3D irq.o obj-$(CONFIG_CP_INTC) +=3D cp_intc.o =20 # Board specific -obj-$(CONFIG_MACH_DA8XX_DT) +=3D da8xx-dt.o +obj-$(CONFIG_MACH_DA8XX_DT) +=3D da8xx-dt.o pdata-quirks.o obj-$(CONFIG_MACH_DAVINCI_EVM) +=3D board-dm644x-evm.o obj-$(CONFIG_MACH_SFFSDR) +=3D board-sffsdr.o obj-$(CONFIG_MACH_NEUROS_OSD2) +=3D board-neuros-osd2.o diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx= -dt.c index aed44dc..1b6a88a 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c @@ -47,6 +47,7 @@ static void __init da850_init_machine(void) { of_platform_default_populate(NULL, da850_auxdata_lookup, NULL); davinci_pm_init(); + pdata_quirks_init(); } =20 static const char *const da850_boards_compat[] __initconst =3D { diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-da= vinci/include/mach/common.h index 0b3c169..037aa66 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h @@ -102,6 +102,8 @@ int davinci_pm_init(void); static inline int davinci_pm_init(void) { return 0; } #endif =20 +void __init pdata_quirks_init(void); + #define SRAM_SIZE SZ_128K =20 #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/p= data-quirks.c new file mode 100644 index 0000000..5b57da4 --- /dev/null +++ b/arch/arm/mach-davinci/pdata-quirks.c @@ -0,0 +1,39 @@ +/* + * Legacy platform_data quirks + * + * Copyright (C) 2016 BayLibre, Inc + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include + +#include + +struct pdata_init { + const char *compatible; + void (*fn)(void); +}; + +static void pdata_quirks_check(struct pdata_init *quirks) +{ + while (quirks->compatible) { + if (of_machine_is_compatible(quirks->compatible)) { + if (quirks->fn) + quirks->fn(); + break; + } + quirks++; + } +} + +static struct pdata_init pdata_quirks[] __initdata =3D { + { /* sentinel */ }, +}; + +void __init pdata_quirks_init(void) +{ + pdata_quirks_check(pdata_quirks); +} --=20 2.9.3