diff options
Diffstat (limited to 'recipes/pvrusb2-mci')
-rwxr-xr-x | recipes/pvrusb2-mci/files/firmware.hotplug | 61 | ||||
-rwxr-xr-x | recipes/pvrusb2-mci/files/hotplug.functions | 193 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci-20060903/Makefile.patch | 25 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci-20080210/Makefile.patch | 25 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci.inc | 6 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci2.inc | 4 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci_20060903.bb | 43 | ||||
-rw-r--r-- | recipes/pvrusb2-mci/pvrusb2-mci_20080210.bb | 43 |
8 files changed, 400 insertions, 0 deletions
diff --git a/recipes/pvrusb2-mci/files/firmware.hotplug b/recipes/pvrusb2-mci/files/firmware.hotplug new file mode 100755 index 0000000000..40673a7b74 --- /dev/null +++ b/recipes/pvrusb2-mci/files/firmware.hotplug @@ -0,0 +1,61 @@ +#!/bin/sh +# +# Firmware-specific hotplug policy agent. +# +# Kernel firmware hotplug params include: +# +# ACTION=%s [add or remove] +# DEVPATH=%s [in 2.5 kernels, /sys/$DEVPATH] +# FIRMWARE=%s +# +# HISTORY: +# +# 24-Jul-2003 Initial version of "new" hotplug agent. +# +# $Id: firmware.agent,v 1.3 2004/03/14 15:52:56 ukai Exp $ +# + +cd /etc/hotplug.d/firmware +. ./hotplug.functions +# DEBUG=yes export DEBUG + +# directory of the firmware files +FIRMWARE_DIR=/lib/firmware + +# mountpoint of sysfs +SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts) + +# use /proc for 2.4 kernels +if [ "$SYSFS" = "" ]; then + SYSFS=/proc +fi + +# +# What to do with this firmware hotplug event? +# +case "$ACTION" in + +add) + if [ ! -e $SYSFS/$DEVPATH/loading ]; then + sleep 1 + fi + + if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then + echo 1 > $SYSFS/$DEVPATH/loading + cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data + echo 0 > $SYSFS/$DEVPATH/loading + else + echo -1 > $SYSFS/$DEVPATH/loading + fi + + ;; + +remove) + ;; + +*) + mesg "Firmware '$ACTION' event not supported" + exit 1 + ;; + +esac diff --git a/recipes/pvrusb2-mci/files/hotplug.functions b/recipes/pvrusb2-mci/files/hotplug.functions new file mode 100755 index 0000000000..e3cc7e6e7a --- /dev/null +++ b/recipes/pvrusb2-mci/files/hotplug.functions @@ -0,0 +1,193 @@ +# +# Setup and BASH utility functions for use in hotplug agents +# +# Most essential parameters are passed from the kernel using +# environment variables. For more information, see the docs +# on-line at http://linux-hotplug.sourceforge.net or the +# sources for each hotplug-aware kernel subsystem. +# +# $Id: hotplug.functions,v 1.26 2004/04/01 07:33:32 kroah Exp $ +# +# + +# DEBUG=yes; export DEBUG +PATH=/bin:/sbin:/usr/sbin:/usr/bin + +KERNEL=`uname -r` +MODULE_DIR=/lib/modules/$KERNEL + +HOTPLUG_DIR=/etc/hotplug + +if [ -f /etc/sysconfig/hotplug ]; then + . /etc/sysconfig/hotplug +fi + +if [ -x /usr/bin/logger ]; then + LOGGER=/usr/bin/logger +elif [ -x /bin/logger ]; then + LOGGER=/bin/logger +else + unset LOGGER +fi +# +# for diagnostics +# +if [ -t 1 -o -z "$LOGGER" ]; then + mesg () { + echo "$@" + } +else + mesg () { + $LOGGER -t $(basename $0)"[$$]" "$@" + } +fi + +debug_mesg () { + test "$DEBUG" = "" -o "$DEBUG" = no && return + mesg "$@" +} + + +# +# Not "modprobe --autoclean" ... one driver module can handle many +# devices. Unloading should be done when no devices are present. +# Autocleaning happens if none of the devices are open, once any of +# them gets opened; wrong timing. +# +MODPROBE="/sbin/modprobe -s -q" +#MODPROBE="/sbin/modprobe -vs" + + +#################################################################### +# +# usage: load_driver type filename description +# +# modprobes driver module(s) if appropriate, and optionally +# invokes a driver-specific setup script (or user-mode driver). +# +# the "modules.*map" format file is guaranteed to exist +# +load_drivers () +{ + local LOADED TYPE FILENAME DESCRIPTION LISTER + DRIVERS="" + + # make this routine more readable + TYPE=$1 + FILENAME=$2 + DESCRIPTION=$3 + + # should we use usbmodules, pcimodules? not on 2.5+, because sysfs + # ought to expose the data we need to find all candidate drivers. + # (on 2.5.48 it does for usb; but maybe not yet for pci.) + case "$KERNEL" in + 2.2*|2.3*|2.4*) LISTER=`which ${TYPE}modules` ;; + *) LISTER="" ;; + esac + + if [ "$LISTER" != "" ]; then + # lister programs MIGHT be preferable to parsing from shell scripts: + # - usbmodules used for (a) multi-interface devices, (b) coldplug + # - pcimodules used only for coldplug + case $TYPE in + usb) + # "usbutils-0.8" (or later) is needed in $PATH + # only works if we have usbfs + # ... reads more descriptors than are passed in env + # ... doesn't handle comment syntax either + if [ "$DEVICE" = "" -o ! -f "$DEVICE" ]; then + LISTER= + else + DRIVERS=`$LISTER --mapfile $FILENAME --device $DEVICE` + fi ;; + + pci) + debug_mesg "pcimodules is scanning more than $PCI_SLOT ..." + DRIVERS=`$LISTER` + ;; + esac + fi + + # try parsing by shell scripts if no luck yet + if [ "$DRIVERS" = "" ]; then + ${TYPE}_map_modules < $FILENAME + fi + + # FIXME remove dups and blacklisted modules from $DRIVERS here + + if [ "$DRIVERS" = "" ]; then + return + fi + + # Note that DRIVERS aren't all going to be modules. + # For USB, some user-mode drivers or setup scripts may be listed. + debug_mesg Setup $DRIVERS for $DESCRIPTION + + # either kernel or user mode drivers may need to be set up + for MODULE in $DRIVERS + do + # maybe driver modules need loading + LOADED=false + if ! lsmod | grep -q "^$(echo $MODULE|sed -e 's/-/_/g') " > /dev/null 2>&1; then + if grep -q "^$MODULE\$" $HOTPLUG_DIR/blacklist \ + >/dev/null 2>&1; then + debug_mesg "... blacklisted module: $MODULE" + continue + fi + + # statically linked modules aren't shown by 'lsmod', + # and user mode drivers will ONLY have a setup script; + # it's not an error if a module doesn't exist or won't load. + if $MODPROBE -n $MODULE >/dev/null 2>&1 && + ! $MODPROBE $MODULE >/dev/null 2>&1 ; then + mesg "... can't load module $MODULE" + else + # /etc/modules.conf may have set non-default module + # parameters ... handle per-device parameters in apps + # (ioctls etc) not in setup scripts or modules.conf + LOADED=true + fi + else + # This module is already loaded + LOADED=true + fi + + # always run setup scripts after any matching kernel code has had + # a chance to do its thing, no matter whether it was dynamically + # or statically linked, or if there is only a user mode driver. + # the script might re-enumerate usb devices after firmware download, + # giving kernel code another chance. + if [ -x $HOTPLUG_DIR/$TYPE/$MODULE ]; then + debug_mesg Module setup $MODULE for $DESCRIPTION + $HOTPLUG_DIR/$TYPE/$MODULE + LOADED=true + fi + + if [ "$LOADED" = "false" ]; then + mesg "missing kernel or user mode driver $MODULE " + fi + if echo "$MODULE" | grep -q "usb-storage" > /dev/null 2>&1 ; then + [ -x /usr/sbin/updfstab ] && /usr/sbin/updfstab + fi + done +} + +#################################################################### +# +# usage: log_to_stdout filename +# +# writes a copy of the current hotplug event to stdout. +# add buffering, to avoid interleaving reports! +# +log_to_stdout () +{ + if [ -x /bin/date ]; then + echo "HOTPLUG_TIME='$(/bin/date)'" + fi + + env | egrep -v '^PATH=|^PWD=|^_=|^OLDPWD=|^SHLVL=|^HOME=' + echo '' + # empty line terminates events +} + +# vim:syntax=sh diff --git a/recipes/pvrusb2-mci/pvrusb2-mci-20060903/Makefile.patch b/recipes/pvrusb2-mci/pvrusb2-mci-20060903/Makefile.patch new file mode 100644 index 0000000000..3db0b2c9d6 --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci-20060903/Makefile.patch @@ -0,0 +1,25 @@ +*** driver/Makefile.orig 2006-04-02 03:40:31.000000000 +0200 +--- driver/Makefile 2006-04-26 21:56:46.000000000 +0200 +*************** +*** 57,66 **** + CONFIG_VARS+= CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y + + modules modules_install clean: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) M=$(M) $(CONFIG_VARS) $@ + + install: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) M=$(M) $(CONFIG_VARS) modules_install + + else + +--- 57,66 ---- + CONFIG_VARS+= CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y + + modules modules_install clean: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) CFLAGS="$(CFLAGS)" M=$(M) $(CONFIG_VARS) $@ + + install: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) CFLAGS="$(CFLAGS)" M=$(M) $(CONFIG_VARS) modules_install + + else + diff --git a/recipes/pvrusb2-mci/pvrusb2-mci-20080210/Makefile.patch b/recipes/pvrusb2-mci/pvrusb2-mci-20080210/Makefile.patch new file mode 100644 index 0000000000..3db0b2c9d6 --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci-20080210/Makefile.patch @@ -0,0 +1,25 @@ +*** driver/Makefile.orig 2006-04-02 03:40:31.000000000 +0200 +--- driver/Makefile 2006-04-26 21:56:46.000000000 +0200 +*************** +*** 57,66 **** + CONFIG_VARS+= CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y + + modules modules_install clean: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) M=$(M) $(CONFIG_VARS) $@ + + install: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) M=$(M) $(CONFIG_VARS) modules_install + + else + +--- 57,66 ---- + CONFIG_VARS+= CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y + + modules modules_install clean: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) CFLAGS="$(CFLAGS)" M=$(M) $(CONFIG_VARS) $@ + + install: +! $(MAKE) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) -C $(KDIR) CFLAGS="$(CFLAGS)" M=$(M) $(CONFIG_VARS) modules_install + + else + diff --git a/recipes/pvrusb2-mci/pvrusb2-mci.inc b/recipes/pvrusb2-mci/pvrusb2-mci.inc new file mode 100644 index 0000000000..2e1fdac02d --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci.inc @@ -0,0 +1,6 @@ +DESCRIPTION = "Driver for the Hauppauge WinTV PVR USB2" +AUTHOR = "Mike Isely" +HOMEPAGE = "http://www.isely.net/pvrusb2.html" +SECTION = "kernel/modules" +PRIORITY = "optional" +LICENSE = "GPL" diff --git a/recipes/pvrusb2-mci/pvrusb2-mci2.inc b/recipes/pvrusb2-mci/pvrusb2-mci2.inc new file mode 100644 index 0000000000..f916880cf4 --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci2.inc @@ -0,0 +1,4 @@ +require pvrusb2-mci.inc + +export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \ + -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir}" diff --git a/recipes/pvrusb2-mci/pvrusb2-mci_20060903.bb b/recipes/pvrusb2-mci/pvrusb2-mci_20060903.bb new file mode 100644 index 0000000000..afd24025d9 --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci_20060903.bb @@ -0,0 +1,43 @@ +# FIXME, consider using kernel staging directory instead of KERNEL_SOURCE which is +# located in the work directory. see module.bbclass + +require pvrusb2-mci2.inc + +RRECOMMENDS = "kernel-module-tveeprom \ + kernel-module-firmware-class \ + kernel-module-tuner \ + kernel-module-msp3400 \ + kernel-module-saa7115 \ + kernel-module-tda9887 \ + kernel-module-v4l1-compat \ + kernel-module-v4l2-common \ + kernel-module-videodev" + +SRC_URI = "http://www.isely.net/downloads/pvrusb2-mci-${PV}.tar.bz2 \ + file://hotplug.functions \ + file://firmware.hotplug \ + file://Makefile.patch;patch=1" + +S = "${WORKDIR}/pvrusb2-mci-${PV}/driver" + +inherit module + +CFLAGS = "'-I${KERNEL_SOURCE}/include' \ + '-I${KERNEL_SOURCE}/drivers/media/video' " + +CFLAGS_append_arm = " '-D__LINUX_ARM_ARCH__=5' " + +CFLAGS_append_armeb = " '-D__LINUX_ARM_ARCH__=5' " + +EXTRA_OEMAKE = "'V=1' 'CFLAGS=${CFLAGS}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' \ + 'KDIR=${STAGING_KERNEL_DIR}'" + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media + install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media + mkdir -p ${D}/etc/hotplug.d/firmware + cp ${WORKDIR}/hotplug.functions ${D}/etc/hotplug.d/firmware + cp ${WORKDIR}/firmware.hotplug ${D}/etc/hotplug.d/firmware +} diff --git a/recipes/pvrusb2-mci/pvrusb2-mci_20080210.bb b/recipes/pvrusb2-mci/pvrusb2-mci_20080210.bb new file mode 100644 index 0000000000..afd24025d9 --- /dev/null +++ b/recipes/pvrusb2-mci/pvrusb2-mci_20080210.bb @@ -0,0 +1,43 @@ +# FIXME, consider using kernel staging directory instead of KERNEL_SOURCE which is +# located in the work directory. see module.bbclass + +require pvrusb2-mci2.inc + +RRECOMMENDS = "kernel-module-tveeprom \ + kernel-module-firmware-class \ + kernel-module-tuner \ + kernel-module-msp3400 \ + kernel-module-saa7115 \ + kernel-module-tda9887 \ + kernel-module-v4l1-compat \ + kernel-module-v4l2-common \ + kernel-module-videodev" + +SRC_URI = "http://www.isely.net/downloads/pvrusb2-mci-${PV}.tar.bz2 \ + file://hotplug.functions \ + file://firmware.hotplug \ + file://Makefile.patch;patch=1" + +S = "${WORKDIR}/pvrusb2-mci-${PV}/driver" + +inherit module + +CFLAGS = "'-I${KERNEL_SOURCE}/include' \ + '-I${KERNEL_SOURCE}/drivers/media/video' " + +CFLAGS_append_arm = " '-D__LINUX_ARM_ARCH__=5' " + +CFLAGS_append_armeb = " '-D__LINUX_ARM_ARCH__=5' " + +EXTRA_OEMAKE = "'V=1' 'CFLAGS=${CFLAGS}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' \ + 'KDIR=${STAGING_KERNEL_DIR}'" + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media + install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media + mkdir -p ${D}/etc/hotplug.d/firmware + cp ${WORKDIR}/hotplug.functions ${D}/etc/hotplug.d/firmware + cp ${WORKDIR}/firmware.hotplug ${D}/etc/hotplug.d/firmware +} |