All of lore.kernel.org
 help / color / mirror / Atom feed
* boot slow down
@ 2012-08-04 15:52 James
  2012-08-04 17:05 ` Ezequiel Garcia
  2012-08-04 17:42 ` Andy Walls
  0 siblings, 2 replies; 25+ messages in thread
From: James @ 2012-08-04 15:52 UTC (permalink / raw)
  To: linux-media Mailing List

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.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 15:52 boot slow down James
@ 2012-08-04 17:05 ` Ezequiel Garcia
  2012-08-04 17:42 ` Andy Walls
  1 sibling, 0 replies; 25+ messages in thread
From: Ezequiel Garcia @ 2012-08-04 17:05 UTC (permalink / raw)
  To: James; +Cc: linux-media Mailing List

Hello James,

On Sat, Aug 4, 2012 at 12:52 PM, James <bjlockie@lockie.ca> 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'm not sure what that firmware is for, but if you're certain you don't need it
then I'd suggest you try to blacklist cx25840 module, or just erase it.

This way cx23885 won't be able to load cx25840, and therefore the load
the firmware.
(I  think cx23885 won't fail to load if cx25840 is not available).

> I assume it is timing out there.
>

I guess that the firmware file is not present, could you check that?.
In that case, why is not present?

Hope this helps,
Ezequiel.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 15:52 boot slow down James
  2012-08-04 17:05 ` Ezequiel Garcia
@ 2012-08-04 17:42 ` Andy Walls
  2012-08-04 22:21   ` James
  2012-08-04 22:28   ` James
  1 sibling, 2 replies; 25+ messages in thread
From: Andy Walls @ 2012-08-04 17:42 UTC (permalink / raw)
  To: James, linux-media Mailing List

James <bjlockie@lockie.ca> 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@vger.kernel.org
>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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 17:42 ` Andy Walls
@ 2012-08-04 22:21   ` James
  2012-08-04 22:28   ` James
  1 sibling, 0 replies; 25+ messages in thread
From: James @ 2012-08-04 22:21 UTC (permalink / raw)
  To: Andy Walls; +Cc: linux-media Mailing List

On 08/04/12 13:42, Andy Walls wrote:
> James <bjlockie@lockie.ca> 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@vger.kernel.org
>> 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 will do that.
It has been available since 2011 but there was no slowdown before.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 17:42 ` Andy Walls
  2012-08-04 22:21   ` James
@ 2012-08-04 22:28   ` James
  2012-08-05 21:20     ` Sakari Ailus
  2012-08-06  8:37     ` Andy Walls
  1 sibling, 2 replies; 25+ messages in thread
From: James @ 2012-08-04 22:28 UTC (permalink / raw)
  To: Andy Walls; +Cc: linux-media Mailing List

On 08/04/12 13:42, Andy Walls wrote:
> James <bjlockie@lockie.ca> 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@vger.kernel.org
>> 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



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 22:28   ` James
@ 2012-08-05 21:20     ` Sakari Ailus
  2012-08-06  4:30       ` James
  2012-08-06  4:38       ` James
  2012-08-06  8:37     ` Andy Walls
  1 sibling, 2 replies; 25+ messages in thread
From: Sakari Ailus @ 2012-08-05 21:20 UTC (permalink / raw)
  To: James; +Cc: Andy Walls, linux-media Mailing List

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@lockie.ca> 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@vger.kernel.org
> >> 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,

-- 
Sakari Ailus
e-mail: sakari.ailus@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-05 21:20     ` Sakari Ailus
@ 2012-08-06  4:30       ` James
  2012-08-06  4:38       ` James
  1 sibling, 0 replies; 25+ messages in thread
From: James @ 2012-08-06  4:30 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Andy Walls, linux-media Mailing List

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@lockie.ca> 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@vger.kernel.org
>>>> 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 don't have any modules.
udev should be running.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-05 21:20     ` Sakari Ailus
  2012-08-06  4:30       ` James
@ 2012-08-06  4:38       ` James
  2012-08-07 11:27         ` Sakari Ailus
  1 sibling, 1 reply; 25+ messages in thread
From: James @ 2012-08-06  4:38 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Andy Walls, linux-media Mailing List

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@lockie.ca> 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@vger.kernel.org
>>>> 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]


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-04 22:28   ` James
  2012-08-05 21:20     ` Sakari Ailus
