Skip to content

dts: wb6: add gpio line names - #114

Closed
KraPete wants to merge 7 commits into
dev/v5.10.yfrom
feature/52194-gpio-labels
Closed

dts: wb6: add gpio line names#114
KraPete wants to merge 7 commits into
dev/v5.10.yfrom
feature/52194-gpio-labels

Conversation

@KraPete

@KraPete KraPete commented Nov 23, 2022

Copy link
Copy Markdown
Contributor

No description provided.

@KraPete
KraPete requested review from evgeny-boger, vdromanov and webconn and removed request for webconn November 23, 2022 12:23
@KraPete
KraPete marked this pull request as ready for review November 23, 2022 12:23

@evgeny-boger evgeny-boger left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

label абсолютно всегда должны совпадать с существующими на WB7, потому что они становятся частью неизменного api.

Как минимум W1 UP не совпал. Надо перепроверить все.

@KraPete

KraPete commented Nov 23, 2022

Copy link
Copy Markdown
Contributor Author

Я копировал из WB7. Если не было в WB7, то писал название с сайта.

@KraPete

KraPete commented Nov 23, 2022

Copy link
Copy Markdown
Contributor Author

С W1-UP, кстати, просто сделали как получилось. Все названия через пробел, даже W2 UP ниже через пробел. А тут вылез тире. Потому я его и заменил.

@webconn webconn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сходу нашёл ещё несоответствий:

  • синтаксис как попало, где-то V_OUT, где-то 5Vout, нельзя так, если мы это публичным API затеяли
  • в WB7 есть RTC SCK (который должен был быть SCL, мы ж в I2C)
  • в WB7 есть Watchdog out, хотя в WB6 везде Watchdog input
  • в WB7 SPI на MOD4 обнозначен MOD4 SPI MOSI и т.п., в WB6 MOD3 MOSI

Кажется, нам стоит ввести какой-то источник правды об этом, желательно с автоматической проверкой, потому что проморгать тут что-то очень легко

Comment thread arch/arm/boot/dts/imx6ul-wirenboard61.dts Outdated
@webconn

webconn commented Nov 25, 2022

Copy link
Copy Markdown
Contributor

И, кстати, в источнике правды надо не только перечислить имена, но и написать правила их составления (хотя бы в общих чертах) и привести примеры неправильных (как минимум из того, что есть)

@KraPete

KraPete commented Nov 25, 2022

Copy link
Copy Markdown
Contributor Author

Сходу нашёл ещё несоответствий:

* синтаксис как попало, где-то `V_OUT`, где-то `5Vout`, нельзя так, если мы это публичным API затеяли

* в WB7 есть `RTC SCK` (который должен был быть `SCL`, мы ж в I2C)

* в WB7 есть `Watchdog out`, хотя в WB6 везде `Watchdog input`

* в WB7 SPI на MOD4 обнозначен `MOD4 SPI MOSI` и т.п., в WB6 `MOD3 MOSI`

Кажется, нам стоит ввести какой-то источник правды об этом, желательно с автоматической проверкой, потому что проморгать тут что-то очень легко

  1. Так уже было в WB7. Задачи менять названия не стояло. Мне надо их придумать?
  2. WB7 я не трогал, задача была "прописать названия для WB6".
  3. Ещё раз. Я спросил где названия, меня послали на сайт, там написано input.
  4. Поправлю

@webconn

webconn commented Nov 25, 2022

Copy link
Copy Markdown
Contributor

Давай сразу сделаем офигенно, раз уж на то пошло

@evgeny-boger

Copy link
Copy Markdown
Member

в WB7 есть Watchdog out, хотя в WB6 везде Watchdog input

ну потому что в вб6 кто-то переписывал просто со схемы, а в вб7 я подумал. Ну это же выход с точки зрения вб

в WB7 есть RTC SCK (который должен был быть SCL, мы ж в I2C)
можно поправить

С W1-UP, кстати, просто сделали как получилось. Все названия через пробел, даже W2 UP ниже через пробел. А тут вылез тире. Потому я его и заменил.

тогда заменить и там и там

синтаксис как попало, где-то V_OUT, где-то 5Vout, нельзя так, если мы это публичным API затеяли

оно так по-моему в gpio блоке в интерфейсе уже

