[OpenWrt-Devel] [PATCH] mac80211: Update to version 4.19.7-1

2018-12-07 Thread Hauke Mehrtens
This updates the backports package used in mac80211 to version 4.19.7-1
which is based on kernel 4.19.7. This integrates all the stable fixes
introduces in this kernel version.

The deleted patches are not needed any more because they are either
included in the upstream Linux kernel 4.19.7 or in backports 4.19.7-1.

Signed-off-by: Hauke Mehrtens 
---
 package/kernel/mac80211/Makefile   |   6 +-
 .../patches/ath/080-ath10k_thermal_config.patch|   2 +-
 .../patches/ath/402-ath_regd_optional.patch|   2 +-
 .../patches/ath/404-regd_no_assoc_hints.patch  |   4 +-
 .../patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch  |   2 +-
 ...dling-of-peer_bw_rxnss_override-parameter.patch |   2 +-
 ...-controlling-support-for-various-chipsets.patch |  14 +--
 .../brcm/100-brcmfmac-fix-roamoff-1-modparam.patch |  15 +--
 ...ix-for-proper-support-of-160MHz-bandwidth.patch | 117 -
 ...move-recursion-from-firmware-load-error-h.patch |  17 +--
 .../patches/build/005-revert-devcoredump.patch |   8 --
 .../patches/build/060-no_local_ssb_bcma.patch  |   4 +-
 .../rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch |   2 +-
 .../patches/subsys/140-tweak-TSQ-setting.patch |   2 +-
 ...x-setting-IEEE80211_KEY_FLAG_RX_MGMT-for-.patch |  25 -
 ...-free-skb-fraglist-before-freeing-the-skb.patch |   2 +-
 ...-mac80211-add-hdrlen-to-ieee80211_tx_data.patch |  10 +-
 ...8-mac80211-add-NEED_ALIGNED4_SKBS-hw-flag.patch |  18 ++--
 ...x-memory-accounting-with-A-MSDU-aggregati.patch |   6 +-
 ...nore-tx-status-for-PS-stations-in-ieee802.patch |   2 +-
 ...x-reordering-of-buffered-broadcast-packet.patch |   2 +-
 ...locate-TXQs-for-active-monitor-interfaces.patch |  26 -
 22 files changed, 52 insertions(+), 236 deletions(-)
 delete mode 100644 
package/kernel/mac80211/patches/brcm/304-v4.20-0001-brcmfmac-fix-for-proper-support-of-160MHz-bandwidth.patch
 delete mode 100644 
package/kernel/mac80211/patches/build/005-revert-devcoredump.patch
 delete mode 100644 
package/kernel/mac80211/patches/subsys/350-mac80211-fix-setting-IEEE80211_KEY_FLAG_RX_MGMT-for-.patch
 delete mode 100644 
package/kernel/mac80211/patches/subsys/394-mac80211-allocate-TXQs-for-active-monitor-interfaces.patch

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index c322202b4a..5f79e54edf 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=4.19-rc5-1
+PKG_VERSION:=4.19.7-1
 PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19-rc5/
-PKG_HASH:=5b61e64ea79d22bbac9e8612d5d5485974f223de00d4ec250b0faf4b7baf9957
+PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.7/
+PKG_HASH:=86650a02f36b0d39059be343d4bad3be14adece699723713a69c94cc64d456ef
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
diff --git 
a/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch 
b/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch
index a04abb2d28..a86cbc6e54 100644
--- a/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch
+++ b/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch
@@ -37,7 +37,7 @@
  void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
 --- a/local-symbols
 +++ b/local-symbols
-@@ -140,6 +140,7 @@ ATH10K_SNOC=
+@@ -139,6 +139,7 @@ ATH10K_SNOC=
  ATH10K_DEBUG=
  ATH10K_DEBUGFS=
  ATH10K_SPECTRAL=
diff --git a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch 
b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch
index 26fcd56144..03c12df1a8 100644
--- a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch
+++ b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch
@@ -82,7 +82,7 @@
---help---
 --- a/local-symbols
 +++ b/local-symbols
-@@ -84,6 +84,7 @@ ADM8211=
+@@ -83,6 +83,7 @@ ADM8211=
  ATH_COMMON=
  WLAN_VENDOR_ATH=
  ATH_DEBUG=
diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch 
b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
index 6e4794a764..ec95206acb 100644
--- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
+++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
@@ -1,6 +1,6 @@
 --- a/net/wireless/reg.c
 +++ b/net/wireless/reg.c
