On 08/07/12 16:33, bjlockie@xxxxxxxxx wrote: >> bjlockie@xxxxxxxxx wrote: >> >>>> Hi James, >>>> >>>> On Mon, Aug 06, 2012 at 12:38:51AM -0400, James wrote: >>>>> On 08/05/12 17:20, Sakari Ailus wrote: >>>>>> Hi Andy and James, >>>>>> >>>>>> On Sat, Aug 04, 2012 at 06:28:19PM -0400, James wrote: >>>>>>> On 08/04/12 13:42, Andy Walls wrote: >>>>>>>> James <bjlockie@xxxxxxxxx> wrote: >>>>>>>> >>>>>>>>> There's a big pause before the 'unable' >>>>>>>>> >>>>>>>>> [ 2.243856] usb 4-1: Manufacturer: Logitech >>>>>>>>> [ 62.739097] cx25840 6-0044: unable to open firmware >>>>>>>>> v4l-cx23885-avcore-01.fw >>>>>>>>> >>>>>>>>> >>>>>>>>> I have a cx23885 >>>>>>>>> cx23885[0]: registered device video0 [v4l2] >>>>>>>>> >>>>>>>>> Is there any way to stop it from trying to load the firmware? >>>>>>>>> What is the firmware for, analog tv? Digital works fine and >>> analog >>>>> is >>>>>>>>> useless to me. >>>>>>>>> I assume it is timing out there. >>>>>>>>> -- >>>>>>>>> To unsubscribe from this list: send the line "unsubscribe >>>>> linux-media" >>>>>>>>> in >>>>>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>>>>>>> More majordomo info at >>> http://vger.kernel.org/majordomo-info.html >>>>>>>> >>>>>>>> The firmware is for the analog broadcast audio standard (e.g. >>> BTSC) >>>>> detection microcontroller. >>>>>>>> >>>>>>>> The A/V core of the CX23885/7/8 chips is for analog vidoe and >>> audio >>>>> processing (broadcast, CVBS, SVideo, audio L/R in). >>>>>>>> >>>>>>>> The A/V core of the CX23885 provides the IR unit and the Video >>> PLL >>>>> provides the timing for the IR unit. >>>>>>>> >>>>>>>> The A/V core of the CX23888 provides the Video PLL which is the >>>>> timing for the IR unit in the CX23888. >>>>>>>> >>>>>>>> Just grab the firmware and be done with it. Don't waste time >>> with >>>>> trying to make the cx23885 working properly but halfway. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Andy >>>>>>> >>>>>>> I already have the firmware. >>>>>>> # ls -l /lib/firmware/v4l-cx23885-avcore-01.fw >>>>>>> -rw-r--r-- 1 root root 16382 Oct 15 2011 >>>>> /lib/firmware/v4l-cx23885-avcore-01.fw >>>>>> >>>>>> The timeout if for allowing the user space helper enough time to >>>>> provide the >>>>>> driver with the firmware, but it seems the helper isn't around as >>> the >>>>>> timeout expires. Is udev running around the time of the first >>> line? Is >>>>> the >>>>>> driver linked directly into the kernel or is it a module? >>>>>> >>>>>> Kind regards, >>>>>> >>>>> I have this set so the firmware is in the kernel. >>>>> >>>>> Symbol: FIRMWARE_IN_KERNEL [=y] >>>> >>>> I don't know about that driver, but if the udev would have to provide >>> the >>>> firmware, and it's not running, the delay is expected. Two seconds >>> after >>>> kernel startup is so early that the user space, including udev, might >>> not >>>> yet be running. >>>> >>>> Kind regards, >>>> >>>> -- >>>> Sakari Ailus >>>> e-mail: sakari.ailus@xxxxxx jabber/XMPP/Gmail: sailus@xxxxxxxxxxxxxx >>> >>> Doesn't that kernel option mean the firmware is put into the kernel at >>> kernel build time? >>> >>> If I build the module, is there a module option to skip the delay? >> >> >> Hi, >> >> The CX2388x firmware is _never_ built into the kernel. I'm not sure what >> that particular kernel config option is for. >> >> The kernel delay waiting for userspace to load firmware is settable using >> a node under /sys somewhere. The default is 60 seconds. You will have to >> change it in very early boot, or fix the hardcoded constant in the kernel >> and recompile your kernel. >> >> Shortening the delay may not get you entirely acceptable results. If udev >> is not, or is refusing to load firmware for the cx25840 module, then that >> module will not properly initialize the CX23885/7/8 A/V core hardware and >> will likely return with failure. I'm not sure if the cx23885 driver will >> happily continue on, if that happens. > > It works fine even though it times out. > >> >> If you still have a modular kernel build around, you may wish to test with >> it. Blacklist the cx23885 module in /etc/modprobe.conf and the use >> udevadm to investigate what is going on with udev when you later modprobe >> the cx23885 driver. >> >> If building the video card driver into the kernel is causing you all the >> problems, then I simply recommend not doing that. > > I'll try it as a module. > >> >> Regards, >> Andy This is what I tried before. It implies that I shouldn't need user space. ┌─────────── Include in-kernel firmware blobs in kernel binary ───────────┐ │ CONFIG_FIRMWARE_IN_KERNEL: │ │ │ │ The kernel source tree includes a number of firmware 'blobs' │ │ that are used by various drivers. The recommended way to │ │ use these is to run "make firmware_install", which, after │ │ converting ihex files to binary, copies all of the needed │ │ binary files in firmware/ to /lib/firmware/ on your system so │ │ that they can be loaded by userspace helpers on request. │ │ │ │ Enabling this option will build each required firmware blob │ │ into the kernel directly, where request_firmware() will find │ │ them without having to call out to userspace. This may be │ │ useful if your root file system requires a device that uses │ │ such firmware and do not wish to use an initrd. │ │ │ │ This single option controls the inclusion of firmware for │ │ every driver that uses request_firmware() and ships its │ │ firmware in the kernel source tree, which avoids a │ │ proliferation of 'Include firmware for xxx device' options. │ │ │ │ Say 'N' and let firmware be loaded from userspace. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html