From 723b2078aec8382b52d47bcb4bcc633b8e73aca9 Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Thu, 8 Oct 2015 23:50:00 +0800 Subject: meta-isg: dpdk: fix v2.0.0 build with kernel 4.1 Backported fixes from upstream dpdk sources to ensure dpdk 2.0.0 compiles against kernel 4.1. Signed-off-by: Anuj Mittal Signed-off-by: Saul Wold --- ...ix-a-build-warning-being-treated-as-error.patch | 49 +++++++ .../dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch | 58 +++++++++ ...k-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch | 70 ++++++++++ ...2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch | 69 ++++++++++ ...fix-vhost-build-with-kernels-3.19-and-4.0.patch | 141 +++++++++++++++++++++ ...k-2.0.0-kni-net-fix-build-with-kernel-4.1.patch | 54 ++++++++ .../common/recipes-extended/dpdk/dpdk_2.0.0.bb | 6 + 7 files changed, 447 insertions(+) create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch new file mode 100644 index 00000000..fef9108d --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch @@ -0,0 +1,49 @@ +From a635f49a5873a104c8867bd1f6375d7a5064be5e Mon Sep 17 00:00:00 2001 +From: Anuj Mittal +Date: Thu, 8 Oct 2015 22:46:13 +0800 +Subject: [PATCH] ixgbe: fix a build warning being treated as error + +Upstream-Status: Inappropriate [other] + +The change is part of a feature commit upstream (e0ba4e77605ab500518247cb6fab98dd3d87ba97) +that we don't want to backport. + +Initialize the data byte to avoid warnings like: + + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c: In function 'ixgbe_read_i2c_combined_generic': + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'low_bits' may be used + uninitialized in this function [-Werror=maybe-uninitialized] + *data |= bit << i; + ^ + dpdk/2.0.0-r0/dpdk-2.0.0/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:120:5: note: + 'low_bits' was declared here + u8 low_bits; + ^ + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'high_bits' may be used + uninitialized in this function [-Werror=maybe-uninitialized] + *data |= bit << i; + ^ + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:119:5: note: 'high_bits' was declared here + u8 high_bits; + +Signed-off-by: Anuj Mittal +--- + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c +index 2305448..ec34753 100644 +--- a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c ++++ b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c +@@ -2095,7 +2095,7 @@ STATIC s32 ixgbe_clock_in_i2c_byte(struct ixgbe_hw *hw, u8 *data) + bool bit = 0; + + DEBUGFUNC("ixgbe_clock_in_i2c_byte"); +- ++ *data = 0; + for (i = 7; i >= 0; i--) { + ixgbe_clock_in_i2c_bit(hw, &bit); + *data |= bit << i; +-- +1.7.9.5 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch new file mode 100644 index 00000000..625f0146 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch @@ -0,0 +1,58 @@ +From 54117da1c945c046c6e3959db81511c78f876426 Mon Sep 17 00:00:00 2001 +From: Pablo de Lara +Date: Tue, 28 Apr 2015 18:37:42 +0100 +Subject: [PATCH] kni: fix build with kernel 4.0 + +Upstream-Status: Backport [2.1.0] + +Due to API changes in function pointer ndo_bridge_setlink +(commit ad41faa8) and the rename of functions vlan_tx_* +(commit df8a39de) in kernel 4.0, DPDK would not build. + +This patch adds the properly checks to fix the compilation. + +Reported-by: Stephen Hemminger +Signed-off-by: Pablo de Lara +Signed-off-by: Anuj Mittal +--- + lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 6 ++++++ + lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 6 ++++++ + 2 files changed, 12 insertions(+) + +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +index 24b147d..bc3c6a3 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +@@ -2198,8 +2198,14 @@ static int igb_ndo_fdb_dump(struct sk_buff *skb, + #endif /* USE_DEFAULT_FDB_DEL_DUMP */ + + #ifdef HAVE_BRIDGE_ATTRIBS ++#ifdef HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS ++static int igb_ndo_bridge_setlink(struct net_device *dev, ++ struct nlmsghdr *nlh, ++ u16 flags) ++#else + static int igb_ndo_bridge_setlink(struct net_device *dev, + struct nlmsghdr *nlh) ++#endif /* HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS */ + { + struct igb_adapter *adapter = netdev_priv(dev); + struct e1000_hw *hw = &adapter->hw; +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +index 2e7e714..54d1f86 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +@@ -3885,4 +3885,10 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) + #define HAVE_NDO_FDB_ADD_VID + #endif /* >= 3.19.0 */ + ++#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) ) ++/* vlan_tx_xx functions got renamed to skb_vlan */ ++#define vlan_tx_tag_get skb_vlan_tag_get ++#define vlan_tx_tag_present skb_vlan_tag_present ++#define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS ++#endif /* 4.0.0 */ + #endif /* _KCOMPAT_H_ */ +-- +1.7.9.5 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch new file mode 100644 index 00000000..b76f501e --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch @@ -0,0 +1,70 @@ +From 97ebf687c7a635ac6f1b1e22293ed7405668c66e Mon Sep 17 00:00:00 2001 +From: Miguel Bernal Marin +Date: Fri, 26 Jun 2015 17:14:35 -0500 +Subject: [PATCH] kni: fix igb build with kernel 4.1 + +Upstream-Status: Backport [2.1.0] + +ndo_bridge_getlink has changed in kernel release 4.1. It +adds new parameter which breaks compilation. + +This patch add the properly checks to fix it. + +Linux: 46c264daaaa5 ("bridge/nl: remove wrong use of NLM_F_MULTI") + +Signed-off-by: Miguel Bernal Marin +Acked-by: Pablo de Lara +Signed-off-by: Anuj Mittal +--- + lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 10 ++++++++++ + lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 5 +++++ + 2 files changed, 15 insertions(+) + +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +index bc3c6a3..b99b365 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +@@ -2250,8 +2250,14 @@ static int igb_ndo_bridge_setlink(struct net_device *dev, + } + + #ifdef HAVE_BRIDGE_FILTER ++#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK ++static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, ++ struct net_device *dev, u32 filter_mask, ++ int nlflags) ++#else + static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, + struct net_device *dev, u32 filter_mask) ++#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */ + #else + static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, + struct net_device *dev) +@@ -2269,7 +2275,11 @@ static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, + mode = BRIDGE_MODE_VEPA; + + #ifdef HAVE_NDO_FDB_ADD_VID ++#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK ++ return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0, nlflags); ++#else + return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0); ++#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */ + #else + return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode); + #endif /* HAVE_NDO_FDB_ADD_VID */ +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +index 54d1f86..2673281 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +@@ -3891,4 +3891,9 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) + #define vlan_tx_tag_present skb_vlan_tag_present + #define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS + #endif /* 4.0.0 */ ++ ++#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0) ) ++/* ndo_bridge_getlink adds new nlflags parameter */ ++#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK ++#endif /* >= 4.1.0 */ + #endif /* _KCOMPAT_H_ */ +-- +1.7.9.5 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch new file mode 100644 index 00000000..1fcf12b4 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch @@ -0,0 +1,69 @@ +From 289840d86ddaec3310ee1d6a85fe6f20384de615 Mon Sep 17 00:00:00 2001 +From: Miguel Bernal Marin +Date: Fri, 26 Jun 2015 17:14:37 -0500 +Subject: [PATCH 2/2] kni: fix vhost build with kernel 4.1 + +Upstream-Status: Backport [2.1.0] + +Parameters from sendmsg and recvmsg has been changed in 4.1 kernel. +The function pointers belong to proto_ops structure were updated removing +the struct kiocb parameter. + +Linux: 1b784140474e ("net: Remove iocb argument from sendmsg and recvmsg") + +Signed-off-by: Miguel Bernal Marin +Acked-by: Pablo de Lara +(cherry picked from commit 8d8fb8aa5836e719d5fb896693b16afabd5118b9) +Signed-off-by: Rahul Kumar Gupta +--- + lib/librte_eal/linuxapp/kni/compat.h | 4 ++++ + lib/librte_eal/linuxapp/kni/kni_vhost.c | 10 ++++++++++ + 2 files changed, 14 insertions(+) + +diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h +index 1ad22ba..cf100b6 100644 +--- a/lib/librte_eal/linuxapp/kni/compat.h ++++ b/lib/librte_eal/linuxapp/kni/compat.h +@@ -23,3 +23,7 @@ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) + #define HAVE_IOV_ITER_MSGHDR + #endif ++ ++#if ( LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) ) ++#define HAVE_KIOCB_MSG_PARAM ++#endif /* < 4.1.0 */ +diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c +index 83d3351..4611ff4 100644 +--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c ++++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c +@@ -353,8 +353,13 @@ except: + } + + static int ++#ifdef HAVE_KIOCB_MSG_PARAM + kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock, + struct msghdr *m, size_t total_len) ++#else ++kni_sock_sndmsg(struct socket *sock, ++ struct msghdr *m, size_t total_len) ++#endif /* HAVE_KIOCB_MSG_PARAM */ + { + struct kni_vhost_queue *q = + container_of(sock->sk, struct kni_vhost_queue, sk); +@@ -387,8 +392,13 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock, + } + + static int ++#ifdef HAVE_KIOCB_MSG_PARAM + kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock, + struct msghdr *m, size_t len, int flags) ++#else ++kni_sock_rcvmsg(struct socket *sock, ++ struct msghdr *m, size_t len, int flags) ++#endif /* HAVE_KIOCB_MSG_PARAM */ + { + int vnet_hdr_len = 0; + int pkt_len = 0; +-- +1.9.1 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch new file mode 100644 index 00000000..a083fb1e --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch @@ -0,0 +1,141 @@ +From d4903f024ede0e54cc5e025e2cb54309b1164d22 Mon Sep 17 00:00:00 2001 +From: Pablo de Lara +Date: Tue, 5 May 2015 15:08:00 +0100 +Subject: [PATCH 1/2] kni: fix vhost build with kernels 3.19 and 4.0 + +Upstream-Status: Backport [2.1.0] + +Due to commit c0371da6 in kernel 3.19, which removed msg_iov +and msg_iovlen from struct msghdr, DPDK would not build. +Also, functions memcpy_toiovecend and memcpy_fromiovecend +were removed in commits ba7438ae and 57dd8a07, being substituted by +copy_from_iter and copy_to_iter. + +This patch makes use of struct iov_iter, which has references +to msg_iov and msg_iovln, and makes use of copy_from_iter +and copy_to_iter. + +Reported-by: Thomas Monjalon +Signed-off-by: Pablo de Lara +(cherry picked from commit 45e63ba8db314f75b8c969f3f952dee87f209129) +Signed-off-by: Rahul Kumar Gupta +--- + lib/librte_eal/linuxapp/kni/compat.h | 4 ++++ + lib/librte_eal/linuxapp/kni/kni_vhost.c | 37 ++++++++++++++++++++++++++------- + 2 files changed, 33 insertions(+), 8 deletions(-) + +diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h +index 1313523..1ad22ba 100644 +--- a/lib/librte_eal/linuxapp/kni/compat.h ++++ b/lib/librte_eal/linuxapp/kni/compat.h +@@ -19,3 +19,7 @@ + #define sk_sleep(s) (s)->sk_sleep + + #endif /* < 2.6.35 */ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) ++#define HAVE_IOV_ITER_MSGHDR ++#endif +diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c +index 7141f83..83d3351 100644 +--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c ++++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c +@@ -76,7 +76,7 @@ static struct proto kni_raw_proto = { + }; + + static inline int +-kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov, ++kni_vhost_net_tx(struct kni_dev *kni, struct msghdr *m, + unsigned offset, unsigned len) + { + struct rte_kni_mbuf *pkt_kva = NULL; +@@ -84,7 +84,11 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov, + int ret; + + KNI_DBG_TX("tx offset=%d, len=%d, iovlen=%d\n", +- offset, len, (int)iov->iov_len); ++#ifdef HAVE_IOV_ITER_MSGHDR ++ offset, len, (int)m->msg_iter.iov->iov_len); ++#else ++ offset, len, (int)m->msg_iov->iov_len); ++#endif + + /** + * Check if it has at least one free entry in tx_q and +@@ -108,7 +112,12 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov, + data_kva = pkt_kva->buf_addr + pkt_kva->data_off + - kni->mbuf_va + kni->mbuf_kva; + +- memcpy_fromiovecend(data_kva, iov, offset, len); ++#ifdef HAVE_IOV_ITER_MSGHDR ++ copy_from_iter(data_kva, len, &m->msg_iter); ++#else ++ memcpy_fromiovecend(data_kva, m->msg_iov, offset, len); ++#endif ++ + if (unlikely(len < ETH_ZLEN)) { + memset(data_kva + len, 0, ETH_ZLEN - len); + len = ETH_ZLEN; +@@ -143,7 +152,7 @@ drop: + } + + static inline int +-kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov, ++kni_vhost_net_rx(struct kni_dev *kni, struct msghdr *m, + unsigned offset, unsigned len) + { + uint32_t pkt_len; +@@ -177,10 +186,18 @@ kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov, + goto drop; + + KNI_DBG_RX("rx offset=%d, len=%d, pkt_len=%d, iovlen=%d\n", +- offset, len, pkt_len, (int)iov->iov_len); ++#ifdef HAVE_IOV_ITER_MSGHDR ++ offset, len, pkt_len, (int)m->msg_iter.iov->iov_len); ++#else ++ offset, len, pkt_len, (int)m->msg_iov->iov_len); ++#endif + + data_kva = kva->buf_addr + kva->data_off - kni->mbuf_va + kni->mbuf_kva; +- if (unlikely(memcpy_toiovecend(iov, data_kva, offset, pkt_len))) ++#ifdef HAVE_IOV_ITER_MSGHDR ++ if (unlikely(copy_to_iter(data_kva, pkt_len, &m->msg_iter))) ++#else ++ if (unlikely(memcpy_toiovecend(m->msg_iov, data_kva, offset, pkt_len))) ++#endif + goto drop; + + /* Update statistics */ +@@ -348,7 +365,11 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock, + return 0; + + KNI_DBG_TX("kni_sndmsg len %ld, flags 0x%08x, nb_iov %d\n", ++#ifdef HAVE_IOV_ITER_MSGHDR ++ len, q->flags, (int)m->msg_iter.iov->iov_len); ++#else + len, q->flags, (int)m->msg_iovlen); ++#endif + + #ifdef RTE_KNI_VHOST_VNET_HDR_EN + if (likely(q->flags & IFF_VNET_HDR)) { +@@ -362,7 +383,7 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock, + if (unlikely(len < ETH_HLEN + q->vnet_hdr_sz)) + return -EINVAL; + +- return kni_vhost_net_tx(q->kni, m->msg_iov, vnet_hdr_len, len); ++ return kni_vhost_net_tx(q->kni, m, vnet_hdr_len, len); + } + + static int +@@ -391,7 +412,7 @@ kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock, + #endif + + if (unlikely(0 == (pkt_len = kni_vhost_net_rx(q->kni, +- m->msg_iov, vnet_hdr_len, len)))) ++ m, vnet_hdr_len, len)))) + return 0; + + #ifdef RTE_KNI_VHOST_VNET_HDR_EN +-- +1.9.1 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch new file mode 100644 index 00000000..2a4dd638 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch @@ -0,0 +1,54 @@ +From abb59c037a74d822e402f9d9a3d6c4d06ce7c748 Mon Sep 17 00:00:00 2001 +From: Miguel Bernal Marin +Date: Fri, 26 Jun 2015 17:14:36 -0500 +Subject: [PATCH] kni: fix build with kernel 4.1 + +Upstream-Status: Backport [2.1.1] + +rebuild member was removed from headers_ops in kernel release +4.1. Therefore kni module compilation breaks. + +This patch add the properly checks to fix it. + +Linux: d476059e77d1 ("net: Kill dev_rebuild_header") + +Signed-off-by: Miguel Bernal Marin +Acked-by: Pablo de Lara +Signed-off-by: Anuj Mittal +--- + lib/librte_eal/linuxapp/kni/kni_net.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c +index dd95db5..c515870 100644 +--- a/lib/librte_eal/linuxapp/kni/kni_net.c ++++ b/lib/librte_eal/linuxapp/kni/kni_net.c +@@ -604,6 +604,7 @@ kni_net_header(struct sk_buff *skb, struct net_device *dev, + /* + * Re-fill the eth header + */ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)) + static int + kni_net_rebuild_header(struct sk_buff *skb) + { +@@ -615,6 +616,7 @@ kni_net_rebuild_header(struct sk_buff *skb) + + return 0; + } ++#endif /* < 4.1.0 */ + + /** + * kni_net_set_mac - Change the Ethernet Address of the KNI NIC +@@ -634,7 +636,9 @@ static int kni_net_set_mac(struct net_device *netdev, void *p) + + static const struct header_ops kni_net_header_ops = { + .create = kni_net_header, ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)) + .rebuild = kni_net_rebuild_header, ++#endif /* < 4.1.0 */ + .cache = NULL, /* disable caching */ + }; + +-- +1.7.9.5 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb b/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb index 33ebaac4..e45d6b8a 100644 --- a/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb +++ b/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb @@ -2,6 +2,12 @@ include dpdk.inc SRC_URI += "file://dpdk-2.0.0-dpdk-enable-ip_fragmentation-in-common_linuxapp.patch \ file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch \ + file://dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch \ + file://dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch \ + file://dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch \ + file://dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch \ + file://dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch \ + file://dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch \ " SRC_URI[dpdk.md5sum] = "e9e7935c9eec920841ad373949514934" -- cgit v1.2.3-54-g00ecf From cd5d22bb686a062e6df9ad09935f60f57dd6657b Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Thu, 8 Oct 2015 23:50:01 +0800 Subject: meta-isg: dpdk: fix v1.8.0 build with kernel 4.1 Backported fixes from upstream dpdk sources to ensure dpdk 1.8.0 compiles against kernel 4.1. Signed-off-by: Anuj Mittal Signed-off-by: Saul Wold --- ...dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch | 69 +++++++++ ...cc-version-detection-to-permit-versions-n.patch | 155 +++++++++++++++++++++ .../common/recipes-extended/dpdk/dpdk_1.8.0.bb | 9 +- 3 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-mk-rework-gcc-version-detection-to-permit-versions-n.patch diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch new file mode 100644 index 00000000..014fc63b --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch @@ -0,0 +1,69 @@ +From 4e6326ae5375d55966a5c872f391cf99de373057 Mon Sep 17 00:00:00 2001 +From: Pablo de Lara +Date: Sun, 22 Mar 2015 18:02:16 +0000 +Subject: [PATCH] kni: fix build with kernel 3.19 + +Upstream-Status: Backport [2.1.0] + +Due to API changes in functions ndo_dflt_bridge_getlink +(commit 2c3c031c) and ndo_fdb_add (commit f6f6424b) +in kernel 3.19, DPDK would not build. + +This patch solves the problem, by checking the kernel version +and adding the necessary new parameters. + +Mind that function igb_ndo_fdb_add does not need the extra parameter +if USE_CONST_DEV_UC_CHAR is not set, since that macro is only defined +when kernel is greater or equal than 3.7 + +Signed-off-by: Pablo de Lara +Acked-by: Thomas Monjalon +(cherry picked from commit 98f255ed0a4a73bf785e884dc2069405de840546) +Signed-off-by: Rahul Kumar Gupta +--- + lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 7 +++++++ + lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 4 ++++ + 2 files changed, 11 insertions(+) + +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +index a802a02..24b147d 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +@@ -2103,6 +2103,9 @@ static int igb_set_features(struct net_device *netdev, + static int igb_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], + struct net_device *dev, + const unsigned char *addr, ++#ifdef HAVE_NDO_FDB_ADD_VID ++ u16 vid, ++#endif + u16 flags) + #else + static int igb_ndo_fdb_add(struct ndmsg *ndm, +@@ -2259,7 +2262,11 @@ static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, + else + mode = BRIDGE_MODE_VEPA; + ++#ifdef HAVE_NDO_FDB_ADD_VID ++ return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0); ++#else + return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode); ++#endif /* HAVE_NDO_FDB_ADD_VID */ + } + #endif /* HAVE_BRIDGE_ATTRIBS */ + #endif /* NTF_SELF */ +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +index 1213cc6..2e7e714 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +@@ -3881,4 +3881,8 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) + #define HAVE_VF_MIN_MAX_TXRATE 1 + #endif /* >= 3.16.0 */ + ++#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) ) ++#define HAVE_NDO_FDB_ADD_VID ++#endif /* >= 3.19.0 */ ++ + #endif /* _KCOMPAT_H_ */ +-- +1.9.1 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-mk-rework-gcc-version-detection-to-permit-versions-n.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-mk-rework-gcc-version-detection-to-permit-versions-n.patch new file mode 100644 index 00000000..9bd0b66b --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-mk-rework-gcc-version-detection-to-permit-versions-n.patch @@ -0,0 +1,155 @@ +From ccb0f3b60c1ec84a97698d9699a4b7e5cf074b21 Mon Sep 17 00:00:00 2001 +From: Panu Matilainen +Date: Mon, 23 Feb 2015 16:53:56 +0200 +Subject: [PATCH] mk: rework gcc version detection to permit versions newer + than 4.x + +Upstream-Status: Backport [2.1.0] + +Separately comparing major and minor versions becomes seriously clumsy +when with major version changes, convert the entire version string into +a numeric value (ie 4.6.0 becomes 460 and 5.0.0 becomes 500) and use +that for comparisons, eliminate unnecessary negations while at it. +This makes the comparisons simpler, more obvious and makes gcc 5.0 +naturally recognized at least as capable as newest 4.x. + +This three-digit scheme would run into trouble if gcc ever went to +two-digit version segments, but that hasn't happened in the last 10+ +years so it seems like a safe assumption. + +Signed-off-by: Panu Matilainen +Acked-by: Thomas Monjalon +(cherry picked from commit 71f0ab1849b4fc3ca928deb566df12ca725ed150) +Signed-off-by: Rahul Kumar Gupta + +Conflicts: + lib/librte_pmd_fm10k/Makefile +Makefile part of fm10k feature enabled as part of +commit a6061d9e7075b5457a9234117d75a2c05227457d which we ae not +backporting. Makefile changes not taken. +--- + lib/librte_pmd_i40e/Makefile | 2 +- + lib/librte_pmd_ixgbe/Makefile | 6 +++--- + lib/librte_pmd_vmxnet3/Makefile | 2 +- + mk/toolchain/gcc/rte.toolchain-compat.mk | 22 ++++++++++------------ + 4 files changed, 15 insertions(+), 17 deletions(-) + +diff --git a/lib/librte_pmd_i40e/Makefile b/lib/librte_pmd_i40e/Makefile +index 98e4bdf..61c3675 100644 +--- a/lib/librte_pmd_i40e/Makefile ++++ b/lib/librte_pmd_i40e/Makefile +@@ -65,7 +65,7 @@ CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast + CFLAGS_BASE_DRIVER += -Wno-format-nonliteral + CFLAGS_BASE_DRIVER += -Wno-format-security + +-ifeq ($(shell test $(GCC_MAJOR_VERSION) -ge 4 -a $(GCC_MINOR_VERSION) -ge 4 && echo 1), 1) ++ifeq ($(shell test $(GCC_VERSION) -ge 440 && echo 1), 1) + CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable + endif + +diff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile +index 3588047..592fe74 100644 +--- a/lib/librte_pmd_ixgbe/Makefile ++++ b/lib/librte_pmd_ixgbe/Makefile +@@ -56,18 +56,18 @@ else + # + # CFLAGS for gcc + # +-ifneq ($(shell test $(GCC_MAJOR_VERSION) -le 4 -a $(GCC_MINOR_VERSION) -le 3 && echo 1), 1) ++ifeq ($(shell test $(GCC_VERSION) -ge 440 && echo 1), 1) + CFLAGS += -Wno-deprecated + endif + CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value + CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args + +-ifeq ($(shell test $(GCC_MAJOR_VERSION) -ge 4 -a $(GCC_MINOR_VERSION) -ge 6 && echo 1), 1) ++ifeq ($(shell test $(GCC_VERSION) -ge 460 && echo 1), 1) + CFLAGS_ixgbe_common.o += -Wno-unused-but-set-variable + CFLAGS_ixgbe_x550.o += -Wno-unused-but-set-variable -Wno-maybe-uninitialized + endif + +-ifeq ($(shell test $(GCC_MAJOR_VERSION) -le 4 -a $(GCC_MINOR_VERSION) -le 6 && echo 1), 1) ++ifeq ($(shell test $(GCC_VERSION) -le 460 && echo 1), 1) + CFLAGS_ixgbe_x550.o += -Wno-uninitialized + CFLAGS_ixgbe_phy.o += -Wno-uninitialized + endif +diff --git a/lib/librte_pmd_vmxnet3/Makefile b/lib/librte_pmd_vmxnet3/Makefile +index 6872c74..3b7674e 100644 +--- a/lib/librte_pmd_vmxnet3/Makefile ++++ b/lib/librte_pmd_vmxnet3/Makefile +@@ -56,7 +56,7 @@ else + # + # CFLAGS for gcc + # +-ifneq ($(shell test $(GCC_MAJOR_VERSION) -le 4 -a $(GCC_MINOR_VERSION) -le 3 && echo 1), 1) ++ifeq ($(shell test $(GCC_VERSION) -ge 440 && echo 1), 1) + CFLAGS += -Wno-deprecated + endif + CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value +diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk +index e40e103..a867559 100644 +--- a/mk/toolchain/gcc/rte.toolchain-compat.mk ++++ b/mk/toolchain/gcc/rte.toolchain-compat.mk +@@ -38,17 +38,15 @@ + + #find out GCC version + +-GCC_MAJOR_VERSION = $(shell $(CC) -dumpversion | cut -f1 -d.) ++GCC_VERSION = $(subst .,,$(shell $(CC) -dumpversion)) + +-# if GCC is not 4.x +-ifneq ($(GCC_MAJOR_VERSION),4) ++# if GCC is older than 4.x ++ifeq ($(shell test $(GCC_VERSION) -lt 400 && echo 1), 1) + MACHINE_CFLAGS = +-$(warning You are not using GCC 4.x. This is neither supported, nor tested.) ++$(warning You are using GCC < 4.x. This is neither supported, nor tested.) + + + else +- GCC_MINOR_VERSION = $(shell $(CC) -dumpversion | cut -f2 -d.) +- + # GCC graceful degradation + # GCC 4.2.x - added support for generic target + # GCC 4.3.x - added support for core2, ssse3, sse4.1, sse4.2 +@@ -57,18 +55,18 @@ else + # GCC 4.6.x - added support for corei7, corei7-avx + # GCC 4.7.x - added support for fsgsbase, rdrnd, f16c, core-avx-i, core-avx2 + +- ifeq ($(shell test $(GCC_MINOR_VERSION) -le 7 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -le 470 && echo 1), 1) + MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-march=corei7-avx,$(MACHINE_CFLAGS)) + MACHINE_CFLAGS := $(patsubst -march=core-avx2,-march=core-avx2,$(MACHINE_CFLAGS)) + endif +- ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 6 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -lt 460 && echo 1), 1) + MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-march=core2 -maes -mpclmul -mavx,$(MACHINE_CFLAGS)) + MACHINE_CFLAGS := $(patsubst -march=corei7,-march=core2 -maes -mpclmul,$(MACHINE_CFLAGS)) + endif +- ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 5 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -lt 450 && echo 1), 1) + MACHINE_CFLAGS := $(patsubst -march=atom,-march=core2 -mssse3,$(MACHINE_CFLAGS)) + endif +- ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 4 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -lt 440 && echo 1), 1) + MACHINE_CFLAGS := $(filter-out -mavx -mpclmul -maes,$(MACHINE_CFLAGS)) + ifneq ($(findstring SSE4_2, $(CPUFLAGS)),) + MACHINE_CFLAGS += -msse4.2 +@@ -77,12 +75,12 @@ else + MACHINE_CFLAGS += -msse4.1 + endif + endif +- ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 3 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -lt 430 && echo 1), 1) + MACHINE_CFLAGS := $(filter-out -msse% -mssse%,$(MACHINE_CFLAGS)) + MACHINE_CFLAGS := $(patsubst -march=core2,-march=generic,$(MACHINE_CFLAGS)) + MACHINE_CFLAGS += -msse3 + endif +- ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 2 && echo 1), 1) ++ ifeq ($(shell test $(GCC_VERSION) -lt 420 && echo 1), 1) + MACHINE_CFLAGS := $(filter-out -march% -mtune% -msse%,$(MACHINE_CFLAGS)) + endif + endif +-- +1.9.1 + diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk_1.8.0.bb b/meta-isg/common/recipes-extended/dpdk/dpdk_1.8.0.bb index a6b2aed6..82f801e8 100644 --- a/meta-isg/common/recipes-extended/dpdk/dpdk_1.8.0.bb +++ b/meta-isg/common/recipes-extended/dpdk/dpdk_1.8.0.bb @@ -1,6 +1,13 @@ include dpdk.inc -SRC_URI += "file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch" +SRC_URI += "file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch \ + file://dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch \ + file://dpdk-1.8.0-kni-fix-build-with-kernel-3.19.patch \ + file://dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch \ + file://dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch \ + file://dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch \ + file://dpdk-1.8.0-mk-rework-gcc-version-detection-to-permit-versions-n.patch \ + " SRC_URI[dpdk.md5sum] = "11ad8785aaa869cc87265bcb8d828f22" SRC_URI[dpdk.sha256sum] = "9f5386830bd999355182e20408f3fc2cfa0802a4497fdded8d43202feede1939" -- cgit v1.2.3-54-g00ecf From 258296f9d1bb91d219e8301841e132352d4c6328 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 7 Oct 2015 21:45:10 +0100 Subject: xorg-driver: remove duplicate files from oe-core These files are copies of files from oe-core, delete them as they are unused. Signed-off-by: Ross Burton Signed-off-by: Saul Wold --- .../xorg-driver/xorg-driver-common.inc | 33 ---------------------- .../xorg-driver/xorg-driver-video.inc | 4 --- 2 files changed, 37 deletions(-) delete mode 100644 common/recipes-graphics/xorg-driver/xorg-driver-common.inc delete mode 100644 common/recipes-graphics/xorg-driver/xorg-driver-video.inc diff --git a/common/recipes-graphics/xorg-driver/xorg-driver-common.inc b/common/recipes-graphics/xorg-driver/xorg-driver-common.inc deleted file mode 100644 index 1ed2742d..00000000 --- a/common/recipes-graphics/xorg-driver/xorg-driver-common.inc +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION = "X driver" -HOMEPAGE = "http://www.x.org" -BUGTRACKER = "https://bugs.freedesktop.org" -SECTION = "x11/drivers" -LICENSE = "MIT-X" - -PE = "2" -INC_PR = "r0" - -DEPENDS = "virtual/xserver xproto randrproto util-macros" - -SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" - -S = "${WORKDIR}/${BPN}-${PV}" - -FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" -FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug" - -inherit autotools pkgconfig - -# AC_CHECK_FILE doesn't work when cross compiling, so we create a replacement -# macro that simply assumes the test succeeds. -do_configure_prepend () { - echo 'AC_DEFUN(CC_AC_CHECK_FILE, $2)' > configure.ac.new - sed 's/AC_CHECK_FILE/CC_AC_CHECK_FILE/g' configure.ac >> configure.ac.new - mv configure.ac.new configure.ac -} - -# FIXME: We don't want to include the libtool archives (*.la) from modules -# directory, as they serve no useful purpose. Upstream should fix Makefile.am -do_install_append() { - find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- -} diff --git a/common/recipes-graphics/xorg-driver/xorg-driver-video.inc b/common/recipes-graphics/xorg-driver/xorg-driver-video.inc deleted file mode 100644 index 57c80d10..00000000 --- a/common/recipes-graphics/xorg-driver/xorg-driver-video.inc +++ /dev/null @@ -1,4 +0,0 @@ -include xorg-driver-common.inc - -DEPENDS =+ "renderproto videoproto xextproto fontsproto" - -- cgit v1.2.3-54-g00ecf From 1a3cd03c918ca62f6a67c7407d5656e7792969ad Mon Sep 17 00:00:00 2001 From: Saul Wold Date: Mon, 19 Oct 2015 09:22:49 -0700 Subject: linux-yocto-4.1: Update SRCREV to include additional patches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dbe692d Ville Syrjälä drm/i915: Fix the VBT child device parsing for BSW 52a4a9f Michel Thierry drm/i915/gen8: Initialize page tables a95cb62f Michel Thierry drm/i915: Remove unnecessary gen8_ppgtt_unmap_pages a24d98f Michel Thierry drm/i915: Remove _entry from PPGTT page structures a8abc11 Ville Syrjälä drm/i915: Only wait for required lanes in vlv_wait_port_ready() 8135418 Ville Syrjälä Revert drm/i915: Hack to tie both common lanes together on chv d660fc1 Ville Syrjälä drm/i915: Work around DISPLAY_PHY_CONTROL register corruption on CHV 0e797e9 Ville Syrjälä drm/i915: Implement chv display PHY lane stagger setup Signed-off-by: Saul Wold --- common/recipes-kernel/linux/linux-yocto_4.1.bbappend | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/recipes-kernel/linux/linux-yocto_4.1.bbappend b/common/recipes-kernel/linux/linux-yocto_4.1.bbappend index 0c384745..6c3d784e 100644 --- a/common/recipes-kernel/linux/linux-yocto_4.1.bbappend +++ b/common/recipes-kernel/linux/linux-yocto_4.1.bbappend @@ -7,7 +7,7 @@ COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}" KMACHINE_core2-32-intel-common = "intel-core2-32" KBRANCH_core2-32-intel-common = "standard/base" SRCREV_meta_core2-32-intel-common ?= "3d8f1378d07dbc052ca8a7c22297339ad7998b5e" -SRCREV_machine_core2-32-intel-common ?= "52a4a9f4a2b408ef3a0745372e44cc362832d86d" +SRCREV_machine_core2-32-intel-common ?= "dbe692d91c8e55d1430f2c45fd578c8e4e71e482" KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" LINUX_VERSION_corei7-64-intel-common = "4.1.8" @@ -15,7 +15,7 @@ COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}" KMACHINE_corei7-64-intel-common = "intel-corei7-64" KBRANCH_corei7-64-intel-common = "standard/base" SRCREV_meta_corei7-64-intel-common ?= "3d8f1378d07dbc052ca8a7c22297339ad7998b5e" -SRCREV_machine_corei7-64-intel-common ?= "52a4a9f4a2b408ef3a0745372e44cc362832d86d" +SRCREV_machine_corei7-64-intel-common ?= "dbe692d91c8e55d1430f2c45fd578c8e4e71e482" KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" # Quark / X1000 BSP Info @@ -24,7 +24,7 @@ COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}" KMACHINE_i586-nlp-32-intel-common = "intel-quark" KBRANCH_i586-nlp-32-intel-common = "standard/base" SRCREV_meta_i586-nlp-32-intel-common ?= "3d8f1378d07dbc052ca8a7c22297339ad7998b5e" -SRCREV_machine_i586-nlp-32-intel-common ?= "52a4a9f4a2b408ef3a0745372e44cc362832d86d" +SRCREV_machine_i586-nlp-32-intel-common ?= "dbe692d91c8e55d1430f2c45fd578c8e4e71e482" KERNEL_FEATURES_append_i586-nlp-32-intel-common = "" -- cgit v1.2.3-54-g00ecf From 9bdc2090ca821c6b43ec4e69ee9ac6a34dd35ca3 Mon Sep 17 00:00:00 2001 From: Azril Ahmad Date: Fri, 23 Oct 2015 11:48:40 +0800 Subject: libva-intel-driver: Fix timestamping issue for VC1/WMV VAAPI decode under BSW CHV Include the upstreamed patch to fix the timestamping issue that observed during the WMV/VC1 VAAPI decode under GStreamer on BSW CHV. The patch was imported from FreeDesktop VAAPI git server (git://anongit.freedesktop.org/vaapi/intel-driver) as of commit id 4307780b648245aba4ff338dcfe0172dec2e12e9 Signed-off-by: Azril Ahmad Signed-off-by: Saul Wold --- ...sk-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch | 54 ++++++++++++++++++++++ .../libva/libva-intel-driver_1.5.0.bb | 4 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 common/recipes-multimedia/libva/libva-intel-driver/Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch diff --git a/common/recipes-multimedia/libva/libva-intel-driver/Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch b/common/recipes-multimedia/libva/libva-intel-driver/Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch new file mode 100644 index 00000000..aa98a200 --- /dev/null +++ b/common/recipes-multimedia/libva/libva-intel-driver/Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch @@ -0,0 +1,54 @@ +Upstream-Status: Backport (from git://anongit.freedesktop.org/vaapi/intel-driver with commit id 4307780b648245aba4ff338dcfe0172dec2e12e9) +Signed-off-by: Azril Ahmad + + +From dff0614a65693bdfbcf8a46ccfb52f036647bb93 Mon Sep 17 00:00:00 2001 +From: "Xiang, Haihao" +Date: Tue, 27 Jan 2015 11:09:02 +0800 +Subject: [PATCH 06/10] Use VMask instead of DMask in 3DSTATE_PS on GEN8+ + +Mesa uses VMask instead of DMask in 3DSTATE_PS. + "Initialize the execution mask with VMask. Otherwise, derivatives are + incorrect for subspans where some of the pixels are unlit. We believe + the bit just didn't take effect in previous generations." + +To avoid potential issue, use VMask in libva too. + +Signed-off-by: Xiang, Haihao +Reviewed-by: Sean V Kelley +--- + src/gen8_render.c | 3 ++- + src/gen9_render.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gen8_render.c b/src/gen8_render.c +index 8a8012d..65a66c5 100644 +--- a/src/gen8_render.c ++++ b/src/gen8_render.c +@@ -1447,7 +1447,8 @@ gen8_emit_wm_state(VADriverContextP ctx, int kernel) + /* DW3. PS shader flag .Binding table cnt/sample cnt */ + OUT_BATCH(batch, + (1 << GEN7_PS_SAMPLER_COUNT_SHIFT) | +- (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT)); ++ (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) | ++ GEN7_PS_VECTOR_MASK_ENABLE); + /* DW4-5. Scatch space */ + OUT_BATCH(batch, 0); /* scratch space base offset */ + OUT_BATCH(batch, 0); +diff --git a/src/gen9_render.c b/src/gen9_render.c +index da8950e..89935f2 100644 +--- a/src/gen9_render.c ++++ b/src/gen9_render.c +@@ -1449,7 +1449,8 @@ gen9_emit_wm_state(VADriverContextP ctx, int kernel) + /* DW3. PS shader flag .Binding table cnt/sample cnt */ + OUT_BATCH(batch, + (1 << GEN7_PS_SAMPLER_COUNT_SHIFT) | +- (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT)); ++ (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) | ++ GEN7_PS_VECTOR_MASK_ENABLE); + /* DW4-5. Scatch space */ + OUT_BATCH(batch, 0); /* scratch space base offset */ + OUT_BATCH(batch, 0); +-- +2.1.0 + diff --git a/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb b/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb index ba09c2c6..dfb1ec1a 100644 --- a/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb +++ b/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb @@ -14,7 +14,9 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux' DEPENDS = "libva libdrm" SRC_URI = "http://www.freedesktop.org/software/vaapi/releases/${BPN}/${BPN}-${PV}.tar.bz2" -SRC_URI += "file://wayland-include.patch" +SRC_URI += "file://wayland-include.patch \ + file://Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch \ + " SRC_URI[md5sum] = "16752f1584398265072129553b7907ce" SRC_URI[sha256sum] = "d0b448193ab34b622cd14e4db8ca29991a4038b4eb459a8fbbcbd7db843da3dc" -- cgit v1.2.3-54-g00ecf