Initial Kirkwood Device Tree kernel

This commit is contained in:
Joshua Coombs 2012-10-11 23:25:07 -04:00
parent ecd8e6d95c
commit 8f5de0bd19
8 changed files with 4298 additions and 0 deletions

View file

@ -0,0 +1,219 @@
# Maintainer: Mike Staszel <mikestaszel@plugapps.com>
# Maintainer: Kevin Mihelich <kevin@plugapps.com>
buildarch=2
pkgbase=linux-kirkwood-dt
pkgname=('linux-kirkwood-dt' 'linux-headers-kirkwood-dt')
#pkgname=linux-test # Build kernel with a different name
_kernelname=${pkgname#linux}
_basekernel=next.20121011
pkgver=${_basekernel}
pkgrel=1
cryptover=1.5
arch=('arm')
url="http://www.kernel.org/"
license=('GPL2')
makedepends=('git' 'xmlto' 'docbook-xsl' 'uboot-mkimage')
options=('!strip')
source=('support.patch'
'config'
'dts-bootarg-wipe.patch'
'read_current_timer2.patch'
'change-default-console-loglevel.patch'
'usb-add-reset-resume-quirk-for-several-webcams.patch'
"http://download.gna.org/cryptodev-linux/cryptodev-linux-${cryptover}.tar.gz"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/3.6.0-v5/0001-block-cgroups-kconfig-build-bits-for-BFQ-v5-3.6.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/3.6.0-v5/0002-block-introduce-the-BFQ-v5-I-O-sched-for-3.6.patch")
md5sums=('f5d3635da03cb45904bedd69b47133de'
'7d7ee71db286f04672f404609fcec98a'
'874483fdd661993035c04d3e96abad37'
'c811a057604262b3e5b502d5214ee497'
'9d3c56a4b999c8bfbd4018089a62f662'
'd00814b57448895e65fbbc800e8a58ba'
'3a4b8d23c1708283e29477931d63ffb8'
'f8d5472706d94a2707dd53bad5ccd00e'
'b5df48a60787f0abe275fe9df1bbef35')
__gitroot="git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git"
__gitname="linux-next"
__gitbranch="next-20121011"
build() {
cd "${srcdir}"
msg "Connecting to GIT server..."
if [ -d $__gitname ] ; then
cd $__gitname && git pull origin
msg "The local files are updated."
else
git clone --depth 1 --branch=${__gitbranch} $__gitroot
fi
cd "${srcdir}/${__gitname}"
msg "GIT checkout done or server timeout"
# Wipe preconfigured bootargs
patch -Np1 -i "${srcdir}/dts-bootarg-wipe.patch"
# Add the USB_QUIRK_RESET_RESUME for several webcams
# FS#26528
patch -Np1 -i "${srcdir}/usb-add-reset-resume-quirk-for-several-webcams.patch"
# Add requested additional support
patch -Np1 -i "${srcdir}/support.patch"
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
# Fix read_current_timer so it's exported to modules, upstream is aware and
# a proper fix is pending.
patch -Np1 -i "${srcdir}/read_current_timer2.patch"
# Add BFQ patches
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-v5-3.6.patch"
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-v5-I-O-sched-for-3.6.patch"
cat "${srcdir}/config" > ./.config
# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh
# get kernel version
make prepare
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
# Copy back our configuration (use with new kernel version)
#cp ./.config ../${_basekernel}.config
####################
# stop here
# this is useful to configure the kernel
#msg "Stopping build"
#return 1
####################
#yes "" | make config
# build!
make ${MAKEFLAGS} zImage modules
make dtbs
# build cryptodev module
cd "${srcdir}/cryptodev-linux-${cryptover}"
make KERNEL_DIR="${srcdir}/${__gitname}"
}
package_linux-kirkwood-dt() {
pkgdesc="The Linux Kernel and modules - Marvell Kirkwood DT"
groups=('base')
depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16' 'mkinitcpio>=0.7' 'uboot-mkimage' 'uboot-env')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26' 'aufs_friendly' 'cryptodev_friendly' 'linux=${pkgver}')
conflicts=('linux')
install=${pkgname}.install
cd "${srcdir}/${__gitname}"
KARCH=arm
# get kernel version
_kernver="$(make kernelrelease)"
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot/dtb}
make INSTALL_MOD_PATH="${pkgdir}" modules_install
cp arch/$KARCH/boot/zImage "${pkgdir}/boot/zImage"
cp arch/$KARCH/boot/*.dtb "${pkgdir}/boot/dtb/."
cp arch/$KARCH/boot/dts/skeleton.dtsi "${pkgdir}/boot/dtb/."
cp arch/$KARCH/boot/dts/kirkwood* "${pkgdir}/boot/dtb/."
mkdir -p "${pkgdir}"/usr/local/sbin
cp scripts/dtc/dtc "${pkgdir}/usr/local/sbin/."
# set correct depmod command for install
sed \
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
-i "${startdir}/${pkgname}.install"
# remove build and source links
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
# remove the firmware
rm -rf "${pkgdir}/lib/firmware"
# gzip -9 all modules to save 100MB of space
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
# make room for external modules
ln -s "../extramodules-${_basekernel}-${_kernelname:-ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from post_install/upgrade
mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}-${_kernelname:-ARCH}"
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}-${_kernelname:-ARCH}/version"
# install cryptodev module
cd "${srcdir}/cryptodev-linux-${cryptover}"
make -C "${srcdir}/${__gitname}" INSTALL_MOD_PATH="${pkgdir}" SUBDIRS=`pwd` modules_install
cd "${srcdir}/${__gitname}"
# Now we call depmod...
depmod -b "$pkgdir" -F System.map "$_kernver"
# move module tree /lib -> /usr/lib
mkdir -p "${pkgdir}/usr"
mv "$pkgdir/lib" "$pkgdir/usr"
}
package_linux-headers-kirkwood-dt() {
pkgdesc="Header files and scripts for building modules for linux kernel - Marvell Kirkwood"
provides=('kernel26-headers' 'linux-headers=${pkgver}')
conflicts=('kernel26-headers' 'linux-headers')
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
cd "${pkgdir}/usr/lib/modules/${_kernver}"
ln -sf ../../../src/linux-${_kernver} build
cd "${srcdir}/${__gitname}"
install -D -m644 Makefile \
"${pkgdir}/usr/src/linux-${_kernver}/Makefile"
install -D -m644 kernel/Makefile \
"${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
install -D -m644 .config \
"${pkgdir}/usr/src/linux-${_kernver}/.config"
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
make headers_install INSTALL_HDR_PATH="${pkgdir}/usr/src/linux-${_kernver}"
# strip scripts directory
find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
case "$(file -bi "${binary}")" in
*application/x-sharedlib*) # Libraries (.so)
/usr/bin/strip ${STRIP_SHARED} "${binary}";;
*application/x-archive*) # Libraries (.a)
/usr/bin/strip ${STRIP_STATIC} "${binary}";;
*application/x-executable*) # Binaries
/usr/bin/strip ${STRIP_BINARIES} "${binary}";;
esac
done
# Clean up unneeded files
find "${pkgdir}" -name "..install.cmd" -delete
# install cryptodev header
cd "${srcdir}/cryptodev-linux-${cryptover}"
install -D crypto/cryptodev.h "${pkgdir}/usr/src/linux-${_kernver}/crypto/cryptodev.h"
}

View file

@ -0,0 +1,12 @@
diff -upr linux-3.0.orig/kernel/printk.c linux-3.0/kernel/printk.c
--- linux-3.0.orig/kernel/printk.c 2011-07-22 05:17:23.000000000 +0300
+++ linux-3.0/kernel/printk.c 2011-07-27 14:43:07.000000000 +0300
@@ -58,7 +58,7 @@ void asmlinkage __attribute__((weak)) ea
/* We show everything that is MORE important than this.. */
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
-#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
+#define DEFAULT_CONSOLE_LOGLEVEL 4 /* anything MORE serious than KERN_DEBUG */
DECLARE_WAIT_QUEUE_HEAD(log_wait);

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,132 @@
diff -ruN a/arch/arm/boot/dts/kirkwood-dns320.dts b/arch/arm/boot/dts/kirkwood-dns320.dts
--- a/arch/arm/boot/dts/kirkwood-dns320.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-dns320.dts 2012-10-11 10:44:31.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
gpio-leds {
diff -ruN a/arch/arm/boot/dts/kirkwood-dns325.dts b/arch/arm/boot/dts/kirkwood-dns325.dts
--- a/arch/arm/boot/dts/kirkwood-dns325.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-dns325.dts 2012-10-11 10:44:59.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
gpio-leds {
diff -ruN a/arch/arm/boot/dts/kirkwood-dockstar.dts b/arch/arm/boot/dts/kirkwood-dockstar.dts
--- a/arch/arm/boot/dts/kirkwood-dockstar.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts 2012-10-11 10:46:05.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-dreamplug.dts b/arch/arm/boot/dts/kirkwood-dreamplug.dts
--- a/arch/arm/boot/dts/kirkwood-dreamplug.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-dreamplug.dts 2012-10-11 10:46:21.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts
--- a/arch/arm/boot/dts/kirkwood-goflexnet.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts 2012-10-11 10:46:44.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-ib62x0.dts b/arch/arm/boot/dts/kirkwood-ib62x0.dts
--- a/arch/arm/boot/dts/kirkwood-ib62x0.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts 2012-10-11 10:46:58.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-iconnect.dts b/arch/arm/boot/dts/kirkwood-iconnect.dts
--- a/arch/arm/boot/dts/kirkwood-iconnect.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts 2012-10-11 10:47:18.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
linux,initrd-start = <0x4500040>;
linux,initrd-end = <0x4800000>;
};
diff -ruN a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts 2012-10-11 10:47:33.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts
--- a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts 2012-10-11 10:47:49.000000000 -0400
@@ -12,7 +12,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-lsxl.dtsi b/arch/arm/boot/dts/kirkwood-lsxl.dtsi
--- a/arch/arm/boot/dts/kirkwood-lsxl.dtsi 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-lsxl.dtsi 2012-10-11 10:48:08.000000000 -0400
@@ -2,7 +2,7 @@
/ {
chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
+ bootargs = "";
};
ocp@f1000000 {
diff -ruN a/arch/arm/boot/dts/kirkwood-ts219.dtsi b/arch/arm/boot/dts/kirkwood-ts219.dtsi
--- a/arch/arm/boot/dts/kirkwood-ts219.dtsi 2012-10-11 10:40:49.000000000 -0400
+++ b/arch/arm/boot/dts/kirkwood-ts219.dtsi 2012-10-11 10:48:27.000000000 -0400
@@ -10,7 +10,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8";
+ bootargs = "";
};
ocp@f1000000 {

View file

@ -0,0 +1,64 @@
# arg 1: the new package version
# arg 2: the old package version
KERNEL_NAME=-kirkwood-dt
KERNEL_VERSION=3.6.0-1-next-20121011-ARCH+
post_install () {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
echo "**********************************************************************"
echo "WARNING! This kernel package will NOT boot without user intervention."
echo ""
echo " A Kirkwood Flattened Device Tree supporting zImage is"
echo " placed in /boot and all mainline supported .dtb and .dts"
echo " files are in /boot/dtb for you to prep as appropriate."
echo ""
echo " Depending on your particular device, you may need to upgrade"
echo " your installed U-Boot version, and/or modify your boot env."
echo " Some platforms may need to append the appropriate .dtb to the"
echo " end of the zImage and make a uImage from the resulting blob."
echo " You may need to update the .dts with your kernel boot args"
echo " and compile your own .dtb from it, /usr/local/sbin/dtc has"
echo " been included to assist in this."
echo ""
echo " If you are not familiar with the care and feeding of a DT"
echo " enabled kernel for your device, uninstall this package and"
echo " continue to use linux or linux-kirkwood for now."
echo "**********************************************************************"
}
post_upgrade() {
if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then
if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then
echo "WARNING: /boot appears to be a seperate partition but is not mounted."
echo " You probably just broke your system. Congratulations."
fi
fi
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
echo "**********************************************************************"
echo "WARNING! This kernel package will NOT boot without user intervention."
echo ""
echo " A Kirkwood Flattened Device Tree supporting zImage is"
echo " placed in /boot and all mainline supported .dtb and .dts"
echo " files are in /boot/dtb for you to prep as appropriate."
echo ""
echo " Depending on your particular device, you may need to upgrade"
echo " your installed U-Boot version, and/or modify your boot env."
echo " Some platforms may need to append the appropriate .dtb to the"
echo " end of the zImage and make a uImage from the resulting blob."
echo " You may need to update the .dts with your kernel boot args"
echo " and compile your own .dtb from it, /usr/local/sbin/dtc has"
echo " been included to assist in this."
echo ""
echo " If you are not familiar with the care and feeding of a DT"
echo " enabled kernel for your device, uninstall this package and"
echo " continue to use linux or linux-kirkwood for now."
echo "**********************************************************************"
}

View file

@ -0,0 +1,12 @@
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 60d3b73..6a37f8d 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -50,6 +50,7 @@ extern void fpundefinstr(void);
/* platform dependent support */
EXPORT_SYMBOL(arm_delay_ops);
+EXPORT_SYMBOL(read_current_timer);
/* networking */
EXPORT_SYMBOL(csum_partial);

View file

@ -0,0 +1,10 @@
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -3247,6 +3247,7 @@
{ USB_DEVICE(0x0711, 0x0903) },
{ USB_DEVICE(0x0711, 0x0918) },
{ USB_DEVICE(0x0711, 0x0920) },
+ { USB_DEVICE(0x0711, 0x0950) },
{ USB_DEVICE(0x182d, 0x021c) },
{ USB_DEVICE(0x182d, 0x0269) },
{ }

View file

@ -0,0 +1,98 @@
commit 2394d67e446bf616a0885167d5f0d397bdacfdfc
Author: Oliver Neukum <oneukum@suse.de>
Date: Tue Sep 13 08:42:21 2011 +0200
USB: add RESET_RESUME for webcams shown to be quirky
The new runtime PM code has shown that many webcams suffer
from a race condition that may crash them upon resume.
Runtime PM is especially prone to show the problem because
it retains power to the cameras at all times. However
system suspension may also crash the devices and retain
power to the devices.
The only way to solve this problem without races is in
usbcore with the RESET_RESUME quirk.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 81ce6a8..38f0510 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = {
/* Creative SB Audigy 2 NX */
{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
+ /* Logitech Webcam C200 */
+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
+
+ /* Logitech Webcam C250 */
+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
+
+ /* Logitech Webcam B/C500 */
+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
+
+ /* Logitech Webcam Pro 9000 */
+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
+
+ /* Logitech Webcam C310 */
+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
+
+ /* Logitech Webcam C270 */
+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
+
/* Logitech Harmony 700-series */
{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = {
{ USB_DEVICE(0x06a3, 0x0006), .driver_info =
USB_QUIRK_CONFIG_INTF_STRINGS },
+ /* Guillemot Webcam Hercules Dualpix Exchange*/
+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
+
/* M-Systems Flash Disk Pioneers */
{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc
Author: Jon Levell <linuxusb@coralbark.net>
Date: Thu Sep 29 20:42:52 2011 +0100
USB: add quirk for Logitech C300 web cam
My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound.
The following trivial patch fixes it.
Signed-off-by: Jon Levell <linuxusb@coralbark.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 38f0510..d6a8d82 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = {
/* Logitech Webcam C250 */
{ USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
+ /* Logitech Webcam C300 */
+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
+
/* Logitech Webcam B/C500 */
{ USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index d6a8d82..caa1991 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
/* Logitech Webcam B/C500 */
{ USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
+ /* Logitech Webcam C600 */
+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
+
/* Logitech Webcam Pro 9000 */
{ USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },