13 Jun, 2017

2 commits

  • Use the new helper for reusing a device-tree node of another device
    instead of managing the node references explicitly.

    This also makes sure that the new of_node_reuse flag is set if the
    device is ever reprobed, something which specifically now avoids driver
    core from attempting to claim any pinmux resources already claimed by
    the parent device.

    Fixes: ec4664b3fd6d ("thermal: max77620: Add thermal driver for reporting junction temp")
    Cc: Laxman Dewangan
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • The thermal child device reuses the parent MFD-device device-tree node
    when registering a thermal zone, but did not take a reference to the
    node.

    This leads to a reference imbalance, and potential use-after-free, when
    the node reference is dropped by the platform-bus device destructor
    (once for the child and later again for the parent).

    Fix this by dropping any reference already held to a device-tree node
    and getting a reference to the parent's node which will be balanced on
    reprobe or on platform-device release, whichever comes first.

    Note that simply clearing the of_node pointer on probe errors and on
    driver unbind would not allow the use of device-managed resources as
    specifically thermal_zone_of_sensor_unregister() claims that a valid
    device-tree node pointer is needed during deregistration (even if it
    currently does not seem to use it).

    Fixes: ec4664b3fd6d ("thermal: max77620: Add thermal driver for reporting junction temp")
    Cc: stable # 4.9
    Cc: Laxman Dewangan
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

23 Nov, 2016

1 commit

  • If the driver is built as a module, autoload won't work because the module
    alias information is not filled. So user-space can't match the registered
    device with the corresponding module.

    Export the module alias information using the MODULE_DEVICE_TABLE() macro.

    Before this patch:

    $ modinfo drivers/thermal/max77620_thermal.ko | grep alias
    $

    After this patch:

    $ modinfo drivers/thermal/max77620_thermal.ko | grep alias
    alias: platform:max77620-thermal

    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Eduardo Valentin

    Javier Martinez Canillas
     

27 Sep, 2016

2 commits

  • Added one additional parameter to thermal_zone_device_update() to provide
    caller with an optional capability to specify reason.
    Currently this event is used by user space governor to trigger different
    processing based on event code. Also it saves an additional call to read
    temperature when the event is received.
    The following events are cuurently defined:
    - Unspecified event
    - New temperature sample
    - Trip point violated
    - Trip point changed
    - thermal device up and down
    - thermal device power capability changed

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Srinivas Pandruvada
     
  • Maxim Semiconductor Max77620 supports alarm interrupts when
    its die temperature crosses 120C and 140C. These threshold
    temperatures are not configurable.

    Add thermal driver to register PMIC die temperature as thermal
    zone sensor and capture the die temperature warning interrupts
    to notifying the client.

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Zhang Rui

    Laxman Dewangan