@ 2012-08-06  8:37     ` Andy Walls
  2012-08-06  9:19       ` Antti Palosaari
  1 sibling, 1 reply; 25+ messages in thread
From: Andy Walls @ 2012-08-06  8:37 UTC (permalink / raw)
  To: James; +Cc: linux-media Mailing List

James <bjlockie@lockie.ca> wrote:

>On 08/04/12 13:42, Andy Walls wrote:
>> James <bjlockie@lockie.ca> 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@vger.kernel.org
>>> 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
>
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-media"
>in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html


Hmm.  The firmware file size and location look right.

The 60 second delay is the default kernel delay waiting for the userspace firmware loader to fetch th file amd provide it to the kernel via sysfs.

That doesn't appear to be happening.  I know udev runs some script to accomplish that.  I'm away from my development system, so I can't investigate further.

Regards,
Andy

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-06  8:37     ` Andy Walls
@ 2012-08-06  9:19       ` Antti Palosaari
  2012-08-06 10:57         ` Andy Walls
  0 siblings, 1 reply; 25+ messages in thread
From: Antti Palosaari @ 2012-08-06  9:19 UTC (permalink / raw)
  To: Andy Walls; +Cc: James, linux-media Mailing List

On 08/06/2012 11:37 AM, Andy Walls wrote:
> James <bjlockie@lockie.ca> wrote:
>
>> On 08/04/12 13:42, Andy Walls wrote:
>>> James <bjlockie@lockie.ca> 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@vger.kernel.org
>>>> 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
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media"
>> in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
> Hmm.  The firmware file size and location look right.
>
> The 60 second delay is the default kernel delay waiting for the userspace firmware loader to fetch th file amd provide it to the kernel via sysfs.
>
> That doesn't appear to be happening.  I know udev runs some script to accomplish that.  I'm away from my development system, so I can't investigate further.
>
> Regards,
> Andy

I suspect it could be the firmware download issue with udev. Recent udev 
versions doesn't allow firmware download during module init path as 
module init should not be blocked such long period.

I did quite much work for resolving that issue for the dvb usb by 
deferring device init in probe using work-queue. It is not good looking 
solution and Mauro is still trying to found out more general solution.

regards
Antti

-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-06  9:19       ` Antti Palosaari
@ 2012-08-06 10:57         ` Andy Walls
  2012-08-06 11:41           ` Antti Palosaari
  0 siblings, 1 reply; 25+ messages in thread
From: Andy Walls @ 2012-08-06 10:57 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: James, linux-media Mailing List

Antti Palosaari <crope@iki.fi> wrote:

>On 08/06/2012 11:37 AM, Andy Walls wrote:
>> James <bjlockie@lockie.ca> wrote:
>>
>>> On 08/04/12 13:42, Andy Walls wrote:
>>>> James <bjlockie@lockie.ca> 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@vger.kernel.org
>>>>> 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
>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe
>linux-media"
>>> in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>> Hmm.  The firmware file size and location look right.
>>
>> The 60 second delay is the default kernel delay waiting for the
>userspace firmware loader to fetch th file amd provide it to the kernel
>via sysfs.
>>
>> That doesn't appear to be happening.  I know udev runs some script to
>accomplish that.  I'm away from my development system, so I can't
>investigate further.
>>
>> Regards,
>> Andy
>
>I suspect it could be the firmware download issue with udev. Recent
>udev 
>versions doesn't allow firmware download during module init path as 
>module init should not be blocked such long period.
>
>I did quite much work for resolving that issue for the dvb usb by 
>deferring device init in probe using work-queue. It is not good looking
>
>solution and Mauro is still trying to found out more general solution.
>
>regards
>Antti
>
>-- 
>http://palosaari.fi/

So the cx25840 module scheduling the firmware load to be done by a worker thread is not enough to satisfy the new udev rule?

