Re: [LEDE-DEV] [RFC] iproute2: update to v4.10.0

2017-03-21 Thread Russell Senior
> "Syrone" == Syrone Wong  writes:

Syrone> It seems this chunk is redundant - DEPENDS:=+kmod-sched-core +
Syrone> DEPENDS:=+kmod-sched-core iptables

Syrone> If you really want to add iptables as runtime dependency, it
Syrone> should be `+iptables`.

Syrone, afaict, tc dlopen()'s iptables .so's, which implies that
iptables is needed at runtime, at least to support the associated
features.

I didn't get circular dependency problems with this either.

Please test:

diff --git a/package/network/utils/iproute2/Makefile 
b/package/network/utils/iproute2/Makefile
index 65ae5cb457..17f28f0d16 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -19,6 +19,7 @@ PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPL-2.0
 
 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=iptables
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -44,7 +45,7 @@ Package/ip-full:=$(call Package/iproute2/Default,full,Full,ip)
 define Package/tc
 $(call Package/iproute2/Default)
   TITLE:=Traffic control utility
-  DEPENDS:=+kmod-sched-core
+  DEPENDS:=+kmod-sched-core +iptables
 endef
 
 define Package/genl


-- 
Russell Senior, President
russ...@personaltelco.net

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [RFC] iproute2: update to v4.10.0

2017-03-21 Thread Russell Senior
> "Russell" == Russell Senior  writes:

Please test:

diff --git a/package/network/utils/iproute2/Makefile 
b/package/network/utils/iproute2/Makefile
index 65ae5cb457..3a4b114039 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -19,6 +19,7 @@ PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPL-2.0
 
 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=iptables
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -44,7 +45,7 @@ Package/ip-full:=$(call Package/iproute2/Default,full,Full,ip)
 define Package/tc
 $(call Package/iproute2/Default)
   TITLE:=Traffic control utility
-  DEPENDS:=+kmod-sched-core
+  DEPENDS:=+kmod-sched-core iptables
 endef
 
 define Package/genl


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH] libubox: Fix -Wsign-compare warnings

2017-03-21 Thread Rosen Penev
-Wsign-compare is part of the -Wextra series of warnings so it's worth fixing. 
The issues are mainly sign conversion ones.
---
 base64.c   |  6 +++---
 blob.c | 12 ++--
 blob.h |  8 
 blobmsg.c  |  2 +-
 blobmsg_json.c |  4 ++--
 jshn.c |  2 +-
 json_script.c  | 16 +---
 kvlist.c   |  2 +-
 8 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/base64.c b/base64.c
