08 Mar, 2020

1 commit

  • Merge Linux stable release v5.4.24 into imx_5.4.y

    * tag 'v5.4.24': (3306 commits)
    Linux 5.4.24
    blktrace: Protect q->blk_trace with RCU
    kvm: nVMX: VMWRITE checks unsupported field before read-only field
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm/boot/dts/imx6sll-evk.dts
    arch/arm/boot/dts/imx7ulp.dtsi
    arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
    drivers/clk/imx/clk-composite-8m.c
    drivers/gpio/gpio-mxc.c
    drivers/irqchip/Kconfig
    drivers/mmc/host/sdhci-of-esdhc.c
    drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
    drivers/net/can/flexcan.c
    drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
    drivers/net/ethernet/mscc/ocelot.c
    drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
    drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
    drivers/net/phy/realtek.c
    drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
    drivers/perf/fsl_imx8_ddr_perf.c
    drivers/tee/optee/shm_pool.c
    drivers/usb/cdns3/gadget.c
    kernel/sched/cpufreq.c
    net/core/xdp.c
    sound/soc/fsl/fsl_esai.c
    sound/soc/fsl/fsl_sai.c
    sound/soc/sof/core.c
    sound/soc/sof/imx/Kconfig
    sound/soc/sof/loader.c

    Jason Liu
     

24 Feb, 2020

1 commit

  • [ Upstream commit e112324cc0422c046f1cf54c56f333d34fa20885 ]

    The EP0700MLP1 returns bogus data on the first register read access
    (reading the threshold parameter from register 0x00):

    edt_ft5x06 2-0038: crc error: 0xfc expected, got 0x40

    It ignores writes until then. This patch adds a dummy read after which
    the number of sensors and parameter read/writes work correctly.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Marco Felsch
    Tested-by: Andy Shevchenko
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Philipp Zabel
     

29 Jan, 2020

2 commits

  • commit 97e24b095348a15ec08c476423c3b3b939186ad7 upstream.

    The driver misses a check for devm_thermal_zone_of_sensor_register().
    Add a check to fix it.

    Fixes: e28d0c9cd381 ("input: convert sun4i-ts to use devm_thermal_zone_of_sensor_register")
    Signed-off-by: Chuhong Yuan
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Chuhong Yuan
     
  • commit 6b32391ed675827f8425a414abbc6fbd54ea54fe upstream.

    Make sure to use the current alternate setting when verifying the
    interface descriptors to avoid binding to an invalid interface.

    This in turn could cause the driver to misbehave or trigger a WARN() in
    usb_submit_urb() that kernels with panic_on_warn set would choke on.

    Fixes: bdb5c57f209c ("Input: add sur40 driver for Samsung SUR40 (aka MS Surface 2.0/Pixelsense)")
    Signed-off-by: Johan Hovold
    Acked-by: Vladis Dronov
    Link: https://lore.kernel.org/r/20191210113737.4016-8-johan@kernel.org
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

05 Jan, 2020

3 commits

  • [ Upstream commit 43f06a4c639de8ee89fc348a9a3ecd70320a04dd ]

    input_mt_init_slots() may fail and we need to handle such failures.

    Tested-by: Adam Ford #imx6q-logicpd
    Tested-by: Sven Van Asbroeck # ILI2118A variant
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Dmitry Torokhov
     
  • [ Upstream commit efd7bb08a762d4f6322054c6824bd942971ac563 ]

    We should not be putting the chip into reset while interrupts are enabled
    and ISR may be running. Fix this by installing a custom devm action and
    powering off the device/resetting GPIO line from there. This ensures proper
    ordering.

    Tested-by: Matthias Fend
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Dmitry Torokhov
     
  • [ Upstream commit 463fa44eec2fef50d111ed0199cf593235065c04 ]

    Across suspend and resume, we are seeing error messages like the following:

    atmel_mxt_ts i2c-PRP0001:00: __mxt_read_reg: i2c transfer failed (-121)
    atmel_mxt_ts i2c-PRP0001:00: Failed to read T44 and T5 (-121)

    This occurs because the driver leaves its IRQ enabled. Upon resume, there
    is an IRQ pending, but the interrupt is serviced before both the driver and
    the underlying I2C bus have been resumed. This causes EREMOTEIO errors.

    Disable the IRQ in suspend, and re-enable it on resume. If there are cases
    where the driver enters suspend with interrupts disabled, that's a bug we
    should fix separately.

    Signed-off-by: Evan Green
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Evan Green
     

