14 May, 2014

1 commit


02 Sep, 2013

1 commit

  • When picolcd is switched into bootloader mode (for FW flashing) make
    sure not to try to dereference NULL-pointers of feature-devices during
    unplug/unbind.

    This fixes following BUG:
    BUG: unable to handle kernel NULL pointer dereference at 00000298
    IP: [] picolcd_exit_framebuffer+0x1b/0x80 [hid_picolcd]
    *pde = 00000000
    Oops: 0000 [#1]
    Modules linked in: hid_picolcd syscopyarea sysfillrect sysimgblt fb_sys_fops
    CPU: 0 PID: 15 Comm: khubd Not tainted 3.11.0-rc7-00002-g50d62d4 #2
    EIP: 0060:[] EFLAGS: 00010292 CPU: 0
    EIP is at picolcd_exit_framebuffer+0x1b/0x80 [hid_picolcd]
    Call Trace:
    [] picolcd_remove+0xcb/0x120 [hid_picolcd]
    [] hid_device_remove+0x59/0xc0
    [] __device_release_driver+0x5a/0xb0
    [] device_release_driver+0x1f/0x30
    [] bus_remove_device+0x9d/0xd0
    [] device_del+0xd5/0x150
    [] hid_destroy_device+0x24/0x60
    [] usbhid_disconnect+0x1b/0x40
    ...

    Signed-off-by: Bruno Prémont
    Cc: stable@kernel.org
    Signed-off-by: Jiri Kosina

    Bruno Prémont
     

25 Feb, 2013

2 commits

  • This removes most of the dependencies between hid drivers and usbhid.

    The patch was constructed by replacing all occurences of
    usbhid_wait_io() by its hid_hw_wait() counterpart.
    Then, drivers not requiring USB_HID anymore have their USB_HID
    dependency cleaned in the Kconfig file.

    As of today, few drivers are still requiring an explicit USB layer
    dependency:
    * ntrig (a patch is on its way)
    * multitouch (one patch following and another on its way)
    * lenovo tpkbd
    * roccat
    * sony

    The last three are two deeply using direct calls to the usb subsystem
    to be able to be cleaned right now.

    Signed-off-by: Benjamin Tissoires
    Reviewed-by: Mika Westerberg
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • This allows the hid drivers to be independent from the transport layer.

    The patch was constructed by replacing all occurences of
    usbhid_submit_report() by its hid_hw_request() counterpart.
    Then, drivers not requiring USB_HID anymore have their USB_HID
    dependency cleaned in the Kconfig file.

    Finally, few drivers still depends on USB_HID. Many of them
    are requiring the io wait callback. They are found in the next patch.

    Signed-off-by: Benjamin Tissoires
    Reviewed-by: Mika Westerberg

    For the sensor-hub part:
    Tested-by: Mika Westerberg
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     

03 Oct, 2012

1 commit

  • Pull workqueue changes from Tejun Heo:
    "This is workqueue updates for v3.7-rc1. A lot of activities this
    round including considerable API and behavior cleanups.

    * delayed_work combines a timer and a work item. The handling of the
    timer part has always been a bit clunky leading to confusing
    cancelation API with weird corner-case behaviors. delayed_work is
    updated to use new IRQ safe timer and cancelation now works as
    expected.

    * Another deficiency of delayed_work was lack of the counterpart of
    mod_timer() which led to cancel+queue combinations or open-coded
    timer+work usages. mod_delayed_work[_on]() are added.

    These two delayed_work changes make delayed_work provide interface
    and behave like timer which is executed with process context.

    * A work item could be executed concurrently on multiple CPUs, which
    is rather unintuitive and made flush_work() behavior confusing and
    half-broken under certain circumstances. This problem doesn't
    exist for non-reentrant workqueues. While non-reentrancy check
    isn't free, the overhead is incurred only when a work item bounces
    across different CPUs and even in simulated pathological scenario
    the overhead isn't too high.

    All workqueues are made non-reentrant. This removes the
    distinction between flush_[delayed_]work() and
    flush_[delayed_]_work_sync(). The former is now as strong as the
    latter and the specified work item is guaranteed to have finished
    execution of any previous queueing on return.

    * In addition to the various bug fixes, Lai redid and simplified CPU
    hotplug handling significantly.

    * Joonsoo introduced system_highpri_wq and used it during CPU
    hotplug.

    There are two merge commits - one to pull in IRQ safe timer from
    tip/timers/core and the other to pull in CPU hotplug fixes from
    wq/for-3.6-fixes as Lai's hotplug restructuring depended on them."

    Fixed a number of trivial conflicts, but the more interesting conflicts
    were silent ones where the deprecated interfaces had been used by new
    code in the merge window, and thus didn't cause any real data conflicts.

    Tejun pointed out a few of them, I fixed a couple more.

    * 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (46 commits)
    workqueue: remove spurious WARN_ON_ONCE(in_irq()) from try_to_grab_pending()
    workqueue: use cwq_set_max_active() helper for workqueue_set_max_active()
    workqueue: introduce cwq_set_max_active() helper for thaw_workqueues()
    workqueue: remove @delayed from cwq_dec_nr_in_flight()
    workqueue: fix possible stall on try_to_grab_pending() of a delayed work item
    workqueue: use hotcpu_notifier() for workqueue_cpu_down_callback()
    workqueue: use __cpuinit instead of __devinit for cpu callbacks
    workqueue: rename manager_mutex to assoc_mutex
    workqueue: WORKER_REBIND is no longer necessary for idle rebinding
    workqueue: WORKER_REBIND is no longer necessary for busy rebinding
    workqueue: reimplement idle worker rebinding
    workqueue: deprecate __cancel_delayed_work()
    workqueue: reimplement cancel_delayed_work() using try_to_grab_pending()
    workqueue: use mod_delayed_work() instead of __cancel + queue
    workqueue: use irqsafe timer for delayed_work
    workqueue: clean up delayed_work initializers and add missing one
    workqueue: make deferrable delayed_work initializer names consistent
    workqueue: cosmetic whitespace updates for macro definitions
    workqueue: deprecate system_nrt[_freezable]_wq
    workqueue: deprecate flush[_delayed]_work_sync()
    ...

    Linus Torvalds
     

05 Sep, 2012

1 commit

  • Split out all FB related data out of struct picolcd_data into a struct
    picolcd_fb_data that is allocated with fb_info. This way fb_info may
    cleanly outlive struct picolcd_data for as long as needed for its last
    user to drop his reference.

    Access to struct picolcd_data is now protected with struct
    picolcd_fb_data's lock and tile update reports are only generated
    while picolcd_fbdata->picolcd is not NULL and is not marked as failed
    (which indicates unplug in progress).

    Signed-off-by: Bruno Prémont
    Signed-off-by: Jiri Kosina

    Bruno Prémont
     

16 Aug, 2012

1 commit

  • Fixes thes build errors:

    drivers/hid/hid-picolcd_fb.c: In function 'picolcd_fb_destroy':
    drivers/hid/hid-picolcd_fb.c:350:2: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
    drivers/hid/hid-picolcd_fb.c: In function 'picolcd_init_framebuffer':
    drivers/hid/hid-picolcd_fb.c:508:2: error: implicit declaration of function 'vmalloc' [-Werror=implicit-function-declaration]
    drivers/hid/hid-picolcd_fb.c:508:12: warning: assignment makes pointer from integer without a cast [enabled by default]

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Jiri Kosina

    Stephen Rothwell
     

15 Aug, 2012

3 commits