http://git.linuxtv.org/media_tree.git/blob/staging/for_v3.7:/drivers/media/video/cx25840/cx25840-core.c#l628

Regards,
Andy

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-06 10:57         ` Andy Walls
@ 2012-08-06 11:41           ` Antti Palosaari
  0 siblings, 0 replies; 25+ messages in thread
From: Antti Palosaari @ 2012-08-06 11:41 UTC (permalink / raw)
  To: Andy Walls; +Cc: James, linux-media Mailing List

On 08/06/2012 01:57 PM, Andy Walls wrote:
> Antti Palosaari <crope@iki.fi> wrote:
>
>> On 08/06/2012 11:37 AM, Andy Walls wrote:
>>> James <bjlockie@lockie.ca> wrote:
>>>
>>>> On 08/04/12 13:42, Andy Walls wrote:
>>>>> James <bjlockie@lockie.ca> 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@vger.kernel.org
>>>>>> 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
>>>>
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe
>> linux-media"
>>>> in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>>
>>> Hmm.  The firmware file size and location look right.
>>>
>>> The 60 second delay is the default kernel delay waiting for the
>> userspace firmware loader to fetch th file amd provide it to the kernel
>> via sysfs.
>>>
>>> That doesn't appear to be happening.  I know udev runs some script to
>> accomplish that.  I'm away from my development system, so I can't
>> investigate further.
>>>
>>> Regards,
>>> Andy
>>
>> I suspect it could be the firmware download issue with udev. Recent
>> udev
>> versions doesn't allow firmware download during module init path as
>> module init should not be blocked such long period.
>>
>> I did quite much work for resolving that issue for the dvb usb by
>> deferring device init in probe using work-queue. It is not good looking
>>
>> solution and Mauro is still trying to found out more general solution.
>>
>> regards
>> Antti
>>
>> --
>> http://palosaari.fi/
>
> So the cx25840 module scheduling the firmware load to be done by a worker thread is not enough to satisfy the new udev rule?
>
> http://git.linuxtv.org/media_tree.git/blob/staging/for_v3.7:/drivers/media/video/cx25840/cx25840-core.c#l628
>
> Regards,
> Andy

If it blocks module init, or probe which is called in module init 
context, it timeouts by udev when request_firmware() is called.

There seems to be workqueue, but I am not enough familiar with cx25840 
driver to say how code path actually runs.

I suspect cx25840_initialize() will not return until firmware is loaded? 
And that function is called when module is loaded?

regards
Antti


-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-06  4:38       ` James
@ 2012-08-07 11:27         ` Sakari Ailus
  2012-08-07 13:04           ` bjlockie
  0 siblings, 1 reply; 25+ messages in thread
From: Sakari Ailus @ 2012-08-07 11:27 UTC (permalink / raw)
  To: James; +Cc: Andy Walls, linux-media Mailing List

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@lockie.ca> 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@vger.kernel.org
> >>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 11:27         ` Sakari Ailus
@ 2012-08-07 13:04           ` bjlockie
  2012-08-07 13:53             ` Andy Walls
  0 siblings, 1 reply; 25+ messages in thread
From: bjlockie @ 2012-08-07 13:04 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Andy Walls, linux-media Mailing List

> 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@lockie.ca> 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@vger.kernel.org
>> >>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk

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?


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 13:04           ` bjlockie
@ 2012-08-07 13:53             ` Andy Walls
  2012-08-07 20:33               ` bjlockie
  2012-08-07 21:40               ` James
  0 siblings, 2 replies; 25+ messages in thread
From: Andy Walls @ 2012-08-07 13:53 UTC (permalink / raw)
  To: bjlockie, Sakari Ailus; +Cc: linux-media Mailing List

bjlockie@lockie.ca 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@lockie.ca> 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@vger.kernel.org
>>> >>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>
>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.

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.

Regards,
Andy

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 13:53             ` Andy Walls
@ 2012-08-07 20:33               ` bjlockie
  2012-08-07 21:42                 ` James
  2012-08-07 21:40               ` James
  1 sibling, 1 reply; 25+ messages in thread
