Subject: [PATCH v7 0/5] Add support for QMC HDLC

From: Herve Codina <[email-masked]>
Date: Thu, 7 Mar 2024 12:39:03 +0100

Hi,

This series introduces the QMC HDLC support.

Patches were previously sent as part of a full feature series and were
previously reviewed in that context:
"Add support for QMC HDLC, framer infrastructure and PEF2256 framer" [1]

In order to ease the merge, the full feature series has been split and
needed parts were merged in v6.8-rc1:
 - "Prepare the PowerQUICC QMC and TSA for the HDLC QMC driver" [2]
 - "Add support for framer infrastructure and PEF2256 framer" [3]

This series contains patches related to the QMC HDLC part (QMC HDLC
driver):
 - Introduce the QMC HDLC driver (patches 1 and 2)
 - Add timeslots change support in QMC HDLC (patch 3)
 - Add framer support as a framer consumer in QMC HDLC (patch 4)

Compare to the original full feature series, a modification was done on
patch 3 in order to use a coherent prefix in the commit title.

I kept the patches unsquashed as they were previously sent and reviewed.
Of course, I can squash them if needed.

Compared to the previous iteration:
  https://lore.kernel.org/linux-kernel/[email-masked]/
this v7 series mainly:
- Rename a variable.
- Fix reverse xmas tree declarations.
- Add 'Acked-by' tag.

Best regards,
Hervé

[1]: https://lore.kernel.org/linux-kernel/[email-masked]/
[2]: https://lore.kernel.org/linux-kernel/[email-masked]/
[3]: https://lore.kernel.org/linux-kernel/[email-masked]/

Changes v6 -> v7
  - Patch 1
    Fix reverse xmas tree declarations splitting declaration and
    initialization.

  - Patch 2
    No changes

  - Patch 3
    Add 'Acked-by: Yury Norov <[email-masked]>'

  - Patch 4
    Rename array32 variable to slot_array.

  - Patch 5
    No changes

Changes v5 -> v6
  - Patch 1
    Add missing header file inclusion.
    Rework loop in qmc_hdlc_open() error handler.
    Add 'Reviewed-by: Andy Shevchenko <[email-masked]>'

  - Patch 2
    No changes.

  - Patch 3
    Avoid breaking API calls in kernel-doc to improve readability.
    Remove Andy's credit. Keep only his signed-off-by.

  - Patch 4 and 5
    Add	'Reviewed-by: Andy Shevchenko <[email-masked]>'.

Changes v4 -> v5
  - Patch 1
    Update QMC_HDLC_RX_ERROR_FLAGS to improve readability.
    Display an error message after releasing resources instead of
    before.
    Use 'struct device *dev' in probe().
    Use dev_err_probe() in probe().
    Do not print a message on -ENOMEM.
    Use guard() and scoped_guard().

  - Patch 3
    Use '(). See' constructing in kernel-doc instead of '() (See ...'
    Add 'Co-developed-by: Herve Codina <[email-masked]>'

  - Patch 4
    Use 'struct device *dev' in probe().
    Use dev_err_probe() in probe().
    Use '%64pb' instead of '%*pb' in printk formats.

  - Patch 5
    Use 'struct device *dev' in probe().
    Use guard()

Changes v3 -> v4
  - Patch 1
    Remove of.h and of_platform.h includes, add mod_devicetable.h.
    Add a blank line in the includes list.

  - Path 2
    No changes.

  - v3 patches 3 and 4 removed

  - Patch 3 (new patch in v4)
    Introduce bitmap_{scatter,gather}() based on the original patch done
    by Andy Shevchenko.
    Address comments already done on the original patch:
    https://lore.kernel.org/lkml/[email-masked]/
      - Removed the returned values.
      - Used 'unsigned int' for all indexes.
      - Added a 'visual' description of the operations in kernel-doc.
      - Described the relationship between bitmap_scatter() and
        bitmap_gather().
      - Moved bitmap_{scatter,gather}() to the bitmap.h file.
      - Improved bitmap_{scatter,gather}() test.
      - Reworked the commit log.

  - Patch 4 (v3 patch 5)
    Use bitmap_{scatter,gather}()

  - Patches 5 (v3 patch 6)
    No changes.

Changes v2 -> v3
  - Patch 1
    Remove 'inline' function specifier from .c file.
    Fix a bug introduced when added WARN_ONCE(). The warn condition must
    be desc->skb (descriptor used) instead of !desc->skb.
    Remove a lock/unlock section locking the entire qmc_hdlc_xmit()
    function.

  - Patch 5
    Use bitmap_from_u64() everywhere instead of bitmap_from_arr32() and
    bitmap_from_arr64().

Changes v1 -> v2
  - Patch 1
    Use the same qmc_hdlc initialisation in qmc_hcld_recv_complete()
    than the one present in qmc_hcld_xmit_complete().
    Use WARN_ONCE()

  - Patch 3 (new patch in v2)
    Make bitmap_onto() available to users

  - Patch 4 (new patch in v2)
    Introduce bitmap_off()

  - Patch 5 (patch 3 in v1)
    Use bitmap_*() functions

  - Patch 6 (patch 4 in v1)
    No changes

Changes compare to the full feature series:
  - Patch 3
    Use 'net: wan: fsl_qmc_hdlc:' as commit title prefix

Patches extracted:
  - Patch 1 : full feature series patch 7
  - Patch 2 : full feature series patch 8
  - Patch 3 : full feature series patch 20
  - Patch 4 : full feature series patch 27

Andy Shevchenko (1):
  lib/bitmap: Introduce bitmap_scatter() and bitmap_gather() helpers

Herve Codina (4):
  net: wan: Add support for QMC HDLC
  MAINTAINERS: Add the Freescale QMC HDLC driver entry
  net: wan: fsl_qmc_hdlc: Add runtime timeslots changes support
  net: wan: fsl_qmc_hdlc: Add framer support

 MAINTAINERS                    |   7 +
 drivers/net/wan/Kconfig        |  12 +
 drivers/net/wan/Makefile       |   1 +
 drivers/net/wan/fsl_qmc_hdlc.c | 797 +++++++++++++++++++++++++++++++++
 include/linux/bitmap.h         | 101 +++++
 lib/test_bitmap.c              |  42 ++
 6 files changed, 960 insertions(+)
 create mode 100644 drivers/net/wan/fsl_qmc_hdlc.c

-- 
2.43.0