Skip to contentSkip to conversation

boot slow down

DISCUSSION James 6 participants 25 messages Aug 4, 2012 – Aug 13, 2012 Media (V4L/DVB)

lore
Share & tools
lore

James

author
#0 lore raw

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.

#1 lore raw

Hello James,

Quoted 6 lines · James

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
Quoted 6 lines

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).

Quoted 2 lines

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.

#2 lore raw
In reply to James
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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

author
#3 lore raw
Quoted 26 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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).

Quoted 9 lines

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.

author
#4 lore raw
In reply to Andy Walls
Quoted 26 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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).

Quoted 8 lines

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
#5 lore raw

Hi Andy and James,

Quoted 31 lines · James
Quoted 30 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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.

Quoted 8 lines
Quoted 4 lines

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,

Signature · 2 lines
Sakari Ailus
e-mail: [email protected]	jabber/XMPP/Gmail: [email protected]
author
#6 lore raw
Quoted 43 lines · Sakari Ailus

Hi Andy and James,

Quoted 31 lines · James
Quoted 30 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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.

Quoted 8 lines
Quoted 4 lines

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
Quoted 7 lines

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.

author
#7 lore raw
In reply to Sakari Ailus
Quoted 43 lines · Sakari Ailus

Hi Andy and James,

Quoted 31 lines · James
Quoted 30 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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.

Quoted 8 lines
Quoted 4 lines

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
Quoted 7 lines

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]

#8 lore raw

Hi James,

Quoted 49 lines · James
Quoted 48 lines · Sakari Ailus

Hi Andy and James,

Quoted 31 lines · James
Quoted 30 lines · Andy Walls
Quoted 10 lines · James

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]

Quoted 9 lines

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 [email protected]
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.

Quoted 8 lines
Quoted 4 lines

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?

Quoted 5 lines
Quoted 2 lines

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,

Signature · 2 lines
Sakari Ailus
e-mail: [email protected]	jabber/XMPP/Gmail: [email protected]
#9 lore raw
Quoted 73 lines

Hi James,

Quoted 56 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and audio

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video PLL

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time with

trying to make the cx23885 working properly but halfway.

Quoted 7 lines
Quoted 7 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 2 lines

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

Quoted 8 lines

the

Quoted 4 lines

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.

Quoted 5 lines

Kind regards,

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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?

#10 lore raw
Quoted 86 lines · [email protected] wrote:
Quoted 22 lines

Hi James,

Quoted 19 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 9 lines
Quoted 9 lines

is

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

in
the body of a message to [email protected] More majordomo info at

http://vger.kernel.org/majordomo-info.html

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The firmware is for the analog broadcast audio standard (e.g.

BTSC)

Quoted 3 lines
Quoted 3 lines

detection microcontroller.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and

audio

Quoted 3 lines
Quoted 3 lines

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video

PLL

Quoted 6 lines
Quoted 6 lines

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time

with

Quoted 5 lines
Quoted 5 lines

trying to make the cx23885 working properly but halfway.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 1 line

driver with the firmware, but it seems the helper isn't around as

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

timeout expires. Is udev running around the time of the first

line? Is

Quoted 10 lines
Quoted 8 lines

the

Quoted 4 lines

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

Quoted 1 line

firmware, and it's not running, the delay is expected. Two seconds

after

Quoted 1 line

kernel startup is so early that the user space, including udev, might

not

Quoted 4 lines

yet be running.

Kind regards,

Quoted 8 lines
Quoted 3 lines

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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

#11 lore raw
Quoted 108 lines
Quoted 86 lines · [email protected] wrote:
Quoted 22 lines

Hi James,

Quoted 19 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 9 lines
Quoted 9 lines

is

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

in
the body of a message to [email protected] More majordomo info at

http://vger.kernel.org/majordomo-info.html

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The firmware is for the analog broadcast audio standard (e.g.

BTSC)

Quoted 3 lines
Quoted 3 lines

detection microcontroller.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and

audio

Quoted 3 lines
Quoted 3 lines

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video

PLL

Quoted 6 lines
Quoted 6 lines

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time

with

Quoted 5 lines
Quoted 5 lines

trying to make the cx23885 working properly but halfway.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 1 line

driver with the firmware, but it seems the helper isn't around as

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

timeout expires. Is udev running around the time of the first

line? Is

Quoted 10 lines
Quoted 8 lines

the

Quoted 4 lines

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

Quoted 1 line

firmware, and it's not running, the delay is expected. Two seconds

after

Quoted 1 line

kernel startup is so early that the user space, including udev, might

not