* Watchdog input -> Watchdog out
* Add "SPI" to MOD SPI names
* 5Vout -> 5V_OUT as in wb-mqtt-gpio
* CAN_TX -> CAN TX, CAN_RX -> CAN RX
* PMIC_XXX -> PMIC XXX
* SODIMM:52 [NC[ -> SODIMM:52 [NC]
* MODX RTS -> MODX DE
* MODX SPI SS -> MODX SPI CS
@KraPete

KraPete commented Nov 29, 2022

Copy link
Copy Markdown
Contributor Author

Остались следующие вопросы:

  1. Не все названия в верхнем регистре. Надо ли все переводить?
    Вот список таких слов
Watchdog out
Status
Failsafe
Termination
Pushbutton
Wi-Fi
reserved
Backlight
microSD
eMMC
SoM

Можно оставить

Wi-Fi
microSD
eMMC
SoM

Остальные перевести в верхний регистр

  1. Названий с подчёркиваением почти нет, везде тире.
    Имеет смысл оставить V_OUT ON и 5V_OUT ON т.к. они уже так написаны в wb-mqtt-gpio. Остаётся SIM_SELECT. Предалагаю сделать SIM SELECT.

@webconn

webconn commented Nov 29, 2022

Copy link
Copy Markdown
Contributor

Можно оставить

Wi-Fi
microSD
eMMC
SoM

Остальные перевести в верхний регистр

Да давай уже все в верхний регистр, WIFI, MICROSD, EMMC, SOM, вряд ли кого-то смутит

2. Названий с подчёркиваением почти нет, везде тире.
   Имеет смысл оставить `V_OUT ON` и `5V_OUT ON` т.к. они уже так написаны в `wb-mqtt-gpio`. Остаётся `SIM_SELECT`. Предалагаю сделать `SIM SELECT`.

Мне нравится

@webconn

webconn commented Nov 30, 2022

Copy link
Copy Markdown
Contributor

По мотивам встречи сегодня: меняем DE обратно на RTS, потому что этим могли пользоваться, все остальные изменения (которые не касаются GPIO для пользователей) можно оставить

@webconn webconn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай всё оставшееся в верхний регистр переводить (всякие Status, Watchdog, Failsafe)

@KraPete

KraPete commented Dec 1, 2022

Copy link
Copy Markdown
Contributor Author

Давай всё оставшееся в верхний регистр переводить (всякие Status, Watchdog, Failsafe)

Решили же не трогать

@webconn

webconn commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Так нет же, мы решили не трогать новые придуманные изменения. Напомню контекст: нам важно было сохранить названия у ножек GPIO, до которых потенциально могли зачем-то дотянуться пользователи. Это касается в первую очередь ножек на модулях расширения (отсюда DE превратился обратно в RTS). GPIO наружу (A1-A4, D1) уже в порядке, подтяжка 1-Wire по идее используется только у нас внутри, 5Vout и прочие у нас в wb-mqtt-gpio называются через нижнее подчёркивание.

Всё то, что нужно для внутренних нужд, можно менять, не особо опасаясь за совместимость с чьим-то левым софтом, потому там можно сделать всё красиво (а это значит, как мы решили, переводить всё в верхний регистр).

@KraPete

KraPete commented Dec 5, 2022

Copy link
Copy Markdown
Contributor Author
  1. Перевел в верхний регистр "не GPIO".
  2. Eth1 RST -> SOM ETH1 RST. Тут не уверен, кажется, что забыли SOM?

@KraPete
KraPete requested a review from webconn December 5, 2022 06:05
Comment thread arch/arm/boot/dts/imx6ul-wirenboard65.dts Outdated
Comment thread arch/arm/boot/dts/imx6ul-wirenboard670.dts Outdated
Comment thread arch/arm/boot/dts/imx6ul-wirenboard670.dts Outdated
Comment thread arch/arm/boot/dts/imx6ul-wirenboard690.dts Outdated
Comment thread arch/arm/boot/dts/sun8i-r40-wirenboard-som-test.dts Outdated
Comment thread arch/arm/boot/dts/sun8i-r40-wirenboard72x.dtsi Outdated
Comment thread arch/arm/boot/dts/sun8i-r40-wirenboard72x.dtsi Outdated
"Wi-Fi ON", "GSM Status", "GSM PWRKEY", "GSM ON", /* 24 - 27 */
"A2 OUT", "A1 OUT", "PUSHBUTTON", "[NC]", /* 12 - 15 */
"[NC]", "[NC]", "[NC]", "WBMZ STATUS", /* 16 - 19 */
"USB0 ID", "WATHCDOG OUT", "[NC]", "[NC]", /* 20 - 23 */

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"USB0 ID", "WATHCDOG OUT", "[NC]", "[NC]", /* 20 - 23 */
"USB0 ID", "WATCHDOG OUT", "[NC]", "[NC]", /* 20 - 23 */

@KraPete
KraPete requested a review from webconn December 5, 2022 06:52
@webconn

webconn commented Dec 5, 2022

Copy link
Copy Markdown
Contributor

Кажется, это последнее

@KraPete

KraPete commented Dec 7, 2022

Copy link
Copy Markdown
Contributor Author

Rebase #116

@KraPete KraPete closed this Dec 7, 2022
@KraPete
KraPete deleted the feature/52194-gpio-labels branch December 7, 2022 05:17
taraant pushed a commit that referenced this pull request Apr 14, 2026
[ Upstream commit ce8fe5287b87e24e225c342f3b0ec04f0b3680fe ]

platform_device_unregister() may still want to use the registered clks
during runtime resume callback.

Note that there is a commit d82d530 ("net: macb: fix use after free
on rmmod") that addressed the similar problem of clk vs platform device
unregistration but just moved the bug to another place.

Save the pointers to clks into local variables for reuse after platform
device is unregistered.

BUG: KASAN: use-after-free in clk_prepare+0x5a/0x60
Read of size 8 at addr ffff888104f85e00 by task modprobe/597

CPU: 2 PID: 597 Comm: modprobe Not tainted 6.1.164+ #114
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.1-0-g3208b098f51a-prebuilt.qemu.org 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x8d/0xba
 print_report+0x17f/0x496
 kasan_report+0xd9/0x180
 clk_prepare+0x5a/0x60
 macb_runtime_resume+0x13d/0x410 [macb]
 pm_generic_runtime_resume+0x97/0xd0
 __rpm_callback+0xc8/0x4d0
 rpm_callback+0xf6/0x230
 rpm_resume+0xeeb/0x1a70
 __pm_runtime_resume+0xb4/0x170
 bus_remove_device+0x2e3/0x4b0
 device_del+0x5b3/0xdc0
 platform_device_del+0x4e/0x280
 platform_device_unregister+0x11/0x50
 pci_device_remove+0xae/0x210
 device_remove+0xcb/0x180
 device_release_driver_internal+0x529/0x770
 driver_detach+0xd4/0x1a0
 bus_remove_driver+0x135/0x260
 driver_unregister+0x72/0xb0
 pci_unregister_driver+0x26/0x220
 __do_sys_delete_module+0x32e/0x550
 do_syscall_64+0x35/0x80
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8
 </TASK>

Allocated by task 519:
 kasan_save_stack+0x2c/0x50
 kasan_set_track+0x21/0x30
 __kasan_kmalloc+0x8e/0x90
 __clk_register+0x458/0x2890
 clk_hw_register+0x1a/0x60
 __clk_hw_register_fixed_rate+0x255/0x410
 clk_register_fixed_rate+0x3c/0xa0
 macb_probe+0x1d8/0x42e [macb_pci]
 local_pci_probe+0xd7/0x190
 pci_device_probe+0x252/0x600
 really_probe+0x255/0x7f0
 __driver_probe_device+0x1ee/0x330
 driver_probe_device+0x4c/0x1f0
 __driver_attach+0x1df/0x4e0
 bus_for_each_dev+0x15d/0x1f0
 bus_add_driver+0x486/0x5e0
 driver_register+0x23a/0x3d0
 do_one_initcall+0xfd/0x4d0
 do_init_module+0x18b/0x5a0
 load_module+0x5663/0x7950
 __do_sys_finit_module+0x101/0x180
 do_syscall_64+0x35/0x80
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8

Freed by task 597:
 kasan_save_stack+0x2c/0x50
 kasan_set_track+0x21/0x30
 kasan_save_free_info+0x2a/0x50
 __kasan_slab_free+0x106/0x180
 __kmem_cache_free+0xbc/0x320
 clk_unregister+0x6de/0x8d0
 macb_remove+0x73/0xc0 [macb_pci]
 pci_device_remove+0xae/0x210
 device_remove+0xcb/0x180
 device_release_driver_internal+0x529/0x770
 driver_detach+0xd4/0x1a0
 bus_remove_driver+0x135/0x260
 driver_unregister+0x72/0xb0
 pci_unregister_driver+0x26/0x220
 __do_sys_delete_module+0x32e/0x550
 do_syscall_64+0x35/0x80
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8

Fixes: d82d530 ("net: macb: fix use after free on rmmod")
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
Link: https://patch.msgid.link/20260330184542.626619-1-pchelkin@ispras.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants