Advertisement
arter97

Untitled

Nov 15th, 2016
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.39 KB | None | 0 0
  1. git diff da7fa2bb9e8bc763f0c7083d072f5c4e69c4b472..2b16ef924f6897e8a88b674b2d8fa5ce96444a25 drivers/input/misc/tri_state_key.c
  2. diff --git a/drivers/input/misc/tri_state_key.c b/drivers/input/misc/tri_state_key.c
  3. old mode 100755
  4. new mode 100644
  5. index fae2f49f..560f25d
  6. --- a/drivers/input/misc/tri_state_key.c
  7. +++ b/drivers/input/misc/tri_state_key.c
  8. @@ -79,29 +79,39 @@ static int set_gpio_by_pinctrl(void)
  9.  #endif
  10.  static void switch_dev_work(struct work_struct *work)
  11.  {
  12. +
  13. +       int key1,key2,key3;
  14.         //pr_err("%s  gpio_get_value(%d)=%d\n",__func__,switch_data->key1_gpio,gpio_get_value(switch_data->key1_gpio));
  15.         //pr_err("%s  gpio_get_value(%d)=%d\n",__func__,switch_data->key2_gpio,gpio_get_value(switch_data->key2_gpio));
  16.         //pr_err("%s  gpio_get_value(%d)=%d\n",__func__,switch_data->key3_gpio,gpio_get_value(switch_data->key3_gpio));
  17.  
  18.        mutex_lock(&sem);
  19. +       key1=gpio_get_value(switch_data->key1_gpio);
  20. +       key2=gpio_get_value(switch_data->key2_gpio);
  21. +       key3=gpio_get_value(switch_data->key3_gpio);
  22.  
  23. +       if(((key1==0)&&(key2==1)&&(key3==1))||((key1==1)&&(key2==0)&&(key3==1))||((key1==1)&&(key2==1)&&(key3==0)))
  24. +       {
  25.                 //gpio_set_value(switch_data->key3_gpio,0);
  26.                 //pr_err("%s  gpio_22get_value(%d)=%d\n",__func__,switch_data->key3_gpio,gpio_get_value(switch_data->key3_gpio));
  27. -               if(!gpio_get_value(switch_data->key2_gpio))
  28. +               if(!key2)
  29.                 {
  30.                     switch_set_state(&switch_data->sdev, MODE_DO_NOT_DISTURB);
  31.                 }
  32.  
  33. -               if(!gpio_get_value(switch_data->key3_gpio))
  34. +               if(!key3)
  35.                 {
  36.                     switch_set_state(&switch_data->sdev, MODE_NORMAL);
  37. +
  38.                 }
  39.  
  40. -               if(!gpio_get_value(switch_data->key1_gpio))
  41. +               if(!key1)
  42.                 {
  43.                     switch_set_state(&switch_data->sdev, MODE_MUTE);
  44.                 }
  45. +
  46.          printk(KERN_ERR "%s ,tristatekey set to state(%d) \n",__func__,switch_data->sdev.state);
  47. +       }
  48.         mutex_unlock(&sem);
  49.  }
  50.  irqreturn_t switch_dev_interrupt(int irq, void *_dev)
  51. @@ -426,8 +436,8 @@ static int tristate_dev_probe(struct platform_device *pdev)
  52.              }
  53.  
  54.         }
  55. -      
  56. -      
  57. +
  58. +
  59.          INIT_WORK(&switch_data->work, switch_dev_work);
  60.  
  61.          init_timer(&switch_data->s_timer);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement