forked from Minki/linux
Merge branches 'acpi-video', 'device-properties', 'pm-sleep' and 'pm-cpuidle'
* acpi-video: ACPI / video: Inline acpi_video_set_dmi_backlight_type * device-properties: ACPI / OF: Rename of_node() and acpi_node() to to_of_node() and to_acpi_node() * pm-sleep: PM / sleep: Increase default DPM watchdog timeout to 60 PM / hibernate: re-enable nonboot cpus on disable_nonboot_cpus() failure * pm-cpuidle: tick/idle/powerpc: Do not register idle states with CPUIDLE_FLAG_TIMER_STOP set in periodic mode
This commit is contained in:
commit
132c242d95
@ -129,9 +129,9 @@ EXPORT_SYMBOL_GPL(device_property_present);
|
||||
bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname)
|
||||
{
|
||||
if (is_of_node(fwnode))
|
||||
return of_property_read_bool(of_node(fwnode), propname);
|
||||
return of_property_read_bool(to_of_node(fwnode), propname);
|
||||
else if (is_acpi_node(fwnode))
|
||||
return !acpi_dev_prop_get(acpi_node(fwnode), propname, NULL);
|
||||
return !acpi_dev_prop_get(to_acpi_node(fwnode), propname, NULL);
|
||||
|
||||
return !!pset_prop_get(to_pset(fwnode), propname);
|
||||
}
|
||||
@ -286,10 +286,10 @@ EXPORT_SYMBOL_GPL(device_property_read_string);
|
||||
({ \
|
||||
int _ret_; \
|
||||
if (is_of_node(_fwnode_)) \
|
||||
_ret_ = OF_DEV_PROP_READ_ARRAY(of_node(_fwnode_), _propname_, \
|
||||
_ret_ = OF_DEV_PROP_READ_ARRAY(to_of_node(_fwnode_), _propname_, \
|
||||
_type_, _val_, _nval_); \
|
||||
else if (is_acpi_node(_fwnode_)) \
|
||||
_ret_ = acpi_dev_prop_read(acpi_node(_fwnode_), _propname_, \
|
||||
_ret_ = acpi_dev_prop_read(to_acpi_node(_fwnode_), _propname_, \
|
||||
_proptype_, _val_, _nval_); \
|
||||
else \
|
||||
_ret_ = pset_prop_read_array(to_pset(_fwnode_), _propname_, \
|
||||
@ -425,11 +425,11 @@ int fwnode_property_read_string_array(struct fwnode_handle *fwnode,
|
||||
{
|
||||
if (is_of_node(fwnode))
|
||||
return val ?
|
||||
of_property_read_string_array(of_node(fwnode), propname,
|
||||
val, nval) :
|
||||
of_property_count_strings(of_node(fwnode), propname);
|
||||
of_property_read_string_array(to_of_node(fwnode),
|
||||
propname, val, nval) :
|
||||
of_property_count_strings(to_of_node(fwnode), propname);
|
||||
else if (is_acpi_node(fwnode))
|
||||
return acpi_dev_prop_read(acpi_node(fwnode), propname,
|
||||
return acpi_dev_prop_read(to_acpi_node(fwnode), propname,
|
||||
DEV_PROP_STRING, val, nval);
|
||||
|
||||
return pset_prop_read_array(to_pset(fwnode), propname,
|
||||
@ -456,9 +456,9 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
|
||||
const char *propname, const char **val)
|
||||
{
|
||||
if (is_of_node(fwnode))
|
||||
return of_property_read_string(of_node(fwnode), propname, val);
|
||||
return of_property_read_string(to_of_node(fwnode), propname, val);
|
||||
else if (is_acpi_node(fwnode))
|
||||
return acpi_dev_prop_read(acpi_node(fwnode), propname,
|
||||
return acpi_dev_prop_read(to_acpi_node(fwnode), propname,
|
||||
DEV_PROP_STRING, val, 1);
|
||||
|
||||
return -ENXIO;
|
||||
@ -476,13 +476,13 @@ struct fwnode_handle *device_get_next_child_node(struct device *dev,
|
||||
if (IS_ENABLED(CONFIG_OF) && dev->of_node) {
|
||||
struct device_node *node;
|
||||
|
||||
node = of_get_next_available_child(dev->of_node, of_node(child));
|
||||
node = of_get_next_available_child(dev->of_node, to_of_node(child));
|
||||
if (node)
|
||||
return &node->fwnode;
|
||||
} else if (IS_ENABLED(CONFIG_ACPI)) {
|
||||
struct acpi_device *node;
|
||||
|
||||
node = acpi_get_next_child(dev, acpi_node(child));
|
||||
node = acpi_get_next_child(dev, to_acpi_node(child));
|
||||
if (node)
|
||||
return acpi_fwnode_handle(node);
|
||||
}
|
||||
@ -501,7 +501,7 @@ EXPORT_SYMBOL_GPL(device_get_next_child_node);
|
||||
void fwnode_handle_put(struct fwnode_handle *fwnode)
|
||||
{
|
||||
if (is_of_node(fwnode))
|
||||
of_node_put(of_node(fwnode));
|
||||
of_node_put(to_of_node(fwnode));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fwnode_handle_put);
|
||||
|
||||
|
@ -67,6 +67,8 @@ static int nap_loop(struct cpuidle_device *dev,
|
||||
return index;
|
||||
}
|
||||
|
||||
/* Register for fastsleep only in oneshot mode of broadcast */
|
||||
#ifdef CONFIG_TICK_ONESHOT
|
||||
static int fastsleep_loop(struct cpuidle_device *dev,
|
||||
struct cpuidle_driver *drv,
|
||||
int index)
|
||||
@ -90,7 +92,7 @@ static int fastsleep_loop(struct cpuidle_device *dev,
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
* States for dedicated partition case.
|
||||
*/
|
||||
@ -216,7 +218,14 @@ static int powernv_add_idle_states(void)
|
||||
powernv_states[nr_idle_states].flags = 0;
|
||||
powernv_states[nr_idle_states].target_residency = 100;
|
||||
powernv_states[nr_idle_states].enter = &nap_loop;
|
||||
} else if (flags[i] & OPAL_PM_SLEEP_ENABLED ||
|
||||
}
|
||||
|
||||
/*
|
||||
* All cpuidle states with CPUIDLE_FLAG_TIMER_STOP set must come
|
||||
* within this config dependency check.
|
||||
*/
|
||||
#ifdef CONFIG_TICK_ONESHOT
|
||||
if (flags[i] & OPAL_PM_SLEEP_ENABLED ||
|
||||
flags[i] & OPAL_PM_SLEEP_ENABLED_ER1) {
|
||||
/* Add FASTSLEEP state */
|
||||
strcpy(powernv_states[nr_idle_states].name, "FastSleep");
|
||||
@ -225,7 +234,7 @@ static int powernv_add_idle_states(void)
|
||||
powernv_states[nr_idle_states].target_residency = 300000;
|
||||
powernv_states[nr_idle_states].enter = &fastsleep_loop;
|
||||
}
|
||||
|
||||
#endif
|
||||
powernv_states[nr_idle_states].exit_latency =
|
||||
((unsigned int)latency_ns[i]) / 1000;
|
||||
|
||||
|
@ -2052,14 +2052,14 @@ struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode,
|
||||
if (is_of_node(fwnode)) {
|
||||
enum of_gpio_flags flags;
|
||||
|
||||
desc = of_get_named_gpiod_flags(of_node(fwnode), propname, 0,
|
||||
desc = of_get_named_gpiod_flags(to_of_node(fwnode), propname, 0,
|
||||
&flags);
|
||||
if (!IS_ERR(desc))
|
||||
active_low = flags & OF_GPIO_ACTIVE_LOW;
|
||||
} else if (is_acpi_node(fwnode)) {
|
||||
struct acpi_gpio_info info;
|
||||
|
||||
desc = acpi_get_gpiod_by_index(acpi_node(fwnode), propname, 0,
|
||||
desc = acpi_get_gpiod_by_index(to_acpi_node(fwnode), propname, 0,
|
||||
&info);
|
||||
if (!IS_ERR(desc))
|
||||
active_low = info.active_low;
|
||||
|
@ -191,7 +191,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
|
||||
goto err;
|
||||
}
|
||||
|
||||
np = of_node(child);
|
||||
np = to_of_node(child);
|
||||
|
||||
if (fwnode_property_present(child, "label")) {
|
||||
fwnode_property_read_string(child, "label", &led.name);
|
||||
|
@ -420,7 +420,7 @@ static inline bool is_acpi_node(struct fwnode_handle *fwnode)
|
||||
return fwnode && fwnode->type == FWNODE_ACPI;
|
||||
}
|
||||
|
||||
static inline struct acpi_device *acpi_node(struct fwnode_handle *fwnode)
|
||||
static inline struct acpi_device *to_acpi_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return is_acpi_node(fwnode) ?
|
||||
container_of(fwnode, struct acpi_device, fwnode) : NULL;
|
||||
|
@ -43,7 +43,7 @@ static inline enum acpi_backlight_type acpi_video_get_backlight_type(void)
|
||||
{
|
||||
return acpi_backlight_vendor;
|
||||
}
|
||||
static void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type)
|
||||
static inline void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
@ -53,7 +53,7 @@ static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
|
||||
return adev ? adev->handle : NULL;
|
||||
}
|
||||
|
||||
#define ACPI_COMPANION(dev) acpi_node((dev)->fwnode)
|
||||
#define ACPI_COMPANION(dev) to_acpi_node((dev)->fwnode)
|
||||
#define ACPI_COMPANION_SET(dev, adev) set_primary_fwnode(dev, (adev) ? \
|
||||
acpi_fwnode_handle(adev) : NULL)
|
||||
#define ACPI_HANDLE(dev) acpi_device_handle(ACPI_COMPANION(dev))
|
||||
@ -449,7 +449,7 @@ static inline bool is_acpi_node(struct fwnode_handle *fwnode)
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline struct acpi_device *acpi_node(struct fwnode_handle *fwnode)
|
||||
static inline struct acpi_device *to_acpi_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ static inline bool is_of_node(struct fwnode_handle *fwnode)
|
||||
return fwnode && fwnode->type == FWNODE_OF;
|
||||
}
|
||||
|
||||
static inline struct device_node *of_node(struct fwnode_handle *fwnode)
|
||||
static inline struct device_node *to_of_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return fwnode ? container_of(fwnode, struct device_node, fwnode) : NULL;
|
||||
}
|
||||
@ -387,7 +387,7 @@ static inline bool is_of_node(struct fwnode_handle *fwnode)
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline struct device_node *of_node(struct fwnode_handle *fwnode)
|
||||
static inline struct device_node *to_of_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ config DPM_WATCHDOG
|
||||
config DPM_WATCHDOG_TIMEOUT
|
||||
int "Watchdog timeout in seconds"
|
||||
range 1 120
|
||||
default 12
|
||||
default 60
|
||||
depends on DPM_WATCHDOG
|
||||
|
||||
config PM_TRACE
|
||||
|
@ -552,7 +552,7 @@ int hibernation_platform_enter(void)
|
||||
|
||||
error = disable_nonboot_cpus();
|
||||
if (error)
|
||||
goto Platform_finish;
|
||||
goto Enable_cpus;
|
||||
|
||||
local_irq_disable();
|
||||
syscore_suspend();
|
||||
@ -568,6 +568,8 @@ int hibernation_platform_enter(void)
|
||||
Power_up:
|
||||
syscore_resume();
|
||||
local_irq_enable();
|
||||
|
||||
Enable_cpus:
|
||||
enable_nonboot_cpus();
|
||||
|
||||
Platform_finish:
|
||||
|
Loading…
Reference in New Issue
Block a user