16 Dec, 2019

1 commit

  • This is the 5.4.3 stable release

    Conflicts:
    drivers/cpufreq/imx-cpufreq-dt.c
    drivers/spi/spi-fsl-qspi.c

    The conflict is very minor, fixed it when do the merge. The imx-cpufreq-dt.c
    is just one line code-style change, using upstream one, no any function change.

    The spi-fsl-qspi.c has minor conflicts when merge upstream fixes: c69b17da53b2
    spi: spi-fsl-qspi: Clear TDH bits in FLSHCR register

    After merge, basic boot sanity test and basic qspi test been done on i.mx

    Signed-off-by: Jason Liu

    Jason Liu
     

13 Dec, 2019

1 commit

  • commit df5b5e555b356662a5e4a23c6774fdfce8547d54 upstream.

    The touchscreen on the Teclast X89 is mounted upside down in relation to
    the display orientation (the touchscreen itself is mounted upright, but the
    display is mounted upside-down). Add a quirk for this so that we send
    coordinates which match the display orientation.

    Signed-off-by: Hans de Goede
    Reviewed-by: Bastien Nocera
    Link: https://lore.kernel.org/r/20191202085636.6650-1-hdegoede@redhat.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

11 Dec, 2019

1 commit


25 Nov, 2019

12 commits

  • On the imx8 MIPI DSI oled board, MIPI panel and touch share one RST
    pin. when suspend the whole system, touch will suspend first, it
    disable touch irq, and let touch work in sleep mode. Then MIPI panel
    suspend, it will give a reset signal on the RST pin. Due to this reset
    signal, touch will trigger two interrupt on GPIO1_9. Because touch
    suspend code already disable touch irq, so these two new touch interrupt
    will be pending there, and pending there in GPIO forever.

    When system resume, GPIO will restore registers in runtime resume before
    synaptics_dsx_i2c touch driver resume, so the GPIO1_9 IRQ will be unmasked
    and since its IRQ is pending there so IRQ keeps coming without touch
    driver to handle it, since it is NOT resume yet, make the system can't
    resueme back normally.

    Due to this is the hardware limitation which cause this issue, I format this
    patch to workaround this issue.
    This patch free touch irq in the touch driver suspend procedure, rather than
    just disable the touch irq.

    Reviewed-by: Fugang Duan
    Signed-off-by: Haibo Chen
    (cherry picked from commit a157605b47e2c3800d706b3ca0af24e26c92c187)
    TODO: checkpatch warnings
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • On imx8mscale-evk baord, if I2C bus is configed pull-up, then once send
    the i2c command to clear touch interrupt during the touch initialization,
    touch will keep SDA line in low level, block the i2c bus. If config the
    I2C bus pull-down, then this issue gone. Due to it is not reasonable to
    set the I2c bus to pull-down for other i2c slave device, this patch work
    as a workaround, just remove this i2c command, do not clear the touch
    interrupt, test that touch can also work well after the initialization.

    Signed-off-by: Haibo Chen
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • Add S3508 touch driver support.

    Signed-off-by: Haibo Chen
    TODO: checkpatch warnings
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • add focaltech touch screen support

    Signed-off-by: Gao Pan

    Gao Pan
     
  • Upstream dropped the call to i2c_set_client_data as "unneeded" in commit
    8300445cc7c1 ("Input: touchscreen - drop calls to platform_set_drvdata and i2c_set_clientdata")

    The client_data pointer is used on suspend/resume by downstream commit
    76a621ae711b ("MLK-17779 input: egalax_ts: free irq resource before request the line as GPIO")

    This causes suspend/resume to crash (and apparently hang) on
    imx6qdl-sabresd with LVDS display connected. Fix by adding back the
    i2c_set_clientdata call.

    Fixes: 76a621ae711b ("MLK-17779 input: egalax_ts: free irq resource before request the line as GPIO")

    This could be squashed into MLK-17779

    Signed-off-by: Leonard Crestez
    Acked-by: Fugang Duan
    Signed-off-by: Vipul Kumar

    Leonard Crestez
     
  • If GPIO is connected to an IRQ then it should not request it as
    GPIO function only when free its IRQ resource.

    Tested-by: Haibo Chen
    Signed-off-by: Fugang Duan
    Signed-off-by: Anson Huang
    Signed-off-by: Robin Gong
    Signed-off-by: Vipul Kumar

    Fugang Duan
     
  • For HannStar (HSD100PXN1 Rev: 1-A00C11 F/W:0634) LVDS touch screen,
    it has a special request for the EETI touch controller. The host
    needs to trigger I2C event to device FW at booting first, and then
    the FW can switch to I2C interface. Otherwise, the FW can’t work
    with I2C interface, and can't generate any interrupt when touch
    the screen.

    This patch send an I2C command before the device wake up, make sure
    the device switch to I2C interface first.

    Signed-off-by: Haibo Chen
    Reviewed-by: Andy Duan
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • Add the support for a CT36X based touchscreens using
    the CT36X controller and i2c touchscreen interface.

    Signed-off-by: Alejandro Lozano
    Signed-off-by: Juan Gutierrez
    Signed-off-by: Alejandro Sierra
    (Vipul: Fixed merge conflicts)
    TODO: checkpatch warnings
    Signed-off-by: Vipul Kumar

    Alejandro Lozano
     
  • For the touch pressure_max, if dts has no property "ti,pressure-max"
    or this property is config to value 0, then default use 65535 as
    the max pressure value. otherwise, in the latest xwayland rootfs,
    will meet the following issue:

    [21:44:34.302] input device 'ADS7846 Touchscreen', /dev/input/event3 is tagged by udev as: Touchscreen
    [21:44:34.302] kernel bug: Device 'ADS7846 Touchscreen' has min == max on ABS_PRESSURE
    [21:44:34.302] input device 'ADS7846 Touchscreen', /dev/input/event3 was rejected.
    [21:44:34.302] failed to create input device '/dev/input/event3'

    Reviewed-by: Fugang Duan
    Signed-off-by: Haibo Chen
    (cherry picked from commit 0bb15e676cb74739291c9054411a28cad4e36f34)
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • Add return value check after calling .of_property_read_u32().
    The issue was reported by coverity.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Add elan touch screen driver in linux kernel.

    Signed-off-by: Haibo Chen
    (cherry picked from commit 20180719c54760359d78544d55e4ac1fabaf6e8b)
    (Vipul: Fixed merge conflicts)
    TODO: checkpatch warnings
    Signed-off-by: Vipul Kumar

    Haibo Chen
     
  • We need add DCM mode/AUX mode for ADC converter function of max11801, so
    that it can be used to read voltage of battery. Meanwhile, let the driver
    based on device tree. The patchset is based on below patch (V3.5.7):

    commit 4001774cf51f0140ae7e4e8e0ec1d86475790682
    Author: Rong Dian
    Date: Fri Jan 18 14:24:28 2013 +0800

    Engr00240284-1 MAX11801: Add DCM aux adc sample function

    1.Add direct conversion mode operations
    2.Add aux adc sample function

    Signed-off-by: Robin Gong
    Signed-off-by: Vipul Kumar

    Robin Gong
     

