kernel-rpi: update to git commit 350ee7b (3.10.18 bump).
This commit is contained in:
parent
6af2a26cd4
commit
a00abae94f
|
@ -1,387 +0,0 @@
|
|||
From f803f0d079ded4272d7a1c9813bfd24c58b8ee5f Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
Date: Mon, 17 Dec 2012 16:02:44 -0800
|
||||
Subject: [PATCH] rtc: add NXP PCF8523 support
|
||||
|
||||
Add an RTC driver for PCF8523 chips by NXP Semiconductors. No support is
|
||||
currently provided for the alarm and interrupt functions. Only the time
|
||||
and date functionality is implemented.
|
||||
|
||||
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
Cc: Alessandro Zummo <a.zummo@towertech.it>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
drivers/rtc/Kconfig | 9 ++
|
||||
drivers/rtc/Makefile | 1 +
|
||||
drivers/rtc/rtc-pcf8523.c | 326 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 336 insertions(+), 0 deletions(-)
|
||||
create mode 100644 drivers/rtc/rtc-pcf8523.c
|
||||
|
||||
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
|
||||
index 608a7b1..5bb0314 100644
|
||||
--- drivers/rtc/Kconfig
|
||||
+++ drivers/rtc/Kconfig
|
||||
@@ -269,6 +269,15 @@ config RTC_DRV_X1205
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called rtc-x1205.
|
||||
|
||||
+config RTC_DRV_PCF8523
|
||||
+ tristate "NXP PCF8523"
|
||||
+ help
|
||||
+ If you say yes here you get support for the NXP PCF8523 RTC
|
||||
+ chips.
|
||||
+
|
||||
+ This driver can also be built as a module. If so, the module
|
||||
+ will be called rtc-pcf8523.
|
||||
+
|
||||
config RTC_DRV_PCF8563
|
||||
tristate "Philips PCF8563/Epson RTC8564"
|
||||
help
|
||||
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
|
||||
index 56297f0..59e2132 100644
|
||||
--- drivers/rtc/Makefile
|
||||
+++ drivers/rtc/Makefile
|
||||
@@ -76,6 +76,7 @@ obj-$(CONFIG_RTC_DRV_MV) += rtc-mv.o
|
||||
obj-$(CONFIG_RTC_DRV_NUC900) += rtc-nuc900.o
|
||||
obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o
|
||||
obj-$(CONFIG_RTC_DRV_PCAP) += rtc-pcap.o
|
||||
+obj-$(CONFIG_RTC_DRV_PCF8523) += rtc-pcf8523.o
|
||||
obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
|
||||
obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
|
||||
obj-$(CONFIG_RTC_DRV_PCF2123) += rtc-pcf2123.o
|
||||
diff --git a/drivers/rtc/rtc-pcf8523.c b/drivers/rtc/rtc-pcf8523.c
|
||||
new file mode 100644
|
||||
index 0000000..be05a64
|
||||
--- /dev/null
|
||||
+++ drivers/rtc/rtc-pcf8523.c
|
||||
@@ -0,0 +1,326 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2012 Avionic Design GmbH
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/bcd.h>
|
||||
+#include <linux/i2c.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/rtc.h>
|
||||
+#include <linux/of.h>
|
||||
+
|
||||
+#define DRIVER_NAME "rtc-pcf8523"
|
||||
+
|
||||
+#define REG_CONTROL1 0x00
|
||||
+#define REG_CONTROL1_CAP_SEL (1 << 7)
|
||||
+#define REG_CONTROL1_STOP (1 << 5)
|
||||
+
|
||||
+#define REG_CONTROL3 0x02
|
||||
+#define REG_CONTROL3_PM_BLD (1 << 7) /* battery low detection disabled */
|
||||
+#define REG_CONTROL3_PM_VDD (1 << 6) /* switch-over disabled */
|
||||
+#define REG_CONTROL3_PM_DSM (1 << 5) /* direct switching mode */
|
||||
+#define REG_CONTROL3_PM_MASK 0xe0
|
||||
+
|
||||
+#define REG_SECONDS 0x03
|
||||
+#define REG_SECONDS_OS (1 << 7)
|
||||
+
|
||||
+#define REG_MINUTES 0x04
|
||||
+#define REG_HOURS 0x05
|
||||
+#define REG_DAYS 0x06
|
||||
+#define REG_WEEKDAYS 0x07
|
||||
+#define REG_MONTHS 0x08
|
||||
+#define REG_YEARS 0x09
|
||||
+
|
||||
+struct pcf8523 {
|
||||
+ struct rtc_device *rtc;
|
||||
+};
|
||||
+
|
||||
+static int pcf8523_read(struct i2c_client *client, u8 reg, u8 *valuep)
|
||||
+{
|
||||
+ struct i2c_msg msgs[2];
|
||||
+ u8 value = 0;
|
||||
+ int err;
|
||||
+
|
||||
+ msgs[0].addr = client->addr;
|
||||
+ msgs[0].flags = 0;
|
||||
+ msgs[0].len = sizeof(reg);
|
||||
+ msgs[0].buf = ®
|
||||
+
|
||||
+ msgs[1].addr = client->addr;
|
||||
+ msgs[1].flags = I2C_M_RD;
|
||||
+ msgs[1].len = sizeof(value);
|
||||
+ msgs[1].buf = &value;
|
||||
+
|
||||
+ err = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ *valuep = value;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_write(struct i2c_client *client, u8 reg, u8 value)
|
||||
+{
|
||||
+ u8 buffer[2] = { reg, value };
|
||||
+ struct i2c_msg msg;
|
||||
+ int err;
|
||||
+
|
||||
+ msg.addr = client->addr;
|
||||
+ msg.flags = 0;
|
||||
+ msg.len = sizeof(buffer);
|
||||
+ msg.buf = buffer;
|
||||
+
|
||||
+ err = i2c_transfer(client->adapter, &msg, 1);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_select_capacitance(struct i2c_client *client, bool high)
|
||||
+{
|
||||
+ u8 value;
|
||||
+ int err;
|
||||
+
|
||||
+ err = pcf8523_read(client, REG_CONTROL1, &value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ if (!high)
|
||||
+ value &= ~REG_CONTROL1_CAP_SEL;
|
||||
+ else
|
||||
+ value |= REG_CONTROL1_CAP_SEL;
|
||||
+
|
||||
+ err = pcf8523_write(client, REG_CONTROL1, value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_set_pm(struct i2c_client *client, u8 pm)
|
||||
+{
|
||||
+ u8 value;
|
||||
+ int err;
|
||||
+
|
||||
+ err = pcf8523_read(client, REG_CONTROL3, &value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ value = (value & ~REG_CONTROL3_PM_MASK) | pm;
|
||||
+
|
||||
+ err = pcf8523_write(client, REG_CONTROL3, value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_stop_rtc(struct i2c_client *client)
|
||||
+{
|
||||
+ u8 value;
|
||||
+ int err;
|
||||
+
|
||||
+ err = pcf8523_read(client, REG_CONTROL1, &value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ value |= REG_CONTROL1_STOP;
|
||||
+
|
||||
+ err = pcf8523_write(client, REG_CONTROL1, value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_start_rtc(struct i2c_client *client)
|
||||
+{
|
||||
+ u8 value;
|
||||
+ int err;
|
||||
+
|
||||
+ err = pcf8523_read(client, REG_CONTROL1, &value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ value &= ~REG_CONTROL1_STOP;
|
||||
+
|
||||
+ err = pcf8523_write(client, REG_CONTROL1, value);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||
+{
|
||||
+ struct i2c_client *client = to_i2c_client(dev);
|
||||
+ u8 start = REG_SECONDS, regs[7];
|
||||
+ struct i2c_msg msgs[2];
|
||||
+ int err;
|
||||
+
|
||||
+ msgs[0].addr = client->addr;
|
||||
+ msgs[0].flags = 0;
|
||||
+ msgs[0].len = 1;
|
||||
+ msgs[0].buf = &start;
|
||||
+
|
||||
+ msgs[1].addr = client->addr;
|
||||
+ msgs[1].flags = I2C_M_RD;
|
||||
+ msgs[1].len = sizeof(regs);
|
||||
+ msgs[1].buf = regs;
|
||||
+
|
||||
+ err = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ if (regs[0] & REG_SECONDS_OS) {
|
||||
+ /*
|
||||
+ * If the oscillator was stopped, try to clear the flag. Upon
|
||||
+ * power-up the flag is always set, but if we cannot clear it
|
||||
+ * the oscillator isn't running properly for some reason. The
|
||||
+ * sensible thing therefore is to return an error, signalling
|
||||
+ * that the clock cannot be assumed to be correct.
|
||||
+ */
|
||||
+
|
||||
+ regs[0] &= ~REG_SECONDS_OS;
|
||||
+
|
||||
+ err = pcf8523_write(client, REG_SECONDS, regs[0]);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ err = pcf8523_read(client, REG_SECONDS, ®s[0]);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ if (regs[0] & REG_SECONDS_OS)
|
||||
+ return -EAGAIN;
|
||||
+ }
|
||||
+
|
||||
+ tm->tm_sec = bcd2bin(regs[0] & 0x7f);
|
||||
+ tm->tm_min = bcd2bin(regs[1] & 0x7f);
|
||||
+ tm->tm_hour = bcd2bin(regs[2] & 0x3f);
|
||||
+ tm->tm_mday = bcd2bin(regs[3] & 0x3f);
|
||||
+ tm->tm_wday = regs[4] & 0x7;
|
||||
+ tm->tm_mon = bcd2bin(regs[5] & 0x1f);
|
||||
+ tm->tm_year = bcd2bin(regs[6]) + 100;
|
||||
+
|
||||
+ return rtc_valid_tm(tm);
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||
+{
|
||||
+ struct i2c_client *client = to_i2c_client(dev);
|
||||
+ struct i2c_msg msg;
|
||||
+ u8 regs[8];
|
||||
+ int err;
|
||||
+
|
||||
+ err = pcf8523_stop_rtc(client);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ regs[0] = REG_SECONDS;
|
||||
+ regs[1] = bin2bcd(tm->tm_sec);
|
||||
+ regs[2] = bin2bcd(tm->tm_min);
|
||||
+ regs[3] = bin2bcd(tm->tm_hour);
|
||||
+ regs[4] = bin2bcd(tm->tm_mday);
|
||||
+ regs[5] = tm->tm_wday;
|
||||
+ regs[6] = bin2bcd(tm->tm_mon);
|
||||
+ regs[7] = bin2bcd(tm->tm_year - 100);
|
||||
+
|
||||
+ msg.addr = client->addr;
|
||||
+ msg.flags = 0;
|
||||
+ msg.len = sizeof(regs);
|
||||
+ msg.buf = regs;
|
||||
+
|
||||
+ err = i2c_transfer(client->adapter, &msg, 1);
|
||||
+ if (err < 0) {
|
||||
+ /*
|
||||
+ * If the time cannot be set, restart the RTC anyway. Note
|
||||
+ * that errors are ignored if the RTC cannot be started so
|
||||
+ * that we have a chance to propagate the original error.
|
||||
+ */
|
||||
+ pcf8523_start_rtc(client);
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
+ return pcf8523_start_rtc(client);
|
||||
+}
|
||||
+
|
||||
+static const struct rtc_class_ops pcf8523_rtc_ops = {
|
||||
+ .read_time = pcf8523_rtc_read_time,
|
||||
+ .set_time = pcf8523_rtc_set_time,
|
||||
+};
|
||||
+
|
||||
+static int pcf8523_probe(struct i2c_client *client,
|
||||
+ const struct i2c_device_id *id)
|
||||
+{
|
||||
+ struct pcf8523 *pcf;
|
||||
+ int err;
|
||||
+
|
||||
+ if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ pcf = devm_kzalloc(&client->dev, sizeof(*pcf), GFP_KERNEL);
|
||||
+ if (!pcf)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ err = pcf8523_select_capacitance(client, true);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ err = pcf8523_set_pm(client, 0);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
+ pcf->rtc = rtc_device_register(DRIVER_NAME, &client->dev,
|
||||
+ &pcf8523_rtc_ops, THIS_MODULE);
|
||||
+ if (IS_ERR(pcf->rtc))
|
||||
+ return PTR_ERR(pcf->rtc);
|
||||
+
|
||||
+ i2c_set_clientdata(client, pcf);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int pcf8523_remove(struct i2c_client *client)
|
||||
+{
|
||||
+ struct pcf8523 *pcf = i2c_get_clientdata(client);
|
||||
+
|
||||
+ rtc_device_unregister(pcf->rtc);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct i2c_device_id pcf8523_id[] = {
|
||||
+ { "pcf8523", 0 },
|
||||
+ { }
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(i2c, pcf8523_id);
|
||||
+
|
||||
+#ifdef CONFIG_OF
|
||||
+static const struct of_device_id pcf8523_of_match[] = {
|
||||
+ { .compatible = "nxp,pcf8523" },
|
||||
+ { }
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, pcf8523_of_match);
|
||||
+#endif
|
||||
+
|
||||
+static struct i2c_driver pcf8523_driver = {
|
||||
+ .driver = {
|
||||
+ .name = DRIVER_NAME,
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .of_match_table = of_match_ptr(pcf8523_of_match),
|
||||
+ },
|
||||
+ .probe = pcf8523_probe,
|
||||
+ .remove = pcf8523_remove,
|
||||
+ .id_table = pcf8523_id,
|
||||
+};
|
||||
+module_i2c_driver(pcf8523_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Thierry Reding <thierry.reding@avionic-design.de>");
|
||||
+MODULE_DESCRIPTION("NXP PCF8523 RTC driver");
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
--
|
||||
1.7.6.5
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||
index 7fe7283..a8e31e7 100644
|
||||
--- arch/arm/mach-bcm2708/bcm2708.c
|
||||
+++ arch/arm/mach-bcm2708/bcm2708.c
|
||||
@@ -689,6 +689,21 @@ static void bcm2708_power_off(void)
|
||||
bcm2708_restart(0, "");
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_RTC_DRV_PCF8523
|
||||
+static struct i2c_board_info offboard_i2c_devices[] = {
|
||||
+ {
|
||||
+ /* Raspy Juice real-time clock chip */
|
||||
+ I2C_BOARD_INFO("pcf8523", 0x68),
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+#if defined(CONFIG_RTC_HCTOSYS) && \
|
||||
+ (!defined(CONFIG_I2C_CHARDEV) || \
|
||||
+ !defined(CONFIG_I2C_BCM2708))
|
||||
+#error "RTC_DRV_PCF8523 defined as kernel built-in, but I2C_CHARDEV and I2C_BMC2708 isn't: RTC_HCTOSYS will not work."
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
void __init bcm2708_init(void)
|
||||
{
|
||||
int i;
|
||||
@@ -752,6 +767,15 @@ void __init bcm2708_init(void)
|
||||
spi_register_board_info(bcm2708_spi_devices,
|
||||
ARRAY_SIZE(bcm2708_spi_devices));
|
||||
#endif
|
||||
+
|
||||
+#ifdef CONFIG_RTC_DRV_PCF8523
|
||||
+ i = 0;
|
||||
+ /* test of Raspberry Pi Rev.2, where GPIO-header I2C busnum=1 */
|
||||
+ if (system_rev >= 15)
|
||||
+ i = 1;
|
||||
+ i2c_register_board_info(i, offboard_i2c_devices,
|
||||
+ ARRAY_SIZE(offboard_i2c_devices));
|
||||
+#endif
|
||||
}
|
||||
|
||||
#define TIMER_PERIOD DIV_ROUND_CLOSEST(STC_FREQ_HZ, HZ)
|
|
@ -1,98 +0,0 @@
|
|||
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
|
||||
--- drivers/usb/core/quirks.c
|
||||
+++ 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
|
||||
--- drivers/usb/core/quirks.c
|
||||
+++ 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
|
||||
--- drivers/usb/core/quirks.c
|
||||
+++ 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 },
|
|
@ -1,18 +1,18 @@
|
|||
# Template file for 'kernel-rpi'
|
||||
#
|
||||
# Latest commit as of 20131009
|
||||
_githash="10bc582"
|
||||
# Latest commit as of 20131107
|
||||
_githash="350ee7b"
|
||||
|
||||
pkgname=kernel-rpi
|
||||
version=3.6.11
|
||||
revision=8
|
||||
version=3.10.18
|
||||
revision=1
|
||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||
homepage="http://www.kernel.org"
|
||||
license="GPL-2"
|
||||
short_desc="The Linux kernel and modules for the Raspberry Pi (3.6 series [git ${_githash}])"
|
||||
short_desc="The Linux kernel and modules for the Raspberry Pi (3.10 series [git ${_githash}])"
|
||||
|
||||
_kernver="${version}_${revision}"
|
||||
hostmakedepends="perl python kmod>=11_2 uboot-mkimage"
|
||||
hostmakedepends="perl python kmod>=11_2 uboot-mkimage openssl which elfutils bc"
|
||||
makedepends="ncurses-devel"
|
||||
only_for_archs="armv6l"
|
||||
|
||||
|
@ -113,15 +113,6 @@ do_install() {
|
|||
fi
|
||||
cp arch/arm/kernel/asm-offsets.s ${hdrdest}/arch/arm/kernel
|
||||
|
||||
# add headers for lirc package
|
||||
mkdir -p ${hdrdest}/drivers/media/video
|
||||
cp drivers/media/video/*.h ${hdrdest}/drivers/media/video/
|
||||
|
||||
for i in bt8xx cpia2 cx25840 cx88 em28xx pwc saa7134 sn9c102; do
|
||||
mkdir -p ${hdrdest}/drivers/media/video/${i}
|
||||
cp -a drivers/media/video/${i}/*.h ${hdrdest}/drivers/media/video/${i}
|
||||
done
|
||||
|
||||
# Add docbook makefile
|
||||
install -Dm644 Documentation/DocBook/Makefile \
|
||||
${hdrdest}/Documentation/DocBook/Makefile
|
||||
|
@ -165,7 +156,7 @@ do_install() {
|
|||
kernel-headers-rpi_package() {
|
||||
nostrip=yes
|
||||
noverifyrdeps=yes
|
||||
short_desc="Linux kernel headers for the RaspberryPI (3.6 series [${_githash}])"
|
||||
short_desc="Linux kernel headers for the RaspberryPI (3.10 series [${_githash}])"
|
||||
pkg_install() {
|
||||
vmove usr/src
|
||||
vmove usr/lib/modules/${_kernver}/build
|
||||
|
@ -175,7 +166,6 @@ kernel-headers-rpi_package() {
|
|||
kernel-rpi_package() {
|
||||
nostrip=yes
|
||||
noverifyrdeps=yes
|
||||
provides="kernel-${version}"
|
||||
triggers="kernel-hooks"
|
||||
depends="kmod>=11_2"
|
||||
# These files could be modified when an external module is built.
|
||||
|
|
Loading…
Reference in New Issue