diff mbox

[3/4] powerpc/powernv: remove FW_FEATURE_OPAL and just use FW_FEATURE_OPALv3

Message ID 1448599526-31073-4-git-send-email-stewart@linux.vnet.ibm.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Stewart Smith Nov. 27, 2015, 4:45 a.m. UTC
Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is
just OPALv3, with nobody ever expecting anything on pre-OPALv3 to
be cared about or supported by mainline kernels.

So, let's remove FW_FEATURE_OPAL and instead use FW_FEATURE_OPALv3
exclusively.

Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/firmware.h    | 3 +--
 arch/powerpc/mm/numa.c                 | 4 ++--
 arch/powerpc/platforms/powernv/opal.c  | 3 +--
 arch/powerpc/platforms/powernv/pci.c   | 2 +-
 arch/powerpc/platforms/powernv/setup.c | 8 +++-----
 arch/powerpc/sysdev/xics/ics-opal.c    | 2 +-
 drivers/i2c/busses/i2c-opal.c          | 2 +-
 drivers/rtc/rtc-opal.c                 | 2 +-
 drivers/tty/hvc/hvc_opal.c             | 2 +-
 9 files changed, 12 insertions(+), 16 deletions(-)

Comments

Andrew Donnellan Nov. 27, 2015, 5:45 a.m. UTC | #1
On 27/11/15 15:45, Stewart Smith wrote:
> Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is
> just OPALv3, with nobody ever expecting anything on pre-OPALv3 to
> be cared about or supported by mainline kernels.
>
> So, let's remove FW_FEATURE_OPAL and instead use FW_FEATURE_OPALv3
> exclusively.
>
> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>

I haven't checked for any outstanding references you've missed here, but 
I'm going to assume it compiles...

Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Michael Ellerman Dec. 1, 2015, 3:56 a.m. UTC | #2
On Fri, 2015-11-27 at 15:45 +1100, Stewart Smith wrote:

> Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is
> just OPALv3, with nobody ever expecting anything on pre-OPALv3 to
> be cared about or supported by mainline kernels.
> 
> So, let's remove FW_FEATURE_OPAL and instead use FW_FEATURE_OPALv3
> exclusively.

It would be less churn if we did the reverse, ie. removed v3 and just used
FW_FEATURE_OPAL. It would also read better as v3 is the one and only version we
care about, so having it called out everywhere is superfluous.

Or is there a good reason I missed?

cheers
Stewart Smith Dec. 3, 2015, 6:06 a.m. UTC | #3
Michael Ellerman <mpe@ellerman.id.au> writes:

> On Fri, 2015-11-27 at 15:45 +1100, Stewart Smith wrote:
>
>> Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is
>> just OPALv3, with nobody ever expecting anything on pre-OPALv3 to
>> be cared about or supported by mainline kernels.
>> 
>> So, let's remove FW_FEATURE_OPAL and instead use FW_FEATURE_OPALv3
>> exclusively.
>
> It would be less churn if we did the reverse, ie. removed v3 and just used
> FW_FEATURE_OPAL. It would also read better as v3 is the one and only version we
> care about, so having it called out everywhere is superfluous.
>
> Or is there a good reason I missed?

excessive caution?

I'll send a V2 patchset doing the reverse, leaving FW_FEATURE_OPAL.
Michael Ellerman Dec. 3, 2015, 8:55 a.m. UTC | #4
On 3 December 2015 4:36:03 pm ACDT, Stewart Smith <stewart@linux.vnet.ibm.com> wrote:
>Michael Ellerman <mpe@ellerman.id.au> writes:
>
>> On Fri, 2015-11-27 at 15:45 +1100, Stewart Smith wrote:
>>
>>> Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is
>>> just OPALv3, with nobody ever expecting anything on pre-OPALv3 to
>>> be cared about or supported by mainline kernels.
>>> 
>>> So, let's remove FW_FEATURE_OPAL and instead use FW_FEATURE_OPALv3
>>> exclusively.
>>
>> It would be less churn if we did the reverse, ie. removed v3 and just
>used
>> FW_FEATURE_OPAL. It would also read better as v3 is the one and only
>version we
>> care about, so having it called out everywhere is superfluous.
>>
>> Or is there a good reason I missed?
>
>excessive caution?