-@@ -2980,6 +2980,8 @@ void regulatory_hint_country_ie(struct w
+@@ -2982,6 +2982,8 @@ void regulatory_hint_country_ie(struct w
enum environment_cap env = ENVIRON_ANY;
struct regulatory_request *request = NULL, *lr;
  
@@ -9,7 +9,7 @@
/* IE len must be evenly divisible by 2 */
if (country_ie_len & 0x01)
return;
-@@ -3186,6 +3188,7 @@ static void restore_regulatory_settings(
+@@ -3188,6 +3190,7 @@ static void restore_regulatory_settings(
  
  void 

Re: [OpenWrt-Devel] [PATCH fstools] blockd: don't reparse blob msg in the vlist callbacks

2018-12-07 Thread John Crispin


On 07/12/2018 14:13, Rafał Miłecki wrote:

From: Rafał Miłecki 

ubus message is parsed in the block_hotplug() which fills all the struct
device fields. Once that is done there is no need to parse original
message again - it's enough to get required data from the struct.

This also fixes handling messages with "autofs" set to 0. They were
incorrectly interpreted due to the missing blobmsg_get_u32().

Signed-off-by: Rafał Miłecki 


nice catch !

Acked-by: John Crispin 


---
  blockd.c | 16 +++-
  1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/blockd.c b/blockd.c
index 1379635..29d16f2 100644
--- a/blockd.c
+++ b/blockd.c
@@ -111,29 +111,19 @@ block(char *cmd, char *action, char *device)
  static void
  device_free(struct device *device)
  {
-   struct blob_attr *data[__MOUNT_MAX];
-
-   blobmsg_parse(mount_policy, __MOUNT_MAX, data,
- blob_data(device->msg), blob_len(device->msg));
-
-   if (data[MOUNT_AUTOFS] && device->target)
+   if (device->autofs && device->target)
unlink(device->target);
  }
  
  static void

  device_add(struct device *device)
  {
-   struct blob_attr *data[__MOUNT_MAX];
char path[64];
  
-	blobmsg_parse(mount_policy, __MOUNT_MAX, data,

- blob_data(device->msg), blob_len(device->msg));
-
-   if (!data[MOUNT_AUTOFS])
+   if (!device->autofs)
return;
  
-	snprintf(path, sizeof(path), "/tmp/run/blockd/%s",

-blobmsg_get_string(data[MOUNT_DEVICE]));
+   snprintf(path, sizeof(path), "/tmp/run/blockd/%s", device->name);
if (symlink(path, device->target))
ULOG_ERR("failed to symlink %s->%s\n", device->target, path);
  }


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents

2018-12-07 Thread John Crispin



On 07/12/2018 11:11, Hattink, Tjalling wrote:

-Original Message-
From: openwrt-devel [mailto:openwrt-devel-boun...@lists.openwrt.org]
On Behalf Of Jo-Philipp Wich
Sent: Friday, December 7, 2018 10:51
To: openwrt-devel@lists.openwrt.org
Subject: Re: [OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents

Hi,

I had a brief discussion with John on this matter and was being told that the
reason for this filter was to optimize boot time.

When we remove the /dev filter, boot time will increase considerably on
lower end devices due to the resulting hotplug-call overhead of the huge
volume of additional uevents.

A better approach here would be to selectively whitelist uevents based on
subsystem or similar attributes, e.g. `DEVTYPE=usb_device`.

~ Jo

I can imagine that this would increase boot times on low end devices.
Looking at the commit message introducing the filter it seems to
cut down the amount of events by half.

How about adding a compile option to procd that enables/disables this
filter. So by default this filter is enabled, but using a makemenu option
in the procd configuration (similar as "Mount /tmp using zram" option)
you would be able to disable the filter for high-end boards that require
it. This would be fairly easy to implement.

Best regards,
Tjaling Hattink


Hi,

I actually have a rather strong opinion on this one and would prefer to 
hardcode uevents that we want to opt-in as Jo suggested. compile time 
options do look nice, but we have a trizillion of them already and they 
per default are not enabled in binary releases making them virtually 
useless to anyone that was not involved in adding them to the tree.


    John





___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] ar71xx Vs ath79

2018-12-07 Thread John Crispin

Hi,

so many mails in this thread. does anyone feel destined to summarize 
this in an impartial manner ?


my superficial understanding is that some/few people do have 
understandable doubts but alot of people understand that the trade-off 
is quite high and it does only effect >5% of devices ?!?


    John


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH fstools] block: validate amount of arguments for the "autofs" command

2018-12-07 Thread John Crispin

nitpickering ...

On 07/12/2018 17:26, Rafał Miłecki wrote:

From: Rafał Miłecki 

Using argv[3] without checking argc value could result in undefined
behavior. It could result in a crash or accessing a NULL that separates
argv from envp on UNIX.

Signed-off-by: Rafał Miłecki 
---
  block.c | 6 +-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/block.c b/block.c
index 8972fdf..1edc9b8 100644
--- a/block.c
+++ b/block.c
@@ -1189,8 +1189,12 @@ static int main_autofs(int argc, char **argv)
blockd_notify(pr->dev, m, pr);
}
return 0;
+   } else {
+   if (argc < 4)
+   return -EINVAL;
+
+   return mount_action(argv[2], argv[3], TYPE_AUTOFS);


we can reduce one indentation here

else if (argc < 4)

    return -EINVAL;

return mount_action(argv[2], argv[3], TYPE_AUTOFS);

or not ?!

regardless ...

Acked-by: John Crispin 



}
-   return mount_action(argv[2], argv[3], TYPE_AUTOFS);
  }
  
  static int find_block_mtd(char *name, char *part, int plen)


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH fstools] block: validate amount of arguments for the "autofs" command

2018-12-07 Thread Rafał Miłecki
From: Rafał Miłecki 

Using argv[3] without checking argc value could result in undefined
behavior. It could result in a crash or accessing a NULL that separates
argv from envp on UNIX.

Signed-off-by: Rafał Miłecki 
---
 block.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/block.c b/block.c
index 8972fdf..1edc9b8 100644
--- a/block.c
+++ b/block.c
@@ -1189,8 +1189,12 @@ static int main_autofs(int argc, char **argv)
blockd_notify(pr->dev, m, pr);
}
return 0;
+   } else {
+   if (argc < 4)
+   return -EINVAL;
+
+   return mount_action(argv[2], argv[3], TYPE_AUTOFS);
}
-   return mount_action(argv[2], argv[3], TYPE_AUTOFS);
 }
 
 static int find_block_mtd(char *name, char *part, int plen)
-- 
2.13.7


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH fstools] blockd: don't reparse blob msg in the vlist callbacks

2018-12-07 Thread Rafał Miłecki
From: Rafał Miłecki 

ubus message is parsed in the block_hotplug() which fills all the struct
device fields. Once that is done there is no need to parse original
message again - it's enough to get required data from the struct.

This also fixes handling messages with "autofs" set to 0. They were
incorrectly interpreted due to the missing blobmsg_get_u32().

