mrdump_setup.c 805 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include <linux/kconfig.h>
  2. #include <linux/module.h>
  3. #include <linux/reboot.h>
  4. #include <mrdump.h>
  5. #include <asm/memory.h>
  6. #include <mach/wd_api.h>
  7. #include "mrdump_private.h"
  8. static void mrdump_hw_enable(bool enabled)
  9. {
  10. struct wd_api *wd_api = NULL;
  11. get_wd_api(&wd_api);
  12. if (wd_api)
  13. wd_api->wd_dram_reserved_mode(enabled);
  14. }
  15. static void mrdump_reboot(void)
  16. {
  17. int res;
  18. struct wd_api *wd_api = NULL;
  19. res = get_wd_api(&wd_api);
  20. if (res) {
  21. pr_alert("arch_reset, get wd api error %d\n", res);
  22. while (1)
  23. cpu_relax();
  24. } else {
  25. wd_api->wd_sw_reset(0);
  26. }
  27. }
  28. const struct mrdump_platform mrdump_v1_platform = {
  29. .hw_enable = mrdump_hw_enable,
  30. .reboot = mrdump_reboot
  31. };
  32. static int __init mrdump_init(void)
  33. {
  34. return mrdump_platform_init(&mrdump_v1_platform);
  35. }
  36. module_init(mrdump_init);