14 Nov, 2019

1 commit

  • Pull input fixes from Dmitry Torokhov:
    "Fixes to the Synaptics RMI4 driver and fix for use after free in error
    path handling of the Cypress TTSP driver"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: cyttsp4_core - fix use after free bug
    Input: synaptics-rmi4 - clear IRQ enables for F54
    Input: synaptics-rmi4 - remove unused result_bits mask
    Input: synaptics-rmi4 - do not consume more data than we have (F11, F12)
    Input: synaptics-rmi4 - disable the relative position IRQ in the F12 driver
    Input: synaptics-rmi4 - fix video buffer size

    Linus Torvalds
     

13 Nov, 2019

1 commit

  • The device md->input is used after it is released. Setting the device
    data to NULL is unnecessary as the device is never used again. Instead,
    md->input should be assigned NULL to avoid accessing the freed memory
    accidently. Besides, checking md->si against NULL is superfluous as it
    points to a variable address, which cannot be NULL.

    Signed-off-by: Pan Bian
    Link: https://lore.kernel.org/r/1572936379-6423-1-git-send-email-bianpan2016@163.com
    Signed-off-by: Dmitry Torokhov

    Pan Bian
     

26 Oct, 2019

1 commit


22 Oct, 2019

1 commit

  • For Sitronix st1633 multi-touch controller driver the coordinates reported
    for multiple fingers were wrong, as it was always taking LSB of coordinates
    from the first contact data.

    Signed-off-by: Dixit Parmar
    Reviewed-by: Martin Kepplinger
    Cc: stable@vger.kernel.org
    Fixes: 351e0592bfea ("Input: st1232 - add support for st1633")
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204561
    Link: https://lore.kernel.org/r/1566209314-21767-1-git-send-email-dixitparmar19@gmail.com
    Signed-off-by: Dmitry Torokhov

    Dixit Parmar
     

