1. 25 Aug, 2016 2 commits
    • Bhaktipriya Shridhar's avatar
      Input: mc13783_ts - remove deprecated create_singletheread_workqueue · 62e51475
      Bhaktipriya Shridhar authored
      The workqueue "workqueue" has a single workitem(&priv->work) and hence
      doesn't require ordering. Also, it is not being used on a memory reclaim
      path. Hence, the singlethreaded workqueue has been replaced with the use
      of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Workitem is sync cancelled in mc13783_ts_remove() to ensure that there
      are no workitems pending when the driver is disconnected.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      62e51475
    • Bhaktipriya Shridhar's avatar
      Input: psmouse - remove deprecated create_singletheread_workqueue · 24dde60f
      Bhaktipriya Shridhar authored
      alloc_ordered_workqueue() replaces the deprecated
      create_singlethread_workqueue().
      
      There are multiple work items on the work queue viz
      &priv->dev3_register_work, &priv->recalib_wq, &psmouse->resync_work,
      which require execution ordering. Hence, an ordered workqueue has been
      used.
      
      The workqueue is not being used on a memory reclaim path.  Hence,
      WQ_MEM_RECLAIM has not been set.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      24dde60f
  2. 22 Aug, 2016 8 commits
  3. 03 Aug, 2016 5 commits
  4. 28 Jul, 2016 2 commits
  5. 27 Jul, 2016 1 commit
    • Dmitry Torokhov's avatar
      Input: i8042 - break load dependency between atkbd/psmouse and i8042 · 40974618
      Dmitry Torokhov authored
      As explained in 1407814240-4275-1-git-send-email-decui@microsoft.com we
      have a hard load dependency between i8042 and atkbd which prevents
      keyboard from working on Gen2 Hyper-V VMs.
      
      > hyperv_keyboard invokes serio_interrupt(), which needs a valid serio
      > driver like atkbd.c.  atkbd.c depends on libps2.c because it invokes
      > ps2_command().  libps2.c depends on i8042.c because it invokes
      > i8042_check_port_owner().  As a result, hyperv_keyboard actually
      > depends on i8042.c.
      >
      > For a Generation 2 Hyper-V VM (meaning no i8042 device emulated), if a
      > Linux VM (like Arch Linux) happens to configure CONFIG_SERIO_I8042=m
      > rather than =y, atkbd.ko can't load because i8042.ko can't load(due to
      > no i8042 device emulated) and finally hyperv_keyboard can't work and
      > the user can't input: https://bugs.archlinux.org/task/39820
      > (Ubuntu/RHEL/SUSE aren't affected since they use CONFIG_SERIO_I8042=y)
      
      To break the dependency we move away from using i8042_check_port_owner()
      and instead allow serio port owner specify a mutex that clients should use
      to serialize PS/2 command stream.
      Reported-by: default avatarMark Laws <mdl@60hz.org>
      Tested-by: default avatarMark Laws <mdl@60hz.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      40974618
  6. 26 Jul, 2016 2 commits
  7. 21 Jul, 2016 1 commit
  8. 19 Jul, 2016 7 commits
  9. 15 Jul, 2016 5 commits
  10. 14 Jul, 2016 7 commits