picontrol (2.6.2-1+deb12+2) bookworm; urgency=medium

  * Build for linux-image-6.12.87-revpi0-rpi-v8 (= 6.12.87-revpi0-
    1+deb12+1)

 -- Thomas Böhler <t.boehler@kunbus.com>  Fri, 08 May 2026 13:42:06 +0200

picontrol (2.6.2-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.12.85-revpi0-rpi-v8 (= 6.12.85-revpi0-
    1+deb12+1)

  [ Lino Sanfilippo ]
  * Check gate message datalen from user
  * Remove assignment with no effect

  [ Nicolai Buchwitz ]
  * revpi_ro: honor KB_STOP_IO flag
  * revpi_mio: honor KB_STOP_IO flag
  * piDIOComm: skip input update when KB_STOP_IO is set
  * tools: add pibridge-cycles.py for cycle time collection and plotting

  [ Thomas Böhler ]
  * remove unnecessary my_rt_mutex_lock macro
  * use scope-based resource management in send_config
  * use scope-based resource management in PiBridgeMaster_Adjust
  * use scope-based resource management for KB_GET_DEVICE_INFO_LIST

  [ Nicolai Buchwitz ]
  * piControl: remove dead BSP setjmp abstraction
  * piControl: replace kbUT_getCurrentMs() with jiffies_to_msecs()
  * piControl: remove BSP systick abstraction layer
  * piControl: remove unused functions from kbUtilities
  * piControl: remove unused AL_Timeout from ModGateComMain
  * revpi_core: replace MODGATECOM_MAX_MODULES with REVPI_MGATE_MAX
  * piControl: remove unused declarations from ModGateComMain
  * piControl: remove unused declarations from fwuFlashFileMain
  * piControl: replace stdint types with kernel types
  * piControl: replace kbUT_Timer with jiffies + time_after_eq

  [ Ramiro Gsponer ]
  * Release v2.6.2

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Tue, 05 May 2026 13:14:40 +0200

picontrol (2.6.1-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.12.73-revpi0-rpi-v8 (= 6.12.73-revpi0-
    1+deb12+1)

  [ Thomas Böhler ]
  * ci: fix regex for linux headers version

  [ Erik Sallmann ]
  * Add modules_install target to Makefile

  [ Thomas Böhler ]
  * switch to use hrtimer_setup{,_on_stack}

  [ Lino Sanfilippo ]
  * Print a note for not found IO-devices
  * In init_gpios() setup RS485 termination GPIO
  * Introduce macro for first IO device on the left side
  * Set base device RS485 termination depending on topology
  * Set termination on RevPi extension modules

  [ Thomas Böhler ]
  * editorconfig: add .editorconfig
  * piControlMain: Simplify send_internal_gate_msg()
  * piControlMain: reword firmware update messages

  [ Lino Sanfilippo ]
  * Bump to version 2.6.0

  [ Nicolai Buchwitz ]
  * piControl: remove dead debug infrastructure
  * piIOComm: remove dead DEBUG_GPIO debug blocks
  * RevPiDevice: remove redundant DEBUG_DEVICE ifdef guards
  * RevPiDevice: remove unused RevPiDevice_stopDataexchange()
  * piControlMain: fix memory leaks of connl and cl on reset and removal
  * piControlMain: add NULL check after kmalloc in piControlReset()
  * piConfig: add NULL checks after allocation and use kzalloc
  * piConfig: fix wrong index in type 4 (Config) offset correction
  * revpi_gate: use GFP_KERNEL instead of GFP_ATOMIC for allocations
  * piControlMain: fix copy_to_user destination in send_config()
  * piControlMain: use bit numbers for flag definitions
  * piControl: replace KUNBUS types with standard kernel types

  [ Ramiro Gsponer ]
  * Release v2.6.1

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Fri, 27 Mar 2026 13:38:13 +0100

picontrol (2.5.0-1+deb12+1) bookworm; urgency=medium

  [ Lino Sanfilippo ]
  * Build for linux-image-6.12.56-revpi1-rpi-v8 (= 6.12.56-revpi1-
    1+deb12+1)
  * Defer probe if grabbing pibridge instance failed
  * Release v2.5.0

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Mon, 24 Nov 2025 14:18:38 +0000

picontrol (2.4.0-1+deb12+1) bookworm; urgency=medium

  [ Thomas Böhler ]
  * Build for linux-image-6.12.56-revpi0-rpi-v8 (= 6.12.56-revpi0-
    1+deb12+1)

  [ Nicolai Buchwitz ]
  * Fix SAioInputConfig

  [ Lino Sanfilippo ]
  * Remove wrapper function revpi_pbm_cont_mio()
  * Move module configuration into own function
  * Do not set flag in every cycle
  * Fix flaw in parser function
  * On flash erase failure skip the warning concerning attempts
  * compact: fix missing lock initialization
  * Reduce number of attempts to erase the flash

  [ Nicolai Buchwitz ]
  * piControl: Flush error messages in counter reset

  [ Lino Sanfilippo ]
  * Fix start of cycle measurement
  * Fix io cycle interval duration
  * Dont use different cycle times for init and running state
  * Get starting time for first cycle
  * Do not use different calculations for cycle time
  * Make cycle attributes accessible via sysfs

  [ Nicolai Buchwitz ]
  * Cleanup unused code
  * Use pr_debug() for debug output
  * Add context to log messages
  * piControl: allow reset ioctl while bridge is stopped
  * core: eliminate code duplication in revpi_core_find_gate()
  * mio: fix analog cache corruption on communication failure

  [ Lino Sanfilippo ]
  * As default make cycle time as fast as possible
  * Fix function parameter alignment
  * Provide module parameter for cycle duration
  * Make max cycle deviation accessible vias sysfs
  * Make the number of exceeded cycles accessible via sysfs
  * Handle deviation differently for fixed cycles

  [ Nicolai Buchwitz ]
  * Skip firmware update for disconnected modules

  [ Thomas Böhler ]
  * specify void for functions without parameters

  [ Lino Sanfilippo ]
  * Do not override result for KB_INTERN_IO_MSG
  * Set data len in IO telegram response
  * Move code to send internal io telegrams into own function
  * Fix locking for io telegrams
  * Protect io telegram from concurrent access
  * Do not override result for KB_CONFIG_SEND
  * Move code to send internal gate telegrams into own function
  * Fix locking for gate telegrams
  * Protect gate telegram from concurrent access
  * Add new ioctl to send generic gate telegrams
  * Allow to send gate/io telegrams in any state
  * Add structure definitions for io telegrams
  * Avoid code duplication for internal telegrams
  * Set receive len for gate telegrams
  * Make the sequence number available in internal gate datatagrams
  * Adjust handling of gate telegrams to new api return values
  * Implement cycle timer with fixed time grid
  * Change semantic for resetting cycle min, max and exceeded values
  * Make missed cycles accessible via sysfs

  [ Thomas Böhler ]
  * ci: include global-vars.yml for coverity-submit
  * fix spelling of io-cycle in module parameters

  [ Lino Sanfilippo ]
  * compact: do not forget sentinel in lookup table
  * Register platform device driver also for Flat and Compact
  * Use flag to check the PiBridge running state

  [ Thomas Böhler ]
  * avoid piControl_init_sysfs clean up before use

  [ Lino Sanfilippo ]
  * Implement firmware rescue feature
  * Fix gateway datagram reception
  * Revise the error values returned to userspace
  * Remove useless checks in piControlRead
  * Map internal message errors to -EIO

  [ Thomas Böhler ]
  * Release v2.4.0
  * feat(deb): linux package name includes sublevel
  * fix(deb): correct spelling of description

 -- Thomas Böhler <t.boehler@kunbus.com>  Tue, 11 Nov 2025 12:49:53 +0100

picontrol (2.3.7-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.6.0-revpi9-rpi-v8 (= 6.6.84-rt52-revpi9-
    1+deb12+1)

  [ Thomas Böhler ]
  * ci: quote all variable expansions

  [ Lino Sanfilippo ]
  * Remove unused enum

  [ Ramiro Gsponer ]
  * Release v2.3.7

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Thu, 26 Jun 2025 23:22:31 +0200

picontrol (2.3.6-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.6.0-revpi8-rpi-v8 (= 6.6.84-rt52-revpi8-
    1+deb12+1)

  [ Nicolai Buchwitz ]
  * piControl: use sched_setattr_nocheck for RT prio
  * piControl: fix RevPi Flat DAC output scaling
  * piControl: Make Flat reset less verbose

  [ Thomas Böhler ]
  * piConfig: free alloc'd resources in do_tree on err
  * piControl: remove unused variable "done"

  [ Lino Sanfilippo ]
  * compact: fix race condition in cycle timer

  [ Thomas Böhler ]
  * ci: automatically submit new releases to coverity

  [ Lino Sanfilippo ]
  * flat: fix compiler error
  * Fix compiler warning concerning missing prototypes
  * Set correct return value in do_tree()

  [ Ramiro Gsponer ]
  * Release v2.3.6

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Tue, 20 May 2025 14:00:04 +0200

picontrol (2.3.5-1+deb12+1) bookworm; urgency=medium

  [ Lino Sanfilippo ]
  * Build for linux-image-6.6.0-revpi8-rpi-v8 (= 6.6.84-rt52-revpi8-
    1+deb12+1)

  [ Nicolai Buchwitz ]
  * feat(deb): Re-add dkms packages

  [ Lino Sanfilippo ]
  * Use lock to check pibridge state
  * Remove unused counter for open instances
  * Make function waitRunning() static
  * In piControlOpen() do not reset piControl
  * Return correct error code if memory allocation failed in piControlOpen
  * Retry if flash erase during firmware update failed
  * compact: in cycle timer use completion instead of work queue

  [ Ramiro Gsponer ]
  * Release v2.3.4
  * piControl: Fix RevPi MQTT Client device type value

  [ Lino Sanfilippo ]
  * Release v2.3.5

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Mon, 14 Apr 2025 09:02:39 +0000

picontrol (2.3.3-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.6.0-revpi7-rpi-v8 (= 6.6.46-rt39-revpi7-
    1+deb12+1)

  [ Lino Sanfilippo ]
  * Correct logic for error counter
  * Rename COMM_ERROR_MAX to COMM_ERROR_LOG_LIMIT
  * Do not try to stop kernel thread that does not exist
  * Adjust return value in fwuWrite()
  * Retry flash write at firmware update
  * Add missing include in piFirmwareUpdate.h
  * Retry flash write also for legacy firmware update

  [ Thomas Böhler ]
  * compact: avoid leak in revpi_compact_adjust_config
  * piControlMain: add missing va_end() call
  * piConfig: return JSON_ERROR_NO_MEMORY on OOM

  [ Ramiro Gsponer ]
  * Release v2.3.3

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Tue, 17 Mar 2025 11:19:04 +0100

picontrol (2.3.2-1+deb12+1) bookworm; urgency=medium

  [ Ramiro Gsponer ]
  * Build for linux-image-6.6.0-revpi7-rpi-v8 (= 6.6.46-rt39-revpi7-
    1+deb12+1)

  [ Lino Sanfilippo ]
  * piControl: move code used only by kernel into extra header file
  * piControl: make padding explicit in structures

  [ Thomas Böhler ]
  * style(README): wrap on 80 characters
  * doc(README): update kernel header package

  [ Nicolai Buchwitz ]
  * piControl: remove custom MIN and MAX macros and use kernel-provided macros
  * piControl: Fix -Wmissing-prototypes errors
  * piControl: Move pibridge rt prio to revpi_core.c
  * piControl: Fix driver remove for kernel 6.11+

  [ Lino Sanfilippo ]
  * piControl: remove unneeded variable
  * piControl: add sanity check for DIO counters
  * Remove header and CRC from SDioConfig struct
  * piControl: avoid buffer overflow
  * Do not ignore the return value of config functions
  * Evaluate return value of piConfigParse()
  * piControl: Use dynamic debug messages instead of warnings
  * piControl: make counter of cycle numbers globally available
  * piControl: use metric to print warnings in case of communication errors
  * Do not return positive value in piControlInit()
  * Do not stop RevPi module initialization in case of invalid module config
  * Ignore failure of piConfigParse()
  * At piControl reset do not forget to store parsing results

  [ Ramiro Gsponer ]
  * Release v2.3.2

 -- Ramiro Gsponer <r.gsponer@kunbus.com>  Tue, 18 Feb 2025 22:19:47 +0100

picontrol (2.3.1-1+deb12+3) bookworm; urgency=medium

  * Build for linux-image-6.6.0-revpi6-rpi-v8 (= 6.6.46-rt39-revpi6-
    1+deb12+1)

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Thu, 28 Nov 2024 09:41:38 +0100

picontrol (2.3.1-1+deb12+2) bookworm; urgency=medium

  [ Lino Sanfilippo ]
  * Build for linux-image-6.6.0-revpi5-rpi-v8 (= 6.6.46-rt39-revpi5-
    1+deb12+1)

  [ Thomas Böhler ]
  * fix(deb): change path to module
  * fix(deb): don't run dh_auto_clean in debian/rules

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Tue, 26 Nov 2024 06:32:38 +0000

picontrol (2.3.1-1+deb12+1) bookworm; urgency=medium

  [ Lino Sanfilippo ]
  * Build for linux-image-6.6.0-revpi4-rpi-v8 (= 6.6.46-rt39-revpi4-
    1+deb12+1)

  [ Nicolai Buchwitz ]
  * piControl: Drop gate packages if carrier is down
  * piControl: Make gate log messages more useful

  [ Lino Sanfilippo ]
  * Release v2.3.1

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Mon, 18 Nov 2024 09:13:29 +0000

picontrol (2.3.0-1+deb12+1) bookworm; urgency=medium

  [ Lino Sanfilippo ]
  * Build for linux-image-6.6.0-revpi4-rpi-v8 (= 6.6.46-rt39-revpi4-
    1+deb12)

  [ Thomas Böhler ]
  * build: Move Makefile from src/ to root
  * build: adhere to Kbuild doc for external module
  * build: remove spurious whitespace in Makefile
  * build: use ccflags-y instead of EXTRA_CFLAGS

  [ Nicolau Buchwitz ]
  * piControl: Remove obsolete gateways

  [ Lino Sanfilippo ]
  * piControl: add support for RevPi Connect 5
  * piControl: Init PiBridge ethernet mode GPIOs on connect 5
  * piControl: add support for gigabit ethernet switch on PiBridge
  * piControl: remove unnecessary substates from state machine

  [ Nicolai Buchwitz ]
  * piControl: Fix input length for Connect 5
  * piControl: Fix gigabit detection on PiBridge

  [ Lino Sanfilippo ]
  * Release v2.3.0

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Thu, 14 Nov 2024 15:21:36 +0000

picontrol (2.2.1-1+deb12+1) bookworm; urgency=medium

  [ Thomas Böhler ]
  * Build for linux-image-6.6.0-revpi3-rpi-v8 (= 6.6.46-rt39-revpi3-
    1+deb12+1)
  * fix(deb): Set license of src/json.* to LGPL-2.1
  * reuse: make piControl REUSE compliant

  [ Nicolai Buchwitz ]
  * Use tabs for indention
  * Set base device serial from HAT eeprom
  * piControl: Config tool is named PiCtory

  [ Thomas Böhler ]
  * Release v2.2.1

 -- Thomas Böhler <t.boehler@kunbus.com>  Mon, 07 Oct 2024 13:42:50 +0200

picontrol (2.2.0-1+deb12+1) bookworm; urgency=medium

  [ Thomas Böhler ]
  * Build for linux-image-6.6.0-revpi2-rpi-v8 (= 6.6.46-rt39-revpi2-
    1+deb12+1)

  [ Markus Kaupert ]
  * Generic PiBridge Device: Add FW type id
  * RevPi Generic PiBridge: Add new base device

  [ Nicolai Buchwitz ]
  * Use correct offset for gpiochip0 on flat

  [ Lino Sanfilippo ]
  * piControl: Add tracing for sniffpins
  * piControl: fix device address handling in upload_firmware()
  * piControl: compact: get rid of useless hrtimer_sleeper struct
  * piControl: compact: reimplement sleep of cycle timer
  * piControl: compact: use threshold for missed cycles warning
  * piControl: compact: create sysfs entry for lost cycles statistics

  [ Thomas Böhler ]
  * Release v2.2.0

 -- Thomas Böhler <t.boehler@kunbus.com>  Thu, 29 Aug 2024 13:08:56 +0200

picontrol (2.1.3-2+deb12+4) bookworm; urgency=medium

  * Build for linux-image-6.6.0-revpi1-rpi-v8 (= 6.6.46-rt39-revpi1-
    1+deb12+1)

 -- Philipp Rosenberger <p.rosenberger@kunbus.com>  Wed, 21 Aug 2024 06:51:15 +0000

picontrol (2.1.3-2+deb12+3) bookworm; urgency=medium

  * Build for linux-image-6.6.0-revpi0-rpi-v8 (= 6.6.43-rt38-revpi0-
    1+deb12+1)
  * fix(deb): Add missing dependency to picontrol-common

 -- Philipp Rosenberger <p.rosenberger@kunbus.com>  Wed, 07 Aug 2024 12:16:25 +0200

picontrol (2.1.3-2+deb12+2) bookworm; urgency=medium

  * Build for linux-image-6.6.0-revpi0-rpi-v8 (= 6.6.43-rt38-revpi0-
    1+deb12+1)
  * doc(deb): Add rules.vars to "git add" in README.Debian

 -- Philipp Rosenberger <p.rosenberger@kunbus.com>  Tue, 06 Aug 2024 14:58:51 +0200

picontrol (2.1.3-2+deb12+1) bookworm; urgency=medium

  * build(deb)!: Replace the picontrol-dkms debianization

 -- Philipp Rosenberger <p.rosenberger@kunbus.com>  Fri, 19 Jul 2024 15:07:13 +0200

picontrol-dkms (2.1.3-1+revpi12+2) bookworm; urgency=medium

  * feat(deb): add permissions for piControl dev

 -- Thomas Böhler <t.boehler@kunbus.com>  Tue, 25 Jun 2024 10:52:46 +0200

picontrol-dkms (2.1.3-1+revpi12+1) bookworm; urgency=medium

  [ Nicolai Buchwitz ]
  * README: Fix path in build instructions

  [ Philipp Rosenberger ]
  * fix: Add missing header pinconf-generic.h to revpi_core.c

  [ Thomas Böhler ]
  * feat(deb): autoload picontrol kernel module

  [ Lino Sanfilippo ]
  * piControl: add new ioctl for firmware upload

  [ Nicolai Buchwitz ]
  * ci: Add checkpatch linter

  [ Philipp Rosenberger ]
  * Release PiControl v2.1.0

  [ Lino Sanfilippo ]
  * piControl: flat: add delay between analog input data requests

  [ Philipp Rosenberger ]
  * Release PiControl v2.1.1

  [ Lino Sanfilippo ]
  * Revert "piControl: remove useless io timer handling"

  [ Ramiro Gsponer ]
  * Release PiControl v2.1.2

  [ Nicolai Buchwitz ]
  * fix(deb): Use modules-load.d for module autoload

  [ Lino Sanfilippo ]
  * piControl: add padding bytes to picontrol_firmware_upload struct
  * Fix typo in manpage
  * piControl: set return value to 1 if firmware is already up to update
  * piControl: rename element in picontrol_firmware_upload struct
  * piControl: for firmware upload perform sanity checks as early as possible

  [ Thomas Böhler ]
  * Return info for address 0 with KB_GET_DEVICE_INFO
  * Use picontrol_write_device_info to avoid duplicated code
  * Release piControl v2.1.3
  * fix(deb): Remove empty description paragraph

 -- Thomas Böhler <t.boehler@kunbus.com>  Tue, 14 May 2024 09:58:43 +0200

picontrol-dkms (2.0.0-1+revpi12+1) bookworm; urgency=medium

  * Initial piControl debian package

 -- Lino Sanfilippo <l.sanfilippo@kunbus.com>  Fri, 1 Mar 2024 15:02:39 +0100