Signed-off-by: Rafał Miłecki 
---
 blockd.c | 16 +++-
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/blockd.c b/blockd.c
index 1379635..29d16f2 100644
--- a/blockd.c
+++ b/blockd.c
@@ -111,29 +111,19 @@ block(char *cmd, char *action, char *device)
 static void
 device_free(struct device *device)
 {
-   struct blob_attr *data[__MOUNT_MAX];
-
-   blobmsg_parse(mount_policy, __MOUNT_MAX, data,
- blob_data(device->msg), blob_len(device->msg));
-
-   if (data[MOUNT_AUTOFS] && device->target)
+   if (device->autofs && device->target)
unlink(device->target);
 }
 
 static void
 device_add(struct device *device)
 {
-   struct blob_attr *data[__MOUNT_MAX];
char path[64];
 
-   blobmsg_parse(mount_policy, __MOUNT_MAX, data,
- blob_data(device->msg), blob_len(device->msg));
-
-   if (!data[MOUNT_AUTOFS])
+   if (!device->autofs)
return;
 
-   snprintf(path, sizeof(path), "/tmp/run/blockd/%s",
-blobmsg_get_string(data[MOUNT_DEVICE]));
+   snprintf(path, sizeof(path), "/tmp/run/blockd/%s", device->name);
if (symlink(path, device->target))
ULOG_ERR("failed to symlink %s->%s\n", device->target, path);
 }
-- 
2.13.7


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] ar71xx Vs ath79 -- sysupgrade

2018-12-07 Thread Karl Palsson

Henrique de Moraes Holschuh  wrote:
> Em 05/12/2018 21:20, Thomas Endt escreveu:
> >> Auftrag von Henrique de Moraes Holschuh
> >> Do we have a wiki table somewhere that has the device name, ar71xx info
> >> and ath79 info, which could be expanded with ar71xx->ath79 status (no,
> >> yes but unverified, yes verified to be complete)?
> >>
> >> That would be really useful to direct efforts on adding ath79 support
> >> to something that is still ar71xx-only, as well as adding ar71xx->ath79
> >> support to targets of interest (i.e. those one happens to know what
> >> changes are required for the migration, really).
> >>
> >> I suppose one would also add any remarks about ath79 support being
> >> incomplete or any regressions for each target one knows about, too.
> >> That would help steering the ar71xx deprecation.
> > 
> > There is a table that documents the ath79 status in the OpenWrt forum:
> > https://forum.openwrt.org/t/ath79-target-status/18614/9
> > 
> > The place to put this into the wiki would be:
> > https://openwrt.org/docs/techref/targets/ath79
> > 
> > 
> > We can define a new target "ar71xx-ath79" for the dataentries, which would 
> > then give us these 3 options:
> > 
> > 1) "ar71xx"  # device is ar71xx only
> > 2) "ath79"   # device is ath79 only
> > 3) "ar71xx-ath79"# device is migrated (and working, if nothing in 
> > "Unsupported Functions")
> > 
> > ---> devices will automatically show up on the ath79 and/or ar71xx wikipage 
> > (slight modifications necessary).
> > 
> > For "ath79 WIP" devices, we can set the "Unsupported Functions" datafield 
> > (that's where WIP usually is found) to "ath79 WIP, see forum".
> > Any detailed discussion or description of incomplete support should happen 
> > elsewhere, i.e. either in the forum or on the respective devicepages.
> > 
> > Please let me know if this meets your requirements.
> 
> Yes, this would do it nicely, provided that we take care to
> describe in the web pages what ar71xx-ath79 means.
> 
> Note that my answer assumes "migrated" (i.e. ar71xx-ath79)
> means the glue to migrate and convert low-level config (LEDs,
> etc) when updating from ar71xx -> ath79 is in place on the
> ath79 port.
> 
> If it just does ar71xx _and_ ath79, BUT one has to manually
> adjust configuration when migrating from ar71xx to ath79, it
> would have to be flagged as WIP or something like that, even if
> all of its functions are fully implemented and working in
> ath79.

One thing we want to avoid meanwhile is keeping the old stuff
"just because" The whole point of moving to ath79 is to be closer
to upstream. If we just go and repatch everythign to make it
compatible with the past, we might as well not have bothered. We
want to make sure that any migrations are migrations to new stuff
_only_ not adapting things to stay in the same place.

Cheers,
Karl P

signature.html
Description: OpenPGP Digital Signature
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH V3 fstools] block: generate hotplug.d mount events

2018-12-07 Thread Rafał Miłecki
From: Rafał Miłecki 

With this change block generates 2 "mount" hotplug.d subsystem events:
1) "add" when block device gets mounted
2) "remove" when block device gets unmounted

This allows e.g. controlling USB storage dependant software using
hotplug.d listeners.

A very similar solution was implemented in mountd which was replaced by
blockd.

Right now this is implemented using a call to the /sbin/hotplug-call.
A possible improvement is to rewrite above shell script into a C lib
function. For now let's just assume that script exists.

Signed-off-by: Rafał Miłecki 
---
V2: Use hotplug_call() helper. It requires
[PATCH libubox] hotplug: add hotplug_call() helper
V3: Switch back to the local hotplug-call call as it doesn't really fit
the library.
Use setenv() which simplifies the code.
Improve error handling.
---
 block.c | 33 +
 1 file changed, 33 insertions(+)

diff --git a/block.c b/block.c
index 46050b4..8972fdf 100644
--- a/block.c
+++ b/block.c
@@ -880,6 +880,35 @@ static int exec_mount(const char *source, const char 
*target,
return err;
 }
 
+static int hotplug_call_mount(const char *action, const char *device)
+{
+   pid_t pid;
+   int err;
+
+   pid = fork();
+   if (!pid) {
+   char * const argv[] = { "hotplug-call", "mount", NULL };
+
+   setenv("ACTION", action, 1);
+   setenv("DEVICE", device, 1);
+
+   execv("/sbin/hotplug-call", argv);
+   exit(-1);
+   } else if (pid > 0) {
+   int status;
+
+   pid = waitpid(pid, , 0);
+   if (pid <= 0 || !WIFEXITED(status) || WEXITSTATUS(status)) {
+   err = -ENOEXEC;
+   ULOG_ERR("hotplug-call call failed\n");
+   }
+   } else {
+   err = -errno;
+   }
+
+   return err;
+}
+
 static int handle_mount(const char *source, const char *target,
 const char *fstype, struct mount *m)
 {
@@ -1079,6 +1108,8 @@ static int mount_device(struct probe_info *pr, int type)
 
handle_swapfiles(true);
 
+   hotplug_call_mount("add", device);
+
return 0;
 }
 