Quoted 4 lines

yet be running.

Kind regards,

Quoted 8 lines
Quoted 3 lines

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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.

Quoted 5 lines

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.

Quoted 8 lines

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.

Quoted 8 lines

Regards,
Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

author
#12 lore raw
Quoted 122 lines · On 08/07/12 16:33, [email protected] wrote:
Quoted 108 lines
Quoted 86 lines · [email protected] wrote:
Quoted 22 lines

Hi James,

Quoted 19 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 9 lines
Quoted 9 lines

is

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

in
the body of a message to [email protected] More majordomo info at

http://vger.kernel.org/majordomo-info.html

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The firmware is for the analog broadcast audio standard (e.g.

BTSC)

Quoted 3 lines
Quoted 3 lines

detection microcontroller.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and

audio

Quoted 3 lines
Quoted 3 lines

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video

PLL

Quoted 6 lines
Quoted 6 lines

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time

with

Quoted 5 lines
Quoted 5 lines

trying to make the cx23885 working properly but halfway.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 1 line

driver with the firmware, but it seems the helper isn't around as

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

timeout expires. Is udev running around the time of the first

line? Is

Quoted 10 lines
Quoted 8 lines

the

Quoted 4 lines

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

Quoted 1 line

firmware, and it's not running, the delay is expected. Two seconds

after

Quoted 1 line

kernel startup is so early that the user space, including udev, might

not

Quoted 4 lines

yet be running.

Kind regards,

Quoted 8 lines
Quoted 3 lines

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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.

Quoted 5 lines

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.

Quoted 6 lines

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.

Quoted 8 lines
Quoted 2 lines

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.

Quoted 3 lines

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.
author
#13 lore raw
Quoted 149 lines · James
Quoted 122 lines · On 08/07/12 16:33, [email protected] wrote:
Quoted 108 lines
Quoted 86 lines · [email protected] wrote:
Quoted 22 lines

Hi James,

Quoted 19 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 9 lines
Quoted 9 lines

is

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

in
the body of a message to [email protected] More majordomo info at

http://vger.kernel.org/majordomo-info.html

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The firmware is for the analog broadcast audio standard (e.g.

BTSC)

Quoted 3 lines
Quoted 3 lines

detection microcontroller.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and

audio

Quoted 3 lines
Quoted 3 lines

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video

PLL

Quoted 6 lines
Quoted 6 lines

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time

with

Quoted 5 lines
Quoted 5 lines

trying to make the cx23885 working properly but halfway.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 1 line

driver with the firmware, but it seems the helper isn't around as

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

timeout expires. Is udev running around the time of the first

line? Is

Quoted 10 lines
Quoted 8 lines

the

Quoted 4 lines

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

Quoted 1 line

firmware, and it's not running, the delay is expected. Two seconds

after

Quoted 1 line

kernel startup is so early that the user space, including udev, might

not

Quoted 4 lines

yet be running.

Kind regards,

Quoted 8 lines
Quoted 3 lines

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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.

Quoted 5 lines

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.

Quoted 6 lines

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.

Quoted 8 lines
Quoted 2 lines

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.

Quoted 3 lines

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             │  
Quoted 9 lines
  │ 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.

#14 lore raw
In reply to James

Hi James,

On Tue, Aug 07, 2012 at 05:42:48PM -0400, James wrote:
...

Quoted 24 lines

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.             ???  
  ???                                                                         ???  
Quoted 1 line

??? 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,

Signature · 2 lines
Sakari Ailus
e-mail: [email protected]	jabber/XMPP/Gmail: [email protected]
#15 lore raw

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

#16 lore raw
Quoted 3 lines · On Wed, Aug 08, 2012 at 01:18:33PM -0400, [email protected] 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,

Signature · 2 lines
Sakari Ailus
e-mail: [email protected]	jabber/XMPP/Gmail: [email protected]
#17 lore raw
In reply to [email protected]
Quoted 1 line · On Wed, 2012-08-08 at 13:18 -0400, [email protected] 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.

Quoted 1 line

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

#18 lore raw
Quoted 30 lines · Andy Walls
Quoted 1 line · On Wed, 2012-08-08 at 13:18 -0400, [email protected] 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()
Quoted 2 lines

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.

#19 lore raw
In reply to Andy Walls

Hi Andy,

Em 11-08-2012 21:06, Andy Walls escreveu:

Quoted 7 lines · On Wed, 2012-08-08 at 13:18 -0400, [email protected] wrote:
Quoted 1 line

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