18 Oct, 2019

1 commit

  • Pull input fixes from Dmitry Torokhov:
    "The main change is that we are reverting blanket enablement of SMBus
    mode for devices with Elan touchpads that report BIOS release date as
    2018+ because there are older boxes with updated BIOSes that still do
    not work well in SMbus mode.

    We will have to establish whitelist for SMBus mode it looks like"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Revert "Input: elantech - enable SMBus on new (2018+) systems"
    Input: synaptics-rmi4 - avoid processing unknown IRQs
    Input: soc_button_array - partial revert of support for newer surface devices
    Input: goodix - add support for 9-bytes reports
    Input: da9063 - fix capability and drop KEY_SLEEP

    Linus Torvalds
     

03 Oct, 2019

1 commit

  • Some variants of Goodix touchscreen firmwares use 9-bytes finger
    report format instead of common 8-bytes format.

    This report format may be present as:

    struct goodix_contact_data {
    uint8_t unknown1;
    uint8_t track_id;
    uint8_t unknown2;
    uint16_t x;
    uint16_t y;
    uint16_t w;
    }__attribute__((packed));

    Add support for such format and use it for Lenovo Yoga Book notebook
    (which uses a Goodix touchpad as a touch keyboard).

    Signed-off-by: Yauhen Kharuzhy
    Signed-off-by: Dmitry Torokhov

    Yauhen Kharuzhy
     

20 Sep, 2019

1 commit

  • Pull input updates from Dmitry Torokhov:

    - input core allows hardware drivers to specify a [more precise]
    timestamp (normally taken in top half) to better track velocity of
    contacts

    - input_dev instances now support "polling" mode so that drivers could
    use the same object for polled and interrupt-driven operation. The
    plan is to convert existing drivers and retire input_polled_dev API

    - a new driver for the FlySky FS-iA6B RC receiver

    - a refresh of BU21013 touchpad driver

    - w90x900 keyboard and touchpad drivers are removed as the platform is
    gone

    - assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
    Input: sidewinder - make array seq static const, makes object smaller
    Input: reset device timestamp on sync
    Input: bu21013_ts - switch to using standard touchscreen properties
    Input: bu21013_ts - switch to using MT-B (slotted) protocol
    Input: bu21013_ts - fix suspend when wake source
    Input: bu21013_ts - use interrupt from I2C client
    Input: bu21013_ts - remove support for platform data
    Input: bu21013_ts - convert to using managed resources
    Input: bu21013_ts - remove useless comments
    Input: bu21013_ts - annotate supend/resume methods as __maybe_unused
    Input: bu21013_ts - rename some variables
    Input: bu21013_ts - convert to use GPIO descriptors
    ARM: ux500: improve BU21013 touchpad bindings
    Input: i8042 - enable wakeup on a stable struct device
    Input: soc_button_array - use platform_device_register_resndata()
    Input: psmouse - drop all unneeded functions from mouse headers
    Input: add support for polling to input devices
    Input: wacom_w8001 - allocate additional space for 'phys'
    Input: cros_ec_keyb - add back missing mask for event_type
    Input: remove dev_err() usage after platform_get_irq()
    ...

    Linus Torvalds
     

03 Sep, 2019

10 commits


21 Aug, 2019

1 commit