18 Dec, 2015

2 commits

  • Move timestamp from struct vb2_v4l2_buffer to struct vb2_buffer
    for common use, and change its type to u64 in order to handling
    y2038 problem. This patch also includes all device drivers' changes related to
    this restructuring.

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     
  • The queue_setup callback has a void pointer that is just for V4L2
    and is the pointer to the v4l2_format struct that was passed to
    VIDIOC_CREATE_BUFS. The idea was that drivers would use the information
    from that struct to buffers suitable for the requested format.

    After the vb2 split series this pointer is now a void pointer,
    which is ugly, and the reality is that all existing drivers will
    effectively just look at the sizeimage field of v4l2_format.

    To make this more generic the queue_setup callback is changed:
    the void pointer is dropped, instead if the *num_planes argument
    is 0, then use the current format size, if it is non-zero, then
    it contains the number of requested planes and the sizes array
    contains the requested sizes. If either is unsupported, then return
    -EINVAL, otherwise use the requested size(s).

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

14 Nov, 2015

2 commits


10 Nov, 2015

2 commits

  • Switch everything to the new and more capable implementation of abs().
    Mainly to give the new abs() a bit of a workout.

    Cc: Michal Nazarewicz
    Cc: John Stultz
    Cc: Ingo Molnar
    Cc: Steven Rostedt
    Cc: Peter Zijlstra
    Cc: Masami Hiramatsu
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • WARNING: vmlinux.o(.text+0x1056606): Section mismatch in reference from the function parkbd_attach() to the function .init.text:parkbd_allocate_serio()
    The function parkbd_attach() references
    the function __init parkbd_allocate_serio().
    This is often because parkbd_attach lacks a __init
    annotation or the annotation of parkbd_allocate_serio is wrong.

    Commit 33ca8ab97cbb676d ("Input: parkbd - use parallel port device
    model") dropped the __init attribute from the sole caller of
    parkbd_allocate_serio(), but forgot to remove it from
    parkbd_allocate_serio() itself.

    Fixes: 33ca8ab97cbb676d ("Input: parkbd - use parallel port device model")
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Sudip Mukherjee
    Signed-off-by: Dmitry Torokhov

    Geert Uytterhoeven
     

07 Nov, 2015

2 commits

  • Pull input updates from Dmitry Torokhov:
    "Items of note:

    - evdev users can now limit or mask the kind of events they will
    receive. This will allow applications such as power manager or
    network manager to only be woken when user presses special keys
    such as KEY_POWER or KEY_WIFI and not be bothered with ordinary
    key presses coming from keyboard

    - support for FocalTech FT6236 touchscreen controller

    - support for ROHM BU21023/24 touchscreen controller

    - edt-ft5x06 touchscreen driver got a face lift and can now be used
    with FT5506

    - support for Google Fiber TV Box remote controls

    - improvements in xpad driver (with more to come)

    - several parport-based drivers have been switched to the new device
    model

    - other miscellaneous driver improvements"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (70 commits)
    HID: hid-gfrm: avoid warning for input_configured API change
    HID: hid-input: allow input_configured callback return errors
    Input: evdev - fix bug in checking duplicate clock change request
    Input: add userio module
    Input: evdev - add event-mask API
    Input: snvs_pwrkey - remove duplicated semicolon
    HID: hid-gfrm: Google Fiber TV Box remote controls
    Input: e3x0-button - update Kconfig description
    Input: tegra-kbc - drop use of IRQF_NO_SUSPEND flag
    Input: tegra-kbc - enable support for the standard "wakeup-source" property
    Input: xen - check return value of xenbus_printf
    Input: hp_sdc_rtc - fix y2038 problem in proc_show
    Input: nomadik-ske-keypad - fix a trivial typo
    Input: xpad - fix clash of presence handling with LED setting
    Input: edt-ft5x06 - work around FT5506 firmware bug
    Input: edt-ft5x06 - add support for FT5506
    Input: edt-ft5x06 - add support for different max support points
    Input: edt-ft5x06 - use max support points to determine how much to read
    Input: rotary-encoder - add support for quarter-period mode
    Input: rotary-encoder - use of_property_read_bool
    ...

    Linus Torvalds
     
  • Another Lifebook machine that needs the same quirk as other similar
    models to make the driver working.

    Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=883192
    Cc:
    Signed-off-by: Takashi Iwai
    Signed-off-by: Dmitry Torokhov

    Takashi Iwai
     

06 Nov, 2015

2 commits

  • Pull spi updates from Mark Brown:
    "Quite a lot of activity in SPI this cycle, almost all of it in drivers
    with a few minor improvements and tweaks in the core.

    - Updates to pxa2xx to support Intel Broxton and multiple chip selects.
    - Support for big endian in the bcm63xx driver.
    - Multiple slave support for the mt8173
    - New driver for the auxiliary SPI controller in bcm2835 SoCs.
    - Support for Layerscale SoCs in the Freescale DSPI driver"

    * tag 'spi-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (87 commits)
    spi: pxa2xx: Rework self-initiated platform data creation for non-ACPI
    spi: pxa2xx: Add support for Intel Broxton
    spi: pxa2xx: Detect number of enabled Intel LPSS SPI chip select signals
    spi: pxa2xx: Add output control for multiple Intel LPSS chip selects
    spi: pxa2xx: Use LPSS prefix for defines that are Intel LPSS specific
    spi: Add DSPI support for layerscape family
    spi: ti-qspi: improve ->remove() callback
    spi/spi-xilinx: Fix race condition on last word read
    spi: Drop owner assignment from spi_drivers
    spi: Add THIS_MODULE to spi_driver in SPI core
    spi: Setup the master controller driver before setting the chipselect
    spi: dw: replace magic constant by DW_SPI_DR
    spi: mediatek: mt8173 spi multiple devices support
    spi: mediatek: handle controller_data in mtk_spi_setup
    spi: mediatek: remove mtk_spi_config
    spi: mediatek: Update document devicetree bindings to support multiple devices
    spi: fix kernel-doc warnings about missing return desc in spi.c
    spi: fix kernel-doc warnings about missing return desc in spi.h
    spi: pxa2xx: Align a few defines
    spi: pxa2xx: Save other reg_cs_ctrl bits when configuring chip select
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:
    "Media updates, including:

    - Lots of improvements at the kABI documentation
    - Split of Videobuf2 into a common part and a V4L2 specific one
    - Split of the VB2 tracing events into a separate header file
    - s5p-mfc got support for Exynos 5433
    - v4l2 fixes for 64-bits alignment when running 32 bits userspace
    on ARM
    - Added support for SDR radio transmitter at core, vivid and hackrf
    drivers
    - Some y2038 fixups
    - Some improvements at V4L2 colorspace support
    - saa7164 converted to use the V4L2 core control framework
    - several new boards additions, cleanups and fixups

    PS: There are two patches for scripts/kernel-doc that are needed by
    the documentation patches on Media. Jon is OK on merging those via
    my tree"

    * tag 'media/v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (146 commits)
    [media] c8sectpfe: Remove select on CONFIG_FW_LOADER_USER_HELPER_FALLBACK
    [media] DocBook media: update copyright/version numbers
    [media] ivtv: Convert to get_user_pages_unlocked()
    [media] media/v4l2-ctrls: fix setting autocluster to manual with VIDIOC_S_CTRL
    [media] DocBook media: Fix a typo in encoder cmd
    [media] DocBook: add SDR specific info to G_MODULATOR / S_MODULATOR
    [media] DocBook: add SDR specific info to G_TUNER / S_TUNER
    [media] hackrf: do not set human readable name for formats
    [media] hackrf: add support for transmitter
    [media] hackrf: switch to single function which configures everything
    [media] hackrf: add control for RF amplifier
    [media] DocBook: add modulator type field
    [media] v4l: add type field to v4l2_modulator struct
    [media] DocBook: document SDR transmitter
    [media] v4l2: add support for SDR transmitter
    [media] DocBook: document tuner RF gain control
    [media] v4l2: add RF gain control
    [media] v4l2: rename V4L2_TUNER_ADC to V4L2_TUNER_SDR
    [media] media/vivid-osd: fix info leak in ioctl
    [media] media: videobuf2: Move v4l2-specific stuff to videobuf2-v4l2
    ...

    Linus Torvalds
     

05 Nov, 2015

1 commit

  • Pull power management and ACPI updates from Rafael Wysocki:
    "Quite a new features are included this time.

    First off, the Collaborative Processor Performance Control interface
    (version 2) defined by ACPI will now be supported on ARM64 along with
    a cpufreq frontend for CPU performance scaling.

    Second, ACPI gets a new infrastructure for the early probing of IRQ
    chips and clock sources (along the lines of the existing similar
    mechanism for DT).

    Next, the ACPI core and the generic device properties API will now
    support a recently introduced hierarchical properties extension of the
    _DSD (Device Specific Data) ACPI device configuration object. If the
    ACPI platform firmware uses that extension to organize device
    properties in a hierarchical way, the kernel will automatically handle
    it and make those properties available to device drivers via the
    generic device properties API.

    It also will be possible to build the ACPICA's AML interpreter
    debugger into the kernel now and use that to diagnose AML-related
    problems more efficiently. In the future, this should make it
    possible to single-step AML execution and do similar things.
    Interesting stuff, although somewhat experimental at this point.

    Finally, the PM core gets a new mechanism that can be used by device
    drivers to distinguish between suspend-to-RAM (based on platform
    firmware support) and suspend-to-idle (or other variants of system
    suspend the platform firmware is not involved in) and possibly
    optimize their device suspend/resume handling accordingly.

    In addition to that, some existing features are re-organized quite
    substantially.

    First, the ACPI-based handling of PCI host bridges on x86 and ia64 is
    unified and the common code goes into the ACPI core (so as to reduce
    code duplication and eliminate non-essential differences between the
    two architectures in that area).

    Second, the Operating Performance Points (OPP) framework is
    reorganized to make the code easier to find and follow.

    Next, the cpufreq core's sysfs interface is reorganized to get rid of
    the "primary CPU" concept for configurations in which the same
    performance scaling settings are shared between multiple CPUs.

    Finally, some interfaces that aren't necessary any more are dropped
    from the generic power domains framework.

    On top of the above we have some minor extensions, cleanups and bug
    fixes in multiple places, as usual.

    Specifics:

    - ACPICA update to upstream revision 20150930 (Bob Moore, Lv Zheng).

    The most significant change is to allow the AML debugger to be
    built into the kernel. On top of that there is an update related
    to the NFIT table (the ACPI persistent memory interface) and a few
    fixes and cleanups.

    - ACPI CPPC2 (Collaborative Processor Performance Control v2) support
    along with a cpufreq frontend (Ashwin Chaugule).

    This can only be enabled on ARM64 at this point.

    - New ACPI infrastructure for the early probing of IRQ chips and
    clock sources (Marc Zyngier).

    - Support for a new hierarchical properties extension of the ACPI
    _DSD (Device Specific Data) device configuration object allowing
    the kernel to handle hierarchical properties (provided by the
    platform firmware this way) automatically and make them available
    to device drivers via the generic device properties interface
    (Rafael Wysocki).

    - Generic device properties API extension to obtain an index of
    certain string value in an array of strings, along the lines of
    of_property_match_string(), but working for all of the supported
    firmware node types, and support for the "dma-names" device
    property based on it (Mika Westerberg).

    - ACPI core fix to parse the MADT (Multiple APIC Description Table)
    entries in the order expected by platform firmware (and mandated by
    the specification) to avoid confusion on systems with more than 255
    logical CPUs (Lukasz Anaczkowski).

    - Consolidation of the ACPI-based handling of PCI host bridges on x86
    and ia64 (Jiang Liu).

    - ACPI core fixes to ensure that the correct IRQ number is used to
    represent the SCI (System Control Interrupt) in the cases when it
    has been re-mapped (Chen Yu).

    - New ACPI backlight quirk for Lenovo IdeaPad S405 (Hans de Goede).

    - ACPI EC driver fixes (Lv Zheng).

    - Assorted ACPI fixes and cleanups (Dan Carpenter, Insu Yun, Jiri
    Kosina, Rami Rosen, Rasmus Villemoes).

    - New mechanism in the PM core allowing drivers to check if the
    platform firmware is going to be involved in the upcoming system
    suspend or if it has been involved in the suspend the system is
    resuming from at the moment (Rafael Wysocki).

    This should allow drivers to optimize their suspend/resume handling
    in some cases and the changes include a couple of users of it (the
    i8042 input driver, PCI PM).

    - PCI PM fix to prevent runtime-suspended devices with PME enabled
    from being resumed during system suspend even if they aren't
    configured to wake up the system from sleep (Rafael Wysocki).

    - New mechanism to report the number of a wakeup IRQ that woke up the
    system from sleep last time (Alexandra Yates).

    - Removal of unused interfaces from the generic power domains
    framework and fixes related to latency measurements in that code
    (Ulf Hansson, Daniel Lezcano).

    - cpufreq core sysfs interface rework to make it handle CPUs that
    share performance scaling settings (represented by a common cpufreq
    policy object) more symmetrically (Viresh Kumar).

    This should help to simplify the CPU offline/online handling among
    other things.

    - cpufreq core fixes and cleanups (Viresh Kumar).

    - intel_pstate fixes related to the Turbo Activation Ratio (TAR)
    mechanism on client platforms which causes the turbo P-states range
    to vary depending on platform firmware settings (Srinivas
    Pandruvada).

    - intel_pstate sysfs interface fix (Prarit Bhargava).

    - Assorted cpufreq driver (imx, tegra20, powernv, integrator) fixes
    and cleanups (Bai Ping, Bartlomiej Zolnierkiewicz, Shilpasri G
    Bhat, Luis de Bethencourt).

    - cpuidle mvebu driver cleanups (Russell King).

    - OPP (Operating Performance Points) framework code reorganization to
    make it more maintainable (Viresh Kumar).

    - Intel Broxton support for the RAPL (Running Average Power Limits)
    power capping driver (Amy Wiles).

    - Assorted power management code fixes and cleanups (Dan Carpenter,
    Geert Uytterhoeven, Geliang Tang, Luis de Bethencourt, Rasmus
    Villemoes)"

    * tag 'pm+acpi-4.4-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (108 commits)
    cpufreq: postfix policy directory with the first CPU in related_cpus
    cpufreq: create cpu/cpufreq/policyX directories
    cpufreq: remove cpufreq_sysfs_{create|remove}_file()
    cpufreq: create cpu/cpufreq at boot time
    cpufreq: Use cpumask_copy instead of cpumask_or to copy a mask
    cpufreq: ondemand: Drop unnecessary locks from update_sampling_rate()
    PM / Domains: Merge measurements for PM QoS device latencies
    PM / Domains: Don't measure ->start|stop() latency in system PM callbacks
    PM / clk: Fix broken build due to non-matching code and header #ifdefs
    ACPI / Documentation: add copy_dsdt to ACPI format options
    ACPI / sysfs: correctly check failing memory allocation
    ACPI / video: Add a quirk to force native backlight on Lenovo IdeaPad S405
    ACPI / CPPC: Fix potential memory leak
    ACPI / CPPC: signedness bug in register_pcc_channel()
    ACPI / PAD: power_saving_thread() is not freezable
    ACPI / PM: Fix incorrect wakeup IRQ setting during suspend-to-idle
    ACPI: Using correct irq when waiting for events
    ACPI: Use correct IRQ when uninstalling ACPI interrupt handler
    cpuidle: mvebu: disable the bind/unbind attributes and use builtin_platform_driver
    cpuidle: mvebu: clean up multiple platform drivers
    ...

    Linus Torvalds
     

04 Nov, 2015

5 commits


02 Nov, 2015

1 commit

  • * pm-sleep:
    PM / hibernate: fix a comment typo
    input: i8042: Avoid resetting controller on system suspend/resume
    PM / PCI / ACPI: Kick devices that might have been reset by firmware
    PM / sleep: Add flags to indicate platform firmware involvement
    PM / sleep: Drop pm_request_idle() from pm_generic_complete()
    PCI / PM: Avoid resuming more devices during system suspend
    PM / wakeup: wakeup_source_create: use kstrdup_const
    PM / sleep: Report interrupt that caused system wakeup

    Rafael J. Wysocki
     

01 Nov, 2015

1 commit


31 Oct, 2015

1 commit

  • Pull input layer fixes from Dmitry Torokhov:

    - a change to the ALPS driver where we had limit the quirk for
    trackstick handling from being active on all Dells to just a few
    models

    - a fix for a build dependency issue in the sur40 driver

    - a small clock handling fixup in the LPC32xx touchscreen driver

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits
    Input: sur40 - add dependency on VIDEO_V4L2
    Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock

    Linus Torvalds
     

28 Oct, 2015

2 commits

  • Debugging input devices, specifically laptop touchpads, can be tricky
    without having the physical device handy. Here we try to remedy that
    with userio. This module allows an application to connect to a character
    device provided by the kernel, and emulate any serio device. In
    combination with userspace programs that can record PS/2 devices and
    replay them through the /dev/userio device, this allows developers to
    debug driver issues on the PS/2 level with devices simply by requesting
    a recording from the user experiencing the issue without having to have
    the physical hardware in front of them.

    Signed-off-by: Stephen Chandler Paul
    Reviewed-by: David Herrmann
    Signed-off-by: Dmitry Torokhov

    Stephen Chandler Paul
     
  • An spi_driver does not need to set an owner, it will be populated by the
    driver core.

    Signed-off-by: Andrew F. Davis
    Acked-by: Jonathan Cameron
    Signed-off-by: Mark Brown

    Andrew F. Davis
     

27 Oct, 2015

3 commits

  • Hardware manufacturers group keys in the weirdest way possible. This may
    cause a power-key to be grouped together with normal keyboard keys and
    thus be reported on the same kernel interface.

    However, user-space is often only interested in specific sets of events.
    For instance, daemons dealing with system-reboot (like systemd-logind)
    listen for KEY_POWER, but are not interested in any main keyboard keys.
    Usually, power keys are reported via separate interfaces, however,
    some i8042 boards report it in the AT matrix. To avoid waking up those
    system daemons on each key-press, we had two ideas:
    - split off KEY_POWER into a separate interface unconditionally
    - allow filtering a specific set of events on evdev FDs

    Splitting of KEY_POWER is a rather weird way to deal with this and may
    break backwards-compatibility. It is also specific to KEY_POWER and might
    be required for other stuff, too. Moreover, we might end up with a huge
    set of input-devices just to have them properly split.

    Hence, this patchset implements the second idea: An event-mask to specify
    which events you're interested in. Two ioctls allow setting this mask for
    each event-type. If not set, all events are reported. The type==0 entry is
    used same as in EVIOCGBIT to set the actual EV_* mask of filtered events.
    This way, you have a two-level filter.

    We are heavily forward-compatible to new event-types and event-codes. So
    new user-space will be able to run on an old kernel which doesn't know the
    given event-codes or event-types.

    Signed-off-by: David Herrmann
    Signed-off-by: Dmitry Torokhov

    David Herrmann
     
  • Remove the unneded semicolon since it is clearly a typo error.

    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Dmitry Torokhov

    Javier Martinez Canillas
     
  • commit 92bac83dd79e ("Input: alps - non interleaved V2 dualpoint has
    separate stick button bits") assumes that all alps v2 non-interleaved
    dual point setups have the separate stick button bits.

    Later we limited this to Dell laptops only because of reports that this
    broke things on non Dell laptops. Now it turns out that this breaks things
    on the Dell Latitude D600 too. So it seems that only the Dell Latitude
    D420/430/620/630, which all share the same touchpad / stick combo,
    have these separate bits.

    This patch limits the checking of the separate bits to only these models
    fixing regressions with other models.

    Reported-and-tested-by: Larry Finger
    Cc: stable@vger.kernel.org
    Tested-by: Hans de Goede
    Signed-off-by: Hans de Goede
    Acked-By: Pali Rohár
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     

26 Oct, 2015

3 commits


23 Oct, 2015

3 commits

  • Internally, xenbus_printf uses memory allocation, so it can fail under
    memory pressure, leaving the input device configured as absolute with the
    backend supplying relative coordinates.

    Signed-off-by: Insu Yun
    Reviewed-by: Julien Grall
    Signed-off-by: Dmitry Torokhov

    Insu Yun
     
  • hp_sdc_rtc_proc_show() use timeval to store the time, which will overflow
    in 2038.

    This patch fixes this problem by replacing timeval with timespec64.
    hp_sdc_rtc_proc_show() only output string, so that userspace will work
    normally if we apply this patch.

    Not all timer in i8042 have y2038 risk(handshake, match timer, etc),
    Replacements in those timer are just for consistency.

    Signed-off-by: WEN Pingbo
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Dmitry Torokhov

    WEN Pingbo
     
  • s/regsiter/register/

    Signed-off-by: Geliang Tang
    Signed-off-by: Dmitry Torokhov

    Geliang Tang
     

21 Oct, 2015

1 commit

  • Replace struct v4l2_format * with void * to make queue_setup()
    for common use.
    And then, modify all device drivers related with this change.

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    [hans.verkuil@cisco.com: fix missing const in fimc-lite.c]

    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     

19 Oct, 2015

2 commits

  • Do not call xpad_identify_controller at init with wireless devices: it
    conflicts with the already sent presence packet and will be called by
    xpad360w_process_packet as needed anyway.

    Signed-off-by: Pavel Rojtberg
    Signed-off-by: Dmitry Torokhov

    Pavel Rojtberg
     
  • Fix build errors due to missing Kconfig dependency.

    drivers/built-in.o: In function `sur40_disconnect':
    sur40.c:(.text+0x22be6e): undefined reference to `video_unregister_device'
    sur40.c:(.text+0x22be77): undefined reference to `v4l2_device_unregister'
    drivers/built-in.o: In function `sur40_process_video':
    sur40.c:(.text+0x22c1d4): undefined reference to `v4l2_get_timestamp'
    drivers/built-in.o: In function `sur40_probe':
    sur40.c:(.text+0x22ca82): undefined reference to `v4l2_device_register'
    sur40.c:(.text+0x22cb1a): undefined reference to `v4l2_device_unregister'
    sur40.c:(.text+0x22cbf7): undefined reference to `video_device_release_empty'
    sur40.c:(.text+0x22cc53): undefined reference to `__video_register_device'
    sur40.c:(.text+0x22cc90): undefined reference to `video_unregister_device'
    drivers/built-in.o: In function `sur40_vidioc_querycap':
    sur40.c:(.text+0x22ccb0): undefined reference to `video_devdata'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Dmitry Torokhov

    Randy Dunlap
     

18 Oct, 2015

1 commit

  • If common clock framework is configured, the driver generates a warning,
    which is fixed by this change:

    root@devkit3250:~# cat /dev/input/touchscreen0
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 720 at drivers/clk/clk.c:727 clk_core_enable+0x2c/0xa4()
    Modules linked in: sc16is7xx snd_soc_uda1380
    CPU: 0 PID: 720 Comm: cat Not tainted 4.3.0-rc2+ #199
    Hardware name: LPC32XX SoC (Flattened Device Tree)
    Backtrace:
    [<>] (dump_backtrace) from [<>] (show_stack+0x18/0x1c)
    [<>] (show_stack) from [<>] (dump_stack+0x20/0x28)
    [<>] (dump_stack) from [<>] (warn_slowpath_common+0x90/0xb8)
    [<>] (warn_slowpath_common) from [<>] (warn_slowpath_null+0x24/0x2c)
    [<>] (warn_slowpath_null) from [<>] (clk_core_enable+0x2c/0xa4)
    [<>] (clk_core_enable) from [<>] (clk_enable+0x24/0x38)
    [<>] (clk_enable) from [<>] (lpc32xx_setup_tsc+0x18/0xa0)
    [<>] (lpc32xx_setup_tsc) from [<>] (lpc32xx_ts_open+0x14/0x1c)
    [<>] (lpc32xx_ts_open) from [<>] (input_open_device+0x74/0xb0)
    [<>] (input_open_device) from [<>] (evdev_open+0x110/0x16c)
    [<>] (evdev_open) from [<>] (chrdev_open+0x1b4/0x1dc)
    [<>] (chrdev_open) from [<>] (do_dentry_open+0x1dc/0x2f4)
    [<>] (do_dentry_open) from [<>] (vfs_open+0x6c/0x70)
    [<>] (vfs_open) from [<>] (path_openat+0xb4c/0xddc)
    [<>] (path_openat) from [<>] (do_filp_open+0x40/0x8c)
    [<>] (do_filp_open) from [<>] (do_sys_open+0x124/0x1c4)
    [<>] (do_sys_open) from [<>] (SyS_open+0x2c/0x30)
    [<>] (SyS_open) from [<>] (ret_fast_syscall+0x0/0x38)

    Signed-off-by: Vladimir Zapolskiy
    Signed-off-by: Dmitry Torokhov

    Vladimir Zapolskiy
     

17 Oct, 2015

6 commits

  • Pull input fixes from Dmitry Torokhov:
    "Just two small fixups to ads7846 touchscreen controller driver and
    Cypress touchpad driver"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: cyapa - fix the copy paste error on electrodes_rx value
    Input: ads7846 - correct the value got from SPI

    Linus Torvalds
     
  • In the touchscreen controller ISR, reading the tsc starting from
    register 0x2 causes the tsc to infrequently update the detected
    finger's x and y coordinate. The irq pin toggles at a fast rate to
    indicate touch events are happening. However, the tsc on average
    updates the touch point's x and y value every ~100 ms which is much
    slower than the advertised rate of 100+ Hz. This leads to multiple reads
    within this ~100 ms time window returning the same value.

    Example:
    X: 10 , Y: 30
    X: 10 , Y: 30
    X: 10, Y: 30
    ..
    // After 100 ms
    X: 300, Y: 300
    X: 300, y: 300
    ..
    // After 100 ms
    X: 1743, Y: 621
    X: 1743, Y: 621

    For some reason if instead of starting to read at register 0x2 you
    start reading at register 0x0 this issue isn't seen. This seems like
    a quirk only seen in the EDT FT5506 so to fix this issue simply
    adjust the code to start reading from 0x0. Technically this isn't wrong
    so no regressions should be seen with other touchscreen controllers
    supported by this driver.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov

    Franklin S Cooper Jr
     
  • FT5506 is essentially the same as other FT5x06 devices other than
    supporting 10 support points.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov

    Franklin S Cooper Jr
     
  • Update the code so that the maximum supported points aren't hard coded but
    can be changed.

    Set the maximum support points based on the data passed along side the
    compatible field.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov

    Franklin S Cooper Jr
     
  • Calculate the amount of data that needs to be read for the specified max
    number of support points. If the maximum number of support points changes
    then the amount that is read from the touch screen controller should
    reflect this.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov

    Franklin S Cooper Jr
     
  • Some encoders have both outputs low in stable states, others also have
    a stable state with both outputs high (half-period mode) and some have
    a stable state in all steps (quarter-period mode). The driver used to
    support the former states and with this change it can also support the
    later.

    This commit also deprecates the 'half-period' property and introduces
    a new property 'steps-per-period'. This property specifies the
    number of steps (stable states) produced by the rotary encoder
    for each GPIO period.

    Signed-off-by: Guido Martínez
    Signed-off-by: Ezequiel Garcia
    Acked-by: Rob Herring
    Signed-off-by: Dmitry Torokhov

    Ezequiel Garcia