author
#20 lore raw
In reply to Andy Walls
Quoted 104 lines · Andy Walls
Quoted 86 lines · [email protected] wrote:
Quoted 22 lines

Hi James,

Quoted 19 lines · James
Quoted 18 lines · Sakari Ailus

Hi Andy and James,

Quoted 15 lines · James
Quoted 14 lines · Andy Walls
Quoted 12 lines · James

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

Quoted 9 lines
Quoted 9 lines

is

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

in
the body of a message to [email protected] More majordomo info at

http://vger.kernel.org/majordomo-info.html

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The firmware is for the analog broadcast audio standard (e.g.

BTSC)

Quoted 3 lines
Quoted 3 lines

detection microcontroller.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and

audio

Quoted 3 lines
Quoted 3 lines

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video

PLL

Quoted 6 lines
Quoted 6 lines

provides the timing for the IR unit.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time

with

Quoted 5 lines
Quoted 5 lines

trying to make the cx23885 working properly but halfway.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Quoted 3 lines

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

Quoted 2 lines

The timeout if for allowing the user space helper enough time to

provide the

Quoted 1 line

driver with the firmware, but it seems the helper isn't around as

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

timeout expires. Is udev running around the time of the first

line? Is

Quoted 10 lines
Quoted 8 lines

the

Quoted 4 lines

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

Quoted 1 line

firmware, and it's not running, the delay is expected. Two seconds

after

Quoted 1 line

kernel startup is so early that the user space, including udev, might

not

Quoted 4 lines

yet be running.

Kind regards,

Quoted 8 lines
Quoted 3 lines

--
Sakari Ailus
e-mail: [email protected] jabber/XMPP/Gmail: [email protected]

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.

Quoted 8 lines

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.

#21 lore raw
In reply to James
Quoted 49 lines · James
Quoted 9 lines · Andy Walls
Quoted 7 lines · James

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

Quoted 5 lines
Quoted 5 lines

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

Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 5 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and audio

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video PLL

provides the timing for the IR unit.

Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time with

trying to make the cx23885 working properly but halfway.

Quoted 3 lines

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
Quoted 5 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
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

#22 lore raw
Quoted 58 lines · Andy Walls
Quoted 49 lines · James
Quoted 9 lines · Andy Walls
Quoted 7 lines · James

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

Quoted 5 lines
Quoted 5 lines

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

Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 5 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and audio

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video PLL

provides the timing for the IR unit.

Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time with

trying to make the cx23885 working properly but halfway.

Quoted 3 lines

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
Quoted 5 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 8 lines

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

Signature · 1 line
http://palosaari.fi/
#23 lore raw
Quoted 78 lines · Antti Palosaari
Quoted 45 lines · Andy Walls
Quoted 43 lines · James
Quoted 9 lines · Andy Walls
Quoted 7 lines · James

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

Quoted 5 lines
Quoted 5 lines

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

Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 5 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and audio

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video PLL

provides the timing for the IR unit.

Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time with

trying to make the cx23885 working properly but halfway.

Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines

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"

Quoted 8 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

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.

Quoted 3 lines

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.

Quoted 10 lines

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

Signature · 1 line
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

#24 lore raw
Quoted 91 lines · Andy Walls
Quoted 81 lines · Antti Palosaari
Quoted 45 lines · Andy Walls
Quoted 43 lines · James
Quoted 9 lines · Andy Walls
Quoted 7 lines · James

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

Quoted 5 lines
Quoted 5 lines

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

Quoted 4 lines
Quoted 4 lines

useless to me.
I assume it is timing out there.
--
To unsubscribe from this list: send the line "unsubscribe

linux-media"

Quoted 5 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

The A/V core of the CX23885/7/8 chips is for analog vidoe and audio

processing (broadcast, CVBS, SVideo, audio L/R in).

Quoted 2 lines

The A/V core of the CX23885 provides the IR unit and the Video PLL

provides the timing for the IR unit.

Quoted 2 lines

The A/V core of the CX23888 provides the Video PLL which is the

timing for the IR unit in the CX23888.

Quoted 2 lines

Just grab the firmware and be done with it. Don't waste time with

trying to make the cx23885 working properly but halfway.

Quoted 3 lines

Regards,
Andy

Quoted 8 lines
Quoted 8 lines

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"

Quoted 8 lines
Quoted 3 lines

in
the body of a message to [email protected]
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.

Quoted 2 lines

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.

Quoted 3 lines

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

Quoted 7 lines

solution and Mauro is still trying to found out more general solution.

regards
Antti

--
http://palosaari.fi/

Quoted 6 lines

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

Signature · 1 line
http://palosaari.fi/