From: bjlockie @ 2012-08-07 20:33 UTC (permalink / raw)
  To: Andy Walls; +Cc: Sakari Ailus, linux-media Mailing List

> bjlockie@lockie.ca 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@lockie.ca> 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@vger.kernel.org
>>>> >>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>>
>>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
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 13:53             ` Andy Walls
  2012-08-07 20:33               ` bjlockie
@ 2012-08-07 21:40               ` James
  1 sibling, 0 replies; 25+ messages in thread
From: James @ 2012-08-07 21:40 UTC (permalink / raw)
  To: Andy Walls; +Cc: Sakari Ailus, linux-media Mailing List

On 08/07/12 09:53, Andy Walls wrote:
> bjlockie@lockie.ca 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@lockie.ca> 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@vger.kernel.org
>>>>>>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>>
>> 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.
> 
> 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.
> 
> Regards,
> Andy

I make it a module and I ran into more problems.
It seemed to load the firmware but Kaffeine says there is no video device.

http://pastebin.com/ABVWVrma

It seems to print a lot.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 20:33               ` bjlockie
@ 2012-08-07 21:42                 ` James
  2012-08-07 21:49                   ` James
  2012-08-08  8:24                   ` Sakari Ailus
  0 siblings, 2 replies; 25+ messages in thread
From: James @ 2012-08-07 21:42 UTC (permalink / raw)
  To: Andy Walls; +Cc: Sakari Ailus, linux-media Mailing List

On 08/07/12 16:33, bjlockie@lockie.ca wrote:
>> bjlockie@lockie.ca 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@lockie.ca> 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@vger.kernel.org
>>>>>>>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>>>
>>> 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.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 21:42                 ` James
@ 2012-08-07 21:49                   ` James
  2012-08-08  8:24                   ` Sakari Ailus
  1 sibling, 0 replies; 25+ messages in thread
From: James @ 2012-08-07 21:49 UTC (permalink / raw)
  To: Andy Walls; +Cc: Sakari Ailus, linux-media Mailing List

On 08/07/12 17:42, James wrote:
> On 08/07/12 16:33, bjlockie@lockie.ca wrote:
>>> bjlockie@lockie.ca 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@lockie.ca> 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@vger.kernel.org
>>>>>>>>>> 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@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>>>>
>>>> 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.
> 

vlc WORKS so I'm not as concerned that kaffeine doesn't.
kaffeine is easier to use but it is a start.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-07 21:42                 ` James
  2012-08-07 21:49                   ` James
@ 2012-08-08  8:24                   ` Sakari Ailus
  2012-08-08 17:18                     ` bjlockie
  1 sibling, 1 reply; 25+ messages in thread
From: Sakari Ailus @ 2012-08-08  8:24 UTC (permalink / raw)
  To: James; +Cc: Andy Walls, linux-media Mailing List

Hi James,

On Tue, Aug 07, 2012 at 05:42:48PM -0400, James wrote:
...
> 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.

I guess this only applies to firmware blobs which are part of the kernel.
Not all of them are.

Regards,

-- 
Sakari Ailus
e-mail: sakari.ailus@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-08  8:24                   ` Sakari Ailus
@ 2012-08-08 17:18                     ` bjlockie
  2012-08-11 15:20                       ` Sakari Ailus
  2012-08-12  0:06                       ` Andy Walls
  0 siblings, 2 replies; 25+ messages in thread
From: bjlockie @ 2012-08-08 17:18 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: James, Andy Walls, linux-media Mailing List


How hard would it be to get an official kernel option not to load firmware
OR be able to set the timeout?



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-08 17:18                     ` bjlockie
@ 2012-08-11 15:20                       ` Sakari Ailus
  2012-08-12  0:06                       ` Andy Walls
  1 sibling, 0 replies; 25+ messages in thread
From: Sakari Ailus @ 2012-08-11 15:20 UTC (permalink / raw)
  To: bjlockie; +Cc: Andy Walls, linux-media Mailing List

On Wed, Aug 08, 2012 at 01:18:33PM -0400, bjlockie@lockie.ca wrote:
> 
> How hard would it be to get an official kernel option not to load firmware
> OR be able to set the timeout?

I think the right solution is that the failure of the user space program
that is expected to load the firmware is considered as such, so the error
could be returned by request_firmware() immediately. There could be reasons
why it behaves the way it does currently as I don't know the details.

Kind regards,

-- 
Sakari Ailus
e-mail: sakari.ailus@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-08 17:18                     ` bjlockie
  2012-08-11 15:20                       ` Sakari Ailus
@ 2012-08-12  0:06                       ` Andy Walls
  2012-08-12 19:56                         ` Ezequiel Garcia
  2012-08-13 12:25                         ` Mauro Carvalho Chehab
  1 sibling, 2 replies; 25+ messages in thread
