[pvrusb2] Ability to fully reset a PVRUSB2 Device

isely at isely.net isely at isely.net
Sun Apr 14 20:05:20 CDT 2019


Once I have something we can try and assuming it doesn't explode here 
first, I'll be looking for guinea pigs to try it...

  -Mike


On Sun, 14 Apr 2019, Diego Rivera wrote:

> Thanks!! Again, let me know if I can help things along in any way.
> Cheers!
> On Sun, 2019-04-14 at 19:52 -0500, isely at isely.net wrote:
> > It's been quite a long time, but I am working on it.  My effort has been slowed due to everything
> > else on my plate but I should be caught up and able to test for it this coming weekend.  Been
> > working on getting a kernel set up for this today.
> >   -Mike
> > 
> > On Wed, 10 Apr 2019, Diego Rivera wrote:
> > Hi!Just wondering if you were able to get your setup going and if there's anything I can do to
> > help youtest any fixes you might come up with.Cheers!
> > On Sat, 2019-03-16 at 18:16 -0500, isely at isely.net wrote:
> > I'd say there's a very good chance of fixing this.  The critical issue for me is getting the
> > timeto dig into it.  I've been out of this so long that my test setup is boxed up somewhere...Once
> > I reproduce the problem I think it's pretty likely I can find a fix.  Odds are that someaspects of
> > the USB stack's interface to client drivers has changed in a manner that breaks use ofit by the
> > pvrusb2 driver.  It's just a matter of figuring that out and dealing with it.  Maybe adisconnect
> > callback happening in a way now that the driver doesn't expect.  With this many yearssince the
> > last substantial change, this is certainly possible.  -Mike
> > On Sat, 16 Mar 2019, Diego Rivera wrote:I'd offer to help fix this but I'm not knowledgeable
> > enough in building usbkernel drivers to be ofmuch use...But any help I can offer is definitely at
> > your disposal.Do you think there's any chance of fixing this?--Diego RiveraOn Sat, Mar 16, 2019,
> > 17:08 <isely at isely.net> wrote:
> > Based on other messages here (which I just now saw), it looks likethere's been a USB stack
> > changein the kernel (for who knows how longago) that prevent hot-unplug from working.  That is
> > supposedto work.It used to.  Oh joy.  -Mike
> > On Sat, 16 Mar 2019, Diego Rivera wrote:My bigger concern is why the driver is refusing to give up
> > on "bad"devices...Also I found a solution for keeping the digital side out of TVH: changetheUnix
> > group for dvb devices via udev :)I might come up with a more detailed rule only for the 1950s, but
> > for nowthat'll do!Cheers!--Diego RiveraOn Sat, Mar 16, 2019, 16:27 <isely at isely.net> wrote:
> > Short of preventing the digital stuff from being available in thekernel, no.  The driver is set
> > upto always exploit whatever it can...Catching up on the other replies...
> > On Sat, 16 Mar 2019, Diego Rivera wrote:Negative on that count either... I unplugged the device
> > and a fewminutes later it's still spewingout that message.Side question: is there any way to
> > disable the digital side of thedriver uponlaunch? Maybe aparameter that can be passed in?Thanks
> > for responding, too!! I realize this is a stale device butIcertainly appreciate your time!On Sat,
> > 2019-03-16 at 11:36 -0500, isely at isely.net wrote:OK, now unplug it if you haven't already done
> > so.  That shouldbreakthe connection between thedriver and the hardware and cause the pvrusb2
> > driver to eventuallystop crabbing and letgo.  That's a scenario that I executed A LOT when
> > debugging thedriver...(If that doesn't work then there may be another problem.)  -MikeOn Sat, 16
> > Mar 2019, Diego Rivera wrote:"On the digital side"... you're right! Turns out TVHeadendwasgrabbing
> > the digital side ofthetuners - I'll have to figure out a way to disable that, since Idon't need
> > that.  That said,once Iturned off TVHeadend, modprobe -r no longer complained aboutthemodule being
> > inuse.However, it just hung .... and the log is littered with"pvrusb2:Attempted to
> > executecontroltransfer when device not ok"So definitely something's wronghere because either the
> > moduleis definitely caring what happens tothe device(s), or something intheoverarching
> > kernelframework changed that appears to need updateson the module inorderto properly comply...
> > maybeUSB events were removed/modified that the driverexpects for correctfunctioning?Just
> > shootingblanks here... if there's additional debug information that I canprovide, I'll bemore than
> > happyto try to rustle that up for you!Cheers!On Sat, 2019-03-16 at 11:26 -0500, 
> > isely at isely.netwrote:Interesting.The kernel of course will refuse to a remove a moduleuntil all
> > references to it goaway.The USB side of the pvrus2 driver won't (shouldn't) care sophysically
> > unplugged the USBcable(and doing all manner of USB reset attempts) isn't going tohelp(or hurt -
> > the driverwon'tcare).The problem is not that the driver is referencing theUSBport but rather that
> > otherentities arereferencing the driver.  So the first obvious case istoensure nobody has it
> > openwhich youdid.  Another thing to look at is to see what if otherkernelmodules are
> > referencingthedriver.  This might be happening on the digital side.  If yourunlsmod to get a list
> > ofkernelmodules installed you should also see reference counts and alist of what other
> > kernelmodules arecausing that count to be non-zero.  If there are othermodules listed, then they
> > needto beremoved first - lowering the reference count - before you canremove the pvrusb2
> > driver.Yes,it's been a long time since I've messed with this driver, sadly,butmy recollection
> > isthatbasically while the pvrusb2 module will reference a lot ofothermodules to get its job
> > done,Ididn't think there was any kernel modules that could reference thepvrusb2
> > driver.  Whenthepvrusb2 driver is installed into the running kernel, it will tieitself to the
> > other modulesthatis needs, but when you modprobe -r pvrusb2, it SHOULD undo allthat.  It's
> > conceivable thatthesurrounding kernel environment has changed in ways thatinvalidatethis - though
> > I think ifthatwere the case I'd see a lot of screaming here :-)  (Eitherthat oralmost nobody is
> > usingthisanymore...)  -MikeOn Fri, 15 Mar 2019, Diego Rivera wrote:Hi!I realize it's been
> > MANYyearssince you've messed withthis driver, but I figured why not ask?Ifthere's a
> > betterplace/personto send this to, please letme know and I'll be glad to go knockonthat door
> > instead!Here goes:Ihave a system with two WinTV-HVR-1950 devices (long story, still use analog
> > cablehere)which I'vemanaged to get working withTVHeadend to supply Analog TV support via
> > thedigitalplatform (yay,me!☺).However, I'm runninginto a problem due likely to the age of one of
> > the devices(probablystartingto get wonky).  Everyso often one of the devices ceases to function
> > and just "dies".Itneeds tobe physicallydisconnected (or the machine rebooted) to get back to
> > workingorder.I'vetried manyapproaches toreset the USB bus or the device itself via software but
> > none ofthemseemto work:* If I try"modprobe -r pvrusb2" I get the error that the module is in
> > use(but Ihave nouserprocessesactively using any of the pvrusb2 devices! I've made sure!).* If
> > Itryto issueUSBDEVFS_DISCONNECTor USBDEVFS_RESET commands via IOCTL, neither works and areboot
> > isnowrequired.* If I try to resetthe whole USB bus via /sys/bus/pci/drivers/?hci_hcd/unbind
> > andbind,itdoesn'twork and a reboot isnow required* If I try to
> > use/sys/bus/usb/drivers/pvrusb2/unbindandbind, it does'nt work and areboot is nowrequiredIn the
> > last 3 cases, syslog ends up litteredwiththe message "pvrusb2:Attempted to executecontroltransfer
> > when device not ok", outputcontinually regardless of anyattempt to rebind.  Thissuggeststhat once
> > the device is "not ok"(dead?), the driver doesn'tattempt to clean it up(should it?)Is there any
> > other way to force afull reset andreinitialization of a pvrusb2 device viasoftwarewithout
> > actuallyhaving to disconnect/reconnectthe device or reboot the machine?Thanks!
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > --Mike Iselyisely @ isely (dot) netPGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5
> > C1E8_______________________________________________pvrusb2 mailing listpvrusb2 at isely.net
> > http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2_______________________________________________pvrusb2
> >  mailing listpvrusb2 at isely.nethttp://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
> > --Mike Iselyisely @ isely (dot) netPGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5
> > C1E8_______________________________________________pvrusb2 mailing listpvrusb2 at isely.net
> > http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2_______________________________________________pvrusb2
> >  mailing listpvrusb2 at isely.nethttp://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
> > 
> > 
> > 
> > 
> 

-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list