@@ -1091,6 +1122,8 @@ static int umount_device(char *path)
if (!mp)
return -1;
 
+   hotplug_call_mount("remove", basename(path));
+
err = umount2(mp, MNT_DETACH);
if (err)
ULOG_ERR("unmounting %s (%s) failed (%d) - %m\n", path, mp,
-- 
2.13.7


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents

2018-12-07 Thread Hattink, Tjalling via openwrt-devel
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.--- Begin Message ---
> -Original Message-
> From: openwrt-devel [mailto:openwrt-devel-boun...@lists.openwrt.org]
> On Behalf Of Jo-Philipp Wich
> Sent: Friday, December 7, 2018 10:51
> To: openwrt-devel@lists.openwrt.org
> Subject: Re: [OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents
> 
> Hi,
> 
> I had a brief discussion with John on this matter and was being told that the
> reason for this filter was to optimize boot time.
> 
> When we remove the /dev filter, boot time will increase considerably on
> lower end devices due to the resulting hotplug-call overhead of the huge
> volume of additional uevents.
> 
> A better approach here would be to selectively whitelist uevents based on
> subsystem or similar attributes, e.g. `DEVTYPE=usb_device`.
> 
> ~ Jo

I can imagine that this would increase boot times on low end devices.
Looking at the commit message introducing the filter it seems to
cut down the amount of events by half.

How about adding a compile option to procd that enables/disables this
filter. So by default this filter is enabled, but using a makemenu option
in the procd configuration (similar as "Mount /tmp using zram" option)
you would be able to disable the filter for high-end boards that require
it. This would be fairly easy to implement.

Best regards,
Tjaling Hattink

--- End Message ---
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH] ath9k: register GPIO chip for OF targets

2018-12-07 Thread Mathias Kresin
This partitialy reverts commit ccab68f2d399.

Registering the GPIO chip without a parent device completely breaks the
ath9k GPIOs for device tree targets.

As long as boards using the devicetree don't have the gpio-controller
property set for the ath9k node, the unloading of the driver works as
expected.

Register the GPIO chip with the ath9k device as parent only for OF
targets to find a trade-off between the needs of driver developers and
the broken LEDs and buttons seen by users.

Signed-off-by: Mathias Kresin 
---
 .../ath/548-ath9k_enable_gpio_chip.patch  | 21 +--
 .../ath/549-ath9k_enable_gpio_buttons.patch   |  8 +++
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git 
a/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch 
b/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
index 0b76d330c6..eb9eb26a74 100644
--- a/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
+++ b/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau 
  #ifdef CPTCFG_ATH9K_DEBUGFS
 --- a/drivers/net/wireless/ath/ath9k/gpio.c
 +++ b/drivers/net/wireless/ath/ath9k/gpio.c
-@@ -16,13 +16,130 @@
+@@ -16,13 +16,139 @@
  
  #include "ath9k.h"
  #include 
@@ -126,7 +126,13 @@ Signed-off-by: Felix Fietkau 
 +  gc->sc = sc;
 +  snprintf(gc->label, sizeof(gc->label), "ath9k-%s",
 +   wiphy_name(sc->hw->wiphy));
-+
++#ifdef CONFIG_OF
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0)
++  gc->gchip.parent = sc->dev;
++#else
++  gc->gchip.dev = sc->dev;
++#endif
++#endif
 +  gc->gchip.label = gc->label;
 +  gc->gchip.base = -1;/* determine base automatically */
 +  gc->gchip.ngpio = ah->caps.num_gpio_pins;
@@ -141,6 +147,9 @@ Signed-off-by: Felix Fietkau 
 +  return;
 +  }
 +
++#ifdef CONFIG_OF
++  gc->gchip.owner = NULL;
++#endif
 +  sc->gpiochip = gc;
 +}
 +
