<!-- Some styling for better description lists --><style type='text/css'>dt { font-weight: bold;float: left;display:inline;margin-right: 1em} dd { display:block; margin-left: 2em}</style>

   mchehab: hi all
   syoung: helllo
   hverkuil: hi!
   sailus: Hello!
   syoung: hello even :)
   pinchartl: hi
   hverkuil: We're complete.
   syoung: Yesterday I sent a pull request for v4.15, but I can't find it in patchwork. Did it get lost?
   hverkuil: I don't have anything special. Basically waiting for rc1 to be released and merged in our master.
   sailus: <u>syoung</u>: Can you see it in the list archive?
   syoung: https://www.mail-archive.com/linux-media@vger.kernel.org/msg122193.html
   hverkuil: W.r.t. the request API I am waiting for Alexandre to release a first beta.
   mchehab: <u>syoung</u>: did you use git request-pull?
   pinchartl: <u>mchehab</u>: do you plan to merge v4.14 in linuxtv master ?
   mchehab: no
   pinchartl: we're currently av -rc6
   <br> s/av/at/
   <br> why not ?
   mchehab: I'll merge v4.15-rc1 when released
   syoung: <u>mchehab</u>: I did
   mchehab: I try to avoid having too many merges, from upstream
   <br> so, I only merge back from upstream when needed
   sailus: <u>mchehab</u>: I'm looking forward to that. I'd have a pull request to send, once we have rc1. :-)
   pinchartl: there's a runtime PM breakage that was fixed after -rc6 (in -rc8 if I recall correctly)
   <br> if you merged v4.14 I could already prepare pull requests
   mchehab: <u>pinchartl</u>: if Linus won't release -rc1 this week, feel free to ping me on Monday
   <br> from -next status:
   <br> Non-merge commits (relative to Linus' tree): 847
   <br> 874 files changed, 20738 insertions(+), 7941 deletions(-)
   <br> I suspect that he's about to relase -rc1 anytime soon
   <br> s/relase/release/
   hverkuil: Anything I should review? I think I'm fairly up to date.
   sailus: I've had some time to work on refcounting on DVB. Seems there are quite a few changes in the framework side needed, let's see how this turns out to be in drivers. I have rtl28xxu stick which uses dvb-udb-v2.
   <br> That's work in progress, no patches to review yet.
   pinchartl: speaking of reviews, I have one for mchehab
   mchehab: <u>syoung</u>: try to do bounce the e-mail to patchwork@linuxtv.org
   pinchartl: <u>mchehab</u>: https://www.spinics.net/lists/linux-renesas-soc/msg20256.html
   <br> ("[PATCH/RFC 0/2] V4L2: Handle the race condition between device access and unbind")
   hverkuil: <u>sailus</u>: if you need some more dvb hardware, let me know. I have some dvb+v4l2+radio sticks that might be of interest to you.
   syoung: <u>mchehab</u>: Message bounced.
   <br> (said mutt)
   mchehab: <u>pinchartl</u>: I'll take a look
   syoung: <u>mchehab</u>: I did "git request-pull linuxtv/master git://linuxtv.org/syoung/media_tree.git for-v4.15e &gt; pr" then inserted the file pr into an email and wrote a paragraph above it.
   sailus: <u>hverkuil</u>: I have also an em28xx stick I got from Mike.
   hverkuil: <u>syoung</u>: same for you: if you need some DVB hardware (e.g. PCI(e) cards) I can mail you some.
   sailus: <u>hverkuil</u>: I'm less concerned with PCI devices as they're not hot-unpluggable.
   mchehab: <u>syoung</u>: it didn't get
   sailus: I'd presume that if I get a single driver working nicely, converting more wouldn't be hard. There aren't that many DVB drivers that support MC.
   mchehab: let me see what's happening
   syoung: <u>hverkuil</u>: any dvb hardware that needs work would be of interest, I much prefer working on drivers when I have the hardware
   mchehab: $ cat /tmp/git_pull | /usr/local/patchwork/patchwork/bin/parsemail.sh
   <br> not a git pull request
   <br> there's something that you did on it that causes parsemail to not accept it as a pull request
   <br> basically, it doesn't fit at GIT regex expressions there
   <br> def find_pull_request(content):
   syoung: <u>mchehab</u>: postfix said: Nov 23 12:13:39 gofer.mess.org postfix/smtp[28362]: 9B7EB60A51: to=&lt;patchwork@linuxtv.org&gt;, relay=www.linuxtv.org[130.149.80.248]:25, delay=1.5, delays=0.17/0.15/0.18/0.96, dsn=2.0.0, status=sent (250 OK id=1eHqNu-00053U-Ef)
   mchehab: git_re = re.compile('^The following changes since commit.*' +
   <br> '^are available in the git repository at:\n'
   <br> '^\s*([\S]+://[^\n]+)$',
   <br> re.DOTALL | re.MULTILINE)
   <br> match = git_re.search(content)
   <br> if match:
   <br> return match.group(1)
   <br> print "not a git pull request"
   <br> "the Git rep"
   syoung: ok, let me check
   mchehab: "G" is in uppercase
   <br> did you change that?
   <br> or git-pull is generating an uppercase G on your machine?
   syoung: right, git request-pull is doing that for me. Maybe it's seomething in the git version on fedora 27?
   mchehab: gah, it is using uppercase
   <br> ok, I fixed the regex to accept both
   <br> it got accepted now:
   <br> https://patchwork.linuxtv.org/patch/45541/
   syoung: https://github.com/git/git/commit/e66d7c37a5f123f1dcede06ac0e11f9254c3ef46
   <br> <u>mchehab</u>: great, thanks!
   pinchartl: <u>mchehab</u>: the patch series I pointed you to is an RFC. I'd like to work on a v2 next week, so I'd appreciate your oppinion
   <br> to make sure we agree on the direction
   mchehab: ok
   <br> <u>syoung</u>: btw patchwork upstream also seems broken: https://github.com/getpatchwork/patchwork/blob/master/patchwork/parser.py
   <br> https://github.com/getpatchwork/patchwork/blob/master/patchwork/parser.py#L829
   <br> <u>pinchartl</u>: on a real quick look on your RFC, I would love to see it on a USB driver, in order to check how it would compare with the current solutions out there
   pinchartl: which solution(s) ?
   <br> USB is slightly different, as some of the race conditions are handled by the USB core
   mchehab: based on USB notification
   pinchartl: USB notification ? do you mean USB disconnect ?
   mchehab: I mean, if we'll be adding support for this at the core, it should work for all hotplug devices
   <br> yes
   pinchartl: the USB driver .disconnect() method is the equivalent of the platform driver .remove() method
   <br> I'm not sure to see what your concern is
   mchehab: what I meant to say is that it is easy to check if hotplug is ok with USB hardware
   <br> if we're moving the unplug logic to the core, that should be simplifying the code there
   pinchartl: I'll make sure to explain what drivers still need to do
   mchehab: also, it is easier to test it on USB
   pinchartl: if you find physical unplug easier to test than sysfs unbind, sure
   <br> but I find it easier to test using sysfs unbind
   mchehab: I find easier to use a hardware that everyone has
   pinchartl: as you can script the test and reproduce it without involving manual unplug
   mchehab: and with users has testing hot unplug for a long time
   pinchartl: I believe the uvcvideo is safe already due to a combination of race condition handling by the USB core and careful resource management in the driver. the RFC patch series isn't needed for that driver
   mchehab: if I understood it right, then it is just adding an extra serialization layer at the core that only a few drivers will really benefit from it
   pinchartl: it applies to all platform devices at least
   mchehab: if that's only need for a subset of the drivers, then the logic there should be enabled only for those subset of drivers... e. g. the logic should, for example, be checking if access_refcount is not NULL
   <br> sorry, access_refcount is not a callback
   <br> anyway, if only platform drivers will use, you should likely have something to enable/disable the extra code
   pinchartl: I'm actually considering moving that code to the device core as it applies to all drivers that have device nodes, but I'm not sure that will be feasible
   <br> it won't hurt other devices
   <br> it applies to I2C and SPI as well at least
   <br> and PCI too
   sailus: <u>pinchartl</u>: Which RFC?
   pinchartl: <u>sailus</u>: https://www.spinics.net/lists/linux-renesas-soc/msg20256.html
   sailus: Btw. this discussion would be better on #v4l. Just my opinion.
   mchehab: moving something like that at device core makes sense
   pinchartl: <u>sailus</u>: agreed
   <br> anyway, I'll make sure to explain the issues in the next version
   mchehab: please c/c Greg on it, as he's maintaining driver core
   <br> it probably makes sense to c/c USB ML
   <br> I guess there isn't any list specific for driver's core, so maybe c/c LKML
   <br> anything else for today's meeting?
   hverkuil: not from me
   pinchartl: not from me either
   mchehab: ok, thanks for the meeting
   <br> <u>pinchartl</u>: with regards to the RFC, just wrote an e-mail with my PoV
   <br> maybe hverkuil could take a look on it as well, as he added V4L2 core support for USB hot unplug back in 2009
   <br> commit ae6cfaace120f4330715b56265ce0e4a710e1276
   <br> <u>Author</u>: Hans Verkuil &lt;hverkuil@xs4all.nl&gt;
   <br> <u>Date</u>:   Sat Mar 14 08:28:45 2009 -0300
   pinchartl: <u>mchehab</u>: thank you
   mchehab: anytime
   pinchartl: I wasn't aware of that patch
   <br> unsurprisingly it looks broken, like all hotplug handling code in V4L2 :-)
   <br> but that's fine, we'll fix it
   mchehab: hotplug is hard :-)
   <br> i mean: doing it right is hard
   <br> i suspect that the only way to really avoid race issues on disconnect is to implement it at driver's core
   pinchartl: no, I think it can be implemented in subsystems, but then there will be code duplication
   mchehab: I'm not so sure... having multiple spinlocks can be a problem
   <br> think, for example, on a v4l+dvb+rc+cec driver handling a disconnect... if every subsystem has its own spinlock, it will end by having race issues
   <br> my guts tell that either the lock should be at the driver or at the driver core
   syoung: actually I've been testing hotplug for lirc recently. I had a process doing an open(/dev/lirc), then doing a few operations requiring the driver, close, in a tight lop
   <br> loop
   <br> then I bind/unbind the driver in a tight loop in another shell
   <br> I discover
   <br> ed a few issues there
   <br> (kernel with kasan and lockdep enabled)
   <br> There were a few use-after-free issues which I had never noticed from reading source code
   <br> I had to add locking to rc-core, since drivers do not expect any calls after they call rc_unregister_device()