MRW: Use a distro override to enable providers

Now that obmc-mrw is no longer a machine feature we can organize
a bit and enable MRW providers off to the side with a disto override,
de-cluttering wherever non-MRW defaults are specified.

No functional impact but slightly easier for humans to parse.

Change-Id: If2731206b94e16e0b0132a385756eb11178118f2
Tested: Built a Witherspoon image and validated manifest
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openbmc-machines/meta-openpower/conf/distro/include/openpower-mrw.inc b/meta-openbmc-machines/meta-openpower/conf/distro/include/openpower-mrw.inc
index c8dcdaa..87f0fbf 100644
--- a/meta-openbmc-machines/meta-openpower/conf/distro/include/openpower-mrw.inc
+++ b/meta-openbmc-machines/meta-openpower/conf/distro/include/openpower-mrw.inc
@@ -1 +1,5 @@
 require conf/distro/include/phosphor-mrw.inc
+
+PREFERRED_PROVIDER_virtual/openpower-fru-inventory_df-mrw ?= "openpower-fru-inventory-mrw-native"
+PREFERRED_PROVIDER_virtual/openpower-fru-properties_df-mrw ?= "openpower-fru-properties-mrw-native"
+PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native_df-mrw ?= "openpower-occ-control-config-mrw-native"
diff --git a/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc b/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
index b84be87..a67b7f5 100644
--- a/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
+++ b/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
@@ -23,15 +23,12 @@
 PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_workbook}"
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-hostfw-config ?= "hostboot-inventory-config-native"
 PREFERRED_PROVIDER_virtual/openpower-fru-vpd-layout ?= "openpower-fru-vpd-layout-native"
-PREFERRED_PROVIDER_virtual/openpower-fru-inventory ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'openpower-fru-inventory-mrw-native', 'openpower-fru-inventory-example-native')}"
-PREFERRED_PROVIDER_virtual/openpower-fru-properties ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'openpower-fru-properties-mrw-native', 'openpower-fru-properties-example-native')}"
+PREFERRED_PROVIDER_virtual/openpower-fru-inventory ?= "openpower-fru-inventory-example-native"
+PREFERRED_PROVIDER_virtual/openpower-fru-properties ?= "openpower-fru-properties-example-native"
 
 # The openpower-occ-control application is data-driven and requires an input
 # yaml of OCC instance numbers to sensor IDs.
 # This virtual is a native recipe that provides that mapping by installing
 # configuration files in the format and native sysroot location expected by
 # the openpower-occ-control build process in the native sysroot.
-PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'openpower-occ-control-config-mrw-native', 'openpower-occ-control-config-example-native')}"
+PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native ?= "openpower-occ-control-config-example-native"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf
index 0085a14..5d2f25f 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf
@@ -24,12 +24,12 @@
         "
 
 # Inhibit phosphor-hwmon-config-mrw
-VIRTUAL-RUNTIME_phosphor-hwmon-config = ""
+VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = ""
 
 # Inhibit phosphor-fan-presence-mrw-native
-PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config = \
+PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw = \
     "phosphor-fan-presence-config-native"
 
 # Inhibit phosphor-fan-control-fan-config-mrw-native
-PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config = \
+PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw = \
     "phosphor-fan-control-fan-config-native"
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index 53588af..1cb2a35 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -119,8 +119,7 @@
 #
 # The phosphor-hwmon package can have its configuration generated
 # automatically if the MRW feature is enabled.
-VIRTUAL-RUNTIME_phosphor-hwmon-config ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-hwmon-config-mrw')}"
+VIRTUAL-RUNTIME_phosphor-hwmon-config ?= ""
 
 # obmc-settings-mgmt
 #
