blob: da0c8d46035d0ac3cada5a9092b6511e42d1245f [file] [log] [blame]
/*
* drivers/misc/samsung/scsc/mxman_sysevent.c
*
* Copyright (c) 2020 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#if IS_ENABLED(CONFIG_EXYNOS_SYSTEM_EVENT)
#include <linux/platform_device.h>
#include <soc/samsung/sysevent_notif.h>
#include "mxman_sysevent.h"
int wlbt_sysevent_powerup(const struct sysevent_desc *sysevent)
{
/*
* This function is called in syseventtem_get / restart
* TODO: Subsystem Power Up related
*/
pr_info("%s: call-back function\n", __func__);
return 0;
}
int wlbt_sysevent_shutdown(const struct sysevent_desc *sysevent, bool force_stop)
{
/*
* This function is called in syseventtem_put / restart
* TODO: Subsystem Shutdown related
*/
pr_info("%s: call-back function - force_stop:%d\n", __func__, force_stop);
return 0;
}
int wlbt_sysevent_ramdump(int enable, const struct sysevent_desc *sysevent)
{
/*
* This function is called in syseventtem_put / restart
* TODO: Ramdump related
*/
pr_info("%s: call-back function - enable(%d)\n", __func__, enable);
return 0;
}
void wlbt_sysevent_crash_shutdown(const struct sysevent_desc *sysevent)
{
/*
* This function is called in panic handler
* TODO: Subsystem Crash Shutdown related
*/
pr_info("%s: call-back function\n", __func__);
}
int wlbt_sysevent_notifier_cb(struct notifier_block *nb,
unsigned long code, void *nb_data)
{
struct notif_data *notifdata = NULL;
notifdata = (struct notif_data *) nb_data;
switch (code) {
case SYSTEM_EVENT_BEFORE_SHUTDOWN:
pr_info("%s: %s: %s\n", __func__, notifdata->pdev->name,
__stringify(SYSTEM_EVENT_BEFORE_SHUTDOWN));
break;
case SYSTEM_EVENT_AFTER_SHUTDOWN:
pr_info("%s: %s: %s\n", __func__, notifdata->pdev->name,
__stringify(SYSTEM_EVENT_AFTER_SHUTDOWN));
break;
case SYSTEM_EVENT_RAMDUMP_NOTIFICATION:
pr_info("%s: %s: %s\n", __func__, notifdata->pdev->name,
__stringify(SYSTEM_EVENT_RAMDUMP_NOTIFICATION));
break;
case SYSTEM_EVENT_BEFORE_POWERUP:
if (nb_data) {
notifdata = (struct notif_data *) nb_data;
pr_info("%s: %s: %s, crash_status:%d, enable_ramdump:%d\n",
__func__, notifdata->pdev->name,
__stringify(SYSTEM_EVENT_BEFORE_POWERUP),
notifdata->crashed, notifdata->enable_ramdump);
} else {
pr_info("%s: %s: %s\n", __func__,
notifdata->pdev->name,
__stringify(SYSTEM_EVENT_BEFORE_POWERUP));
}
break;
case SYSTEM_EVENT_AFTER_POWERUP:
pr_info("%s: %s: %s\n", __func__, notifdata->pdev->name,
__stringify(SYSTEM_EVENT_AFTER_POWERUP));
break;
default:
break;
}
return NOTIFY_DONE;
}
#endif