Yeah fair enough.

>I'll send a V2 patchset doing the reverse, leaving FW_FEATURE_OPAL.

Thanks.

cheers
diff mbox

Patch

diff --git a/arch/powerpc/include/asm/firmware.h b/arch/powerpc/include/asm/firmware.h
index 50af5e5ea86f..3901e2ee3f16 100644
--- a/arch/powerpc/include/asm/firmware.h
+++ b/arch/powerpc/include/asm/firmware.h
@@ -46,7 +46,6 @@ 
 #define FW_FEATURE_CMO		ASM_CONST(0x0000000002000000)
 #define FW_FEATURE_VPHN		ASM_CONST(0x0000000004000000)
 #define FW_FEATURE_XCMO		ASM_CONST(0x0000000008000000)
-#define FW_FEATURE_OPAL		ASM_CONST(0x0000000010000000)
 #define FW_FEATURE_SET_MODE	ASM_CONST(0x0000000040000000)
 #define FW_FEATURE_BEST_ENERGY	ASM_CONST(0x0000000080000000)
 #define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000)
@@ -69,7 +68,7 @@  enum {
 		FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
 		FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN,
 	FW_FEATURE_PSERIES_ALWAYS = 0,
-	FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_OPALv3,
+	FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPALv3,
 	FW_FEATURE_POWERNV_ALWAYS = 0,
 	FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
 	FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 669a15e7fa76..06da32c6a007 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -297,7 +297,7 @@  static int __init find_min_common_depth(void)
 	int depth;
 	struct device_node *root;
 
-	if (firmware_has_feature(FW_FEATURE_OPAL))
+	if (firmware_has_feature(FW_FEATURE_OPALv3))
 		root = of_find_node_by_path("/ibm,opal");
 	else
 		root = of_find_node_by_path("/rtas");
@@ -327,7 +327,7 @@  static int __init find_min_common_depth(void)
 
 	distance_ref_points_depth /= sizeof(int);
 
-	if (firmware_has_feature(FW_FEATURE_OPAL) ||
+	if (firmware_has_feature(FW_FEATURE_OPALv3) ||
 	    firmware_has_feature(FW_FEATURE_TYPE1_AFFINITY)) {
 		dbg("Using form 1 affinity\n");
 		form1_affinity = 1;
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 5ce51d9b4ca6..bcb6581ec75c 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -98,7 +98,6 @@  int __init early_init_dt_scan_opal(unsigned long node,
 	pr_debug("OPAL Entry = 0x%llx (sizep=%p runtimesz=%d)\n",
 		 opal.size, sizep, runtimesz);
 
-	powerpc_firmware_features |= FW_FEATURE_OPAL;
 	if (of_flat_dt_is_compatible(node, "ibm,opal-v3")) {
 		powerpc_firmware_features |= FW_FEATURE_OPALv3;
 		pr_info("OPAL V3 detected !\n");
@@ -180,7 +179,7 @@  static int __init opal_register_exception_handlers(void)
 #ifdef __BIG_ENDIAN__
 	u64 glue;
 
-	if (!(powerpc_firmware_features & FW_FEATURE_OPAL))
+	if (!(powerpc_firmware_features & FW_FEATURE_OPALv3))
 		return -ENODEV;
 
 	/* Hookup some exception handlers except machine check. We use the
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index f2dd77234240..6041b795f593 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -786,7 +786,7 @@  void __init pnv_pci_init(void)
 	pci_add_flags(PCI_CAN_SKIP_ISA_ALIGN);
 
 	/* If we don't have OPAL, eg. in sim, just skip PCI probe */
-	if (!firmware_has_feature(FW_FEATURE_OPAL))
+	if (!firmware_has_feature(FW_FEATURE_OPALv3))
 		return;
 
 	/* Look for IODA IO-Hubs. We don't support mixing IODA
diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
index 80e7ed362ffa..d79b07f1b33b 100644
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -49,7 +49,7 @@  static void __init pnv_setup_arch(void)
 	pnv_pci_init();
 
 	/* Setup RTC and NVRAM callbacks */
-	if (firmware_has_feature(FW_FEATURE_OPAL))
+	if (firmware_has_feature(FW_FEATURE_OPALv3))
 		opal_nvram_init();
 
 	/* Enable NAP mode */
@@ -67,7 +67,7 @@  static void __init pnv_init_early(void)
 	opal_lpc_init();
 
 #ifdef CONFIG_HVC_OPAL
-	if (firmware_has_feature(FW_FEATURE_OPAL))
+	if (firmware_has_feature(FW_FEATURE_OPALv3))
 		hvc_opal_init_early();
 	else
 #endif
@@ -92,8 +92,6 @@  static void pnv_show_cpuinfo(struct seq_file *m)
 	seq_printf(m, "machine\t\t: PowerNV %s\n", model);
 	if (firmware_has_feature(FW_FEATURE_OPALv3))
 		seq_printf(m, "firmware\t: OPAL v3\n");
-	else if (firmware_has_feature(FW_FEATURE_OPAL))
-		seq_printf(m, "firmware\t: OPAL v1\n");
 	else
 		seq_printf(m, "firmware\t: BML\n");
 	of_node_put(root);
@@ -277,7 +275,7 @@  static int __init pnv_probe(void)
 
 	hpte_init_native();
 
-	if (firmware_has_feature(FW_FEATURE_OPAL))
+	if (firmware_has_feature(FW_FEATURE_OPALv3))
 		pnv_setup_machdep_opal();
 
 	pr_debug("PowerNV detected !\n");
diff --git a/arch/powerpc/sysdev/xics/ics-opal.c b/arch/powerpc/sysdev/xics/ics-opal.c
index 27c936c080a6..ac60ef2aff80 100644
--- a/arch/powerpc/sysdev/xics/ics-opal.c
+++ b/arch/powerpc/sysdev/xics/ics-opal.c
@@ -226,7 +226,7 @@  static long ics_opal_get_server(struct ics *ics, unsigned long vec)
 
 int __init ics_opal_init(void)
 {
-	if (!firmware_has_feature(FW_FEATURE_OPAL))
+	if (!firmware_has_feature(FW_FEATURE_OPALv3))
 		return -ENODEV;
 
 	/* We need to patch our irq chip's EOI to point to the
diff --git a/drivers/i2c/busses/i2c-opal.c b/drivers/i2c/busses/i2c-opal.c
index 75dd6d041241..39f99207400f 100644
--- a/drivers/i2c/busses/i2c-opal.c
+++ b/drivers/i2c/busses/i2c-opal.c
@@ -276,7 +276,7 @@  static struct platform_driver i2c_opal_driver = {
 
 static int __init i2c_opal_init(void)
 {
-	if (!firmware_has_feature(FW_FEATURE_OPAL))
+	if (!firmware_has_feature(FW_FEATURE_OPALv3))
 		return -ENODEV;
 
 	return platform_driver_register(&i2c_opal_driver);
diff --git a/drivers/rtc/rtc-opal.c b/drivers/rtc/rtc-opal.c
index df39ce02a99d..56da8e7ae83f 100644
--- a/drivers/rtc/rtc-opal.c
+++ b/drivers/rtc/rtc-opal.c
@@ -244,7 +244,7 @@  static struct platform_driver opal_rtc_driver = {
 
 static int __init opal_rtc_init(void)
 {
-	if (!firmware_has_feature(FW_FEATURE_OPAL))
+	if (!firmware_has_feature(FW_FEATURE_OPALv3))
 		return -ENODEV;
 
 	return platform_driver_register(&opal_rtc_driver);
diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
index 47b54c6aefd2..580369310e0d 100644
--- a/drivers/tty/hvc/hvc_opal.c
+++ b/drivers/tty/hvc/hvc_opal.c
@@ -255,7 +255,7 @@  static struct platform_driver hvc_opal_driver = {
 
 static int __init hvc_opal_init(void)
 {
-	if (!firmware_has_feature(FW_FEATURE_OPAL))
+	if (!firmware_has_feature(FW_FEATURE_OPALv3))
 		return -ENODEV;
 
 	/* Register as a vio device to receive callbacks */