--- /dev/null
+From 6dd7dc767e35cfbb38f8c63a50b1c27acad25920 Mon Sep 17 00:00:00 2001
+From: Stefan Ringel <stefan.ringel@arcor.de>
+Date: Mon, 14 Dec 2009 11:27:11 +0100
+Subject: ALSA: hda - Add PCI IDs for Nvidia G2xx-series
+
+From: Stefan Ringel <stefan.ringel@arcor.de>
+
+commit 6dd7dc767e35cfbb38f8c63a50b1c27acad25920 upstream.
+
+Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/hda_intel.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2694,6 +2694,9 @@ static struct pci_device_id azx_ids[] =
+ { PCI_DEVICE(0x10de, 0x0ac1), .driver_data = AZX_DRIVER_NVIDIA },
+ { PCI_DEVICE(0x10de, 0x0ac2), .driver_data = AZX_DRIVER_NVIDIA },
+ { PCI_DEVICE(0x10de, 0x0ac3), .driver_data = AZX_DRIVER_NVIDIA },
++ { PCI_DEVICE(0x10de, 0x0be2), .driver_data = AZX_DRIVER_NVIDIA },
++ { PCI_DEVICE(0x10de, 0x0be3), .driver_data = AZX_DRIVER_NVIDIA },
++ { PCI_DEVICE(0x10de, 0x0be4), .driver_data = AZX_DRIVER_NVIDIA },
+ { PCI_DEVICE(0x10de, 0x0d94), .driver_data = AZX_DRIVER_NVIDIA },
+ { PCI_DEVICE(0x10de, 0x0d95), .driver_data = AZX_DRIVER_NVIDIA },
+ { PCI_DEVICE(0x10de, 0x0d96), .driver_data = AZX_DRIVER_NVIDIA },
--- /dev/null
+From cb19054697e92a793f336380fd72c588521178ff Mon Sep 17 00:00:00 2001
+From: Jie Yang <jie.yang@atheros.com>
+Date: Sun, 6 Dec 2009 23:16:58 +0000
+Subject: atl1c:use common_task instead of reset_task and link_chg_task
+
+From: Jie Yang <jie.yang@atheros.com>
+
+commit cb19054697e92a793f336380fd72c588521178ff upstream.
+
+use common_task instead of reset_task and link_chg_task, so it fix "call cancel_work_sync
+from the work itself".
+
+Signed-off-by: Jie Yang <jie.yang@atheros.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/atl1c/atl1c.h | 6 ++-
+ drivers/net/atl1c/atl1c_main.c | 72 ++++++++++++++++++-----------------------
+ 2 files changed, 37 insertions(+), 41 deletions(-)
+
+--- a/drivers/net/atl1c/atl1c.h
++++ b/drivers/net/atl1c/atl1c.h
+@@ -534,6 +534,9 @@ struct atl1c_adapter {
+ #define __AT_TESTING 0x0001
+ #define __AT_RESETTING 0x0002
+ #define __AT_DOWN 0x0003
++ u8 work_event;
++#define ATL1C_WORK_EVENT_RESET 0x01
++#define ATL1C_WORK_EVENT_LINK_CHANGE 0x02
+ u32 msg_enable;
+
+ bool have_msi;
+@@ -545,8 +548,7 @@ struct atl1c_adapter {
+ spinlock_t tx_lock;
+ atomic_t irq_sem;
+
+- struct work_struct reset_task;
+- struct work_struct link_chg_task;
++ struct work_struct common_task;
+ struct timer_list watchdog_timer;
+ struct timer_list phy_config_timer;
+
+--- a/drivers/net/atl1c/atl1c_main.c
++++ b/drivers/net/atl1c/atl1c_main.c
+@@ -198,27 +198,12 @@ static void atl1c_phy_config(unsigned lo
+
+ void atl1c_reinit_locked(struct atl1c_adapter *adapter)
+ {
+-
+ WARN_ON(in_interrupt());
+ atl1c_down(adapter);
+ atl1c_up(adapter);
+ clear_bit(__AT_RESETTING, &adapter->flags);
+ }
+
+-static void atl1c_reset_task(struct work_struct *work)
+-{
+- struct atl1c_adapter *adapter;
+- struct net_device *netdev;
+-
+- adapter = container_of(work, struct atl1c_adapter, reset_task);
+- netdev = adapter->netdev;
+-
+- netif_device_detach(netdev);
+- atl1c_down(adapter);
+- atl1c_up(adapter);
+- netif_device_attach(netdev);
+-}
+-
+ static void atl1c_check_link_status(struct atl1c_adapter *adapter)
+ {
+ struct atl1c_hw *hw = &adapter->hw;
+@@ -275,18 +260,6 @@ static void atl1c_check_link_status(stru
+ }
+ }
+
+-/*
+- * atl1c_link_chg_task - deal with link change event Out of interrupt context
+- * @netdev: network interface device structure
+- */
+-static void atl1c_link_chg_task(struct work_struct *work)
+-{
+- struct atl1c_adapter *adapter;
+-
+- adapter = container_of(work, struct atl1c_adapter, link_chg_task);
+- atl1c_check_link_status(adapter);
+-}
+-
+ static void atl1c_link_chg_event(struct atl1c_adapter *adapter)
+ {
+ struct net_device *netdev = adapter->netdev;
+@@ -311,20 +284,40 @@ static void atl1c_link_chg_event(struct
+ adapter->link_speed = SPEED_0;
+ }
+ }
+- schedule_work(&adapter->link_chg_task);
++
++ adapter->work_event |= ATL1C_WORK_EVENT_LINK_CHANGE;
++ schedule_work(&adapter->common_task);
+ }
+
+-static void atl1c_del_timer(struct atl1c_adapter *adapter)
++static void atl1c_common_task(struct work_struct *work)
+ {
+- del_timer_sync(&adapter->phy_config_timer);
++ struct atl1c_adapter *adapter;
++ struct net_device *netdev;
++
++ adapter = container_of(work, struct atl1c_adapter, common_task);
++ netdev = adapter->netdev;
++
++ if (adapter->work_event & ATL1C_WORK_EVENT_RESET) {
++ netif_device_detach(netdev);
++ atl1c_down(adapter);
++ atl1c_up(adapter);
++ netif_device_attach(netdev);
++ return;
++ }
++
++ if (adapter->work_event & ATL1C_WORK_EVENT_LINK_CHANGE)
++ atl1c_check_link_status(adapter);
++
++ return;
+ }
+
+-static void atl1c_cancel_work(struct atl1c_adapter *adapter)
++
++static void atl1c_del_timer(struct atl1c_adapter *adapter)
+ {
+- cancel_work_sync(&adapter->reset_task);
+- cancel_work_sync(&adapter->link_chg_task);
++ del_timer_sync(&adapter->phy_config_timer);
+ }
+
++
+ /*
+ * atl1c_tx_timeout - Respond to a Tx Hang
+ * @netdev: network interface device structure
+@@ -334,7 +327,8 @@ static void atl1c_tx_timeout(struct net_
+ struct atl1c_adapter *adapter = netdev_priv(netdev);
+
+ /* Do the reset outside of interrupt context */
+- schedule_work(&adapter->reset_task);
++ adapter->work_event |= ATL1C_WORK_EVENT_RESET;
++ schedule_work(&adapter->common_task);
+ }
+
+ /*
+@@ -1536,7 +1530,8 @@ static irqreturn_t atl1c_intr(int irq, v
+ /* reset MAC */
+ hw->intr_mask &= ~ISR_ERROR;
+ AT_WRITE_REG(hw, REG_IMR, hw->intr_mask);
+- schedule_work(&adapter->reset_task);
++ adapter->work_event |= ATL1C_WORK_EVENT_RESET;
++ schedule_work(&adapter->common_task);
+ break;
+ }
+
+@@ -2200,8 +2195,7 @@ void atl1c_down(struct atl1c_adapter *ad
+ struct net_device *netdev = adapter->netdev;
+
+ atl1c_del_timer(adapter);
+- atl1c_cancel_work(adapter);
+-
++ adapter->work_event = 0; /* clear all event */
+ /* signal that we're down so the interrupt handler does not
+ * reschedule our watchdog timer */
+ set_bit(__AT_DOWN, &adapter->flags);
+@@ -2601,8 +2595,8 @@ static int __devinit atl1c_probe(struct
+ adapter->hw.mac_addr[4], adapter->hw.mac_addr[5]);
+
+ atl1c_hw_set_mac_addr(&adapter->hw);
+- INIT_WORK(&adapter->reset_task, atl1c_reset_task);
+- INIT_WORK(&adapter->link_chg_task, atl1c_link_chg_task);
++ INIT_WORK(&adapter->common_task, atl1c_common_task);
++ adapter->work_event = 0;
+ err = register_netdev(netdev);
+ if (err) {
+ dev_err(&pdev->dev, "register netdevice failed\n");
--- /dev/null
+From 7c7afb083675b3d4d012a2aacec3a958ba484ab0 Mon Sep 17 00:00:00 2001
+From: Jie Yang <jie.yang@atheros.com>
+Date: Tue, 1 Dec 2009 17:18:34 +0000
+Subject: atl1e:disable NETIF_F_TSO6 for hardware limit
+
+From: Jie Yang <jie.yang@atheros.com>
+
+commit 7c7afb083675b3d4d012a2aacec3a958ba484ab0 upstream.
+
+For hardware limit to support TSOV6, just disable this feature
+Signed-off-by: Jie Yang <jie.yang@atheros.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/atl1e/atl1e_main.c | 36 ------------------------------------
+ 1 file changed, 36 deletions(-)
+
+--- a/drivers/net/atl1e/atl1e_main.c
++++ b/drivers/net/atl1e/atl1e_main.c
+@@ -1666,41 +1666,6 @@ static int atl1e_tso_csum(struct atl1e_a
+ }
+ return 0;
+ }
+-
+- if (offload_type & SKB_GSO_TCPV6) {
+- real_len = (((unsigned char *)ipv6_hdr(skb) - skb->data)
+- + ntohs(ipv6_hdr(skb)->payload_len));
+- if (real_len < skb->len)
+- pskb_trim(skb, real_len);
+-
+- /* check payload == 0 byte ? */
+- hdr_len = (skb_transport_offset(skb) + tcp_hdrlen(skb));
+- if (unlikely(skb->len == hdr_len)) {
+- /* only xsum need */
+- dev_warn(&pdev->dev,
+- "IPV6 tso with zero data??\n");
+- goto check_sum;
+- } else {
+- tcp_hdr(skb)->check = ~csum_ipv6_magic(
+- &ipv6_hdr(skb)->saddr,
+- &ipv6_hdr(skb)->daddr,
+- 0, IPPROTO_TCP, 0);
+- tpd->word3 |= 1 << TPD_IP_VERSION_SHIFT;
+- hdr_len >>= 1;
+- tpd->word3 |= (hdr_len & TPD_V6_IPHLLO_MASK) <<
+- TPD_V6_IPHLLO_SHIFT;
+- tpd->word3 |= ((hdr_len >> 3) &
+- TPD_V6_IPHLHI_MASK) <<
+- TPD_V6_IPHLHI_SHIFT;
+- tpd->word3 |= (tcp_hdrlen(skb) >> 2 &
+- TPD_TCPHDRLEN_MASK) <<
+- TPD_TCPHDRLEN_SHIFT;
+- tpd->word3 |= ((skb_shinfo(skb)->gso_size) &
+- TPD_MSS_MASK) << TPD_MSS_SHIFT;
+- tpd->word3 |= 1 << TPD_SEGMENT_EN_SHIFT;
+- }
+- }
+- return 0;
+ }
+
+ check_sum:
+@@ -2289,7 +2254,6 @@ static int atl1e_init_netdev(struct net_
+ NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+ netdev->features |= NETIF_F_LLTX;
+ netdev->features |= NETIF_F_TSO;
+- netdev->features |= NETIF_F_TSO6;
+
+ return 0;
+ }
--- /dev/null
+From 79e8941dda254505bb8af37b3a009165dfb7e98a Mon Sep 17 00:00:00 2001
+From: Seth Heasley <seth.heasley@intel.com>
+Date: Wed, 11 Nov 2009 02:24:01 +0100
+Subject: [WATCHDOG] iTCO_wdt: Add support for Intel Ibex Peak
+
+From: Seth Heasley <seth.heasley@intel.com>
+
+commit 79e8941dda254505bb8af37b3a009165dfb7e98a upstream.
+
+Add the Intel Ibex Peak (PCH) Device IDs to iTCO_wdt.c.
+
+Signed-off-by: Seth Heasley <seth.heasley@intel.com>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/watchdog/iTCO_wdt.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/watchdog/iTCO_wdt.c
++++ b/drivers/watchdog/iTCO_wdt.c
+@@ -54,7 +54,9 @@
+ * 82801JIB (ICH10) : document number 319973-002, 319974-002,
+ * 82801JIR (ICH10R) : document number 319973-002, 319974-002,
+ * 82801JD (ICH10D) : document number 319973-002, 319974-002,
+- * 82801JDO (ICH10DO) : document number 319973-002, 319974-002
++ * 82801JDO (ICH10DO) : document number 319973-002, 319974-002,
++ * 5 Series (PCH) : document number 322169-001, 322170-001,
++ * 3400 Series (PCH) : document number 322169-001, 322170-001
+ */
+
+ /*
+@@ -122,6 +124,9 @@ enum iTCO_chipsets {
+ TCO_ICH10R, /* ICH10R */
+ TCO_ICH10D, /* ICH10D */
+ TCO_ICH10DO, /* ICH10DO */
++ TCO_PCH, /* PCH Desktop Full Featured */
++ TCO_PCHM, /* PCH Mobile Full Featured */
++ TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */
+ };
+
+ static struct {
+@@ -162,6 +167,9 @@ static struct {
+ {"ICH10R", 2},
+ {"ICH10D", 2},
+ {"ICH10DO", 2},
++ {"PCH Desktop Full Featured", 2},
++ {"PCH Mobile Full Featured", 2},
++ {"PCH Mobile SFF Full Featured", 2},
+ {NULL, 0}
+ };
+
+@@ -230,6 +238,9 @@ static struct pci_device_id iTCO_wdt_pci
+ { ITCO_PCI_DEVICE(0x3a16, TCO_ICH10R)},
+ { ITCO_PCI_DEVICE(0x3a1a, TCO_ICH10D)},
+ { ITCO_PCI_DEVICE(0x3a14, TCO_ICH10DO)},
++ { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)},
++ { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)},
++ { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)},
+ { 0, }, /* End of list */
+ };
+ MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl);
--- /dev/null
+From 3a0429292daa0e1ec848bd26479f5e48b0d54a42 Mon Sep 17 00:00:00 2001
+From: Florian Westphal <fw@strlen.de>
+Date: Mon, 23 Nov 2009 10:43:57 +0100
+Subject: netfilter: xtables: fix conntrack match v1 ipt-save output
+
+From: Florian Westphal <fw@strlen.de>
+
+commit 3a0429292daa0e1ec848bd26479f5e48b0d54a42 upstream.
+
+commit d6d3f08b0fd998b647a05540cedd11a067b72867
+(netfilter: xtables: conntrack match revision 2) does break the
+v1 conntrack match iptables-save output in a subtle way.
+
+Problem is as follows:
+
+ up = kmalloc(sizeof(*up), GFP_KERNEL);
+[..]
+ /*
+ * The strategy here is to minimize the overhead of v1 matching,
+ * by prebuilding a v2 struct and putting the pointer into the
+ * v1 dataspace.
+ */
+ memcpy(up, info, offsetof(typeof(*info), state_mask));
+[..]
+ *(void **)info = up;
+
+As the v2 struct pointer is saved in the match data space,
+it clobbers the first structure member (->origsrc_addr).
+
+Because the _v1 match function grabs this pointer and does not actually
+look at the v1 origsrc, run time functionality does not break.
+But iptables -nvL (or iptables-save) cannot know that v1 origsrc_addr
+has been overloaded in this way:
+
+$ iptables -p tcp -A OUTPUT -m conntrack --ctorigsrc 10.0.0.1 -j ACCEPT
+$ iptables-save
+-A OUTPUT -p tcp -m conntrack --ctorigsrc 128.173.134.206 -j ACCEPT
+
+(128.173... is the address to the v2 match structure).
+
+To fix this, we take advantage of the fact that the v1 and v2 structures
+are identical with exception of the last two structure members (u8 in v1,
+u16 in v2).
+
+We extract them as early as possible and prevent the v2 matching function
+from looking at those two members directly.
+
+Previously reported by Michel Messerschmidt via Ben Hutchings, also
+see Debian Bug tracker #556587.
+
+Signed-off-by: Florian Westphal <fw@strlen.de>
+Signed-off-by: Patrick McHardy <kaber@trash.net>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/netfilter/xt_conntrack.c | 61 +++++++++++--------------------------------
+ 1 file changed, 17 insertions(+), 44 deletions(-)
+
+--- a/net/netfilter/xt_conntrack.c
++++ b/net/netfilter/xt_conntrack.c
+@@ -113,7 +113,8 @@ ct_proto_port_check(const struct xt_conn
+ }
+
+ static bool
+-conntrack_mt(const struct sk_buff *skb, const struct xt_match_param *par)
++conntrack_mt(const struct sk_buff *skb, const struct xt_match_param *par,
++ u16 state_mask, u16 status_mask)
+ {
+ const struct xt_conntrack_mtinfo2 *info = par->matchinfo;
+ enum ip_conntrack_info ctinfo;
+@@ -136,7 +137,7 @@ conntrack_mt(const struct sk_buff *skb,
+ if (test_bit(IPS_DST_NAT_BIT, &ct->status))
+ statebit |= XT_CONNTRACK_STATE_DNAT;
+ }
+- if (!!(info->state_mask & statebit) ^
++ if (!!(state_mask & statebit) ^
+ !(info->invert_flags & XT_CONNTRACK_STATE))
+ return false;
+ }
+@@ -172,7 +173,7 @@ conntrack_mt(const struct sk_buff *skb,
+ return false;
+
+ if ((info->match_flags & XT_CONNTRACK_STATUS) &&
+- (!!(info->status_mask & ct->status) ^
++ (!!(status_mask & ct->status) ^
+ !(info->invert_flags & XT_CONNTRACK_STATUS)))
+ return false;
+
+@@ -192,11 +193,17 @@ conntrack_mt(const struct sk_buff *skb,
+ static bool
+ conntrack_mt_v1(const struct sk_buff *skb, const struct xt_match_param *par)
+ {
+- const struct xt_conntrack_mtinfo2 *const *info = par->matchinfo;
+- struct xt_match_param newpar = *par;
++ const struct xt_conntrack_mtinfo1 *info = par->matchinfo;
+
+- newpar.matchinfo = *info;
+- return conntrack_mt(skb, &newpar);
++ return conntrack_mt(skb, par, info->state_mask, info->status_mask);
++}
++
++static bool
++conntrack_mt_v2(const struct sk_buff *skb, const struct xt_match_param *par)
++{
++ const struct xt_conntrack_mtinfo2 *info = par->matchinfo;
++
++ return conntrack_mt(skb, par, info->state_mask, info->status_mask);
+ }
+
+ static bool conntrack_mt_check(const struct xt_mtchk_param *par)
+@@ -209,45 +216,11 @@ static bool conntrack_mt_check(const str
+ return true;
+ }
+
+-static bool conntrack_mt_check_v1(const struct xt_mtchk_param *par)
+-{
+- struct xt_conntrack_mtinfo1 *info = par->matchinfo;
+- struct xt_conntrack_mtinfo2 *up;
+- int ret = conntrack_mt_check(par);
+-
+- if (ret < 0)
+- return ret;
+-
+- up = kmalloc(sizeof(*up), GFP_KERNEL);
+- if (up == NULL) {
+- nf_ct_l3proto_module_put(par->family);
+- return -ENOMEM;
+- }
+-
+- /*
+- * The strategy here is to minimize the overhead of v1 matching,
+- * by prebuilding a v2 struct and putting the pointer into the
+- * v1 dataspace.
+- */
+- memcpy(up, info, offsetof(typeof(*info), state_mask));
+- up->state_mask = info->state_mask;
+- up->status_mask = info->status_mask;
+- *(void **)info = up;
+- return true;
+-}
+-
+ static void conntrack_mt_destroy(const struct xt_mtdtor_param *par)
+ {
+ nf_ct_l3proto_module_put(par->family);
+ }
+
+-static void conntrack_mt_destroy_v1(const struct xt_mtdtor_param *par)
+-{
+- struct xt_conntrack_mtinfo2 **info = par->matchinfo;
+- kfree(*info);
+- conntrack_mt_destroy(par);
+-}
+-
+ static struct xt_match conntrack_mt_reg[] __read_mostly = {
+ {
+ .name = "conntrack",
+@@ -255,8 +228,8 @@ static struct xt_match conntrack_mt_reg[
+ .family = NFPROTO_UNSPEC,
+ .matchsize = sizeof(struct xt_conntrack_mtinfo1),
+ .match = conntrack_mt_v1,
+- .checkentry = conntrack_mt_check_v1,
+- .destroy = conntrack_mt_destroy_v1,
++ .checkentry = conntrack_mt_check,
++ .destroy = conntrack_mt_destroy,
+ .me = THIS_MODULE,
+ },
+ {
+@@ -264,7 +237,7 @@ static struct xt_match conntrack_mt_reg[
+ .revision = 2,
+ .family = NFPROTO_UNSPEC,
+ .matchsize = sizeof(struct xt_conntrack_mtinfo2),
+- .match = conntrack_mt,
++ .match = conntrack_mt_v2,
+ .checkentry = conntrack_mt_check,
+ .destroy = conntrack_mt_destroy,
+ .me = THIS_MODULE,
davinci-dm646x-add-support-for-3.x-silicon-revision.patch
input-alps-add-interleaved-protocol-support-dell-e6x00-series.patch
driver-core-devtmpfs-set-root-directory-mode-to-0755.patch
+alsa-hda-add-pci-ids-for-nvidia-g2xx-series.patch
+v4l-dvb-13569-smsusb-add-autodetection-support-for-five-additional-hauppauge-usb-ids.patch
+usb-mos7840-add-device-ids-for-b-b-electronics-devices.patch
+usb-ftdi_sio-add-usb-device-id-s-for-b-b-electronics-line.patch
+v4l-dvb-13168-add-support-for-asus-europa-hybrid-dvb-t-card-saa7134-subvendor-id-0x1043-device-id-0x4847.patch
+itco_wdt-add-support-for-intel-ibex-peak.patch
+atl1c-use-common_task-instead-of-reset_task-and-link_chg_task.patch
+atl1e-disable-netif_f_tso6-for-hardware-limit.patch
+v4l-dvb-13680a-docbook-media-copy-images-after-building-html.patch
+v4l-dvb-13680b-docbook-media-create-links-for-included-sources.patch
+netfilter-xtables-fix-conntrack-match-v1-ipt-save-output.patch
--- /dev/null
+From a8cbd90a0410096e152f68a4e114a8b5c7abb49b Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake@bec-systems.com>
+Date: Tue, 1 Dec 2009 09:53:42 -0500
+Subject: USB: ftdi_sio: add USB device ID's for B&B Electronics line
+
+From: Cliff Brake <cbrake@bec-systems.com>
+
+commit a8cbd90a0410096e152f68a4e114a8b5c7abb49b upstream.
+
+Reviewed-by: John Pilles <jpilles@bb-elec.com>
+Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 14 ++++++++++++++
+ drivers/usb/serial/ftdi_sio.h | 14 ++++++++++++++
+ 2 files changed, 28 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -598,6 +598,20 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(BANDB_VID, BANDB_USOTL4_PID) },
+ { USB_DEVICE(BANDB_VID, BANDB_USTL4_PID) },
+ { USB_DEVICE(BANDB_VID, BANDB_USO9ML2_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USOPTL4_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USPTL4_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USO9ML2DR_2_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USO9ML2DR_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USOPTL4DR2_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_USOPTL4DR_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_485USB9F_2W_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_485USB9F_4W_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_232USB9M_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_485USBTB_2W_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_485USBTB_4W_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_TTL5USB9M_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_TTL3USB9M_PID) },
++ { USB_DEVICE(BANDB_VID, BANDB_ZZ_PROG1_USB_PID) },
+ { USB_DEVICE(FTDI_VID, EVER_ECO_PRO_CDS) },
+ { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_1_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_2_PID) },
+--- a/drivers/usb/serial/ftdi_sio.h
++++ b/drivers/usb/serial/ftdi_sio.h
+@@ -662,6 +662,20 @@
+ #define BANDB_USOTL4_PID 0xAC01 /* USOTL4 Isolated RS-485 Converter */
+ #define BANDB_USTL4_PID 0xAC02 /* USTL4 RS-485 Converter */
+ #define BANDB_USO9ML2_PID 0xAC03 /* USO9ML2 Isolated RS-232 Converter */
++#define BANDB_USOPTL4_PID 0xAC11
++#define BANDB_USPTL4_PID 0xAC12
++#define BANDB_USO9ML2DR_2_PID 0xAC16
++#define BANDB_USO9ML2DR_PID 0xAC17
++#define BANDB_USOPTL4DR2_PID 0xAC18 /* USOPTL4R-2 2-port Isolated RS-232 Converter */
++#define BANDB_USOPTL4DR_PID 0xAC19
++#define BANDB_485USB9F_2W_PID 0xAC25
++#define BANDB_485USB9F_4W_PID 0xAC26
++#define BANDB_232USB9M_PID 0xAC27
++#define BANDB_485USBTB_2W_PID 0xAC33
++#define BANDB_485USBTB_4W_PID 0xAC34
++#define BANDB_TTL5USB9M_PID 0xAC49
++#define BANDB_TTL3USB9M_PID 0xAC50
++#define BANDB_ZZ_PROG1_USB_PID 0xBA02
+
+ /*
+ * RM Michaelides CANview USB (http://www.rmcan.com)
--- /dev/null
+From acf509ae28301d78b022c534c26b1e4765c18f2b Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake@bec-systems.com>
+Date: Tue, 1 Dec 2009 09:53:43 -0500
+Subject: USB: mos7840: add device IDs for B&B electronics devices
+
+From: Cliff Brake <cbrake@bec-systems.com>
+
+commit acf509ae28301d78b022c534c26b1e4765c18f2b upstream.
+
+Reviewed-by: John Pilles <jpilles@bb-elec.com>
+Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/mos7840.c | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/serial/mos7840.c
++++ b/drivers/usb/serial/mos7840.c
+@@ -121,8 +121,14 @@
+ * moschip_id_table_combined
+ */
+ #define USB_VENDOR_ID_BANDB 0x0856
+-#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44
++#define BANDB_DEVICE_ID_USO9ML2_2 0xAC22
++#define BANDB_DEVICE_ID_USO9ML2_4 0xAC24
++#define BANDB_DEVICE_ID_US9ML2_2 0xAC29
++#define BANDB_DEVICE_ID_US9ML2_4 0xAC30
++#define BANDB_DEVICE_ID_USPTL4_2 0xAC31
++#define BANDB_DEVICE_ID_USPTL4_4 0xAC32
+ #define BANDB_DEVICE_ID_USOPTL4_2 0xAC42
++#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44
+
+ /* This driver also supports
+ * ATEN UC2324 device using Moschip MCS7840
+@@ -177,8 +183,14 @@
+ static struct usb_device_id moschip_port_id_table[] = {
+ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7840)},
+ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
+- {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)},
+ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
+ {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
+ {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)},
+ {} /* terminating entry */
+@@ -187,8 +199,14 @@ static struct usb_device_id moschip_port
+ static __devinitdata struct usb_device_id moschip_id_table_combined[] = {
+ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7840)},
+ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
+- {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_4)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)},
+ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
++ {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
+ {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
+ {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)},
+ {} /* terminating entry */
--- /dev/null
+From e3c6e1aaa5db7822524f5b1355960fd732910068 Mon Sep 17 00:00:00 2001
+From: Danny Wood <danwood76@gmail.com>
+Date: Sun, 20 Sep 2009 12:14:21 -0300
+Subject: V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 SubVendor ID: 0x1043 Device ID: 0x4847)
+
+From: Danny Wood <danwood76@gmail.com>
+
+commit e3c6e1aaa5db7822524f5b1355960fd732910068 upstream.
+
+Adds the device IDs and driver linking to allow the Asus Europa DVB-T
+card to operate with these drivers.
+The device has a SAA7134 chipset with a TD1316 Hybrid Tuner.
+All inputs work on the card including switching between DVB-T and
+Analogue TV, there is also no IR with this card.
+
+[mchehab@redhat.com: CodingStyle fixes]
+
+Signed-off-by: Danny Wood <danwood76@gmail.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/video4linux/CARDLIST.saa7134 | 1
+ drivers/media/video/saa7134/saa7134-cards.c | 31 ++++++++++++++++++++++++++++
+ drivers/media/video/saa7134/saa7134-dvb.c | 1
+ drivers/media/video/saa7134/saa7134.h | 1
+ 4 files changed, 34 insertions(+)
+
+--- a/Documentation/video4linux/CARDLIST.saa7134
++++ b/Documentation/video4linux/CARDLIST.saa7134
+@@ -172,3 +172,4 @@
+ 171 -> Beholder BeholdTV X7 [5ace:7595]
+ 172 -> RoverMedia TV Link Pro FM [19d1:0138]
+ 173 -> Zolid Hybrid TV Tuner PCI [1131:2004]
++174 -> Asus Europa Hybrid OEM [1043:4847]
+--- a/drivers/media/video/saa7134/saa7134-cards.c
++++ b/drivers/media/video/saa7134/saa7134-cards.c
+@@ -5279,6 +5279,30 @@ struct saa7134_board saa7134_boards[] =
+ .amux = TV,
+ },
+ },
++ [SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
++ .name = "Asus Europa Hybrid OEM",
++ .audio_clock = 0x00187de7,
++ .tuner_type = TUNER_PHILIPS_TD1316,
++ .radio_type = UNSET,
++ .tuner_addr = 0x61,
++ .radio_addr = ADDR_UNSET,
++ .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
++ .mpeg = SAA7134_MPEG_DVB,
++ .inputs = { {
++ .name = name_tv,
++ .vmux = 3,
++ .amux = TV,
++ .tv = 1,
++ }, {
++ .name = name_comp1,
++ .vmux = 4,
++ .amux = LINE2,
++ }, {
++ .name = name_svideo,
++ .vmux = 8,
++ .amux = LINE2,
++ } },
++ },
+
+ };
+
+@@ -6418,6 +6442,12 @@ struct pci_device_id saa7134_pci_tbl[] =
+ .subdevice = 0x2004,
+ .driver_data = SAA7134_BOARD_ZOLID_HYBRID_PCI,
+ }, {
++ .vendor = PCI_VENDOR_ID_PHILIPS,
++ .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
++ .subvendor = 0x1043,
++ .subdevice = 0x4847,
++ .driver_data = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
++ }, {
+ /* --- boards without eeprom + subsystem ID --- */
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
+@@ -7079,6 +7109,7 @@ int saa7134_board_init2(struct saa7134_d
+ /* break intentionally omitted */
+ case SAA7134_BOARD_VIDEOMATE_DVBT_300:
+ case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
++ case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
+ {
+
+ /* The Philips EUROPA based hybrid boards have the tuner
+--- a/drivers/media/video/saa7134/saa7134-dvb.c
++++ b/drivers/media/video/saa7134/saa7134-dvb.c
+@@ -1116,6 +1116,7 @@ static int dvb_init(struct saa7134_dev *
+ break;
+ case SAA7134_BOARD_PHILIPS_EUROPA:
+ case SAA7134_BOARD_VIDEOMATE_DVBT_300:
++ case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
+ fe0->dvb.frontend = dvb_attach(tda10046_attach,
+ &philips_europa_config,
+ &dev->i2c_adap);
+--- a/drivers/media/video/saa7134/saa7134.h
++++ b/drivers/media/video/saa7134/saa7134.h
+@@ -297,6 +297,7 @@ struct saa7134_format {
+ #define SAA7134_BOARD_BEHOLD_X7 171
+ #define SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM 172
+ #define SAA7134_BOARD_ZOLID_HYBRID_PCI 173
++#define SAA7134_BOARD_ASUS_EUROPA_HYBRID 174
+
+ #define SAA7134_MAXBOARDS 32
+ #define SAA7134_INPUT_MAX 8
--- /dev/null
+From 20d15a200d34cfb7141fb4558895d7d5233db84b Mon Sep 17 00:00:00 2001
+From: Michael Krufky <mkrufky@kernellabs.com>
+Date: Mon, 30 Nov 2009 18:22:10 -0300
+Subject: V4L/DVB (13569): smsusb: add autodetection support for five additional Hauppauge USB IDs
+
+From: Michael Krufky <mkrufky@kernellabs.com>
+
+commit 20d15a200d34cfb7141fb4558895d7d5233db84b upstream.
+
+Add support for five new Hauppauge Device USB IDs:
+
+2040:b980
+2040:b990
+2040:c010
+2040:c080
+2040:c090
+
+Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/dvb/siano/smsusb.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/media/dvb/siano/smsusb.c
++++ b/drivers/media/dvb/siano/smsusb.c
+@@ -533,8 +533,18 @@ struct usb_device_id smsusb_id_table[] =
+ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
+ { USB_DEVICE(0x2040, 0xb910),
+ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
++ { USB_DEVICE(0x2040, 0xb980),
++ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
++ { USB_DEVICE(0x2040, 0xb990),
++ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
+ { USB_DEVICE(0x2040, 0xc000),
+ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
++ { USB_DEVICE(0x2040, 0xc010),
++ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
++ { USB_DEVICE(0x2040, 0xc080),
++ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
++ { USB_DEVICE(0x2040, 0xc090),
++ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
+ { } /* Terminating entry */
+ };
+
--- /dev/null
+From 49b14650ba5bf80234cb1984fd8396aff03430ce Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 3 Dec 2009 19:50:35 -0300
+Subject: V4L/DVB (13680a): DocBook/media: copy images after building HTML
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit 49b14650ba5bf80234cb1984fd8396aff03430ce upstream.
+
+The rule for %.html removes the output directory, so there is no point
+in copying images before building HTML.
+
+Documentation/DocBook/Makefile | 10 +++++-----
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/DocBook/Makefile | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/Documentation/DocBook/Makefile
++++ b/Documentation/DocBook/Makefile
+@@ -32,7 +32,7 @@ PS_METHOD = $(prefer-db2x)
+
+ ###
+ # The targets that may be used.
+-PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs media
++PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs
+
+ BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
+ xmldocs: $(BOOKS)
+@@ -45,15 +45,15 @@ PDF := $(patsubst %.xml, %.pdf, $(BOOKS)
+ pdfdocs: $(PDF)
+
+ HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
+-htmldocs: media $(HTML)
++htmldocs: $(HTML)
+ $(call build_main_index)
++ $(call build_images)
+
+ MAN := $(patsubst %.xml, %.9, $(BOOKS))
+ mandocs: $(MAN)
+
+-media:
+- mkdir -p $(srctree)/Documentation/DocBook/media/
+- cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(srctree)/Documentation/DocBook/media/
++build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \
++ cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(objtree)/Documentation/DocBook/media/
+
+ installmandocs: mandocs
+ mkdir -p /usr/local/man/man9/
--- /dev/null
+From 5bf583473813530c1bf82051a35fac8d5045f4f7 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 3 Dec 2009 19:51:09 -0300
+Subject: V4L/DVB (13680b): DocBook/media: create links for included sources
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit 5bf583473813530c1bf82051a35fac8d5045f4f7 upstream.
+
+If docs are being built in a separate directory, xmlto and xsltproc
+can't find included sources. Make links back to the source directory.
+
+I would much prefer to have xmlto and xsltproc look in the source
+directory for included entities but couldn't see how to do that. This
+needs to be solved in some way for 2.6.32, even if this patch isn't the
+right way to do it.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/DocBook/Makefile | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+--- a/Documentation/DocBook/Makefile
++++ b/Documentation/DocBook/Makefile
+@@ -32,10 +32,10 @@ PS_METHOD = $(prefer-db2x)
+
+ ###
+ # The targets that may be used.
+-PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs
++PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks
+
+ BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
+-xmldocs: $(BOOKS)
++xmldocs: $(BOOKS) xmldoclinks
+ sgmldocs: xmldocs
+
+ PS := $(patsubst %.xml, %.ps, $(BOOKS))
+@@ -55,6 +55,15 @@ mandocs: $(MAN)
+ build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \
+ cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(objtree)/Documentation/DocBook/media/
+
++xmldoclinks:
++ifneq ($(objtree),$(srctree))
++ for dep in dvb media-entities.tmpl media-indices.tmpl v4l; do \
++ rm -f $(objtree)/Documentation/DocBook/$$dep \
++ && ln -s $(srctree)/Documentation/DocBook/$$dep $(objtree)/Documentation/DocBook/ \
++ || exit; \
++ done
++endif
++
+ installmandocs: mandocs
+ mkdir -p /usr/local/man/man9/
+ install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/