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

Takashi Sakamoto posted 8 patches 1 year, 12 months ago
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
[PATCH v2 0/8] firewire: core: support legacy layout of configuration ROM for AV/C device
Posted by Takashi Sakamoto 1 year, 12 months ago
Hi,

This series of change is take 2 of my previous post[1].

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 v1 series:
* fix evaluation of uninitialized variable in 7th patch

[1] [PATCH 0/8] firewire: core: support legacy layout of configuration ROM
    for AV/C device
https://lore.kernel.org/lkml/20231220041806.39816-1-o-takashi@sakamocchi.jp/
[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
Re: [PATCH v2 0/8] firewire: core: support legacy layout of configuration ROM for AV/C device
Posted by Takashi Sakamoto 1 year, 12 months ago
On Thu, Dec 21, 2023 at 10:48:41PM +0900, Takashi Sakamoto wrote:
> Hi,
> 
> This series of change is take 2 of my previous post[1].
> 
> 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 v1 series:
> * fix evaluation of uninitialized variable in 7th patch
> 
> [1] [PATCH 0/8] firewire: core: support legacy layout of configuration ROM
>     for AV/C device
> https://lore.kernel.org/lkml/20231220041806.39816-1-o-takashi@sakamocchi.jp/
> [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

Applied the above patches to for-next branch[1]. Thanks for your reviewing.


[1] https://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git/log/?h=for-next

Takashi Sakamoto