@@ -178,7 +187,7 @@ Signed-off-by: Felix Fietkau 
  static void ath_fill_led_pin(struct ath_softc *sc)
  {
struct ath_hw *ah = sc->sc_ah;
-@@ -80,6 +197,12 @@ static int ath_add_led(struct ath_softc
+@@ -80,6 +206,12 @@ static int ath_add_led(struct ath_softc
else
ath9k_hw_set_gpio(sc->sc_ah, gpio->gpio, gpio->active_low);
  
@@ -191,7 +200,7 @@ Signed-off-by: Felix Fietkau 
return 0;
  }
  
-@@ -136,17 +259,24 @@ void ath_deinit_leds(struct ath_softc *s
+@@ -136,17 +268,24 @@ void ath_deinit_leds(struct ath_softc *s
  
while (!list_empty(>leds)) {
led = list_first_entry(>leds, struct ath_led, list);
@@ -216,7 +225,7 @@ Signed-off-by: Felix Fietkau 
char led_name[32];
const char *trigger;
int i;
-@@ -156,6 +286,15 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -156,6 +295,15 @@ void ath_init_leds(struct ath_softc *sc)
if (AR_SREV_9100(sc->sc_ah))
return;
  
@@ -232,7 +241,7 @@ Signed-off-by: Felix Fietkau 
ath_fill_led_pin(sc);
  
if (pdata && pdata->leds && pdata->num_leds)
-@@ -180,6 +319,7 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -180,6 +328,7 @@ void ath_init_leds(struct ath_softc *sc)
ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger,
   !sc->sc_ah->config.led_active_high);
  }
diff --git 
a/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch 
b/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
index e7282ab6b1..bd71b75e76 100644
--- a/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
+++ b/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
@@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau 
  
  #ifdef CPTCFG_MAC80211_LEDS
  
-@@ -124,6 +126,67 @@ static void ath9k_unregister_gpio_chip(s
+@@ -133,6 +135,67 @@ static void ath9k_unregister_gpio_chip(s
sc->gpiochip = NULL;
  }
  
@@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau 
  #else /* CONFIG_GPIOLIB */
  
  static inline void ath9k_register_gpio_chip(struct ath_softc *sc)
-@@ -134,6 +197,14 @@ static inline void ath9k_unregister_gpio
+@@ -143,6 +206,14 @@ static inline void ath9k_unregister_gpio
  {
  }
  
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau 
  #endif /* CONFIG_GPIOLIB */
  
  //
-@@ -257,6 +328,7 @@ void ath_deinit_leds(struct ath_softc *s
+@@ -266,6 +337,7 @@ void ath_deinit_leds(struct ath_softc *s
  {
struct ath_led *led;
  
@@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau 
while (!list_empty(>leds)) {
led = list_first_entry(>leds, struct ath_led, list);
  #ifdef CONFIG_GPIOLIB
-@@ -296,6 +368,7 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -305,6 +377,7 @@ void ath_init_leds(struct ath_softc *sc)
}
  
ath_fill_led_pin(sc);
-- 
2.17.1


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org

Re: [OpenWrt-Devel] ar71xx Vs ath79 -- sysupgrade

2018-12-07 Thread Henrique de Moraes Holschuh

Em 06/12/2018 18:18, Thomas Endt escreveu:

I tried to include your comments while creating these two pages:
https://openwrt.org/docs/techref/targets/ar71xx-ath79
https://openwrt.org/unsupported/ath79_wip

Please crosscheck.


It is perfect, thank you!


There is a table that documents the ath79 status in the OpenWrt forum:
https://forum.openwrt.org/t/ath79-target-status/18614/9


Can I set all devices listed as "working" to "ar71xx-ath79 + no ath79 WIP"?


Probably yes, but I am not the best person to answer that question since 
I have no idea of what level of ath79 support "working" implies.  That 
said, as the native ath79 support and migration from ar71xx get tested 
(or completed) for a device, they can lose the WIP tag, so I see no 
problem with your suggestion...


I would not tag something that fails to boot with ethernet access still 
working and configured after an ar71xx->ath79 migration as "ar71xx-ath79 
WIP" unless one can add a "!beware!" sort of reminder to the listing, 
though ;-)


--
Henrique de Moraes Holschuh
Analista de Projetos
Centro de Estudos e Pesquisas em Tecnologias de Redes e Operações 
(Ceptro.br)

+55 11 5509-3537 R.:4023
INOC 22548*625
www.nic.br

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents

2018-12-07 Thread Jo-Philipp Wich
Hi,

I had a brief discussion with John on this matter and was being told
that the reason for this filter was to optimize boot time.

When we remove the /dev filter, boot time will increase considerably on
lower end devices due to the resulting hotplug-call overhead of the huge
volume of additional uevents.

A better approach here would be to selectively whitelist uevents based
on subsystem or similar attributes, e.g. `DEVTYPE=usb_device`.

~ Jo



signature.asc
Description: OpenPGP digital signature
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH] procd: remove /dev filter on uevents

2018-12-07 Thread Hattink, Tjalling via openwrt-devel
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.--- Begin Message ---
The udevtrigger tool is responsible for firing hotplug
events for all devices that have been enumerated by
the kernel before the hotplug daemon is running. This
happens during the 'early' (coldplug) stage of procd.

A filter is in place during the scan of devices that
requires a dev attribute file to be present in the
sysfs. The argument is that without this attribute you
are not able to create a device node under '/dev'.

But there might be other hotplug scripts that are for
example do detection of certain connected devices that
do not have a dev attribute file, for example USB
devices and their siblings. To make sure these hotplug
scripts are also called during coldplug the filter is
removed.

Signed-off-by: Tjalling Hattink 
---
 plug/udevtrigger.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/plug/udevtrigger.c b/plug/udevtrigger.c
index f87a95e..db0c29a 100644
--- a/plug/udevtrigger.c
+++ b/plug/udevtrigger.c
@@ -161,9 +161,8 @@ static int device_list_insert(const char *path)
 
dbg("add '%s'" , path);
 
-   /* we only have a device, if we have a dev and an uevent file */
-   if (!device_has_attribute(path, "/dev", S_IRUSR) ||
-   !device_has_attribute(path, "/uevent", S_IWUSR))
+   /* we can only trigger a hotplug event, if we have an uevent file */
+   if (!device_has_attribute(path, "/uevent", S_IWUSR))
return -1;
 
strlcpy(devpath, [4], sizeof(devpath));
-- 
2.14.1

--- End Message ---
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] brcm2708: add kernel 4.14 support

2018-12-07 Thread Alexandru Ardelean
On Fri, Dec 7, 2018 at 10:57 AM Stijn Tintel  wrote:
>
> On 7/12/18 10:17, Alexandru Ardelean wrote:
> > On Fri, Dec 7, 2018 at 5:06 AM Stijn Tintel  wrote:
> >> On 11/11/18 18:37, Stijn Tintel wrote:
> >>> Hi,
> >>>
> >>> I have just pushed support for the 4.14 kernel on the brcm2708 target to
> >>> my staging tree [1], and would like to get some feedback before pushing
> >>> it to master. It would also be nice if people could do runtime tests on
> >>> bcm2709 and bcm2710, as I don't own such hardware.
> >>>
> >>> Thanks,
> >>> Stijn
> >>>
> >>> [1]
> >>> https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/brcm2708-4_14
> >>>
> >> Updated [1]:
> >> - based on 4.14.86
> >> - split kmod changes in separate commits
> >> - kept lan78xx patches except those that are superseded by upstream
> >> changes, added another one that attempts to fix broken ethernet and
> >> "kevent 4 may have been dropped" flood
> >> - added missing compatible strings using upstream names for compute modules
> >> - no longer removing the sense HAT patch, I might add kmod packages for
> >> that later
> >>
> >> Compile-tested all 3 subtargets again with CONFIG_ALL_KMODS=y, and
> >> runtime-tested bcm2708 on RPi0W and bcm2710 on RPi3B+. The wired
> >> interface on the latter seems to be usable now.
> >>
> >> I'm planning to push this to master as soon as Koen pushed the 4.14.86
> >> bump. If there are any objections, please speak up ASAP.
> >>
> > This one booted fine on a RPi 3.
> > I used the 32 bit image.
> >
> > root@OpenWrt:~# uname -a
> > Linux OpenWrt 4.14.86 #0 SMP Fri Dec 7 03:03:39 2018 armv7l GNU/Linux
> Thanks for testing, I added your "Tested-by".
Ack.

> >
> > A few minor/ignorable errors:
> > [0.769743] Error: Driver 'sdhost-bcm2835' is already registered, 
> > aborting...
> Fixed by disabling CONFIG_MMC_BCM2835_MMC since we want to prefer
> upstream when possible.
> > [8.689456] brcmfmac mmc1:0001:1: Direct firmware load for
> > brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt failed with
> > error -2
> >
> Similar error appeared for me with 4.9. Since it's non-fatal, I'm going
> to ignore this for now.
I assumed as much, but I was a bit lazy to re-create or flash an
SD-card with a 4.9 image.

>
> Thanks,
> Stijn
>

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] brcm2708: add kernel 4.14 support

2018-12-07 Thread Stijn Tintel
On 7/12/18 10:17, Alexandru Ardelean wrote:
> On Fri, Dec 7, 2018 at 5:06 AM Stijn Tintel  wrote:
>> On 11/11/18 18:37, Stijn Tintel wrote:
>>> Hi,
>>>
>>> I have just pushed support for the 4.14 kernel on the brcm2708 target to
>>> my staging tree [1], and would like to get some feedback before pushing
>>> it to master. It would also be nice if people could do runtime tests on
>>> bcm2709 and bcm2710, as I don't own such hardware.
>>>
>>> Thanks,
>>> Stijn
>>>
>>> [1]
>>> https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/brcm2708-4_14
>>>
>> Updated [1]:
>> - based on 4.14.86
>> - split kmod changes in separate commits
>> - kept lan78xx patches except those that are superseded by upstream
>> changes, added another one that attempts to fix broken ethernet and
>> "kevent 4 may have been dropped" flood
>> - added missing compatible strings using upstream names for compute modules
>> - no longer removing the sense HAT patch, I might add kmod packages for
>> that later
>>
>> Compile-tested all 3 subtargets again with CONFIG_ALL_KMODS=y, and
>> runtime-tested bcm2708 on RPi0W and bcm2710 on RPi3B+. The wired
>> interface on the latter seems to be usable now.
>>
>> I'm planning to push this to master as soon as Koen pushed the 4.14.86
>> bump. If there are any objections, please speak up ASAP.
>>
> This one booted fine on a RPi 3.
> I used the 32 bit image.
>
> root@OpenWrt:~# uname -a
> Linux OpenWrt 4.14.86 #0 SMP Fri Dec 7 03:03:39 2018 armv7l GNU/Linux
Thanks for testing, I added your "Tested-by".
>
> A few minor/ignorable errors:
> [0.769743] Error: Driver 'sdhost-bcm2835' is already registered, 
> aborting...
Fixed by disabling CONFIG_MMC_BCM2835_MMC since we want to prefer
upstream when possible.
> [8.689456] brcmfmac mmc1:0001:1: Direct firmware load for
> brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt failed with
> error -2
>
Similar error appeared for me with 4.9. Since it's non-fatal, I'm going
to ignore this for now.

Thanks,
Stijn


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH libubox] hotplug: add hotplug_call() helper

2018-12-07 Thread John Crispin


On 07/12/2018 09:39, Rafał Miłecki wrote:

On 2018-12-07 04:41, Yousong Zhou wrote:

On Thu, 6 Dec 2018 at 20:42, Rafał Miłecki  wrote:


From: Rafał Miłecki 

This new function imlements common code needed to run /etc/hotplug.d/
listeners. It allows specifying subsystem and environment strings as
commonly used in the hotplug.d.


hotplug-call is currently a OpenWrt-specific shell script from
base-files.  A library function's dependence on exact name and path of
non-standard executable does not seem fit.


You're probably right, I guess the best solution would be to implement
hotplug-call script behavior directly in the libubox library.



Hotplug events from the kernel is already being handled by
hotplug.json script.  Events from non-standard subsystem like "iface"
as defined by netifd are generated and handled fine just by itself
[1].  As such, I cannot find enough other places needing this function
to make it into libubox.


We could make netifd use that hotplug_call() helper, but now I noticed
that netifd simply uses setenv() after the fork(). That may be simpler
than building all that envp array.


I'm not sure now if it's better to work on:
1) Improved (native) hotplug_call() implementation in the libubox
2) Original idea of doing fork() in the fstools / block + setenv()