From: Andy Walls @ 2012-08-12  0:06 UTC (permalink / raw)
  To: bjlockie; +Cc: Sakari Ailus, linux-media Mailing List

On Wed, 2012-08-08 at 13:18 -0400, bjlockie@lockie.ca wrote:
> How hard would it be to get an official kernel option not to load firmware

Submit a patch for the cx23885 driver to the list.  It could add a
module option so the user can specify not to load cx23885-av firmware
(and maybe CX23417 firmware too).  The new module option could be set on
your kernel commandline: cx23885.no_firmware_load=1

Honestly though such a patch problably won't fly.  The real solution,
that the cx23885 driver needs anyway, is to inhibit the load of all
firmware during the device probe by the kernel, and load them on the
first device open (like the ivtv and cx18 drivers do for analog).

There are at least 2 places in the PCI device probe routine of the
cx23885 driver, where firmware is requested.  Here is the call chain:

cx23885_initdev()
	cx23885_dev_setup()
		cx23885_card_setup()
			v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
				cx25840_load_fw()
					cx23885_initialize()
						cx25840_work_handler()
							cx25840_loadfw()
								request_firmware()						
		cx23885_417_register()
			cx23885_initialize_codec()
				cx23885_load_firmware()
					request_firmware()

The calls to 
	v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
and
	cx23885_417_register() (or cx23885_initialize_codec())

really need to be deferred to comply with new udev requirements for
driver behavior.

> OR be able to set the timeout?

That would probably be harder politically, even if the code were not
harder.  No driver is supposed to be loading firmware during its device
probes. Once userspace is up, /sys/class/firmware/timeout can be
manipulated very early, before any device would be requesting firmware. 

Regards,
Andy


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-12  0:06                       ` Andy Walls
@ 2012-08-12 19:56                         ` Ezequiel Garcia
  2012-08-13 12:25                         ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 25+ messages in thread
From: Ezequiel Garcia @ 2012-08-12 19:56 UTC (permalink / raw)
  To: Andy Walls; +Cc: bjlockie, Sakari Ailus, linux-media Mailing List

On Sat, Aug 11, 2012 at 9:06 PM, Andy Walls <awalls@md.metrocast.net> wrote:
> On Wed, 2012-08-08 at 13:18 -0400, bjlockie@lockie.ca wrote:
>> How hard would it be to get an official kernel option not to load firmware
>
> Submit a patch for the cx23885 driver to the list.  It could add a
> module option so the user can specify not to load cx23885-av firmware
> (and maybe CX23417 firmware too).  The new module option could be set on
> your kernel commandline: cx23885.no_firmware_load=1
>
> Honestly though such a patch problably won't fly.  The real solution,
> that the cx23885 driver needs anyway, is to inhibit the load of all
> firmware during the device probe by the kernel, and load them on the
> first device open (like the ivtv and cx18 drivers do for analog).
>
> There are at least 2 places in the PCI device probe routine of the
> cx23885 driver, where firmware is requested.  Here is the call chain:
>
> cx23885_initdev()
>         cx23885_dev_setup()
>                 cx23885_card_setup()
>                         v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
>                                 cx25840_load_fw()
>                                         cx23885_initialize()
>                                                 cx25840_work_handler()
>                                                         cx25840_loadfw()
>                                                                 request_firmware()
>                 cx23885_417_register()
>                         cx23885_initialize_codec()
>                                 cx23885_load_firmware()
>                                         request_firmware()
>
> The calls to
>         v4l2_subdev_call(dev->sd_cx25840, core, load_fw);

This one should be really easy, right?
The subdev can be created on probe and then the call to load_fw
can be done on first open.

It is remarkable this is documented in a comment placed just above
cx25840_load_fw:

"Since loading the firmware is often problematic when the driver is
 compiled into the kernel I recommend postponing calling this function
 until the first open of the video device. Another reason for
 postponing it is that loading this firmware takes a long time (seconds)
 due to the slow i2c bus speed. So it will speed up the boot process if
 you can avoid loading the fw as long as the video device isn't used."

If you want to, I can try that patch. Of course, someone must commit
to test it.

Regards,
Ezequiel.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: boot slow down
  2012-08-12  0:06                       ` Andy Walls
  2012-08-12 19:56                         ` Ezequiel Garcia
@ 2012-08-13 12:25                         ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 25+ messages in thread
From: Mauro Carvalho Chehab @ 2012-08-13 12:25 UTC (permalink / raw)
  To: Andy Walls; +Cc: bjlockie, Sakari Ailus, linux-media Mailing List

Hi Andy,

Em 11-08-2012 21:06, Andy Walls escreveu:
> On Wed, 2012-08-08 at 13:18 -0400, bjlockie@lockie.ca wrote:
>> How hard would it be to get an official kernel option not to load firmware
> 
> Submit a patch for the cx23885 driver to the list.  It could add a
> module option so the user can specify not to load cx23885-av firmware
> (and maybe CX23417 firmware too).  The new module option could be set on
> your kernel commandline: cx23885.no_firmware_load=1

No, adding a parameter there is not right: it is not an user option to not
do firmware load during module init; it is a requirement for a driver to
work with newer userspace tools.

There are two situations there:

1) for devices where the firmware is inside an I2C driver, the solution
is to simply not load the firmware during module probing.

The easiest do to that is to call request_firmware_nowait() during module
probing. This call will start a deferred work that will use a callback
to warn the driver when the firmware is loaded.

If you want an example, please see: 61a96113de51e1f8f43ac98cbeadb54e60045905.
While I intend to do the same on other drivers as I have some spare time,
please don't wait for me on that, as I'm not with much spare time those
days.

You'll likely need to add a status flag at all drivers callback, that would
return a temporary error indication like -EAGAIN (or -ERESTARTSYS) and maybe
change the drivers to handle such error code.

2) for drivers where the firmware is needed for the bridge driver to work,
I couldn't find a perfect solution. There are two alternatives there:

a) patch the drivers base in order to improve the deferred probe. Currently,
a deferred probe will only be called again if a new device driver is probing.
It would make sense to add some way to make it do the probe after a while.

b) lie to probe(), returning 0 before probing the driver, and run a deferred 
probe inside the driver, in order to load the firmware and run the real probing
code.

Regards,
Mauro



^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2012-08-13 12:25 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-04 15:52 boot slow down James
2012-08-04 17:05 ` Ezequiel Garcia
2012-08-04 17:42 ` Andy Walls
2012-08-04 22:21   ` James
2012-08-04 22:28   ` James
2012-08-05 21:20     ` Sakari Ailus
2012-08-06  4:30       ` James
2012-08-06  4:38       ` James
2012-08-07 11:27         ` Sakari Ailus
2012-08-07 13:04           ` bjlockie
2012-08-07 13:53             ` Andy Walls
2012-08-07 20:33               ` bjlockie
2012-08-07 21:42                 ` James
2012-08-07 21:49                   ` James
2012-08-08  8:24                   ` Sakari Ailus
2012-08-08 17:18                     ` bjlockie
2012-08-11 15:20                       ` Sakari Ailus
2012-08-12  0:06                       ` Andy Walls
2012-08-12 19:56                         ` Ezequiel Garcia
2012-08-13 12:25                         ` Mauro Carvalho Chehab
2012-08-07 21:40               ` James
2012-08-06  8:37     ` Andy Walls
2012-08-06  9:19       ` Antti Palosaari
2012-08-06 10:57         ` Andy Walls
2012-08-06 11:41           ` Antti Palosaari

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.