↑back Search ←Prev date Next date→ Show only urls | (Click on time to select a line by its url) |
Who | What | When |
---|---|---|
*** | lyakh_ has joined #linux-media | [00:41] |
lyakh has quit IRC (Ping timeout: 480 seconds) | [00:49] | |
....................... (idle for 1h51mn) | ||
eelstrebor has quit IRC (Quit: Ex-Chat) | [02:40] | |
BrianG61UK has quit IRC (Ping timeout: 480 seconds)
BrianG61UK_ has quit IRC (Ping timeout: 480 seconds) | [02:45] | |
BrianG61UK has joined #linux-media
BrianG61UK_ has joined #linux-media | [02:59] | |
............................... (idle for 2h32mn) | ||
jm_h has joined #linux-media
javierm has quit IRC (Quit: leaving) javierm has joined #linux-media | [05:34] | |
........ (idle for 37mn) | ||
[LOGGER] starts logging #linux-media at Fri Oct 01 06:14:45 2021
[LOGGER] has joined #linux-media | [06:14] | |
.... (idle for 16mn) | ||
paulk has quit IRC (Ping timeout: 480 seconds)
eballetbo has quit IRC (Quit: Connection closed) eballetbo has joined #linux-media eballetbo has quit IRC () | [06:30] | |
........ (idle for 36mn) | ||
paulk has joined #linux-media | [07:07] | |
svarbanov has joined #linux-media | [07:20] | |
.... (idle for 15mn) | ||
ao2 has joined #linux-media | [07:35] | |
.................. (idle for 1h27mn) | ||
mpazdan has quit IRC (Ping timeout: 480 seconds)
djrscally has joined #linux-media | [09:02] | |
.......... (idle for 48mn) | ||
Whoopie has joined #linux-media | [09:54] | |
eballetbo has joined #linux-media
eballetbo has quit IRC () | [10:06] | |
..... (idle for 20mn) | ||
sailus | ribalda: Could you also fix the driver name in the ImgU patches, and then resend?
Please also see my other reply. The patches otherwise seem fine. | [10:26] |
........ (idle for 39mn) | ||
ribalda | ok. I am working in the bytesperline | [11:05] |
..... (idle for 23mn) | ||
pinchartl: mchehab: Did you have time to look at: https://patchwork.linuxtv.org/project/linux-media/patch/20210917201521.592586-1-ribalda@chromium.org/ https://patchwork.linuxtv.org/project/linux-media/patch/20210917114930.47261-1-colin.king@canonical.com/ ? | [11:28] | |
pinchartl | not yet | [11:32] |
......... (idle for 40mn) | ||
mchehab | ribalda: on a very quick look, patch looks ok, although I don't like very much to use kmemdup for copying strings... kstrdup() is generally better and would avoid things like:
+ /* Make sure there is a terminating null byte */ + map->name[sizeof(xmap->name) - 1] = '\0'; | [12:12] |
..... (idle for 22mn) | ||
tomba | I have a bridge device with 2 tx and 4 rx ports. I'd like to split it it to 2 tx subdevs, a mux subdev and 4 rx subdevs. I'm having some trouble understanding how I need to register the subdevs and how to hook up to the async notification mechanism. | [12:34] |
pinchartl | that's similar to the adv748x, except that it has no subdevs connected to its inputs
jmondi: ^^ tomba: what have you tried so far ? | [12:35] |
tomba | Well, I haven't tried with 4 rx subdevs yet, only with 2 tx subdevs and a "main" subdev. I now create the tx subdevs with v4l2_async_register_subdev. Then using the v4l2_subdev_internal_ops.registered, I create the main subdev with v4l2_device_register_subdev. This I can get working, and I get a pipeline, which ends at the main subdev.
If, when creating the main subdev, I try to register the async notifier, I get a deadlock. Let me check what it was. yes, it's about list_lock | [12:40] |
*** | neg has joined #linux-media | [12:44] |
pinchartl | have you looked at how rcsi2_parse_dt() does it ?
it calls v4l2_async_subdev_notifier_register() and is itself a subdev registered with v4l2_async_register_subdev() | [12:44] |
tomba | but is there an internal subdev after the rcar csi2? | [12:51] |
pinchartl | no there isn't
so I'm thinking | [12:52] |
tomba | I presume I could create all the subdevs here using the async mechanism, and implement the notifiers between the internal subdevs. In other words, handle it like the subdevs would be in fully separate drivers. But that's quite a bit of boilerplate. | [12:53] |
pinchartl | can you create a subdev async notifier (v4l2_async_notifier_cleanup()) at probe time of your device
to match all the connected inputs | [12:53] |
tomba | what subdev would I use for that? | [12:53] |
pinchartl | you can register it with one of the two output subdevs
probably looking at which one(s) are actually connected | [12:53] |
neg | For the R-Car case with ADV7482 we have three drivers involved rcar-vin, rcar-csi2 and adv7482. Here rcar-vin is the simple one and registers a traditional async notifer | [12:54] |
pinchartl | but you can start by hardcoding it to the first one, I wouldn't expect the second one to be connected without the first one being also connected
then you register your two output subdevs with v4l2_async_register_subdev() and create the internal subdevs (and the links) when the output subdevs are registered | [12:54] |
neg | In the rcar-vin notfier only the rcar-csi2 subdev is entered | [12:55] |
pinchartl | (I meant v4l2_async_subdev_notifier_register, not v4l2_async_notifier_cleanup)
neg: with VIn, we have both a device that creates multiple subdevs (adv748x) and a device that uses an subdev async notifier (v4l2_async_subdev_notifier_register()) (csi2), but we don't have a device that does both, right ? | [12:56] |
neg | Then rcar-csi2 that sits between the other two as a CSI-2 to parallel bridge register a subnotifer with the adv7482 in it. But here it gets tricky as the adv7482 register multiple subdevices the subnotifer in rcar-csi2 needs to look at endpoints and not device nodes
pinchartl: correct And last the adv7482 register multiple subdevices, but modfies the registration so that each subdev is registerd using endpoint instead of device node. This works as the adv7482 has a 1:1 mapping of endpoints to subdevices And that all adv7482 subdevices live in the same media graph. If for example there where two downstream VIN instances in two different media-graph domains this design don't work. And due to this the rcar-vin driver is overly complex as it for no real good reason force all VIN instances to be part of the same graph ;-) | [12:57] |
pinchartl | there's been calls to have a single media graph for the whole system :-) | [13:05] |
tomba | pinchartl: well, got it probing fine with the way you suggested, although I have only one TX subdev in use. Feels quite hacky, though =) | [13:11] |
pinchartl | I can't disagree with that comment :-) | [13:11] |
neg | pinchartl: That would solve one of the complexities and I think it's a good idea. The second problem would be to allow for a single subdev to be registerd in more then one (sub)notifer | [13:11] |
tomba | lets see what happens when I add the RX subdevs... | [13:11] |
pinchartl | with an infinite amount of time, I'd rewrite v4l2 async from scratch
(in a way that would also supersede the dreadful component framework) | [13:12] |
neg | pinchartl: I was just about to ask about the component framework, is that even more fun? | [13:13] |
pinchartl | it's worse yes | [13:13] |
*** | eelstrebor has joined #linux-media | [13:14] |
pinchartl | oh no. there's an update to Qt in gentoo... | [13:14] |
jmondi | sorry, was having lunch, I'll read the backlog | [13:14] |
pinchartl: enjoy emerging | [13:23] | |
tomba: can the 4 rxes be freely routed to any of txes ?
as the adv748x which features 8 analog inputs is modeled as a single subdev (for the analog input part) with 8 sink pads and one source | [13:28] | |
tomba | jmondi: yes, they can be freely routed. I currently have the whole device as a single subdev, and I would like to keep it like that, but the async notifier mechanism doesn't work if a device has two tx ports. | [13:30] |
jmondi | tomba: is your receiver driver to which the txes are connected to matching on endpoints ? | [13:32] |
tomba | yes | [13:33] |
*** | mugnierb has joined #linux-media | [13:36] |
jmondi | so you could theoretcially have one subdev with two source pads, but that would make handling the routing part akward, so there's no point in that :) | [13:37] |
pinchartl | jmondi: even when matching on endpoints, a given subdev can be acquired once only
so if you have two independent CSI-2 RX instances matching on endpoints and a single subdev for the CSI-2 TX with two source pads you can't acquire the TX subdev from both RX instances | [13:40] |
jmondi | ah right, v4l2_device_register_subdev() is in the async math call path
s/math/match | [13:43] |
tomba | jmondi: routing works fine | [13:52] |
pinchartl | jmondi: sometimes v4l2-async feels like it's been written on s/match/meth/ | [13:53] |
javierm | pinchartl: hahaha. I found its documentation in Documentation/driver-api/media/v4l2-subdev.rst superb though | [13:55] |
jmondi | tomba: I meant with a single "tx" subdev with two sources. Modelling the connection with the 4 rxes in a separate subdev would have beek awkward
pinchartl: :) | [13:55] |
pinchartl | so far I managed to survive V4L2 with only tea and chocolate. I hope it will continue that way | [13:56] |
tomba | there's no shame in having to use hard drugs when dealing with other people's code | [14:05] |
pinchartl | there's shame in having to use code review as an excuse to use hard drugs though | [14:06] |
..... (idle for 21mn) | ||
ndufresne | jernej: thinking out loud here, but in "media: cedrus: Fix SUNXI tile size calculation", I have this second thought that maybe I should have done that in try_fmt ? | [14:27] |
*** | svarbanov has quit IRC (Ping timeout: 480 seconds)
mugnierb has quit IRC (Quit: WeeChat 2.8) mugnierb has joined #linux-media | [14:32] |
jernej | ndufresne: cedrus_prepare_format() (where you fixed it) is called by try_fmt, so all good? | [14:43] |
ndufresne | jernej: I mean, perhaps I should have fixed the height to its padded size globally, it would less error prone
otherwise, if there is other code doing computation of buffer sizes from the height, it may need to do this roundup again I think locally the patch is good, but I realize I haven't reviewed the code around (was a bit too focus on one thing) | [14:48] |
jernej | I don't think this calculation is done anywhere else | [14:50] |
ndufresne | ok then | [14:50] |
...... (idle for 26mn) | ||
pinchartl | jmondi: Qt upgrade complete :-) | [15:16] |
....... (idle for 33mn) | ||
jmondi | pinchartl: just took 2 hr :) | [15:49] |
pinchartl | would have been worse if qtwebengine had to be upgraded too. that one typically takes 6-7h | [15:51] |
*** | paulk has quit IRC (Ping timeout: 480 seconds) | [16:04] |
......... (idle for 41mn) | ||
paulk has joined #linux-media
BrianG61UK_ has quit IRC (Read error: Connection reset by peer) | [16:45] | |
svarbanov has joined #linux-media
BrianG61UK has quit IRC (Read error: Connection reset by peer) mpazdan has joined #linux-media | [16:53] | |
mpazdan has quit IRC (Ping timeout: 480 seconds)
gouchi has joined #linux-media | [17:02] | |
mpazdan has joined #linux-media | [17:15] | |
.......................... (idle for 2h9mn) | ||
mpazdan has quit IRC (Ping timeout: 480 seconds) | [19:24] | |
........... (idle for 54mn) | ||
mpazdan has joined #linux-media | [20:18] | |
...... (idle for 28mn) | ||
swegener has quit IRC (Quit: leaving)
swegener has joined #linux-media | [20:46] | |
....... (idle for 33mn) | ||
svarbanov has quit IRC (Ping timeout: 480 seconds) | [21:19] | |
mpazdan has quit IRC (Ping timeout: 480 seconds)
svarbanov has joined #linux-media | [21:30] | |
.... (idle for 16mn) | ||
jm_h has quit IRC (Remote host closed the connection) | [21:48] | |
gouchi has quit IRC (Remote host closed the connection)
ao2 has quit IRC (Quit: Leaving) | [21:53] | |
...... (idle for 29mn) | ||
BrianG61UK has joined #linux-media
BrianG61UK_ has joined #linux-media | [22:22] | |
.... (idle for 17mn) | ||
djrscally has quit IRC (Quit: Konversation terminated!) | [22:41] | |
...... (idle for 27mn) | ||
paulk1 has joined #linux-media
paulk has quit IRC (Ping timeout: 480 seconds) | [23:08] | |
......... (idle for 41mn) | ||
eelstrebor has quit IRC (Read error: Connection reset by peer)
paulk1 has quit IRC (Ping timeout: 480 seconds) eelstrebor has joined #linux-media | [23:50] |
↑back Search ←Prev date Next date→ Show only urls | (Click on time to select a line by its url) |