Implementing hotplug_call() was originally suggested by John, let's see
what's his opinion too.



I was simply thinking of making the code reusable. i do understand the 
concens. I dont really hold a really strong position on this. if you 
feel that it is better to implment this inside blockd directly or any 
other way, feel free to do so.


    John





 [1]
https://git.openwrt.org/?p=project/netifd.git;a=blob;f=interface-event.c;h=a40f6dc883d3a3654d73d0592cd7eb65c2a8de85;hb=HEAD#l45 



___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH libubox] hotplug: add hotplug_call() helper

2018-12-07 Thread Rafał Miłecki

On 2018-12-07 04:41, Yousong Zhou wrote:

On Thu, 6 Dec 2018 at 20:42, Rafał Miłecki  wrote:


From: Rafał Miłecki 

This new function imlements common code needed to run /etc/hotplug.d/
listeners. It allows specifying subsystem and environment strings as
commonly used in the hotplug.d.


hotplug-call is currently a OpenWrt-specific shell script from
base-files.  A library function's dependence on exact name and path of
non-standard executable does not seem fit.


You're probably right, I guess the best solution would be to implement
hotplug-call script behavior directly in the libubox library.



Hotplug events from the kernel is already being handled by
hotplug.json script.  Events from non-standard subsystem like "iface"
as defined by netifd are generated and handled fine just by itself
[1].  As such, I cannot find enough other places needing this function
to make it into libubox.


