Could this be expressed in a /proc structure of files and directories? Gregg Wonderly > On Apr 24, 2023, at 9:41 PM, Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote: > > > >> -----Original Message----- >> From: Jakub Kicinski <kuba@xxxxxxxxxx> >> Sent: Friday, April 21, 2023 10:54 PM >> To: Kalle Valo <kvalo@xxxxxxxxxx> >> Cc: netdev@xxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx >> Subject: Re: pull-request: wireless-next-2023-04-21 >> >> On Fri, 21 Apr 2023 10:47:26 +0000 (UTC) Kalle Valo wrote: >>> .../net/wireless/realtek/rtw89/rtw8851b_table.c | 14824 +++++++++++++++++++ >>> .../net/wireless/realtek/rtw89/rtw8851b_table.h | 21 + >> >> We should load these like FW, see the proposal outlined in >> https://lore.kernel.org/all/20221116222339.54052a83@xxxxxxxxxx/ >> for example. Would that not work? >> > > That would work, and I think struct fields addr and val should be __le32. > And, I have some draft ideas to handle some situations we will face: > > 1. upgrading to newer driver without built-in tables will break user space > if people don't download table file from linux-firmware.git. > Maybe, we can keep the built-in tables and support loading from files > for couple years at least. > > 2. c code can do changes along with these tables, so driver should do some > compatibility things for register version. > > 3. The file contains not only simple registers tables but also TX power tables > and power tracking tables. These tables are multiple dimensions, and > dimensions can be changed due to more channels are supported, for example. > To be backward compatible, we need to add conversion function from > v1, v2 ... to current. > > I will think further to make this change smooth. > > Ping-Ke >