[PATCH 0/8] firewire: core: support legacy layout of configuration ROM for AV/C device

From: Takashi Sakamoto
Date: Tue Dec 19 2023 - 23:18:23 EST


Hi,

This series of change is to update my previous post for RFC[1], and for
merge.

Current core function of Linux FireWire subsystem has support for legacy
layout of configuration ROM, described in annex of 1394TA document[2].
However, in a point of device attributes (e.g. nodes in sysfs), there
are differences between devices with the legacy and standard layout of
configuration ROM. The differences bring some inconveniences to users[3].
The series includes changes to solve them.

The series includes changes relevant to driver matching procedure and
notification to user space, thus could easily bring functional regression.
For safe, the series includes some KUnit applications to test the change.

However, backward incompatibility is inevitable due to change of modalias
for device corresponding to unit. As long as I investigated, any unit
drivers in kernel are not affected by the change. Additionally, less
applications in user space are not as well. I think we can be optimistic
to the regression.

Changes from RFC:
* rename file and KUnit tests so that they are related to device
attributes
* fix traverse failure when detecting textual descriptor
* remove redundant indication for CSR key type

[1] [RFC PATCH 0/8] firewire: core: support legacy layout of configuration
ROM for AV/C device
https://lore.kernel.org/lkml/20231217103012.41273-1-o-takashi@xxxxxxxxxxxxx/
[2] Configuration ROM for AV/C Devices 1.0 (December 12, 2000, 1394
Trading Association, TA Document 1999027)
https://web.archive.org/web/20210216003030/http://1394ta.org/wp-content/uploads/2015/07/1999027.pdf
[3] [PATCH] Fix missing sysfs vendor/model entries for some devices
https://sourceforge.net/p/linux1394/mailman/message/55802731/


Takashi Sakamoto (8):
firewire: core: adds constant qualifier for local helper functions
firewire: core: replace magic number with macro
firewire: test: add KUnit test for device attributes
firewire: test: add test of device attributes for simple AV/C device
firewire: test: add test of device attributes for legacy AV/C device
firewire: core: detect numeric model identifier for legacy layout of
configuration ROM
firewire: core: detect model name for legacy layout of configuration
ROM
firewire: core: change modalias of unit device with backward
incompatibility

drivers/firewire/.kunitconfig | 1 +
drivers/firewire/Kconfig | 16 ++
drivers/firewire/core-device.c | 127 +++++++++---
drivers/firewire/device-attribute-test.c | 251 +++++++++++++++++++++++
4 files changed, 368 insertions(+), 27 deletions(-)
create mode 100644 drivers/firewire/device-attribute-test.c

--
2.39.2