index 4186ce8..f4cb5c6 100644
--- a/base64.c
+++ b/base64.c
@@ -142,7 +142,6 @@ int b64_encode(const void *_src, size_t srclength,
size_t datalength = 0;
u_char input[3] = {0};
u_char output[4];
-   int i;
 
while (2 < srclength) {
input[0] = *src++;
@@ -167,7 +166,7 @@ int b64_encode(const void *_src, size_t srclength,
if (0 != srclength) {
/* Get what's left. */
input[0] = input[1] = input[2] = '\0';
-   for (i = 0; i < srclength; i++)
+   for (size_t i = 0; i < srclength; i++)
input[i] = *src++;
 
output[0] = input[0] >> 2;
@@ -200,7 +199,8 @@ int b64_decode(const void *_src, void *dest, size_t 
targsize)
 {
const char *src = _src;
unsigned char *target = dest;
-   int tarindex, state, ch;
+   int state, ch;
+   size_t tarindex;
u_char nextbyte;
char *pos;
 
diff --git a/blob.c b/blob.c
index 03d5e9c..45c3204 100644
--- a/blob.c
+++ b/blob.c
@@ -186,7 +186,7 @@ blob_nest_end(struct blob_buf *buf, void *cookie)
buf->head = attr;
 }
 
-static const int blob_type_minlen[BLOB_ATTR_LAST] = {
+static const size_t blob_type_minlen[BLOB_ATTR_LAST] = {
[BLOB_ATTR_STRING] = 1,
[BLOB_ATTR_INT8] = sizeof(uint8_t),
[BLOB_ATTR_INT16] = sizeof(uint16_t),
@@ -222,18 +222,18 @@ blob_parse(struct blob_attr *attr, struct blob_attr 
**data, const struct blob_at
 {
struct blob_attr *pos;
int found = 0;
-   int rem;
+   unsigned int rem;
 
memset(data, 0, sizeof(struct blob_attr *) * max);
blob_for_each_attr(pos, attr, rem) {
-   int id = blob_id(pos);
-   int len = blob_len(pos);
+   unsigned int id = blob_id(pos);
+   unsigned int len = blob_len(pos);
 
-   if (id >= max)
+   if ((int)id >= max)
continue;
 
if (info) {
-   int type = info[id].type;
+   unsigned int type = info[id].type;
 
if (type < BLOB_ATTR_LAST) {
if (!blob_check_type(blob_data(pos), len, type))
diff --git a/blob.h b/blob.h
index a092f5d..3f069da 100644
--- a/blob.h
+++ b/blob.h
@@ -154,25 +154,25 @@ blob_get_u64(const struct blob_attr *attr)
 static inline int8_t
 blob_get_int8(const struct blob_attr *attr)
 {
-   return blob_get_u8(attr);
+   return (int8_t)blob_get_u8(attr);
 }
 
 static inline int16_t
 blob_get_int16(const struct blob_attr *attr)
 {
-   return blob_get_u16(attr);
+   return (int16_t)blob_get_u16(attr);
 }
 
 static inline int32_t
 blob_get_int32(const struct blob_attr *attr)
 {
-   return blob_get_u32(attr);
+   return (int32_t)blob_get_u32(attr);
 }
 
 static inline int64_t
 blob_get_int64(const struct blob_attr *attr)
 {
-   return blob_get_u64(attr);
+   return (int64_t)blob_get_u64(attr);
 }
 
 static inline const char *
diff --git a/blobmsg.c b/blobmsg.c
index c2bb717..1eddf23 100644
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -67,7 +67,7 @@ int blobmsg_check_array(const struct blob_attr *attr, int 
type)
 {
struct blob_attr *cur;
bool name;
-   int rem;
+   unsigned int rem;
int size = 0;
 
switch (blobmsg_type(attr)) {
diff --git a/blobmsg_json.c b/blobmsg_json.c
index ca9dd1a..c46890c 100644
--- a/blobmsg_json.c
+++ b/blobmsg_json.c
@@ -146,7 +146,7 @@ static bool blobmsg_puts(struct strbuf *s, const char *c, 
int len)
 static void add_separator(struct strbuf *s)
 {
const char *indent_chars = "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
-   int len;
+   size_t len;
 
if (!s->indent)
return;
@@ -280,7 +280,7 @@ static void blobmsg_format_json_list(struct strbuf *s, 
struct blob_attr *attr, i
 {
struct blob_attr *pos;
bool first = true;
-   int rem = len;
+   unsigned int rem = len;
 
blobmsg_puts(s, (array ? "[" : "{" ), 1);
s->indent_level++;
diff --git a/json_script.c b/json_script.c
index 463aac8..8fb082e 100644
--- a/json_script.c
+++ b/json_script.c
@@ -95,7 +95,7 @@ const char *json_script_find_var(struct json_script_ctx *ctx, 
struct blob_attr *
 const char *name)
 {
struct blob_attr *cur;
-   int rem;
+   unsigned int rem;
 
blobmsg_for_each_attr(cur, vars, rem) {
if (blobmsg_type(cur) != BLOBMSG_TYPE_STRING)

[LEDE-DEV] [PATCH] usock: Fix some types resulting in type conversion warnings.

2017-03-21 Thread Rosen Penev
A few types were changed to adhere to the particular API.

Signed-off by: Rosen Penev 
---
 usock.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/usock.c b/usock.c
index 0ce5390..c159a76 100644
--- a/usock.c
+++ b/usock.c
@@ -33,7 +33,7 @@
 #include "usock.h"
 #include "utils.h"
 
-static void usock_set_flags(int sock, unsigned int type)
+static void usock_set_flags(int sock, int type)
 {
if (!(type & USOCK_NOCLOEXEC))
fcntl(sock, F_SETFD, fcntl(sock, F_GETFD) | FD_CLOEXEC);
@@ -42,7 +42,7 @@ static void usock_set_flags(int sock, unsigned int type)
fcntl(sock, F_SETFL, fcntl(sock, F_GETFL) | O_NONBLOCK);
 }
 
-static int usock_connect(int type, struct sockaddr *sa, int sa_len, int 
family, int socktype, bool server)
+static int usock_connect(int type, struct sockaddr *sa, socklen_t sa_len, int 
family, int socktype, bool server)
 {
int sock;
 
@@ -103,7 +103,7 @@ usock_inet_notimeout(int type, struct addrinfo *result, 
void *addr)
return -1;
 }
 
-static int poll_restart(struct pollfd *fds, int nfds, int timeout)
+static int poll_restart(struct pollfd *fds, nfds_t nfds, int timeout)
 {
struct timespec ts, cur;
int msec = timeout % 1000;
-- 
2.9.3


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH] uloop: Fix new_handler type

2017-03-21 Thread Rosen Penev
sa_handler is of type void (*)(int). Update new_handler to match.

Signed-off by: Rosen Penev 
---
 uloop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/uloop.c b/uloop.c
index 26fef32..b42e601 100644
--- a/uloop.c
+++ b/uloop.c
@@ -437,7 +437,7 @@ static void uloop_install_handler(int signum, void 
(*handler)(int), struct sigac
 static void uloop_ignore_signal(int signum, bool ignore)
 {
struct sigaction s;
-   void *new_handler = NULL;
+   void (*new_handler)(int) = NULL;
 
sigaction(signum, NULL, );
 
-- 
2.9.3


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH RFC] ar8216: (try to) implement get_port_stats

2017-03-21 Thread Vittorio Gambaletta (VittGam)
Hello,

TP-LINK, in their new TL-WR1043ND v4, for some reason wired the
ethernet LEDs not to the AR8337, but to the QCA956x SoC instead.

This means that the switch LED trigger needs to be used for all
of the ethernet LEDs (4 x LAN and 1 x WAN), like on the AR9341
when its internal switch is used.

But the ar8216/8327/8337 switch driver does not implement the
get_port_stats function, so the LEDs are lit but do not blink
when traffic passes through the ports.

(By the way, if I remember well, the stock firmware of this router
does not make those LEDs blink either...)

I've tried to write the needed function, as you can see in the
patch below.

The problem is that now a kworker kernel thread is constantly
consuming 12-15% of CPU. It stops when I change the trigger on
the LEDs to something else via sysfs. So, there is clearly
something wrong with it. But what?

The implementation for the AR9341 internal switch (in
target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c)
does it in a quite similar way (it actually polls ALL the switch
ports every time data for a single port is requested...), but
it uses 0% CPU instead.

What do you think?

Thank you!

Best regards,
Vittorio G

---

diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c 
b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 37877d5..6b3246d 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -49,6 +49,13 @@ extern const struct ar8xxx_chip ar8337_chip;
.name = (_n),   \
}
 
+enum {
+   AR8216_MIB_TX_OFFSET = 29,
+   AR8216_MIB_RX_OFFSET = 14,
+   AR8236_MIB_TX_OFFSET = 31,
+   AR8236_MIB_RX_OFFSET = 15,
+};
+
 static const struct ar8xxx_mib_desc ar8216_mibs[] = {
MIB_DESC(1, AR8216_STATS_RXBROAD, "RxBroad"),
MIB_DESC(1, AR8216_STATS_RXPAUSE, "RxPause"),
@@ -394,6 +401,24 @@ ar8xxx_mib_flush(struct ar8xxx_priv *priv)
return ar8xxx_mib_op(priv, AR8216_MIB_FUNC_FLUSH);
 }
 
+static u64
+ar8xxx_mib_fetch_single_port_stat(struct ar8xxx_priv *priv,
+  const unsigned int base,
+  const struct ar8xxx_mib_desc *mib)
+{
+   u64 t;
+
+   t = ar8xxx_read(priv, base + mib->offset);
+   if (mib->size == 2) {
+   u64 hi;
+
+   hi = ar8xxx_read(priv, base + mib->offset + 4);
+   t |= hi << 32;
+   }
+
+   return t;
+}
+
 static void
 ar8xxx_mib_fetch_port_stat(struct ar8xxx_priv *priv, int port, bool flush)
 {
@@ -410,17 +435,7 @@ ar8xxx_mib_fetch_port_stat(struct ar8xxx_priv *priv, int 
port, bool flush)
 
mib_stats = >mib_stats[port * priv->chip->num_mibs];
for (i = 0; i < priv->chip->num_mibs; i++) {
-   const struct ar8xxx_mib_desc *mib;
-   u64 t;
-
-   mib = >chip->mib_decs[i];
-   t = ar8xxx_read(priv, base + mib->offset);
-   if (mib->size == 2) {
-   u64 hi;
-
-   hi = ar8xxx_read(priv, base + mib->offset + 4);
-   t |= hi << 32;
-   }
+   u64 t = ar8xxx_mib_fetch_single_port_stat(priv, base, 
>chip->mib_decs[i]);
 
if (flush)
mib_stats[i] = 0;
@@ -1001,6 +1016,45 @@ ar8xxx_sw_get_port_link(struct switch_dev *dev, int port,
return 0;
 }
 
+int
+ar8xxx_sw_get_port_stats(struct switch_dev *dev, int port,
+  struct switch_port_stats *stats)
+{
+   struct ar8xxx_priv *priv = swdev_to_ar8xxx(dev);
+   const struct ar8xxx_chip *chip = priv->chip;
+   unsigned int base, tx_offset, rx_offset;
+   u64 *mib_stats;
+
+   if (!ar8xxx_has_mib_counters(priv))
+   return -EOPNOTSUPP;
+
+   if (port >= dev->ports)
+   return -EINVAL;
+
+   mutex_lock(>mib_lock);
+
+   base = chip->reg_port_stats_start + chip->reg_port_stats_length * port;
+   mib_stats = >mib_stats[port * chip->num_mibs];
+
+   if (chip_is_ar8216(priv)) {
+   tx_offset = AR8216_MIB_TX_OFFSET;
+   rx_offset = AR8216_MIB_RX_OFFSET;
+   } else {
+   tx_offset = AR8236_MIB_TX_OFFSET;
+   rx_offset = AR8236_MIB_RX_OFFSET;
+   }
+
+   mib_stats[tx_offset] += ar8xxx_mib_fetch_single_port_stat(priv, base, 
>chip->mib_decs[tx_offset]);
+   mib_stats[rx_offset] += ar8xxx_mib_fetch_single_port_stat(priv, base, 
>chip->mib_decs[rx_offset]);
+
+   stats->tx_bytes = mib_stats[tx_offset];
+   stats->rx_bytes = mib_stats[rx_offset];
+
+   mutex_unlock(>mib_lock);
+
+   return 0;
+}
+
 static int
 ar8xxx_sw_get_ports(struct switch_dev *dev, struct switch_val *val)
 {
@@ -1696,6 +1750,7 @@ static const struct switch_dev_ops ar8xxx_sw_ops = {
.apply_config = ar8xxx_sw_hw_apply,
.reset_switch = ar8xxx_sw_reset_switch,
.get_port_link = 

Re: [LEDE-DEV] [PATCH] rules.mk: disable CXX11 ABI with uClibc++

2017-03-21 Thread Felix Fietkau
On 2017-03-21 19:13, Stijn Tintel wrote:
> GCC 5.1 introduced a new library ABI to conform to the 2011 C++
> standard. This new ABI is enabled by default. This causes compatibility
> issues between libraries compiled against libstdc++ and libraries
> compiled against uClibc++, as the latter doesn't support this new ABI.
> 
> Solve this by disabling the _GLIBCXX_USE_CXX11_ABI macro when uClibc++
> is selected as the preferred standard C++ library.
> 
> Signed-off-by: Stijn Tintel 
This should be changed in uclibc++.mk so that it does not affect
packages that only use libstdc++

- Felix

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH] rules.mk: disable CXX11 ABI with uClibc++

2017-03-21 Thread Stijn Tintel
GCC 5.1 introduced a new library ABI to conform to the 2011 C++
standard. This new ABI is enabled by default. This causes compatibility
issues between libraries compiled against libstdc++ and libraries
compiled against uClibc++, as the latter doesn't support this new ABI.

Solve this by disabling the _GLIBCXX_USE_CXX11_ABI macro when uClibc++
is selected as the preferred standard C++ library.

Signed-off-by: Stijn Tintel 
---
 rules.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rules.mk b/rules.mk
index ed796a5..bf051b7 100644
--- a/rules.mk
+++ b/rules.mk
@@ -164,7 +164,7 @@ TARGET_PATH:=$(subst $(space),:,$(filter-out .,$(filter-out 
./,$(subst :,$(space
 TARGET_INIT_PATH:=$(call qstrip,$(CONFIG_TARGET_INIT_PATH))
 TARGET_INIT_PATH:=$(if 
$(TARGET_INIT_PATH),$(TARGET_INIT_PATH),/usr/sbin:/sbin:/usr/bin:/bin)
 TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) $(call 
qstrip,$(CONFIG_EXTRA_OPTIMIZATION))
-TARGET_CXXFLAGS = $(TARGET_CFLAGS)
+TARGET_CXXFLAGS = $(TARGET_CFLAGS) $(if $(CONFIG_USE_UCLIBCXX), 
-D_GLIBCXX_USE_CXX11_ABI=0)
 TARGET_ASFLAGS_DEFAULT = $(TARGET_CFLAGS)
 TARGET_ASFLAGS = $(TARGET_ASFLAGS_DEFAULT)
 TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include
-- 
2.10.2


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH] libubox: Fix -Wsign-compare and sign conversion warnings

2017-03-21 Thread Yousong Zhou

On 29 January 2017 at 09:11, Rosen Penev  wrote:
> While at it, also add -Wextra and -Wno-unused-parameter to the
> CFLAGS. Compile tested on 32 and 64-bit x86.
>
> Signed-off by: Rosen Penev 

Sorry for the delay, but I just also compile-tested this ;)

With gcc 4.7.2, the following further changes are needed to compile the code.
Can you take them and send a v2?

Regards,
yousong

diff --git a/examples/blobmsg-example.c b/examples/blobmsg-example.c
index 1c86017..56cac27 100644
--- a/examples/blobmsg-example.c
+++ b/examples/blobmsg-example.c
@@ -15,7 +15,7 @@ static const char *indent_str = "\t\t\t\t\t\t\t\t\t\t\t\t\t";
 static void dump_attr_data(struct blob_attr *data, int indent, int 
next_indent);
 
 static void
-dump_table(struct blob_attr *head, int len, int indent, bool array)
+dump_table(struct blob_attr *head, size_t len, int indent, bool array)
 {
struct blob_attr *attr;
struct blobmsg_hdr *hdr;
diff --git a/examples/json_script-example.c b/examples/json_script-example.c
index 4d252a9..afb419e 100644
--- a/examples/json_script-example.c
+++ b/examples/json_script-example.c
@@ -1,7 +1,11 @@
 #include 
 #include 
 
-#include 
+#ifdef JSONC
+#include 
+#else
+#include 
+#endif
 #include "blobmsg.h"
 #include "blobmsg_json.h"
 #include "json_script.h"
@@ -14,7 +18,7 @@ static void handle_command(struct json_script_ctx *ctx, const 
char *name,
struct blob_attr *data, struct blob_attr *vars)
 {
struct blob_attr *cur;
-   int rem;
+   size_t rem;
 
fprintf(stdout, "%s", name);
blobmsg_for_each_attr(cur, data, rem)
diff --git a/json_script.c b/json_script.c
index 2d720ae..ae1fa34 100644
--- a/json_script.c
+++ b/json_script.c
@@ -121,8 +121,6 @@ json_get_tuple(struct blob_attr *cur, struct blob_attr 
**tb, int t1, int t2)
 {
static struct blobmsg_policy expr_tuple[3] = {
{ .type = BLOBMSG_TYPE_STRING },
-   {},
-   {},
};
 
expr_tuple[1].type = t1;
-- 
2.6.4


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [RFC] iproute2: update to v4.10.0

2017-03-21 Thread Yousong Zhou
On 21 March 2017 at 03:54, Russell Senior  wrote:
> The new ip-tiny ipk is 20k bigger than the old version (~79k vs ~100k).
> There may be some additional pruning possible to get it back down to a
> similar size.

It will be really nice if the size can be squeezed for at least the
ip-tiny package.  Are you already working on this?

The other thing is that adding iptables as a build dependency should
be the way to go if only header files of that packages are needed to
build iproute2.

Regards,
yousong

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] Kodi feed

2017-03-21 Thread Stijn Tintel
Hi all,

After a minor cleanup, I published [0] Kodi and dependencies for running
on the brcm2708 target (Raspberry Pi). Dependencies for this are in the
kodi branches of my LEDE staging tree [1], and my fork of the packages
feed [2].

I am currently working on x86 support, but it's taking longer than
expected so I decided to already post what's working. If you want to
contribute, please contact me first (preferably on IRC), to avoid
duplicate effort.

Several packages have a hard dependency on libstdcpp. This is either due
to uClibc++ not supporting shared_ptr (kodi, libcec), or to avoid
linking problems (taglib, tinyxml).
The Kodi patch 900-musl-compat.patch is ugly, especially the "iofile.h"
part. Unfortunately the Kodi patch from Alpine that addresses this issue
[3] doesn't apply to Kodi 17, so I went for a quick & dirty fix.
Suggestions for a clean fix that can be submitted upstream are very welcome.

Thanks,
Stijn

[0] https://github.com/stintel/lede-wip.git
[1] https://git.lede-project.org/lede/stintel/staging.git
[2] https://github.com/stintel/openwrt-packages.git
[3]
http://git.alpinelinux.org/cgit/aports/tree/community/kodi/fix-fileemu.patch



___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH] kernel: video: add kmod-drm-vc4 package for brcm2708 target

2017-03-21 Thread Rafał Miłecki
From: Rafał Miłecki 

It includes vc4 driver for Broadcom VideoCore IV GPU.

Signed-off-by: Rafał Miłecki 
---
 package/kernel/linux/modules/video.mk | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/package/kernel/linux/modules/video.mk 
b/package/kernel/linux/modules/video.mk
index a93c0b89f2..f595f51890 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -279,6 +279,24 @@ endef
 
 $(eval $(call KernelPackage,drm-imx-ldb))
 
+define KernelPackage/drm-vc4
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Broadcom VC4 Graphics
+  DEPENDS:=@TARGET_brcm2708 +kmod-drm
+  KCONFIG:=CONFIG_DRM_VC4
+  FILES:= \
+   $(LINUX_DIR)/drivers/gpu/drm/vc4/vc4.ko \
+   $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko
+  AUTOLOAD:=$(call AutoProbe,vc4)
+endef
+
+define KernelPackage/drm-vc4/description
+  Direct Rendering Manager (DRM) support for Broadcom VideoCore IV GPU
+  used in BCM2835, BCM2836 and BCM2837 SoCs (e.g. Raspberry Pi).
+endef
+
+$(eval $(call KernelPackage,drm-vc4))
+
 
 #
 # Video Capture
-- 
2.11.0


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev