[pvrusb2] Ability to fully reset a PVRUSB2 Device

Diego Rivera diego.rivera.cr at gmail.com
Sun Apr 14 20:06:39 CDT 2019


Guinea pig #1 ready, sir! 😂

--

Diego Rivera

On Sun, Apr 14, 2019, 19:05 <isely at isely.net> wrote:

>
> 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
> _______________________________________________
> pvrusb2 mailing list
> pvrusb2 at isely.net
> http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
>


More information about the pvrusb2 mailing list