)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"15f64da951f505335af5d573f5b5d660b9921bc9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8c3751b3_fac299d5","updated":"2025-09-12 03:32:55.000000000","message":"The patch series code is somewhat inconsistent. Antonio\u0027s patchest are feature-wide but not finished and this patch finishes all in one.\nHowever both libgpiod API versions are well supported and the speed is slightly worse in v2 emulation on v1 and better in v2. Test host RPi5, target STM32G4\n\nlibgpiod2 1.6.3-1+b3, OpenOCD without this patch series\n```\ndownloaded 131072 bytes in 3.378670s (37.885 KiB/s)\ndumped 131072 bytes in 4.458667s (28.708 KiB/s)\n```\n\nlibgpiod2 1.6.3-1+b3, v2 emulated on v1\n```\ndownloaded 131072 bytes in 3.490524s (36.671 KiB/s)\ndumped 131072 bytes in 4.561676s (28.060 KiB/s)\n```\n\nlibgpiod3 2.1.3-1~bpo12+1, native v2\n```\ndownloaded 131072 bytes in 3.105534s (41.217 KiB/s)\ndumped 131072 bytes in 4.181489s (30.611 KiB/s)\n```","commit_id":"e82fd3f5d68b1984ae829785759941eeee132188"}],"src/jtag/drivers/linuxgpiod.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"382981719c0f0f3359c8f9c23b1a51aa228a83f7","unresolved":true,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"\t/* remember stuff in case we need to reconfigure later */"},{"line_number":205,"context_line":"\tline_req-\u003echip \u003d chip;"},{"line_number":206,"context_line":"\tline_req-\u003ereq_cfg \u003d req_cfg;"},{"line_number":207,"context_line":"\tline_req-\u003eline_cfg \u003d line_cfg;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"\tflags |\u003d line_cfg-\u003eline_settings-\u003edrive;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"c3f950f8_32bafcbd","line":206,"range":{"start_line":206,"start_character":1,"end_line":206,"end_character":28},"updated":"2024-06-16 17:24:30.000000000","message":"req_cfg pointer is stored...","commit_id":"d9e506b293a61212d2bb6ad8ca168cb261ba0f13"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"15f64da951f505335af5d573f5b5d660b9921bc9","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"\t/* remember stuff in case we need to reconfigure later */"},{"line_number":205,"context_line":"\tline_req-\u003echip \u003d chip;"},{"line_number":206,"context_line":"\tline_req-\u003ereq_cfg \u003d req_cfg;"},{"line_number":207,"context_line":"\tline_req-\u003eline_cfg \u003d line_cfg;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"\tflags |\u003d line_cfg-\u003eline_settings-\u003edrive;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f0e15efd_019edb37","line":206,"range":{"start_line":206,"start_character":1,"end_line":206,"end_character":28},"in_reply_to":"c3f950f8_32bafcbd","updated":"2025-09-12 03:32:55.000000000","message":"Solved by allocating a new request config and copying *reg_cfg content to it.","commit_id":"d9e506b293a61212d2bb6ad8ca168cb261ba0f13"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"382981719c0f0f3359c8f9c23b1a51aa228a83f7","unresolved":true,"context_lines":[{"line_number":673,"context_line":""},{"line_number":674,"context_line":"\tgpiod_line_req[idx] \u003d gpiod_chip_request_lines(gpiod_chip[idx], req_cfg, gpiod_line_config[idx]);"},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"\tgpiod_request_config_free(req_cfg);"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"\tif (!gpiod_line_req[idx]) {"},{"line_number":679,"context_line":"\t\tLOG_ERROR(\"Error requesting gpio line %s\", adapter_gpio_get_name(idx));"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"ffb3b4a4_813917c8","line":676,"range":{"start_line":676,"start_character":27,"end_line":676,"end_character":34},"updated":"2024-06-16 17:24:30.000000000","message":"...however the struct is freed.\n\nResults in segment fault when emulating V2 on V1:\n```\nProgram received signal SIGSEGV, Segmentation fault.\n__GI_strnlen () at ../sysdeps/aarch64/strnlen.S:59\n59      ../sysdeps/aarch64/strnlen.S: No such file or directory.\n(gdb) bt\n#0  __GI_strnlen () at ../sysdeps/aarch64/strnlen.S:59\n#1  0x00007ffff7db6478 in __GI_strncpy (s1\u003d0x7fffffffe5fc \"\",\n    s2\u003d0x100000008 \u003cerror: Cannot access memory at address 0x100000008\u003e, n\u003d31)\n    at ./string/strncpy.c:29\n#2  0x00007ffff7f43604 in ?? () from /lib/aarch64-linux-gnu/libgpiod.so.2\n#3  0x00007ffff7f43b50 in gpiod_line_request ()\n   from /lib/aarch64-linux-gnu/libgpiod.so.2\n#4  0x00005555555cfe28 in gpiod_line_request_reconfigure_lines (\n    request\u003d0x555555a080d0, line_cfg\u003d0x555555a08090)\n    at ../src/jtag/drivers/linuxgpiod.c:268\n#5  0x00005555555cfefc in linuxgpiod_swdio_drive (is_output\u003d\u003coptimized out\u003e)\n    at ../src/jtag/drivers/linuxgpiod.c:436\n#6  0x00005555555bb9dc in bitbang_swd_read_reg (cmd\u003d\u003coptimized out\u003e,\n    value\u003d0x7fffffffe9dc, ap_delay_clk\u003d0) at ../src/jtag/drivers/bitbang.c:489\n```","commit_id":"d9e506b293a61212d2bb6ad8ca168cb261ba0f13"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"15f64da951f505335af5d573f5b5d660b9921bc9","unresolved":false,"context_lines":[{"line_number":673,"context_line":""},{"line_number":674,"context_line":"\tgpiod_line_req[idx] \u003d gpiod_chip_request_lines(gpiod_chip[idx], req_cfg, gpiod_line_config[idx]);"},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"\tgpiod_request_config_free(req_cfg);"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"\tif (!gpiod_line_req[idx]) {"},{"line_number":679,"context_line":"\t\tLOG_ERROR(\"Error requesting gpio line %s\", adapter_gpio_get_name(idx));"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"5556208b_4087a1e0","line":676,"range":{"start_line":676,"start_character":27,"end_line":676,"end_character":34},"in_reply_to":"5cb7dff7_d61d0cd1","updated":"2025-09-12 03:32:55.000000000","message":"Done","commit_id":"d9e506b293a61212d2bb6ad8ca168cb261ba0f13"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"28c7d3406c454a05e90024c6509d6d87397a2d15","unresolved":true,"context_lines":[{"line_number":673,"context_line":""},{"line_number":674,"context_line":"\tgpiod_line_req[idx] \u003d gpiod_chip_request_lines(gpiod_chip[idx], req_cfg, gpiod_line_config[idx]);"},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"\tgpiod_request_config_free(req_cfg);"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"\tif (!gpiod_line_req[idx]) {"},{"line_number":679,"context_line":"\t\tLOG_ERROR(\"Error requesting gpio line %s\", adapter_gpio_get_name(idx));"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"5cb7dff7_d61d0cd1","line":676,"range":{"start_line":676,"start_character":27,"end_line":676,"end_character":34},"in_reply_to":"ffb3b4a4_813917c8","updated":"2025-08-01 08:34:51.000000000","message":"Michael, any chance to get the problem fixed?","commit_id":"d9e506b293a61212d2bb6ad8ca168cb261ba0f13"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"15f64da951f505335af5d573f5b5d660b9921bc9","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"\trv \u003d calloc(sizeof(struct gpiod_line_settings), 1);"},{"line_number":55,"context_line":"\tif (!rv)"},{"line_number":56,"context_line":"\t\treturn NULL;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"\treturn rv;"},{"line_number":59,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"b87e58c8_f2dca661","line":56,"updated":"2025-09-12 03:32:55.000000000","message":"Missing LOG_ERRORs here and in 3 following places are added in\n9119: jtag: linuxgpiod: log memory allocation errors | https://review.openocd.org/c/openocd/+/9119","commit_id":"e82fd3f5d68b1984ae829785759941eeee132188"}]}