We could make netifd use that hotplug_call() helper, but now I noticed
that netifd simply uses setenv() after the fork(). That may be simpler
than building all that envp array.


I'm not sure now if it's better to work on:
1) Improved (native) hotplug_call() implementation in the libubox
2) Original idea of doing fork() in the fstools / block + setenv()

Implementing hotplug_call() was originally suggested by John, let's see
what's his opinion too.


 [1]
https://git.openwrt.org/?p=project/netifd.git;a=blob;f=interface-event.c;h=a40f6dc883d3a3654d73d0592cd7eb65c2a8de85;hb=HEAD#l45


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [RFC] stop accepting 4/32M board patches

2018-12-07 Thread Alberto Bursi



On 06/12/2018 23:51, Jo-Philipp Wich wrote:



But even this may be not needed: For Tp-Link recently was released a
mobile app Tether to control a router https://www.tp-link.com/us/tether/

This would imply both tying OpenWrt to a proprietary app and limiting
its configuration to whatever settings that happen to be exposed by it -
this hardly sounds like a viable solution to me.


Having an app or a client application to control things would be cool 
though.


I've seen this tutorial to "create" an Android/iOS app with Blynk that 
is using a SSH
console to send over commands to the Lua interpreter on the device 
(maybe it can be made to work with shell script)


https://www.instructables.com/id/AndroidiOS-App-to-Access-Your-OpenWrt-Router-Remot/

Just in case someone wants to do that.

-Alberto


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] ipq806x: add ath10k calibration data MAC addresses patching

2018-12-07 Thread Chuanhong Guo
Hi!
On Mon, Oct 29, 2018 at 12:40 AM Christian Lamparter  wrote:
>
> Ben Greear reported in his patch:
> |Subject: netgear r7800: Fix mac address of radios.
> |
> |Reloading the driver causes the phyX to change, and that
> |caused the MAC address to change.
>
> This is because all ODM/OEMs except QCA bothered to write
> the correct MAC address for the ath10k wifi into the
> calibration data.
>
> This patch copies over the MAC patching helper functions from ipq40xx's
> target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> file and converts all the devices to patch the correct MACs into the
> extracted calibration data before it gets sent to the driver, which sets
> up the device with the correct MAC address. It also removes the
> 10_fix_wifi_mac file as it has served its purpose.
>
> Please note the C2600: There is conflicting information on what
> the offset for the second wifi is supposed to be. This patch uses
> what was specified in 10_fix_wifi_mac.
>
> Reported-by: Ben Greear 
> Signed-off-by: Christian Lamparter 
> ---
>  .../etc/hotplug.d/firmware/11-ath10k-caldata  | 64 +--
>  .../etc/hotplug.d/ieee80211/10_fix_wifi_mac   | 37 ---
>  2 files changed, 57 insertions(+), 44 deletions(-)
>  delete mode 100644 
> target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
>
> diff --git 
> a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata 
> b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> index fa49c250f0..1d070603f2 100644
> --- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> +++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> @@ -1,5 +1,21 @@
>  #!/bin/sh
>
> +# xor multiple hex values of the same length
> +xor() {
> +   local val
> +   local ret="0x$1"
> +   local retlen=${#1}
> +
> +   shift
> +   while [ -n "$1" ]; do
> +   val="0x$1"
> +   ret=$((ret ^ val))
> +   shift
> +   done
> +
> +   printf "%0${retlen}x" "$ret"
> +}
> +
>  ath10kcal_die() {
> echo "ath10cal: " "$*"
> exit 1
> @@ -36,6 +52,29 @@ ath10kcal_patch_mac() {
> macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 
> seek=6 count=6
>  }
>
> +ath10kcal_patch_mac_crc() {
> +   local mac=$1
> +   local mac_offset=6
> +   local chksum_offset=2
> +   local xor_mac
> +   local xor_fw_mac
> +   local xor_fw_chksum
> +
> +   xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' 
> /lib/firmware/$FIRMWARE)
> +   xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}"
> +
> +   ath10kcal_patch_mac "$mac" && {
> +   xor_mac=${mac//:/}
> +   xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}"
> +
> +   xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 
> "%02x"' /lib/firmware/$FIRMWARE)
> +   xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
> +
> +   printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
> +   dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 
> seek=$chksum_offset count=2
> +   }
> +}
> +
I think we should replace the ath10kcal_patch_mac directly instead of
introducing another function.
All ath10k calibration data have a checksum at 0x2.
ath10kcal_patch_mac works for QCA9880/QCA9882 only because the ath10k
firmware for these two chips doesn't check the checksum value. (QCA
proprietary driver checks this and refuses to use caldata with
incorrect checksum.)
>  [ -e /lib/firmware/$FIRMWARE ] && exit 0
>
>  . /lib/functions.sh
> @@ -43,53 +82,64 @@ ath10kcal_patch_mac() {
>
>  board=$(board_name)
>
> -
>  case "$FIRMWARE" in
>  "ath10k/pre-cal-pci-:01:00.0.bin")
> case $board in
> linksys,ea8500)
> -   hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
> ath10kcal_extract "art" 4096 12064
> +   ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii 
> devinfo hw_mac_addr) +1)
> +   ;;
> +   nec,wg2600hp)
> +   ath10kcal_extract "ART" 4096 12064
> +   ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary 
> PRODUCTDATA 12) +1)
> ;;
> netgear,d7800 |\
> netgear,r7500v2 |\
> netgear,r7800)
> ath10kcal_extract "art" 4096 12064
> +   ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary 
> art 6) +1)
> ;;
> tplink,c2600)
> ath10kcal_extract "radio" 4096 12064
> -#  ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary 
> default-mac 8) -1)
> +   ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary 
> default-mac 8) -1)
> ;;
> -   nec,wg2600hp |\
> tplink,vr2600v)
> ath10kcal_extract "ART" 4096 12064
> +   

