Auto determine failsafe duty according sensor fail

- Auto determine the failsafe duty when sensor failed

example:
If PID config as follows, when "Die CPU0" sensor failed, fans in zone 0
will be set to 80%, when "DIMM0" sensor failed, since there is no
"FailSafePercent" setting in config, so set to zone's FailSafePercent
100%.
```
{
    "Class": "temp",
    ...
    ...
    ...
    "Inputs": [
        "Die CPU0"
    ],
    "Name": "CPU0 PID",
    "FailSafePercent": 80.0,
    ...
    ...
    ...
    "Type": "Pid",
    "Zones": [
        "Zone 0"
    ]
},
{
    "Class": "temp",
    ...
    ...
    ...
    "Inputs": [
        "DIMM[0-9]",
        "DIMM1[0-5]"
    ],
    "Name": "DIMM CPU0 PID",
    ...
    ...
    ...
    "Type": "Pid",
    "Zones": [
        "Zone 0"
    ]
},
{
    "FailSafePercent": 100.0,
    "MinThermalOutput": 0.0,
    "Name": "Zone 0",
    "Type": "Pid.Zone",
    "ZoneIndex": 0
},
```

Tested:
If zone1 and zone2 into failsafe duty 40% =>
fan0_pwm         | 1Dh | ok  | 29.0 | 24.70 unspecifi
fan1_pwm         | 1Eh | ok  | 29.1 | 24.70 unspecifi
fan2_pwm         | 1Fh | ok  | 29.2 | 39.98 unspecifi
fan3_pwm         | 20h | ok  | 29.3 | 39.98 unspecifi
fan4_pwm         | 21h | ok  | 29.4 | 39.98 unspecifi
fan5_pwm         | 22h | ok  | 29.5 | 39.98 unspecifi

cpu0_nbm         | 48h | ok  |  7.79 | 36 degrees C

Let cpu0_nbm(zone0 and zone2) into failsafe which set failsafe duty as
100% =>
fan0_pwm         | 1Dh | ok  | 29.0 | 99.96 unspecifi
fan1_pwm         | 1Eh | ok  | 29.1 | 99.96 unspecifi
fan2_pwm         | 1Fh | ok  | 29.2 | 39.98 unspecifi
fan3_pwm         | 20h | ok  | 29.3 | 39.98 unspecifi
fan4_pwm         | 21h | ok  | 29.4 | 99.96 unspecifi
fan5_pwm         | 22h | ok  | 29.5 | 99.96 unspecifi

cpu0_nbm         | 48h | ns  |  7.79 | No Reading

Signed-off-by: Harvey Wu <Harvey.Wu@quantatw.com>
Change-Id: Iaf5ffd1853e5cd110a1ef66c7a1fd073bc894dda
diff --git a/pid/builder.cpp b/pid/builder.cpp
index d133662..8a6bd39 100644
--- a/pid/builder.cpp
+++ b/pid/builder.cpp
@@ -102,7 +102,8 @@
                 auto pid = FanController::createFanPid(
                     zone.get(), name, splitNames(inputs), info.pidInfo);
                 zone->addFanPID(std::move(pid));
-                zone->addPidFailSafePercent(name, info.failSafePercent);
+                zone->addPidFailSafePercent(splitNames(inputs),
+                                            info.failSafePercent);
             }
             else if (isThermalType(info.type))
             {
@@ -120,7 +121,8 @@
                 zone->addPidControlProcess(
                     name, info.type, info.setpoint, modeControlBus,
                     getPidControlPath(zoneId, name), deferSignals);
-                zone->addPidFailSafePercent(name, info.failSafePercent);
+                zone->addPidFailSafePercent(splitNames(inputs),
+                                            info.failSafePercent);
             }
             else if (info.type == "stepwise")
             {
@@ -135,7 +137,8 @@
                 zone->addPidControlProcess(
                     name, info.type, info.setpoint, modeControlBus,
                     getPidControlPath(zoneId, name), deferSignals);
-                zone->addPidFailSafePercent(name, info.failSafePercent);
+                zone->addPidFailSafePercent(splitNames(inputs),
+                                            info.failSafePercent);
             }
 
             std::cerr << "inputs: ";