Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EM-2040 i2c fixes DO NOT MERGE #516

Open
wants to merge 78 commits into
base: master
Choose a base branch
from

Commits on Sep 17, 2017

  1. Merge branches 'sunxi/clk-for-4.15', 'sunxi/dt-for-4.15' and 'sunxi/d…

    …t64-for-4.15' into sunxi/for-next
    mripard committed Sep 17, 2017
    Configuration menu
    Copy the full SHA
    eebe170 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2017

  1. Configuration menu
    Copy the full SHA
    1718bc7 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2017

  1. Configuration menu
    Copy the full SHA
    3b428b0 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2017

  1. Configuration menu
    Copy the full SHA
    67bf861 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2017

  1. Configuration menu
    Copy the full SHA
    bba731a View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2017

  1. Configuration menu
    Copy the full SHA
    42d7dbe View commit details
    Browse the repository at this point in the history
  2. Merge branch 'sunxi/for-next', remote-tracking branch 'drm-misc/drm-m…

    …isc-next' into sunxi-next
    wens committed Oct 11, 2017
    Configuration menu
    Copy the full SHA
    be2aeaf View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2960446 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2017

  1. Configuration menu
    Copy the full SHA
    10d1bcf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3be7629 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2017

  1. Configuration menu
    Copy the full SHA
    9221d86 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2017

  1. Configuration menu
    Copy the full SHA
    36680a7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    217a487 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8c95670 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2017

  1. Configuration menu
    Copy the full SHA
    8c05c03 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    54c9bca View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2017

  1. Configuration menu
    Copy the full SHA
    dad1b42 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2017

  1. Configuration menu
    Copy the full SHA
    b599669 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9dad3f6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f9a642e View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2017

  1. Configuration menu
    Copy the full SHA
    c3d8195 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2017

  1. fbdev: ssd1306: abort probe if we cannot talk to the display

    We should abort probe if we cannot talk to the display. This
    prevents creating a fb device which does not work and prevents
    a lot of i2c communication error messages as a consequence.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    c74b34f View commit details
    Browse the repository at this point in the history
  2. fbdev: ssd1307: rename i2c device ids

    For autoprobing to work on devicetree based systems, the compatible
    name is used when probing i2c devices. Because the device id is now not
    the same, the ssd1307 does not get autoprobed.
    
    By renaming the device id, autoprobing is now functional on devicetree
    based systems.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    0bed2fc View commit details
    Browse the repository at this point in the history
  3. fbdev: ssd1306: make output a little more consistent

    The ssd1306 driver is a little inconsistent in the debug messages.
    Common is to not capitalize the first letter and to not add any periods
    etc at the end. Also add a quick shortcut to access the device
    structure shortening our error messages.
    
    Finally take this cleanup opportunity to add the missing device.h
    header.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    3b4ca60 View commit details
    Browse the repository at this point in the history
  4. fbdev: ssd1306: use ratelimited error printing

    When we fail to send messages to our display, we print an error.
    However this 'spam' can continue heavily and add a heavy load on the
    system just to print these messages.
    
    Lets use the ratelimited variant of dev_err to lessen the system load.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    bc8c3e6 View commit details
    Browse the repository at this point in the history
  5. leds: pca963x: abort probe if device is not connected

    Currently, the driver always successfully manages to load,
    even if there is no actual chip present (or communication
    is not possible over i2c).
    
    This has the side-effect, that the node is always available in
    sysfs, and writing data to it which results in i2c errors.
    
    To improve behavior here, we try to read the first byte from
    the device, and if this was okay, we at least know there is some
    device on the bus, even though we do not know which one.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    e19c8b8 View commit details
    Browse the repository at this point in the history
  6. leds: pca963x: alphabetize headers

    Re-order headers so they are in alphabetical order.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    Olliver Schinagl authored and oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    683f502 View commit details
    Browse the repository at this point in the history
  7. leds: pca963x: add defines and remove some magic values

    This patch adds some more defines so that the driver can receive
    a little more future work. These new defines are then used throughout the
    existing code the remove some magic values.
    
    This patch does not produce any binary changes.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    e516b80 View commit details
    Browse the repository at this point in the history
  8. leds: pca963x: save mode when setting power_state

    Currently, we blast sleep mode or 0 into the mode1 register, without
    taking notice of whatever was in it before.
    
    Lets be a bit more proper here and read the register and modify only
    the bit which we are concerned.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    4121ef1 View commit details
    Browse the repository at this point in the history
  9. leds: pca963x: refactor initial led output a little

    Let's improve readability a little bit by reordering initial LED output
    configuration.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    10fd376 View commit details
    Browse the repository at this point in the history
  10. leds: pca963x: remove whitespace and checkpatch problems

    This patch does some whitespace fixing to make the entire driver more
    consistent, especially with regards to alignment. Because of this it
    also reduces quite some of the checkpatch warnings.
    
    This did came at the cost of some minor 80 char warnings however to satisfy
    the alignment and improve readability.
    
    This patch does not introduce any binary changes.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    1568dc6 View commit details
    Browse the repository at this point in the history
  11. leds: pca963x: set DMBLNK as default during probe

    The PCA963x series of chips have several operating modes controlled via
    the LEDOUT register. LDR controls whether the leds are completely off
    (0x0), completely on (0x1), only controlled via the PWM registers (0x2)
    or a special 'grouped' mode (0x3).
    
    In the grouped mode, the leds can either blink, or PWM in
    synchronization. Since the LED framework currently does not support
    linked LEDs and thus we cannot PWM in synchronization, set the default group
    to blink, to ensure that hardware based blinking at least is synchronized
    when blinking.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    acf0551 View commit details
    Browse the repository at this point in the history
  12. mfd: axp20x: fixup includes

    Add the bitops.h header as we need it, alphabetize header order.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    ed038f4 View commit details
    Browse the repository at this point in the history
  13. mfd: axp20x: use explicit bit defines

    The AXP20X_OFF define is an actual specific bit, define it as such.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    Olliver Schinagl authored and oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    4a4efcf View commit details
    Browse the repository at this point in the history
  14. power: suppy: axp20x: add missing include bitops.h

    The axp20x_usb_power driver uses BIT() operations but lacks the include
    for it. Include the bitops.h header file.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    03ce04d View commit details
    Browse the repository at this point in the history
  15. power: suppy: axp288: use the BIT() macro

    Make use of the recommended BIT() macro for bit defines.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    dd35aa4 View commit details
    Browse the repository at this point in the history
  16. regulator: axp20x: use defines for masks

    The AXP20X driver currently has several masks defined throughout the
    code. Use nice defines to make them clean and more descriptive.
    
    Additionally include bitops.h which was missing before.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    13b162f View commit details
    Browse the repository at this point in the history
  17. regulator: axp20x: name voltage ramping define properly

    The current axp20x names the ramping register 'scal' which probably
    means scaling. Since the register really has nothing to do with
    scaling, but really is the voltage ramp we rename it appropriately.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    bb946f3 View commit details
    Browse the repository at this point in the history
  18. regulator: enable power later when setting up constraints

    When a regulator is marked as always on, it is enabled early on, when
    checking and setting up constraints. It makes the assumption that the
    bootloader properly initialized the regulator, and just in case enables
    the regulator anyway.
    
    Some constraints however currently get missed, such as the soft-start
    and ramp-delay. This causes the regulator to be enabled, without the
    soft-start and ramp-delay being applied, which in turn can cause
    high-currents or other start-up problems.
    
    By moving the always-enabled constraints later in the constraints check,
    we can at least ensure all constraints for the regulator are followed.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    Olliver Schinagl authored and oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    27bef6e View commit details
    Browse the repository at this point in the history
  19. regulator: axp20x: AXP209: add support for set_ramp_delay

    The AXP209 supports ramping up voltages on several regulators such as
    DCDC2 and LDO3.
    
    This patch adds preliminary support for the regulator-ramp-delay
    property these 2 regulators. Note that the voltage ramp only works when
    the regulator is already enabled. E.g. when going from say 0.7 V to 3.6 V.
    
    When turning on the regulator, no voltage ramp is performed by the hardware.
    
    What this means, is that if the bootloader brings up the voltage at 0.7 V,
    the ramp delay property is properly applied. If however, the bootloader
    leaves the power off, no ramp delay is applied when the power is
    enabled by the regulator framework.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    c4c4e61 View commit details
    Browse the repository at this point in the history
  20. regulator: axp20x: add software based soft_start for LDO3

    In the past, there have been words on various lists that if LDO3 is
    disabled in u-boot, but enabled in the DTS, the axp driver would fail
    to continue/hang. Several enable/disable patches have been issues to
    devicetree's in both the kernel and u-boot to address this issue.
    
    What really happened however, was that the AXP shuts down, without
    notice, without setting an interrupt. This is caused when LDO3 gets
    overloaded, for example with large capacitors on the LDO3 output.
    
    Normally, we would expect that the AXP would source 200 mA as per
    datasheet and set and trigger an interrupt when being overloaded. For
    some reason however, this does not happen.
    
    As a work-around, we use the soft-start constraint of the regulator node
    to first bring up the LDO3 to the lowest possible voltage and then
    enable the LDO. After that, we can set the requested voltage as per
    normal.
    
    Combining this setting with the regulator-ramp-delay allows LDO3 to
    come up slowly and staggered, potentially reducing overall inrush current.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    aee0eb0 View commit details
    Browse the repository at this point in the history
  21. arm: dts: sunxi: enable soft-start and ramp delay for the OLinuXino L…

    …ime2
    
    The OLinuXino Lime2 has a big capacitor on its LDO3 output. It is
    actually too large, causing the PMIC to shutdown when toggling the LDO3.
    
    By enabling soft-start and ramp delay we increase the time for the
    capacitor to charge lowering the current drain on the power regulator.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    eedcd47 View commit details
    Browse the repository at this point in the history
  22. dts: sunxi: Lime2: add full voltage range to LDO4

    With commit b43776d ("ARM: dts: sunxi: Use axp209.dtsi for
    Olinuxino Lime2") we force them an arbitrary 2.8 volts. Granted, for
    LDO3 this may be less arbitrary, but for LDO4 this is just wrong.
    
    In the defense of LDO3, LDO3 is the regulator that feeds port bank E,
    which has no other purpose then a CSI/TS interface, however the case
    may still be, that the connected IO may be just as well be 3.3 volts.
    The big misnomer is however, that the schematic names GPIO-2 pin4
    LDO3_2.8V, rather then VDD-CSI0 or similar.
    
    This is much worse for LDO4 however, which is not referenced on any
    pin, is now set to 2.8 volts, but port bank G can also support various
    other peripherals such as UARTS etc.
    
    By having 2.8 volts however for LDO4, we thus now have peripherals that
    no longer function properly all of the time.
    
    Ideally, we want to set a supply voltage for each port bank, but the
    monolithic nature of the sunxi pinctroller currently prevents this and
    as such, the board should at least configure the LDO4 with the proper
    ranges.
    
    Until we can set the consumer at the port bank level, a child
    device-tree has to do something like:
    
    &reg_ldo4 {
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
    };
    
    While doing this the same way results in the same solution currently,
    we force the hack into the final devicetree rather then having it wrong
    at the board level.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    2d11ed2 View commit details
    Browse the repository at this point in the history
  23. dts: sunxi: OLinuXino Lime2: set proper lradc vref

    The lradc's analog reference voltage is set to 3.0 volt in the
    hardware. This is more or less set in stone for atleast lradc0. Set the
    property in the dts to ensure the lradc is referenced properly.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    d2ab365 View commit details
    Browse the repository at this point in the history
  24. pwm: core: do not block apply->state on period

    The old pwm_config call, did some parameter sanitation such as
    preventing to change the pwm config if the period is 0.
    
    With the new atomic framework, we now not only apply configuration
    parameters, but also the polarity setting.
    
    The polarity setting however can be applied both with an enabled or
    disabled PWM, in other words, setting the polarity is perfectly
    acceptable when the period is 0.
    
    This patch removes the check if the period is valid and instead, sets
    the state disabled if the period is 0. It now thus becomes possible to
    set the polarity, before changing any other PWM parameters.
    
    The reason this is needed is that if someone calls pwm_set_polarity
    with the period set to 0, pwm_set_polarity would fail. Having period of 0
    is however perfectly acceptable here.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    aeea6b1 View commit details
    Browse the repository at this point in the history
  25. input: of_touchscreen: fix whitespace

    Fix alignment whitespace, no code changes where performed.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    ed71150 View commit details
    Browse the repository at this point in the history
  26. input: of_touchscreen: shorten variable names

    To clean up some whitespace issues and make room for future additions
    some variable names where shortened.
    
    This patch does not invoke any code changes.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    de61fc5 View commit details
    Browse the repository at this point in the history
  27. input: of_touchscreen: rename touchscreen-size-[xy]

    The parameter touchscreen-size-x sits oddly next to
    touchscreen-max-pressure for example. Further more when considering
    that the actual parameter modified in absinfo is the 'maximum'.
    
    Let us thus rename the touchscreen-max-size-[xy] property in the
    devicetree. The new name takes precedence over the earlier
    touchscreen-size-[xy] in case both are found.
    The former is now deprecated.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    3d28f05 View commit details
    Browse the repository at this point in the history
  28. input: of_touchscreen: add support for minimum sizes

    In certain configurations, touchscreens are bigger then the underlying
    display. This can happen for various reasons, but an interesting design
    choice is to improve the edge detection of touch events. To make sure
    we don't have strange offsets we want to pass this information along to
    the input framework via the of_touchscreen layer. To this, we need to
    also parse the 'minimum' property.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    fe30204 View commit details
    Browse the repository at this point in the history
  29. input: edt-ft5x06: add support for the ft5426 controller

    The current ft5x06 driver happily supports the ft5426 controller chip.
    Lets add a compatible for it.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    688d6e2 View commit details
    Browse the repository at this point in the history
  30. input: edt-ft5x06: cleanup headers

    Alphabetize and add missing headers to the edt-ft5x06 driver. No code
    changes where done in this commit.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    0d4e3e7 View commit details
    Browse the repository at this point in the history
  31. input: edt-ft5x06: only enable the irq when needed

    The input framework has callbacks for when an input device gets
    opened/closed to do certain actions. Use these to enable/disable
    interrupts when they are not in use. This can then be improved in the
    future by doing power savings when the device is not in use.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    c957a5d View commit details
    Browse the repository at this point in the history
  32. input: edt-ft5x06: fix some whitespace/ident issues

    This patch just cleans up some ident/whitespacing issues. No code
    changes where performed.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    fb86a27 View commit details
    Browse the repository at this point in the history
  33. input: edt-ft5x06: minor consistency cleanup/line length reduction

    The struct device is often referenced in the probe function via
    &client->dev. We can shorten this by introducing a compile time removed
    pointer to be able to just type 'dev'. This reduces some of our longer
    function line lengths improving readability just a little bit.
    
    While touching said lines, (mostly dev_*() print strings) make the
    strings more consistent (with itself and the kernel output) by dropping
    caps at the start and periods at the end having at least a concistent
    style within the same function.
    
    No logical changes where performed.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    d862555 View commit details
    Browse the repository at this point in the history
  34. input: edt-ft5x06: shorten defines

    Drop the long _REGISTER_ string in the M09_ macro's. It makes our
    register defines really long and doesn't add anything. By shortening
    the defines we can introduce more macro's that are more descriptive and
    potentially longer.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    5f01050 View commit details
    Browse the repository at this point in the history
  35. input: edt-ft5x06: use less magic and more defines

    We can simply add some more defines to remove some magic values and
    thus create more readable code.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    992e1c7 View commit details
    Browse the repository at this point in the history
  36. input: edt-ft5x06: silence deferral error

    Currently when we get a deferral request on an optional GPIO, we print
    out a failure message making the user think something bad has happened.
    
    Instead, as commonly done, silence the -EPROBE_DEFER message as it is an
    acceptable 'error'.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    046c810 View commit details
    Browse the repository at this point in the history
  37. input: edt-ft5x06: sanity check on input

    It may happen, that tsdata or tsdata->input are NULL. One observed
    example was that when requesting the IRQ, but not having all structures
    setup properly. Add a simple sanity check for NULL, just in case.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    7207bb7 View commit details
    Browse the repository at this point in the history
  38. input: edt-ft5x06: fix multi-touch handling

    Multi-touch handling is currently incorrectly handled by the edt-ft5x06
    driver.
    
    According to Documentation/input/multi-touch-protocol.rst, we are
    supposed to:
       ABS_MT_SLOT 0
       ABS_MT_TRACKING_ID 45
       ABS_MT_POSITION_X x[0]
       ABS_MT_POSITION_Y y[0]
       ABS_MT_SLOT 1
       ABS_MT_TRACKING_ID 46
       ABS_MT_POSITION_X x[1]
       ABS_MT_POSITION_Y y[1]
       SYN_REPORT
    
    and:
    
    Here is the sequence after lifting the contact in slot 0::
    
       ABS_MT_TRACKING_ID -1
       SYN_REPORT
    
    What happens in our driver however, is:
       ABS_MT_SLOT 45
       ABS_MT_POSITION_X x[0]
       ABS_MT_POSITION_Y y[0]
       ABS_MT_SLOT 46
       ABS_MT_POSITION_X x[1]
       ABS_MT_POSITION_Y y[1]
       SYN_REPORT
    
    and for lifting nothing is done.
    
    This is obviously wrong, as we are allocating a slot based on the
    tracking id, not based on the input (finger) and worse, never
    reset tracking id to -1 to 'free' them.
    
    Refactor the ISR to follow the spec by allocating a slot based on finger
    and set/clear the tracking ID once the finger is no longer down.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    b68c90b View commit details
    Browse the repository at this point in the history
  39. input: edt-ft5x06: take into account the number of fingers

    It may happen that we miss a touch !down event, for example the
    interrupt fires, but we are to late to read the correct data. When this
    happens, we may wrongfully set/clear ABS_MT_TRACKING_ID to -1.
    
    The M09 firmware actually tells us how many fingers are being touched.
    By using that, we also thus know how many events to focus on and to
    clear unused tracking id's. This also has as a boon that we save some
    processing time by not evaluating the registers for unused touches.
    
    Note: this should not be used to reduce the number of bytes read, e.g.
    read the number of touches register, followed by a read for the actual
    registers, as that would result in a non-atomic read, and our data
    could be out of sync. E.g. we are told to 4 inputs have been pressed,
    but by the time we actually read these registers, 5 inputs are actually
    being touched.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    cb474ef View commit details
    Browse the repository at this point in the history
  40. input: edt-ft5x06: add polldev as an option

    The edt-ft5x06 is not required to be used with an interrupt. We can
    just as easily poll the edt-ft5x06 using the polldev framework. This is
    needed as some electrical designs may omit the IRQ line.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    15ecee1 View commit details
    Browse the repository at this point in the history
  41. input: edt-ft5x06: group r, w and rw functions

    Move the read and write functions higher and next to the read-write
    function. This makes adding features easier without introducing
    prototypes and keeps the relevant functions together.
    
    This patch introduces no code changes.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    5777ab1 View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2017

  1. input: edt-ft5x06: Force touchscreen to remain active

    With the M09, the touchscreen enters sleep mode after a few seconds.
    During this time the controller responds to all i2c commands normally,
    but no input data is generated.
    
    This patch forces active mode during each poll interval, to prevent
    sleep mode (monitor mode) to be activated during normal operation.
    
    This can be further improved by setting/clearing the bit when going
    into suspend/resume mode. Some extra logic would be needed there
    however to only go into suspend mode if a reset/wake line is available.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    4f8b339 View commit details
    Browse the repository at this point in the history
  2. input: ar1021: fix typo in define

    Not sure what TOCUH is, but i'm fairly certain 'TOUCH' was meant.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    93bf96d View commit details
    Browse the repository at this point in the history
  3. gpio: pca953x: add support for the NXP pca9570

    The PCA9570 is the most basic of the pca957x series.
    
    It is a 4 bit i2c gpio expander without an interrupt line.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    35ba713 View commit details
    Browse the repository at this point in the history
  4. ASoC: sun4i-is: also check for NULL on reset pin request

    Commit 2ad6f30 ("ASoC: sun4i-i2s: Add quirks to handle a31 compatible")
    added support for reset control but support for sun4i was overlooked. For
    these older SoC's it is quite common not have this reset control.
    
    The reset control is first requested, and later checked if it IS_ERR.
    If however there is no reset control configured, we can get NULL and
    thus the checks pass with a NULL pointer passed the functions
    afterwards.
    
    Lets use IS_ERR_OR_NULL to ensure the reset control is only
    (de)asserted when we actually have a valid reset control.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    8872877 View commit details
    Browse the repository at this point in the history
  5. serial: 8250_dw: minor code cleanup

    Some very minor code cleanups, such as including the bitops header for
    DW_UART_MCR_SIRE, use the BIT() macro as suggested by checkpatch and
    removed some white spacing.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    b126923 View commit details
    Browse the repository at this point in the history
  6. serial: do not treat the IIR register as a bitfield

    It seems that at some point, someone made the assumption that the UART
    Interrupt ID Register was a bitfield and started to check if certain
    bits where set.
    
    Actually however the register contains interrupt ID's where only the MSB
    seems to be used singular and the rest share at least one bit. Thus
    doing bitfield operations is wrong.
    
    This patch cleans up the serial_reg include file by ordering it and
    replacing the UART_IIR_ID 'mask' with a proper mask for the register.
    The OMAP uart appears to have used the two commonly 'reserved' bits 4
    and 5 and thus get an UART_IIR_EXT_MASK for these two bits.
    
    This patch then goes over all UART_IIR_* users and changes the code from
    bitfield checking, to ID checking instead.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    40d3e78 View commit details
    Browse the repository at this point in the history
  7. serial: tegra: map the iir register to default defines

    The tegra serial IP seems to be following the common layout and the
    interrupt ID's match up nicely. Replace the magic values to match the
    common serial_reg defines, with the addition of the Tegra unique End of
    Data interrupt.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    6b66bba View commit details
    Browse the repository at this point in the history
  8. serial work

    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    0365eb6 View commit details
    Browse the repository at this point in the history
  9. drm/sun4i: i2c: consolidate ddc items

    The ddc items can be consolidated more into one place.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    7d6eb22 View commit details
    Browse the repository at this point in the history
  10. drm: sun4i: fix indenting

    No codechanges where done with this change, just some whitespace
    cleanup.
    
    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    0200fbe View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2018

  1. wip hdmi-i2c, TODO: legacy clocks not working

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    80e9170 View commit details
    Browse the repository at this point in the history
  2. fix whitespace (kconfig)

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    beb2e13 View commit details
    Browse the repository at this point in the history
  3. fix hdmi freq divider

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    6d00bfc View commit details
    Browse the repository at this point in the history
  4. rtc: sun6i: add missing header

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    795cc47 View commit details
    Browse the repository at this point in the history
  5. of_get_matching_data

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    14d6182 View commit details
    Browse the repository at this point in the history
  6. of_reset_control_get_exclusive helper

    Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
    oliv3r committed Feb 8, 2018
    Configuration menu
    Copy the full SHA
    ac68ebb View commit details
    Browse the repository at this point in the history