Revision 20fa2ff0441eabc8e6263b428191228d9599ea9d authored by Leo (Sunpeng) Li on 29 May 2018, 13:51:51 UTC, committed by Alex Deucher on 29 May 2018, 19:22:28 UTC
For cases where the CRTC is inactive (DPMS off), where a modeset is not required, yet the CRTC is still in the atomic state, we should not attempt to update anything on it. Previously, we were relying on the modereset_required() helper to check the above condition. However, the function returns false immediately if a modeset is not required, ignoring the CRTC's enable/active state flags. The correct way to filter is by looking at these flags instead. Fixes: e277adc5a06c "drm/amd/display: Hookup color management functions" Bugzilla: https://bugs.freedesktop.org/106194 Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 72777fe
netdev-notifier-error-inject.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include "notifier-error-inject.h"
static int priority;
module_param(priority, int, 0);
MODULE_PARM_DESC(priority, "specify netdevice notifier priority");
static struct notifier_err_inject netdev_notifier_err_inject = {
.actions = {
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_REGISTER) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_CHANGEMTU) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_CHANGENAME) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_PRE_UP) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_PRE_TYPE_CHANGE) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_POST_INIT) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_PRECHANGEMTU) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_PRECHANGEUPPER) },
{ NOTIFIER_ERR_INJECT_ACTION(NETDEV_CHANGEUPPER) },
{}
}
};
static struct dentry *dir;
static int netdev_err_inject_init(void)
{
int err;
dir = notifier_err_inject_init("netdev", notifier_err_inject_dir,
&netdev_notifier_err_inject, priority);
if (IS_ERR(dir))
return PTR_ERR(dir);
err = register_netdevice_notifier(&netdev_notifier_err_inject.nb);
if (err)
debugfs_remove_recursive(dir);
return err;
}
static void netdev_err_inject_exit(void)
{
unregister_netdevice_notifier(&netdev_notifier_err_inject.nb);
debugfs_remove_recursive(dir);
}
module_init(netdev_err_inject_init);
module_exit(netdev_err_inject_exit);
MODULE_DESCRIPTION("Netdevice notifier error injection module");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Nikolay Aleksandrov <razor@blackwall.org>");
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...