@@ -151,13 +150,13 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-ipmi-fru build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-ipmi-fru-inventory-mrw-native', 'phosphor-ipmi-fru-inventory-example-native')}"
+    "phosphor-ipmi-fru-inventory-example-native"
 
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-properties ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-ipmi-fru-properties-mrw-native', 'phosphor-ipmi-fru-properties-native')}"
+    "phosphor-ipmi-fru-properties-native"
 
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-ipmi-fru-read-inventory-mrw-native', 'phosphor-ipmi-fru-read-inventory-example-native')}"
+    "phosphor-ipmi-fru-read-inventory-example-native"
 
 # Configuration overrides for phosphor-host-ipmid.
 #
@@ -169,7 +168,7 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-host-ipmid build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-ipmi-sensor-inventory-mrw-native', 'phosphor-ipmi-sensor-inventory-native')}"
+    "phosphor-ipmi-sensor-inventory-native"
 
 # The phosphor-host-ipmid application is data-driven and requires an input
 # mapping of IPMI channel to DBus objects interfaces and properties.
@@ -184,7 +183,7 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-host-ipmid build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-ipmi-inventory-sel ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-ipmi-inventory-sel-mrw-native', 'phosphor-ipmi-inventory-sel-native')}"
+    "phosphor-ipmi-inventory-sel-native"
 
 # Various other overrides.
 
@@ -194,7 +193,7 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-led-manager build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-led-manager-config-mrw-native', 'phosphor-led-manager-config-example-native')}"
+    "phosphor-led-manager-config-example-native"
 
 # The phosphor-logging application has a data driven plugin that adds FRU
 # callout information to error logs, when applications generating error logs
@@ -204,7 +203,7 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-logging build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-logging-callouts ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-logging-callouts-mrw-native', 'phosphor-logging-callouts-example-native')}"
+    "phosphor-logging-callouts-example-native"
 
 # The phosphor-fan-presence application is data driven and requires an
 # input YAML that maps fans to their tach sensors.
@@ -212,7 +211,7 @@
 # configuration files in the format and native sysroot location expected by
 # the phosphor-fan-presence build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-fan-presence-mrw-native', 'phosphor-fan-presence-config-native')}"
+    "phosphor-fan-presence-config-native"
 
 # The phosphor-fan-control application is data driven and requires a YAML
 # file to define the fans in the system.
@@ -220,7 +219,7 @@
 # the YAML file in the format and native sysroot location expected by
 # the phosphor-fan-control build process in the native sysroot.
 PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config ?= \
-    "${@df_enabled(d, 'obmc-mrw', 'phosphor-fan-control-fan-config-mrw-native', 'phosphor-fan-control-fan-config-native')}"
+    "phosphor-fan-control-fan-config-native"
 
 # The phosphor-gpio-monitor application is data-driven and requires an input.
 # The application then watches the passed in input event entry for the
diff --git a/meta-phosphor/conf/distro/include/phosphor-mrw.inc b/meta-phosphor/conf/distro/include/phosphor-mrw.inc
index 61c959d..9b2cb45 100644
--- a/meta-phosphor/conf/distro/include/phosphor-mrw.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-mrw.inc
@@ -1,3 +1,17 @@
 DISTRO_FEATURES += "obmc-mrw"
 DISTRO_FEATURES_FILTER_NATIVE += "obmc-mrw"
 DISTRO_FEATURES_FILTER_NATIVESDK += "obmc-mrw"
+
+DISTROOVERRIDES .= ":df-mrw"
+
+VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw ?= "phosphor-hwmon-config-mrw"
+
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory_df-mrw ?= "phosphor-ipmi-fru-inventory-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-properties_df-mrw ?= "phosphor-ipmi-fru-properties-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory_df-mrw ?= "phosphor-ipmi-fru-read-inventory-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory_df-mrw ?= "phosphor-ipmi-sensor-inventory-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-inventory-sel_df-mrw ?= "phosphor-ipmi-inventory-sel-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native_df-mrw ?= "phosphor-led-manager-config-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-logging-callouts_df-mrw ?= "phosphor-logging-callouts-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw ?= "phosphor-fan-presence-mrw-native"
+PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw ?= "phosphor-fan-control-fan-config-mrw-native"