Re: [OpenWrt-Devel] [RFC] stop accepting 4/32M board patches

2018-12-07 Thread Sebastian Moeller



> On Dec 7, 2018, at 08:29, Shaleen Jain  wrote:
> 
> Hi,
> 
> [...]
> The point about these boards requiring a lot of modification to be useful is 
> simply not true.
> I have a TP-Link tl-wr841n-v11 running the master branch with kernel 4.14 
> with luci 
> and sqm-scripts + miniupnpd with no problem at all.
> 
> The only change I had to do was disable IPv6 and the opkg package from the 
> build image
> resulting in the final image size of 3.8M
[...]

Jettisoning IPv6 seems like a size-reduction method that is not generally 
applicable, how is say ds-lite going to work on such a device?
This is fine for the use case of an experienced (of well coached novice) user 
who understands the consequences, but it does not seem like a generic way to 
produce smaller images sizes for all users, no?

-
Sebastian
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] brcm2708: add kernel 4.14 support

2018-12-07 Thread Alexandru Ardelean
On Fri, Dec 7, 2018 at 5:06 AM Stijn Tintel  wrote:
>
> On 11/11/18 18:37, Stijn Tintel wrote:
> > Hi,
> >
> > I have just pushed support for the 4.14 kernel on the brcm2708 target to
> > my staging tree [1], and would like to get some feedback before pushing
> > it to master. It would also be nice if people could do runtime tests on
> > bcm2709 and bcm2710, as I don't own such hardware.
> >
> > Thanks,
> > Stijn
> >
> > [1]
> > https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/brcm2708-4_14
> >
> Updated [1]:
> - based on 4.14.86
> - split kmod changes in separate commits
> - kept lan78xx patches except those that are superseded by upstream
> changes, added another one that attempts to fix broken ethernet and
> "kevent 4 may have been dropped" flood
> - added missing compatible strings using upstream names for compute modules
> - no longer removing the sense HAT patch, I might add kmod packages for
> that later
>
> Compile-tested all 3 subtargets again with CONFIG_ALL_KMODS=y, and
> runtime-tested bcm2708 on RPi0W and bcm2710 on RPi3B+. The wired
> interface on the latter seems to be usable now.
>
> I'm planning to push this to master as soon as Koen pushed the 4.14.86
> bump. If there are any objections, please speak up ASAP.
>

This one booted fine on a RPi 3.
I used the 32 bit image.

root@OpenWrt:~# uname -a
Linux OpenWrt 4.14.86 #0 SMP Fri Dec 7 03:03:39 2018 armv7l GNU/Linux

A few minor/ignorable errors:
[0.769743] Error: Driver 'sdhost-bcm2835' is already registered, aborting...
[8.689456] brcmfmac mmc1:0001:1: Direct firmware load for
brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt failed with
error -2

Full dmesg log below
/START dmesg 
--/
[0.00] Booting Linux on physical CPU 0x0
[0.00] Linux version 4.14.86 (sandu@saturn) (gcc version 7.3.0
(OpenWrt GCC 7.3.0 r8039+640-0317fc3658)) #0 SMP Fri Dec 7 03:03:39
2018
[0.00] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[0.00] CPU: div instructions available: patching division code
[0.00] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[0.00] OF: fdt: Machine model: Raspberry Pi 3 Model B Plus Rev 1.3
[0.00] Memory policy: Data cache writealloc
[0.00] cma: Reserved 16 MiB at 0x3a40
[0.00] On node 0 totalpages: 242688
[0.00] free_area_init_node: node 0, pgdat 80824bc0,
node_mem_map b9c88000
[0.00]   Normal zone: 1896 pages used for memmap
[0.00]   Normal zone: 0 pages reserved
[0.00]   Normal zone: 242688 pages, LIFO batch:31
[0.00] random: get_random_bytes called from
start_kernel+0x84/0x35c with crng_init=0
[0.00] percpu: Embedded 16 pages/cpu @b9c34000 s33932 r8192
d23412 u65536
[0.00] pcpu-alloc: s33932 r8192 d23412 u65536 alloc=16*4096
[0.00] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[0.00] Built 1 zonelists, mobility grouping on.  Total pages: 240792
[0.00] Kernel command line: 8250.nr_uarts=1
bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1
vc_mem.mem_base=0x3ec0 vc_mem.mem_size=0x4000
dwc_otg.lpm_enable=0 console=ttyS0,115200 kgdboc=ttyS0,115200
console=tty1 root=/dev/mmcblk0p2 rootfstype=squashfs,ext4 rootwait
[0.00] PID hash table entries: 4096 (order: 2, 16384 bytes)
[0.00] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[0.00] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[0.00] Memory: 937852K/970752K available (4656K kernel code,
148K rwdata, 1212K rodata, 1024K init, 351K bss, 16516K reserved,
16384K cma-reserved)
[0.00] Virtual kernel memory layout:
[0.00] vector  : 0x - 0x1000   (   4 kB)
[0.00] fixmap  : 0xffc0 - 0xfff0   (3072 kB)
[0.00] vmalloc : 0xbb80 - 0xff80   (1088 MB)
[0.00] lowmem  : 0x8000 - 0xbb40   ( 948 MB)
[0.00] modules : 0x7f00 - 0x8000   (  16 MB)
[0.00]   .text : 0x80008000 - 0x8058c324   (5649 kB)
[0.00]   .init : 0x8070 - 0x8080   (1024 kB)
[0.00]   .data : 0x8080 - 0x808253c0   ( 149 kB)
[0.00].bss : 0x8082a1a8 - 0x80881e08   ( 352 kB)
[0.00] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[0.00] Hierarchical RCU implementation.
[0.00] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[0.00] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[0.00] clocksource: arch_sys_counter: mask: 0xff
max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[0.07] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps
every 4398046511078ns
[0.21] Switching to timer-based delay loop, resolution 52ns
[0.000222] Console: colour dummy device 80x30
[0.000675] console [tty1] enabled