fingerprint_common.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include "fingerprint_common.h"
  2. void set_sensor_type(const int type_value, int *result)
  3. {
  4. if (type_value >= SENSOR_OOO) {
  5. if (type_value == SENSOR_OOO && *result == SENSOR_FAILED) {
  6. pr_info("maintain type check from out of order :%s\n",
  7. sensor_status[*result + 2]);
  8. } else {
  9. *result = type_value;
  10. pr_info("FP_SET_SENSOR_TYPE :%s\n", *result > 0 ?
  11. sensor_status[3] : sensor_status[*result + 2]);
  12. }
  13. } else {
  14. pr_err("FP_SET_SENSOR_TYPE invalid value %d\n", type_value);
  15. *result = SENSOR_UNKNOWN;
  16. }
  17. }
  18. void enable_fp_debug_timer(struct debug_logger *logger)
  19. {
  20. mod_timer(&logger->dbg_timer, round_jiffies_up(jiffies + DEBUG_TIMER_SEC));
  21. }
  22. void disable_fp_debug_timer(struct debug_logger *logger)
  23. {
  24. del_timer_sync(&logger->dbg_timer);
  25. cancel_work_sync(&logger->work_debug);
  26. }
  27. #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
  28. void timer_func(unsigned long ptr)
  29. #else
  30. void timer_func(struct timer_list *t)
  31. #endif
  32. {
  33. queue_work(g_logger->wq_dbg, &g_logger->work_debug);
  34. enable_fp_debug_timer(g_logger);
  35. }
  36. int set_fp_debug_timer(struct debug_logger *logger,
  37. void (*func)(struct work_struct *work))
  38. {
  39. int rc = 0;
  40. #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
  41. setup_timer(&logger->dbg_timer, timer_func, 0);
  42. #else
  43. timer_setup(&logger->dbg_timer, timer_func, 0);
  44. #endif
  45. logger->wq_dbg = create_singlethread_workqueue("fingerprint_debug_wq");
  46. if (!logger->wq_dbg) {
  47. rc = -ENOMEM;
  48. pr_err("could not create workqueue\n");
  49. return rc;
  50. }
  51. INIT_WORK(&logger->work_debug, func);
  52. return rc;
  53. }
  54. void set_delay_in_spi_transfer(struct spi_transfer *xfer, unsigned int usec)
  55. {
  56. #if LINUX_VERSION_CODE > KERNEL_VERSION(5, 10, 0)
  57. xfer->delay.unit = SPI_DELAY_UNIT_USECS;
  58. xfer->delay.value = usec;
  59. #else
  60. xfer->delay_usecs = usec;
  61. #endif
  62. }