[PATCH RFC 0/4] Defer probe() on em28xx when firmware load is required

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series is an attempt to solve the recent issues with udev-182
and media drivers.

The .probe() callback should "bind the driver to a given device.  That
includes verifying that the device is present, that it's a version the
driver can handle, that driver data structures can be allocated and 
initialized, and that any hardware can be initialized".

In order to comply witht he above, sometimes firmware is needed. However,
PM and udev have problems with that.

Newer versions of request_firmware block firmware load on some situations,
due to PM. Also, udev simply refuses to load firmware when module_init
doesn't finish, and .probe() can be called during USB/PCI bus register,
if the device is plugged.

This patch series consists of 4 patches:
	1) a change at kmod, in order to export the information that
	   userspace mode is disabled;

	2) a patch at em28xx that defers probe() if firmware is needed
	   and userspace mode is disabled;

	3) a workaround due to udev-182 limitation of not loading firmware
	   while a driver is modprobed;

	4) a patch for tuner-xc2028, in order to indicate what firmware
	   files are used there.

I was hoping that dracut-018-40.git20120522.fc17.noarch would get the
MODULE_FIRMWARE info while creating the initfs filesystem, copying there
the right firmwares, but, unfortunately, this didn't work (at least while
copiling tuners as builtin). Maybe will would honour it if I re-compile
everything as module and force dracut to load em28xx at init time.

Comments?

Regards,
Mauro

Mauro Carvalho Chehab (4):
  kmod: add a routine to return if usermode is disabled
  em28xx: defer probe() if udev is not ready to request_firmware
  em28xx: Workaround for new udev versions
  tuner-xc2028: tag the usual firmwares to help dracut

 drivers/media/common/tuners/tuner-xc2028.c |    2 +
 drivers/media/video/em28xx/em28xx-cards.c  |   73 +++++++++++++++++++++++++++-
 drivers/media/video/em28xx/em28xx.h        |    1 +
 include/linux/firmware.h                   |    6 +++
 kernel/kmod.c                              |    6 +++
 5 files changed, 87 insertions(+), 1 deletion(-)

-- 
1.7.10.2

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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux