Merge Mainline
This commit is contained in:
commit
ea0f145c3e
@ -204,13 +204,12 @@ menu "Target Images"
|
||||
depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_ISO || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
||||
select PACKAGE_grub2
|
||||
select PACKAGE_grub2-efi
|
||||
default n
|
||||
default y
|
||||
|
||||
config GRUB_CONSOLE
|
||||
bool "Use Console Terminal (in addition to Serial)"
|
||||
depends on GRUB_IMAGES || EFI_IMAGES
|
||||
default n if (TARGET_x86_generic_Soekris45xx || TARGET_x86_generic_Soekris48xx || TARGET_x86_net5501 || TARGET_x86_geos || TARGET_x86_alix2)
|
||||
default y
|
||||
default n
|
||||
|
||||
config GRUB_SERIAL
|
||||
string "Serial port device"
|
||||
|
||||
@ -588,7 +588,7 @@ if KERNEL_CGROUPS
|
||||
bool "Control Group Classifier"
|
||||
default y
|
||||
|
||||
config KERNEL_NETPRIO_CGROUP
|
||||
config KERNEL_CGROUP_NET_PRIO
|
||||
bool "Network priority cgroup"
|
||||
default y
|
||||
|
||||
|
||||
@ -7,13 +7,13 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .228
|
||||
LINUX_VERSION-4.14 = .185
|
||||
LINUX_VERSION-4.19 = .129
|
||||
LINUX_VERSION-4.14 = .186
|
||||
LINUX_VERSION-4.19 = .130
|
||||
LINUX_VERSION-5.4 = .48
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.228 = 8fbff429c6453036a0f79a55b4d85c1885c16999751198ddefdca7a3ff17fc34
|
||||
LINUX_KERNEL_HASH-4.14.185 = f333b10c68d59d7dc7f92684452993c225a34b5f1c95bc44147a94db22ef3dc6
|
||||
LINUX_KERNEL_HASH-4.19.129 = a87ba0d575c26f7cf386cef9a2c548952defaa8717d75f54ab29991db7bb0a5c
|
||||
LINUX_KERNEL_HASH-4.14.186 = 445b426181005b157a0cd33d663ed61a73c32c669772e066bb30291c6775a260
|
||||
LINUX_KERNEL_HASH-4.19.130 = a692c0e61dc885b4d6e66ae7bf202dadf7d5538fbf92766ce7cf8e227fd4f00f
|
||||
LINUX_KERNEL_HASH-5.4.48 = bf20ddafcd04c114d34654bb10d1eb74f1864f3d14b676c6f0d42d60bbcf1d53
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
|
||||
@ -36,7 +36,9 @@ zbtlink,zbt-wg2626)
|
||||
linksys,ea7500-v2|\
|
||||
xiaomi,mir3p|\
|
||||
xiaomi,mir3g|\
|
||||
xiaomi,mir4|\
|
||||
xiaomi,miwifi-r3|\
|
||||
xiaomi,mi-router-ac2100|\
|
||||
xiaomi,redmi-router-ac2100)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
|
||||
;;
|
||||
|
||||
@ -108,7 +108,7 @@ while true do
|
||||
end
|
||||
if not line:match("Ip*") then
|
||||
local ip, hw_type, flags, mac, mask, device = line:match("(%S+) %s+ (%S+) %s+ (%S+) %s+ (%S+) %s+ (%S+) %s+ (%S+)")
|
||||
if device:match("lan") then
|
||||
if device ~= nil and mac ~= nil and device:match("lan") then
|
||||
local hostname=get_hostname_by_mac(mac)
|
||||
if not hostname then
|
||||
users:value(mac, mac);
|
||||
|
||||
@ -10,11 +10,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI support for Rclone
|
||||
LUCI_DEPENDS:=+rclone +rclone-webui-react +rclone-ng +fuse-utils
|
||||
LUCI_DEPENDS:=+rclone +rclone-webui-react +rclone-ng +fuse-utils \
|
||||
+PACKAGE_luci-app-rclone_INCLUDE_rclone-webui:rclone-webui-react \
|
||||
+PACKAGE_luci-app-rclone_INCLUDE_rclone-ng:rclone-ng
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_NAME:=luci-app-rclone
|
||||
PKG_VERSION:=1.4.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
PKG_LICENSE:=GPLv3.0+
|
||||
PKG_MAINTAINER:=ElonH <elonhhuang@gmail.com>
|
||||
|
||||
@ -32,6 +34,20 @@ define Package/luci-app-rclone/description
|
||||
Yandex Disk, The local root/usr/binystem.
|
||||
endef
|
||||
|
||||
define Package/luci-app-rclone/conffiles
|
||||
/etc/config/rclone
|
||||
endef
|
||||
|
||||
define Package/luci-app-rclone/config
|
||||
config PACKAGE_luci-app-rclone_INCLUDE_rclone-webui
|
||||
bool "Include rclone-webui"
|
||||
default y
|
||||
|
||||
config PACKAGE_luci-app-rclone_INCLUDE_rclone-ng
|
||||
bool "Include rclone-ng"
|
||||
default y
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
require('luci.sys')
|
||||
require('luci.util')
|
||||
|
||||
local ipkg = require('luci.model.ipkg')
|
||||
|
||||
local fs = require 'nixio.fs'
|
||||
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
@ -31,6 +33,7 @@ else
|
||||
address_msg = ''
|
||||
end
|
||||
|
||||
if ipkg.installed("rclone-webui-react") and ipkg.installed("rclone-ng") then
|
||||
m =
|
||||
Map(
|
||||
'rclone',
|
||||
@ -46,6 +49,44 @@ m =
|
||||
translate('RcloneNg') ..
|
||||
" \" onclick=\"window.open('http://'+window.location.hostname+'/RcloneNg')\"/> <br/><br/>"
|
||||
)
|
||||
elseif ipkg.installed("rclone-webui-react") then
|
||||
m =
|
||||
Map(
|
||||
'rclone',
|
||||
translate('Rclone'),
|
||||
translate('Rclone ("rsync for cloud storage") is a command line program to sync root/usr/bin and directories to and from different cloud storage providers.') ..
|
||||
' <br/> <br/> ' .. translate('rclone state') .. ' : ' .. state_msg .. '<br/> <br/>'
|
||||
.. address_msg ..
|
||||
translate('Installed Web Interface') ..
|
||||
|
||||
' <input type="button" class="cbi-button" style="margin: 0 5px;" value=" ' ..
|
||||
translate('Webui React') ..
|
||||
" \" onclick=\"window.open('http://'+window.location.hostname+'/rclone-webui-react')\"/>"
|
||||
)
|
||||
elseif ipkg.installed("rclone-ng") then
|
||||
m =
|
||||
Map(
|
||||
'rclone',
|
||||
translate('Rclone'),
|
||||
translate('Rclone ("rsync for cloud storage") is a command line program to sync root/usr/bin and directories to and from different cloud storage providers.') ..
|
||||
' <br/> <br/> ' .. translate('rclone state') .. ' : ' .. state_msg .. '<br/> <br/>'
|
||||
.. address_msg ..
|
||||
translate('Installed Web Interface') ..
|
||||
|
||||
' <input type="button" class="cbi-button" style="margin: 0 5px;" value=" ' ..
|
||||
translate('RcloneNg') ..
|
||||
" \" onclick=\"window.open('http://'+window.location.hostname+'/RcloneNg')\"/> <br/><br/>"
|
||||
)
|
||||
else
|
||||
m =
|
||||
Map(
|
||||
'rclone',
|
||||
translate('Rclone'),
|
||||
translate('Rclone ("rsync for cloud storage") is a command line program to sync root/usr/bin and directories to and from different cloud storage providers.') ..
|
||||
' <br/> <br/> ' .. translate('rclone state') .. ' : ' .. state_msg .. '<br/> <br/>'
|
||||
.. address_msg
|
||||
)
|
||||
end
|
||||
|
||||
s = m:section(TypedSection, 'global', translate('global'))
|
||||
s.addremove = false
|
||||
|
||||
@ -2,14 +2,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"Last-Translator: ElonH <elonhhuang@gmail.com>\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh-Hans\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
#: luasrc/model/cbi/rclone.lua:121
|
||||
msgid "FAQ"
|
||||
@ -48,7 +48,7 @@ msgid ""
|
||||
"commonly either http or socks5."
|
||||
msgstr ""
|
||||
"内容格式为: protocol://server:port\n"
|
||||
"protocol 通常为 http 或者 socks5"
|
||||
"protocol 通常为 http 或者 socks5。"
|
||||
|
||||
#: luasrc/model/cbi/rclone.lua:43
|
||||
msgid "Webui React"
|
||||
@ -140,7 +140,7 @@ msgstr "启动 rclone 后台服务"
|
||||
|
||||
#: luasrc/model/cbi/rclone.lua:80
|
||||
msgid "than updaload configuration to here."
|
||||
msgstr "然后上传配置文件到这里"
|
||||
msgstr "然后上传配置文件到这里。"
|
||||
|
||||
#: luasrc/model/cbi/rclone.lua:80
|
||||
msgid "to setup configuration on pc,"
|
||||
|
||||
@ -51,6 +51,10 @@ EXTRA_CFLAGS:= \
|
||||
-DCONFIG_IOCTL_CFG80211 \
|
||||
-DCONFIG_CONCURRENT_MODE \
|
||||
|
||||
ifeq ($(ARCH),arm)
|
||||
EXTRA_CFLAGS += -mfloat-abi=softfp
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
EXTRA_CFLAGS += -mhard-float
|
||||
endif
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=rtl88x2bu
|
||||
PKG_VERSION:=5.6.1
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959.git
|
||||
PKG_SOURCE_URL:=https://github.com/cilynx/rtl88x2bu.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2019-09-23
|
||||
PKG_SOURCE_VERSION:=eece0638c546cd303da518c505cbe93513595030
|
||||
PKG_MIRROR_HASH:=0bff49dfab9c3a287a83802d631b2151ebecdc52da1f2407f763c75e64548cac
|
||||
PKG_SOURCE_DATE:=2020-06-05
|
||||
PKG_SOURCE_VERSION:=64aa087c5ead11960425125c955dcfe98233202e
|
||||
PKG_MIRROR_HASH:=3532897af3cd3b327c825708d1c4db750c171647ddeaf21fb003f575f6b1ec82
|
||||
|
||||
PKG_MAINTAINER:=ElonH <elonhhuang@gmail.com>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2017 Chris Blake <chrisrblake93@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=leds-apu2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Chris Blake <chrisrblake93@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/leds-apu2
|
||||
SUBMENU:=LED modules
|
||||
TITLE:= PC Engines APU2/APU3 LED support
|
||||
DEPENDS:= @GPIO_SUPPORT @TARGET_x86
|
||||
FILES:=$(PKG_BUILD_DIR)/leds-apu2.ko
|
||||
AUTOLOAD:=$(call AutoLoad,41,leds-apu2,1)
|
||||
KCONFIG:=
|
||||
endef
|
||||
|
||||
define KernelPackage/leds-apu2/description
|
||||
Driver for the PC Engines APU2/APU3 LEDs & Reset Button.
|
||||
endef
|
||||
|
||||
EXTRA_KCONFIG:= \
|
||||
CONFIG_LEDS_APU2=m
|
||||
|
||||
EXTRA_CFLAGS:= \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(MAKE_OPTS) \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,leds-apu2))
|
||||
@ -1,8 +0,0 @@
|
||||
config LEDS_APU2
|
||||
tristate "PC Engines APU2/APU3 LED support"
|
||||
depends on LEDS_CLASS
|
||||
depends on LEDS_GPIO
|
||||
depends on GPIOLIB
|
||||
help
|
||||
Say yes here to enable support for the CPU GPIO pins on the PC Engines
|
||||
APU2/APU3 board, which enables the front LEDs and Reset Button.
|
||||
@ -1 +0,0 @@
|
||||
obj-${CONFIG_LEDS_APU2} += leds-apu2.o
|
||||
@ -1,363 +0,0 @@
|
||||
/*
|
||||
* APU2 LED/GPIO Driver
|
||||
* Copyright (c) 2016 Christian Lamparter <chunkeey (at) googlemail.com>
|
||||
*
|
||||
* Based on gpio-apu2.c - AMD FCH GPIO support for PC-Engines APU-2 board
|
||||
*
|
||||
* Copyright (c) 2015 Carsten Spiess <fli4l at carsten-spiess.de>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include <linux/leds.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
|
||||
#define DEVNAME "leds-apu2"
|
||||
|
||||
#define FCH_ACPI_MMIO_BASE 0xFED80000
|
||||
#define FCH_GPIO_BASE (FCH_ACPI_MMIO_BASE + 0x1500)
|
||||
#define FCH_GPIO_SIZE 0x300
|
||||
|
||||
#define APU_NUM_GPIO 4
|
||||
|
||||
#define GPIO_BIT_DIR 23
|
||||
#define GPIO_BIT_WRITE 22
|
||||
#define GPIO_BIT_READ 16
|
||||
|
||||
/* internal variables */
|
||||
static struct pci_dev *gpio_apu2_pci;
|
||||
static DEFINE_SPINLOCK (gpio_lock);
|
||||
|
||||
/* the watchdog platform device */
|
||||
static struct platform_device *gpio_apu2_platform_device;
|
||||
static struct platform_device *leddev;
|
||||
static struct platform_device *keydev;
|
||||
|
||||
static const struct pci_device_id gpio_apu2_pci_tbl[] ={
|
||||
{PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, PCI_ANY_ID, PCI_ANY_ID},
|
||||
{ 0, } /* End of list */
|
||||
};
|
||||
MODULE_DEVICE_TABLE (pci, gpio_apu2_pci_tbl);
|
||||
|
||||
/* EGPIO89=GPIO32, AGPIO68=GPIO57, AGPIO69=GPIO58, AGPIO70=GPIO59 */
|
||||
static u8 gpio_offset[APU_NUM_GPIO] = {89, 68, 69, 70};
|
||||
|
||||
static void __iomem *gpio_addr[APU_NUM_GPIO] = {NULL, NULL, NULL, NULL};
|
||||
|
||||
static int gpio_apu2_get_dir (struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
val = ~ioread32 (gpio_addr[offset]);
|
||||
|
||||
return (val >> GPIO_BIT_DIR) & 1;
|
||||
}
|
||||
|
||||
static int gpio_apu2_dir_in (struct gpio_chip *gc, unsigned offset)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
spin_lock_bh (&gpio_lock);
|
||||
|
||||
val = ioread32 (gpio_addr[offset]);
|
||||
val &= ~BIT(GPIO_BIT_DIR);
|
||||
iowrite32 (val, gpio_addr[offset]);
|
||||
|
||||
spin_unlock_bh (&gpio_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gpio_apu2_dir_out (struct gpio_chip *chip, unsigned offset,
|
||||
int value)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
spin_lock_bh (&gpio_lock);
|
||||
|
||||
val = ioread32 (gpio_addr[offset]);
|
||||
val |= BIT(GPIO_BIT_DIR);
|
||||
iowrite32 (val, gpio_addr[offset]);
|
||||
|
||||
spin_unlock_bh (&gpio_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gpio_apu2_get_data (struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
val = ioread32 (gpio_addr[offset]);
|
||||
|
||||
return (val >> GPIO_BIT_READ) & 1;
|
||||
}
|
||||
|
||||
static void gpio_apu2_set_data (struct gpio_chip *chip, unsigned offset, int value)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
spin_lock_bh (&gpio_lock);
|
||||
|
||||
val = ioread32 (gpio_addr[offset]);
|
||||
|
||||
if (value)
|
||||
val |= BIT(GPIO_BIT_WRITE);
|
||||
else
|
||||
val &= ~BIT(GPIO_BIT_WRITE);
|
||||
|
||||
iowrite32 (val, gpio_addr[offset]);
|
||||
|
||||
spin_unlock_bh (&gpio_lock);
|
||||
}
|
||||
|
||||
static struct gpio_chip gpio_apu2_chip = {
|
||||
.label = DEVNAME,
|
||||
.owner = THIS_MODULE,
|
||||
.base = -1,
|
||||
.ngpio = APU_NUM_GPIO,
|
||||
.get_direction = gpio_apu2_get_dir,
|
||||
.direction_input = gpio_apu2_dir_in,
|
||||
.direction_output = gpio_apu2_dir_out,
|
||||
.get = gpio_apu2_get_data,
|
||||
.set = gpio_apu2_set_data,
|
||||
};
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
static int gpio_apu2_probe (struct platform_device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
int i;
|
||||
struct pci_dev *pci_dev = NULL;
|
||||
|
||||
/* Match the PCI device */
|
||||
for_each_pci_dev (pci_dev) {
|
||||
if (pci_match_id (gpio_apu2_pci_tbl, pci_dev) != NULL) {
|
||||
gpio_apu2_pci = pci_dev;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!gpio_apu2_pci)
|
||||
return -ENODEV;
|
||||
|
||||
pr_info ("%s: PCI Revision ID: 0x%x\n", DEVNAME, gpio_apu2_pci->revision);
|
||||
|
||||
/* Determine type of southbridge chipset */
|
||||
if (gpio_apu2_pci->revision < 0x40) {
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
/* Request memory region for GPIO's */
|
||||
if (!devm_request_mem_region (&dev->dev, FCH_GPIO_BASE,
|
||||
FCH_GPIO_SIZE, DEVNAME)){
|
||||
pr_err ("%s: request GPIO mem region failed\n", DEVNAME);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
/* Map IO's for GPIO's */
|
||||
for (i = 0; i < APU_NUM_GPIO; i++) {
|
||||
gpio_addr[i] = devm_ioremap (&dev->dev,
|
||||
FCH_GPIO_BASE + (gpio_offset[i] * sizeof (u32)), sizeof (u32));
|
||||
if (!gpio_addr[i]) {
|
||||
pr_err ("%s: map GPIO%d address failed\n", DEVNAME, gpio_offset[i]);
|
||||
return -ENXIO;
|
||||
}
|
||||
}
|
||||
|
||||
gpio_apu2_chip.parent = &dev->dev;
|
||||
ret = gpiochip_add (&gpio_apu2_chip);
|
||||
if (ret) {
|
||||
pr_err ("%s: adding gpiochip failed\n", DEVNAME);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int gpio_apu2_remove (struct platform_device *dev)
|
||||
{
|
||||
gpiochip_remove (&gpio_apu2_chip);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver gpio_apu2_driver = {
|
||||
.probe = gpio_apu2_probe,
|
||||
.remove = gpio_apu2_remove,
|
||||
.driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = DEVNAME
|
||||
}
|
||||
};
|
||||
|
||||
static struct gpio_led apu2_leds_gpio[] = {
|
||||
{
|
||||
.name = "apu2:green:power",
|
||||
.gpio = 509,
|
||||
.active_low = 1,
|
||||
},
|
||||
{
|
||||
.name = "apu2:green:led2",
|
||||
.gpio = 510,
|
||||
.active_low = 1,
|
||||
},
|
||||
{
|
||||
.name = "apu2:green:led3",
|
||||
.gpio = 511,
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_keys_button apu2_gpio_keys[] = {
|
||||
{
|
||||
.desc = "Reset button",
|
||||
.type = EV_KEY,
|
||||
.code = KEY_RESTART,
|
||||
.debounce_interval = 60,
|
||||
.gpio = 508,
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static void register_gpio_keys_polled(int id, unsigned poll_interval,
|
||||
unsigned nbuttons,
|
||||
struct gpio_keys_button *buttons)
|
||||
{
|
||||
struct gpio_keys_platform_data pdata = { };
|
||||
int err;
|
||||
|
||||
keydev = platform_device_alloc("gpio-keys-polled", id);
|
||||
if (!keydev) {
|
||||
printk(KERN_ERR "Failed to allocate gpio-keys platform device\n");
|
||||
return;
|
||||
}
|
||||
|
||||
pdata.poll_interval = poll_interval;
|
||||
pdata.nbuttons = nbuttons;
|
||||
pdata.buttons = buttons;
|
||||
|
||||
err = platform_device_add_data(keydev, &pdata, sizeof(pdata));
|
||||
if (err) {
|
||||
dev_err(&keydev->dev, "failed to add platform data to key driver (%d)", err);
|
||||
goto err_put_pdev;
|
||||
}
|
||||
|
||||
err = platform_device_add(keydev);
|
||||
if (err) {
|
||||
dev_err(&keydev->dev, "failed to register key platform device (%d)", err);
|
||||
goto err_put_pdev;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
err_put_pdev:
|
||||
platform_device_put(keydev);
|
||||
keydev = NULL;
|
||||
}
|
||||
|
||||
static void register_leds_gpio(int id, unsigned num_leds, struct gpio_led *leds)
|
||||
{
|
||||
struct gpio_led_platform_data pdata = { };
|
||||
int err;
|
||||
|
||||
leddev = platform_device_alloc("leds-gpio", id);
|
||||
if (!leddev) {
|
||||
printk(KERN_ERR "Failed to allocate leds-gpio platform device\n");
|
||||
return;
|
||||
}
|
||||
|
||||
pdata.num_leds = num_leds;
|
||||
pdata.leds = leds;
|
||||
|
||||
err = platform_device_add_data(leddev, &pdata, sizeof(pdata));
|
||||
if (err) {
|
||||
dev_err(&leddev->dev, "failed to add platform data to key driver (%d)", err);
|
||||
goto err_put_pdev;
|
||||
}
|
||||
|
||||
err = platform_device_add(leddev);
|
||||
if (err) {
|
||||
dev_err(&leddev->dev, "failed to register key platform device (%d)", err);
|
||||
goto err_put_pdev;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
err_put_pdev:
|
||||
platform_device_put(leddev);
|
||||
leddev = NULL;
|
||||
}
|
||||
|
||||
static int __init gpio_apu2_init (void)
|
||||
{
|
||||
int err;
|
||||
const char *board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
|
||||
const char *board_name = dmi_get_system_info(DMI_BOARD_NAME);
|
||||
|
||||
pr_info ("%s: load APU2/LED GPIO driver module\n", DEVNAME);
|
||||
|
||||
err = platform_driver_register (&gpio_apu2_driver);
|
||||
if (err)
|
||||
goto exit;
|
||||
|
||||
gpio_apu2_platform_device = platform_device_register_simple (DEVNAME, -1, NULL, 0);
|
||||
if (IS_ERR(gpio_apu2_platform_device)) {
|
||||
err = PTR_ERR(gpio_apu2_platform_device);
|
||||
goto exit_driver;
|
||||
}
|
||||
|
||||
pr_info ("%s: APU2 GPIO/LED driver module loaded\n", DEVNAME);
|
||||
|
||||
register_leds_gpio(-1, ARRAY_SIZE(apu2_leds_gpio), apu2_leds_gpio);
|
||||
register_gpio_keys_polled(-1, 20, ARRAY_SIZE(apu2_gpio_keys), apu2_gpio_keys);
|
||||
return 0;
|
||||
|
||||
exit_driver:
|
||||
platform_driver_unregister (&gpio_apu2_driver);
|
||||
exit:
|
||||
return err;
|
||||
}
|
||||
|
||||
static void __exit gpio_apu2_exit (void)
|
||||
{
|
||||
platform_device_unregister (gpio_apu2_platform_device);
|
||||
platform_device_unregister (leddev);
|
||||
platform_device_unregister (keydev);
|
||||
platform_driver_unregister (&gpio_apu2_driver);
|
||||
pr_info ("%s: APU2 GPIO/LED driver module unloaded\n", DEVNAME);
|
||||
}
|
||||
|
||||
MODULE_AUTHOR ("Carsten Spiess <fli4l at carsten-spiess.de>");
|
||||
MODULE_DESCRIPTION("GPIO driver for AMD FCH on PC-Engines APU-2");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
module_init (gpio_apu2_init);
|
||||
module_exit (gpio_apu2_exit);
|
||||
@ -317,6 +317,23 @@ endef
|
||||
$(eval $(call KernelPackage,gpio-it87))
|
||||
|
||||
|
||||
define KernelPackage/gpio-amd-fch
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
|
||||
TITLE:=GPIO support for AMD Fusion Controller Hub (G-series SOCs)
|
||||
KCONFIG:=CONFIG_GPIO_AMD_FCH
|
||||
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-amd-fch.ko
|
||||
AUTOLOAD:=$(call AutoLoad,25,gpio-amd-fch,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/gpio-amd-fch/description
|
||||
This option enables driver for GPIO on AMDs Fusion Controller Hub,
|
||||
as found on G-series SOCs (eg. GX-412TC)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,gpio-amd-fch))
|
||||
|
||||
|
||||
define KernelPackage/ppdev
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Parallel port support
|
||||
|
||||
@ -1,7 +1,15 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "%d hour"
|
||||
msgstr "%d 小时"
|
||||
@ -318,7 +326,7 @@ msgid "Policy assigned"
|
||||
msgstr "分配的策略"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "通信协议"
|
||||
msgstr "协议"
|
||||
|
||||
msgid "Recovery interval"
|
||||
msgstr "故障恢复间隔"
|
||||
@ -551,13 +559,13 @@ msgid "never"
|
||||
msgstr "从不"
|
||||
|
||||
msgid "restart"
|
||||
msgstr ""
|
||||
msgstr "重启"
|
||||
|
||||
msgid "start"
|
||||
msgstr ""
|
||||
msgstr "启动"
|
||||
|
||||
msgid "stop"
|
||||
msgstr ""
|
||||
msgstr "关闭"
|
||||
|
||||
msgid "unreachable (reject)"
|
||||
msgstr "不可达(拒绝)"
|
||||
@ -679,8 +687,8 @@ msgid ""
|
||||
"specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
|
||||
"accounting period exactly every N days, beginning at a given date."
|
||||
msgstr ""
|
||||
"选择“每月的某一天”来设置统计周期的重启时间,例如:每个月的第 3 天。选择“固定周"
|
||||
"期”来设置从给定日期开始每 N 天重启统计周期。"
|
||||
"选择“每月的某一天”来设置统计周期的重启时间,例如:每个月的第 3 天。选择“固定"
|
||||
"周期”来设置从给定日期开始每 N 天重启统计周期。"
|
||||
|
||||
msgid "Commit interval"
|
||||
msgstr "提交间隔"
|
||||
@ -688,11 +696,8 @@ msgstr "提交间隔"
|
||||
msgid "Compress database"
|
||||
msgstr "压缩数据库"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "配置"
|
||||
|
||||
msgid "Conn."
|
||||
msgstr "连接"
|
||||
msgstr "连接。"
|
||||
|
||||
msgid "Connections"
|
||||
msgstr "连接"
|
||||
@ -716,8 +721,8 @@ msgid ""
|
||||
"towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
|
||||
"24th of Februrary."
|
||||
msgstr ""
|
||||
"每个月重启统计周期的日期。使用负数表示从月底开始计算,例如:\"-5\" 可以表"
|
||||
"示 7 月份的 27 号或者 2 月份的 24 号。"
|
||||
"每个月重启统计周期的日期。使用负数表示从月底开始计算,例如:\"-5\" 可以表示 "
|
||||
"7 月份的 27 号或者 2 月份的 24 号。"
|
||||
|
||||
msgid "Display"
|
||||
msgstr "显示"
|
||||
@ -750,7 +755,7 @@ msgid "Fixed interval"
|
||||
msgstr "固定周期"
|
||||
|
||||
msgid "Force reload…"
|
||||
msgstr "强制重新加载..."
|
||||
msgstr "强制重新加载..…"
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr "基本设置"
|
||||
@ -767,9 +772,6 @@ msgstr "主机名:<big id=\"bubble-hostname\">example.org</big>"
|
||||
msgid "IPv4 vs. IPv6"
|
||||
msgstr "IPv4 与 IPv6"
|
||||
|
||||
msgid "IPv6"
|
||||
msgstr "IPv6"
|
||||
|
||||
msgid "Interval"
|
||||
msgstr "周期"
|
||||
|
||||
@ -830,9 +832,6 @@ msgstr "仅统计来自或目标为这些子网的连接流量。"
|
||||
msgid "Preallocate database"
|
||||
msgstr "预分配数据库"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "协议"
|
||||
|
||||
msgid "Protocol Mapping"
|
||||
msgstr "协议映射"
|
||||
|
||||
@ -841,8 +840,8 @@ msgid ""
|
||||
"line. The first value specifies the IP protocol, the second value the port "
|
||||
"number and the third column is the name of the mapped protocol."
|
||||
msgstr ""
|
||||
"协议映射用于区分流量类型,每行一条。第一个值指定 IP 协议类型,第二个值是"
|
||||
"端口号,第三个值是映射的协议名称。"
|
||||
"协议映射用于区分流量类型,每行一条。第一个值指定 IP 协议类型,第二个值是端口"
|
||||
"号,第三个值是映射的协议名称。"
|
||||
|
||||
msgid "Refresh interval"
|
||||
msgstr "刷新间隔"
|
||||
@ -872,8 +871,8 @@ msgid ""
|
||||
"The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
|
||||
"accounting program keeping track of bandwidth usage per host and protocol."
|
||||
msgstr ""
|
||||
"网络带宽监视器(nlbwmon)是一个轻量、高效的流量统计程序,可以统计每个主机和"
|
||||
"协议的带宽使用情况。"
|
||||
"网络带宽监视器(nlbwmon)是一个轻量、高效的流量统计程序,可以统计每个主机和协"
|
||||
"议的带宽使用情况。"
|
||||
|
||||
msgid "The following database files have been restored: %s"
|
||||
msgstr "以下数据库文件已恢复:%s"
|
||||
@ -926,15 +925,15 @@ msgstr "无流量数据"
|
||||
msgid "other"
|
||||
msgstr "其他"
|
||||
|
||||
msgid "Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> snooping"
|
||||
msgstr "开启 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> snooping"
|
||||
msgid ""
|
||||
"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
|
||||
"snooping"
|
||||
msgstr ""
|
||||
"开启 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> snooping"
|
||||
|
||||
msgid "Enables IGMP snooping on this bridge"
|
||||
msgstr "在此桥接上启用 IGMP snooping 组播(多播)"
|
||||
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "动作"
|
||||
|
||||
@ -975,7 +974,7 @@ msgid "Reboot Device to an Alternative Partition"
|
||||
msgstr "重启设备到备选分区"
|
||||
|
||||
msgid "Reboot to alternative partition..."
|
||||
msgstr "重启到备选分区"
|
||||
msgstr "重启到备选分区。"
|
||||
|
||||
msgid "Reboot to current partition"
|
||||
msgstr "重启到当前分区"
|
||||
@ -995,6 +994,8 @@ msgid ""
|
||||
"address of your computer to reach the device again, depending on your "
|
||||
"settings."
|
||||
msgstr ""
|
||||
"系统正在重启。<br /> 请勿关闭设备电源!<br /> 请等待几分钟,然后再尝试重新连"
|
||||
"接。根据您的设置,可能需要更新计算机的地址才能再次访问该设备。"
|
||||
|
||||
msgid ""
|
||||
"The system is rebooting to an alternative partition now.<br /> DO NOT POWER "
|
||||
@ -1002,12 +1003,16 @@ msgid ""
|
||||
"might be necessary to renew the address of your computer to reach the device "
|
||||
"again, depending on your settings."
|
||||
msgstr ""
|
||||
"系统正在重新引导到备用分区。<br /> 请勿关闭设备电源!<br /> 请等待几分钟,然"
|
||||
"后再尝试重新连接。根据您的设置,可能需要更新计算机的地址才能再次访问该设备。"
|
||||
|
||||
msgid ""
|
||||
"The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It "
|
||||
"might be necessary to renew the address of your computer to reach the device "
|
||||
"again, depending on your settings."
|
||||
msgstr ""
|
||||
"系统正在关闭。<br /> 请勿关闭设备电源!<br /> 根据您的设置,可能需要更新计算"
|
||||
"机的地址才能再次访问该设备。"
|
||||
|
||||
msgid ""
|
||||
"WARNING: An alternative partition might have its own settings and completely "
|
||||
@ -1019,12 +1024,19 @@ msgid ""
|
||||
"back to the currently active partition.<br /><br /> Click \"Proceed\" below "
|
||||
"to reboot device to an alternative partition."
|
||||
msgstr ""
|
||||
"警告:备用分区可能具有自己的设置和完全不同的固件。<br /><br /> 由于备用分区上"
|
||||
"的网络配置和WiFi SSID /密码可能有所不同,因此您可能必须调整计算机设置才能在设"
|
||||
"备重启后访问设备。<br /><br /> 另请注意,备用分区固件可能无法提供切换活动分区"
|
||||
"并引导回当前活动分区的简便方法。<br /><br /> 点击 \"继续\" 下面将设备重新引导"
|
||||
"到备用分区。"
|
||||
|
||||
msgid ""
|
||||
"WARNING: Power off might result in a reboot on a device which doesn't "
|
||||
"support power off.<br /><br /> Click \"Proceed\" below to power off your "
|
||||
"device."
|
||||
msgstr ""
|
||||
"警告: 关闭电源可能会导致不支持关闭电源的设备重新启动。<br /><br />单击下面的"
|
||||
"\"继续\"以关闭设备电源。"
|
||||
|
||||
msgid "Warning: There are unsaved changes that will get lost on reboot!"
|
||||
msgstr "警告:某些设置没有保存,重启将导致丢失这些配置!"
|
||||
|
||||
@ -2,14 +2,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-i18n-sqm\n"
|
||||
"POT-Creation-Date: 2017-03-28 04:14+0800\n"
|
||||
"PO-Revision-Date: 2017-03-28 04:15+0800\n"
|
||||
"Last-Translator: \n"
|
||||
"PO-Revision-Date: 2020-06-07 10:21+0800\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: player131 <player1311@gmail.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.10\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Poedit-KeywordsList: translate\n"
|
||||
@ -25,12 +25,9 @@ msgstr "智能队列管理"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:26
|
||||
msgid ""
|
||||
"With <abbr title=\"Smart Queue Management\">SQM</abbr> you can enable "
|
||||
"traffic shaping, better mixing (Fair Queueing), active queue length "
|
||||
"management (AQM) and prioritisation on one network interface."
|
||||
msgstr ""
|
||||
"使用 <abbr title=\"智能列队管理\">SQM</abbr> 你可以启用流量整形,更好的混合"
|
||||
"(公平列队)主动列队管理(AQM) 并设置网络接口优先级。"
|
||||
"With <abbr title=\"Smart Queue Management\">SQM</abbr> you can enable traffic shaping, better mixing (Fair Queueing), active queue length management "
|
||||
"(AQM) and prioritisation on one network interface."
|
||||
msgstr "使用 <abbr title=\"智能列队管理\">SQM</abbr> 你可以启用流量整形,更好的混合(公平列队)主动列队管理(AQM) 并设置网络接口优先级。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:32
|
||||
msgid "Queues"
|
||||
@ -50,57 +47,41 @@ msgstr "链路层适配"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:40
|
||||
msgid "Enable this SQM instance."
|
||||
msgstr "启用此SQM实例"
|
||||
msgstr "启用此SQM实例。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:54
|
||||
msgid ""
|
||||
"The SQM GUI has just enabled the sqm initscript on your behalf. Remember to "
|
||||
"disable the sqm initscript manually under System Startup menu in case this "
|
||||
"change was not wished for."
|
||||
msgstr ""
|
||||
"你刚刚开启了SQM随机启动功能,如果你不希望SQM随机启动,可以在系统启动菜单下手"
|
||||
"动禁用。"
|
||||
"The SQM GUI has just enabled the sqm initscript on your behalf. Remember to disable the sqm initscript manually under System Startup menu in case "
|
||||
"this change was not wished for."
|
||||
msgstr "你刚刚开启了SQM随机启动功能,如果你不希望SQM随机启动,可以在系统启动菜单下手动禁用。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:60
|
||||
msgid "Interface name"
|
||||
msgstr "接口名称"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:70
|
||||
msgid ""
|
||||
"Download speed (kbit/s) (ingress) set to 0 to selectively disable ingress "
|
||||
"shaping:"
|
||||
msgid "Download speed (kbit/s) (ingress) set to 0 to selectively disable ingress shaping:"
|
||||
msgstr "下载速度(kbit/s)(入口)<br />设置为0关闭入口控制:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:74
|
||||
msgid ""
|
||||
"Upload speed (kbit/s) (egress) set to 0 to selectively disable egress "
|
||||
"shaping:"
|
||||
msgid "Upload speed (kbit/s) (egress) set to 0 to selectively disable egress shaping:"
|
||||
msgstr "上传速度(kbit/s)(出口)<br />设置为0关闭出口控制:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:78
|
||||
msgid ""
|
||||
"Create log file for this SQM instance under /var/run/sqm/${Inerface_name}."
|
||||
"debug.log. Make sure to delete log files manually."
|
||||
msgstr ""
|
||||
"创建日志文件到/var/run/sqm/<br />${Inerface_name}.debug.log。<br />请务必手动"
|
||||
"删除日志文件。"
|
||||
msgid "Create log file for this SQM instance under /var/run/sqm/${Inerface_name}.debug.log. Make sure to delete log files manually."
|
||||
msgstr "创建日志文件到/var/run/sqm/<br />${Inerface_name}.debug.log。<br />请务必手动删除日志文件。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:82
|
||||
msgid "Verbosity of SQM's output into the system log."
|
||||
msgstr "SQM输出到系统日志的详细程度。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:86 usr/lib/lua/luci/model/cbi/sqm.lua:99
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:148
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:155
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:202
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:243
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:86 usr/lib/lua/luci/model/cbi/sqm.lua:99 usr/lib/lua/luci/model/cbi/sqm.lua:148
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:155 usr/lib/lua/luci/model/cbi/sqm.lua:202 usr/lib/lua/luci/model/cbi/sqm.lua:243
|
||||
msgid "default"
|
||||
msgstr "默认"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:98
|
||||
msgid ""
|
||||
"Queuing disciplines useable on this system. After installing a new qdisc, "
|
||||
"you need to restart the router to see updates!"
|
||||
msgid "Queuing disciplines useable on this system. After installing a new qdisc, you need to restart the router to see updates!"
|
||||
msgstr "系统上可用的列队规则。安装新的队列规则后,重新启动路由器才会看到更新!"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:112
|
||||
@ -108,9 +89,7 @@ msgid "Queue setup script"
|
||||
msgstr "队列脚本设置"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:129
|
||||
msgid ""
|
||||
"Show and Use Advanced Configuration. Advanced options will only be used as "
|
||||
"long as this box is checked."
|
||||
msgid "Show and Use Advanced Configuration. Advanced options will only be used as long as this box is checked."
|
||||
msgstr "选中该复选框显示高级配置。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:133
|
||||
@ -119,22 +98,18 @@ msgstr "入站数据包压缩DSCP:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:140
|
||||
msgid "Ignore DSCP on ingress:"
|
||||
msgstr "忽略入站DSCP"
|
||||
msgstr "忽略入站DSCP:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:147
|
||||
msgid ""
|
||||
"Explicit congestion notification (ECN) status on inbound packets (ingress):"
|
||||
msgstr "入站数据包的显式拥塞通知(ECN)状态"
|
||||
msgid "Explicit congestion notification (ECN) status on inbound packets (ingress):"
|
||||
msgstr "入站数据包的显式拥塞通知(ECN)状态:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:154
|
||||
msgid ""
|
||||
"Explicit congestion notification (ECN) status on outbound packets (egress)."
|
||||
msgstr "出站数据包的显式拥塞通知(ECN)状态"
|
||||
msgid "Explicit congestion notification (ECN) status on outbound packets (egress)."
|
||||
msgstr "出站数据包的显式拥塞通知(ECN)状态。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:161
|
||||
msgid ""
|
||||
"Show and Use Dangerous Configuration. Dangerous options will only be used as "
|
||||
"long as this box is checked."
|
||||
msgid "Show and Use Dangerous Configuration. Dangerous options will only be used as long as this box is checked."
|
||||
msgstr "选中该复选框显示危险配置。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:166
|
||||
@ -154,16 +129,12 @@ msgid "Latency target for egress, e.g. 5ms [units: s, ms, or us]; leave empty fo
|
||||
msgstr "出站延迟目标,例如 5ms [单位: s, ms, 或 us];留空为自动选择,default为列队规则默认值。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:192
|
||||
msgid ""
|
||||
"Advanced option string to pass to the ingress queueing disciplines; no error "
|
||||
"checking, use very carefully."
|
||||
msgstr "传递到入站队列规则的高级选项字符串;没有错误检查。请谨慎使用!"
|
||||
msgid "Advanced option string to pass to the ingress queueing disciplines; no error checking, use very carefully."
|
||||
msgstr "传递到入站队列规则的高级选项字符串;没有错误检查。请谨慎使用。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:196
|
||||
msgid ""
|
||||
"Advanced option string to pass to the egress queueing disciplines; no error "
|
||||
"checking, use very carefully."
|
||||
msgstr "传递到出站队列规则的高级选项字符串;没有错误检查。请谨慎使用!"
|
||||
msgid "Advanced option string to pass to the egress queueing disciplines; no error checking, use very carefully."
|
||||
msgstr "传递到出站队列规则的高级选项字符串;没有错误检查。请谨慎使用。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:201
|
||||
msgid "Which link layer to account for:"
|
||||
@ -171,31 +142,22 @@ msgstr "对哪个链路层生效:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:207
|
||||
msgid "Per Packet Overhead (byte):"
|
||||
msgstr "每个数据包开销"
|
||||
msgstr "每个数据包的开销 (byte):"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:216
|
||||
msgid ""
|
||||
"Show Advanced Linklayer Options, (only needed if MTU > 1500). Advanced "
|
||||
"options will only be used as long as this box is checked."
|
||||
msgstr ""
|
||||
"显示高级链路选项,(仅在MTU> 1500时才需要)。 只有选中此框时,才会使用高级选"
|
||||
"项。"
|
||||
msgid "Show Advanced Linklayer Options, (only needed if MTU > 1500). Advanced options will only be used as long as this box is checked."
|
||||
msgstr "显示高级链路选项,(仅在MTU> 1500时才需要)。 只有选中此框时,才会使用高级选项。"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:221
|
||||
msgid ""
|
||||
"Maximal Size for size and rate calculations, tcMTU (byte); needs to be >= "
|
||||
"interface MTU + overhead:"
|
||||
msgid "Maximal Size for size and rate calculations, tcMTU (byte); needs to be >= interface MTU + overhead:"
|
||||
msgstr "大小和速率计算的最大尺寸,tcMTU(byte); 需要> =接口MTU +开销:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:228
|
||||
msgid ""
|
||||
"Number of entries in size/rate tables, TSIZE; for ATM choose TSIZE = (tcMTU "
|
||||
"+ 1) / 16:"
|
||||
msgid "Number of entries in size/rate tables, TSIZE; for ATM choose TSIZE = (tcMTU + 1) / 16:"
|
||||
msgstr "大小/速率表中的条目数,TSIZE; 对于ATM选择TSIZE =(tcMTU + 1)/ 16:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:235
|
||||
msgid ""
|
||||
"Minimal packet size, MPU (byte); needs to be > 0 for ethernet size tables:"
|
||||
msgid "Minimal packet size, MPU (byte); needs to be > 0 for ethernet size tables:"
|
||||
msgstr "最小数据包大小,MPU(byte); 在以太网中需要>0:"
|
||||
|
||||
#: usr/lib/lua/luci/model/cbi/sqm.lua:242
|
||||
|
||||
@ -1,3 +1,16 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "ADBYBY Plus +"
|
||||
msgstr "广告屏蔽大师 Plus+"
|
||||
|
||||
@ -121,7 +134,6 @@ msgstr "内存运行模式"
|
||||
msgid "Running Adbyby in RAM.More speed,less disk consumption"
|
||||
msgstr "在内存中运行Adbyby。更快的速度,更少的存储空间损耗"
|
||||
|
||||
|
||||
msgid "User-defined Rule"
|
||||
msgstr "用户自定义规则"
|
||||
|
||||
@ -129,7 +141,7 @@ msgid "<strong>Client Filter Mode Settings</strong>"
|
||||
msgstr "<strong>客户端过滤模式设置</strong>"
|
||||
|
||||
msgid "Filter mode settings can be set to specific LAN clients ( <font color=blue> No filter , Global filter </font> ) . Does not need to be set by default."
|
||||
msgstr "可以为局域网客户端分别设置不同的过滤模式 ( <font color=blue> 不过滤 , 全局过滤 </font> ) 。默认无需设置"
|
||||
msgstr "可以为局域网客户端分别设置不同的过滤模式 ( <font color=blue> 不过滤 , 全局过滤 </font> ) 。默认无需设置。"
|
||||
|
||||
msgid "IP Address"
|
||||
msgstr "IP地址"
|
||||
@ -150,7 +162,7 @@ msgid "(!)Will Always block these IP"
|
||||
msgstr "拦截黑名单内的IP地址(所有模式中生效)"
|
||||
|
||||
msgid "Each line of the beginning exclamation mark is considered an annotation."
|
||||
msgstr "每行一条规则,感叹号开头的被认为是注释"
|
||||
msgstr "每行一条规则,感叹号开头的被认为是注释。"
|
||||
|
||||
msgid "<strong><font color=blue>Adblock Plus Host List:</font></strong>"
|
||||
msgstr "<strong><font color=blue>Adblock Plus Host 列表:</font></strong>"
|
||||
@ -171,10 +183,10 @@ msgid "Last Update Checked"
|
||||
msgstr "上一次检查规则更新"
|
||||
|
||||
msgid "Lazy Rule"
|
||||
msgstr "普通规则版本"
|
||||
msgstr "正式版规则"
|
||||
|
||||
msgid "Video Rule"
|
||||
msgstr "视频规则版本"
|
||||
msgstr "测试版规则"
|
||||
|
||||
msgid "Adblock Plus Host List"
|
||||
msgstr "广告屏蔽大师 Plus 规则列表"
|
||||
@ -184,4 +196,3 @@ msgstr "域名黑名单"
|
||||
|
||||
msgid "Block IP List"
|
||||
msgstr "IP黑名单"
|
||||
|
||||
|
||||
@ -1,3 +1,16 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "CPU Freq"
|
||||
msgstr "CPU 性能优化调节"
|
||||
|
||||
@ -42,4 +55,3 @@ msgstr "CPU 切换周期"
|
||||
|
||||
msgid "The sampling rate determines how frequently the governor checks to tune the CPU (ms)"
|
||||
msgstr "CPU 检查切换的周期 (ms) 。注意:过于频繁的切换频率会引起网络延迟抖动"
|
||||
|
||||
|
||||
@ -1,5 +1,15 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "Choose local file:"
|
||||
msgstr "选择本地文件:"
|
||||
@ -35,10 +45,10 @@ msgid "Modify time"
|
||||
msgstr "修改时间"
|
||||
|
||||
msgid "No specify upload file."
|
||||
msgstr "未指定上传文件"
|
||||
msgstr "未指定上传文件。"
|
||||
|
||||
msgid "Path on Route:"
|
||||
msgstr "路由上目录"
|
||||
msgstr "路由上目录:"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
@ -1,3 +1,16 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "KodExplorer"
|
||||
msgstr "可道云"
|
||||
|
||||
@ -56,7 +69,7 @@ msgid "Click to update"
|
||||
msgstr "点击更新"
|
||||
|
||||
msgid "Updating..."
|
||||
msgstr "更新中"
|
||||
msgstr "更新中..."
|
||||
|
||||
msgid "Unexpected error"
|
||||
msgstr "意外错误"
|
||||
@ -65,13 +78,13 @@ msgid "Updating, are you sure to close?"
|
||||
msgstr "正在更新,你确认要关闭吗?"
|
||||
|
||||
msgid "Downloading..."
|
||||
msgstr "下载中"
|
||||
msgstr "下载中..."
|
||||
|
||||
msgid "Unpacking..."
|
||||
msgstr "解压中"
|
||||
msgstr "解压中..."
|
||||
|
||||
msgid "Moving..."
|
||||
msgstr "移动中"
|
||||
msgstr "移动中..."
|
||||
|
||||
msgid "The latest version:"
|
||||
msgstr "最新版本:"
|
||||
|
||||
@ -2,16 +2,17 @@ msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-06-23 20:16+0800\n"
|
||||
"PO-Revision-Date: 2015-06-23 20:17+0800\n"
|
||||
"Last-Translator: coolsnowwolf <coolsnowwolf@gmail.com>\n"
|
||||
"PO-Revision-Date: 2020-06-07 10:42+0800\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: PandoraBox Team\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 1.8.1\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
|
||||
msgid "Music Remote Center"
|
||||
msgstr "PCHiFi 数字转盘遥控"
|
||||
@ -20,7 +21,7 @@ msgid "Open Web Interface"
|
||||
msgstr "打开 Web 管理界面"
|
||||
|
||||
msgid "Music Remote Center is a DAAP (iTunes Remote), MPD (Music Player Daemon) and RSP (Roku) media server."
|
||||
msgstr "PCHiFi 数字转盘遥控是一个基于 DAAP (iTunes Remote), MPD (Music Player Daemon) 和 RSP (Roku) media server 的服务器端播放器<br />后端输出支持 路由器本机声卡输出 /Airplay/ Chromecast"
|
||||
msgstr "PCHiFi 数字转盘遥控是一个基于 DAAP (iTunes Remote), MPD (Music Player Daemon) 和 RSP (Roku) media server 的服务器端播放器<br />后端输出支持 路由器本机声卡输出 /Airplay/ Chromecast。"
|
||||
|
||||
msgid "Database File Path"
|
||||
msgstr "数据库文件路径"
|
||||
@ -33,4 +34,3 @@ msgstr "使用须知"
|
||||
|
||||
msgid "About iOS Remote Pairing: <br />1. Open the web interface <br /> 2. Start iPhone Remote APP, go to Settings, Add Library<br />3. Enter the pair code in the web interface"
|
||||
msgstr "关于 iOS 设备匹配: <br />1. 先打开 Web 管理界面,在 Setting 里面找到 Remotes & Outputs <br /> 2. 安装 iTunes 遥控器, 点击 手动连接,获取匹配码<br />3. 在 Remote Pairing 输入刚才获取的匹配码即可"
|
||||
|
||||
|
||||
@ -6,12 +6,12 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2019-01-03 22:28+0800\n"
|
||||
"PO-Revision-Date: 2020-06-07 10:45+0800\n"
|
||||
"Language-Team: <debian-l10n-chinese@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Gtranslator 3.30.1\n"
|
||||
"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"Language: zh_CN\n"
|
||||
|
||||
@ -23,7 +23,7 @@ msgstr "字节总数"
|
||||
#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:141
|
||||
#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:160
|
||||
msgid "Collecting data..."
|
||||
msgstr "正在收集数据…"
|
||||
msgstr "正在收集数据..."
|
||||
|
||||
#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:224
|
||||
msgid "Comment"
|
||||
|
||||
@ -1,8 +1,21 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "PPPoE Relay"
|
||||
msgstr "PPPoE 穿透"
|
||||
|
||||
msgid "Opening the PPPoE relay allows devices in the Intranet to create a separate PPPoE connection that can cross NAT."
|
||||
msgstr "开启 PPPoE 中继允许内网中的设备创建一个可穿过 NAT 的独立 PPPoE 连接"
|
||||
msgstr "开启 PPPoE 中继允许内网中的设备创建一个可穿过 NAT 的独立 PPPoE 连接。"
|
||||
|
||||
msgid "Enable or disable the PPPoE Relay"
|
||||
msgstr "启用或禁用PPPoE穿透"
|
||||
@ -20,4 +33,4 @@ msgid "Specify the PPPoE client interface"
|
||||
msgstr "指定PPPoE客户端接口"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
msgstr "启用"
|
||||
|
||||
@ -3,18 +3,18 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
|
||||
"PO-Revision-Date: 2018-10-01 11:12+0800\n"
|
||||
"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
|
||||
"Language-Team: <debian-l10n-chinese@lists.debian.org>\n"
|
||||
"PO-Revision-Date: 2020-06-07 11:21+0800\n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: <debian-l10n-chinese@lists.debian.org>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Gtranslator 2.91.7\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
#: applications/luci-app-samba4/luasrc/model/cbi/samba4.lua:78
|
||||
msgid "Allow guests"
|
||||
@ -66,7 +66,7 @@ msgstr "编辑模板"
|
||||
|
||||
#: applications/luci-app-samba4/luasrc/model/cbi/samba4.lua:34
|
||||
msgid "Edit the template that is used for generating the samba configuration."
|
||||
msgstr "编辑用来生成 samba 设置的模板"
|
||||
msgstr "编辑用来生成 samba 设置的模板。"
|
||||
|
||||
#: applications/luci-app-samba4/luasrc/model/cbi/samba4.lua:19
|
||||
msgid "Enable macOS compatible shares"
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-02-17 18:00+0800\n"\
|
||||
"Last-Translator: Weijie Gao <hackpascal@gmail.com>\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Pootle 2.0.6\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "NAS"
|
||||
msgstr "网络存储"
|
||||
@ -22,7 +22,7 @@ msgid "0 means no limitation"
|
||||
msgstr "0 表明不限制"
|
||||
|
||||
msgid "A message will be displayed when entering a directory."
|
||||
msgstr "在进入一个新目录时将显示的消息"
|
||||
msgstr "在进入一个新目录时将显示的消息。"
|
||||
|
||||
msgid "ASCII mode"
|
||||
msgstr "ASCII 模式"
|
||||
@ -233,4 +233,3 @@ msgstr "Pasv 模式最小端口"
|
||||
|
||||
msgid "Pasv Max Port"
|
||||
msgstr "Pasv 模式最大端口"
|
||||
|
||||
|
||||
@ -5,6 +5,12 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <dingpengyu06@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "Web Admin"
|
||||
msgstr "Web 管理"
|
||||
@ -15,8 +21,8 @@ msgstr "Web 管理页面设置"
|
||||
msgid "Web Admin Settings Page"
|
||||
msgstr "设置更改Web管理页面端口,绑定地址,是否允许从互联网访问等"
|
||||
|
||||
msgid "HTTP listeners (address:port)""
|
||||
msgstr "HTTP 监听 (IP地址:端口)""
|
||||
msgid "HTTP listeners (address:port)\""
|
||||
msgstr "HTTP 监听 (IP地址:端口)\""
|
||||
|
||||
msgid "Bind to specific interface:port (by specifying interface address"
|
||||
msgstr "绑定到指定的IP地址:端口"
|
||||
@ -38,4 +44,3 @@ msgstr "只允许内网访问"
|
||||
|
||||
msgid "Prevent access from private (RFC1918) IPs on an interface if it has an public IP address"
|
||||
msgstr "拒绝从互联网访问Web管理页面"
|
||||
|
||||
|
||||
@ -65,7 +65,7 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=r8125
|
||||
PKG_VERSION:=9.002.02
|
||||
PKG_VERSION:=9.003.05
|
||||
PKG_RELEASE:=1
|
||||
|
||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
|
||||
@ -37,8 +37,9 @@ CONFIG_DOWN_SPEED_100 = n
|
||||
CONFIG_ASPM = y
|
||||
ENABLE_S5WOL = y
|
||||
ENABLE_S5_KEEP_CURR_MAC = n
|
||||
ENABLE_EEE = n
|
||||
ENABLE_EEE = y
|
||||
ENABLE_S0_MAGIC_PACKET = n
|
||||
ENABLE_TX_NO_CLOSE = y
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
obj-m := r8125.o
|
||||
@ -78,6 +79,9 @@ ifneq ($(KERNELRELEASE),)
|
||||
ifeq ($(ENABLE_S0_MAGIC_PACKET), y)
|
||||
EXTRA_CFLAGS += -DENABLE_S0_MAGIC_PACKET
|
||||
endif
|
||||
ifeq ($(ENABLE_TX_NO_CLOSE), y)
|
||||
EXTRA_CFLAGS += -DENABLE_TX_NO_CLOSE
|
||||
endif
|
||||
else
|
||||
BASEDIR := /lib/modules/$(shell uname -r)
|
||||
KERNELDIR ?= $(BASEDIR)/build
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -249,6 +249,14 @@ do { \
|
||||
#define SUPPORTED_Asym_Pause (1 << 14)
|
||||
#endif
|
||||
|
||||
#ifndef MDIO_EEE_100TX
|
||||
#define MDIO_EEE_100TX 0x0002
|
||||
#endif
|
||||
|
||||
#ifndef MDIO_EEE_1000T
|
||||
#define MDIO_EEE_1000T 0x0004
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
#define RTL_NET_POLL_CONTROLLER dev->poll_controller=rtl8125_netpoll
|
||||
@ -315,12 +323,12 @@ do { \
|
||||
#define DASH_SUFFIX ""
|
||||
#endif
|
||||
|
||||
#define RTL8125_VERSION "9.002.02" NAPI_SUFFIX DASH_SUFFIX
|
||||
#define RTL8125_VERSION "9.003.05" NAPI_SUFFIX DASH_SUFFIX
|
||||
#define MODULENAME "r8125"
|
||||
#define PFX MODULENAME ": "
|
||||
|
||||
#define GPL_CLAIM "\
|
||||
r8125 Copyright (C) 2019 Realtek NIC software team <nicfae@realtek.com> \n \
|
||||
r8125 Copyright (C) 2020 Realtek NIC software team <nicfae@realtek.com> \n \
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>. \n \
|
||||
This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>. \n"
|
||||
|
||||
@ -339,9 +347,6 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
#define R8125_MSG_DEFAULT \
|
||||
(NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | NETIF_MSG_IFDOWN)
|
||||
|
||||
#define TX_BUFFS_AVAIL(tp) \
|
||||
(tp->dirty_tx + NUM_TX_DESC - tp->cur_tx - 1)
|
||||
|
||||
#ifdef CONFIG_R8125_NAPI
|
||||
#define rtl8125_rx_hwaccel_skb vlan_hwaccel_receive_skb
|
||||
#define rtl8125_rx_quota(count, quota) min(count, quota)
|
||||
@ -417,13 +422,15 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
|
||||
#define SHORT_PACKET_PADDING_BUF_SIZE 256
|
||||
|
||||
#define RTK_MAGIC_DEBUG_VALUE 0x0badbeef
|
||||
|
||||
/* write/read MMIO register */
|
||||
#define RTL_W8(reg, val8) writeb ((val8), ioaddr + (reg))
|
||||
#define RTL_W16(reg, val16) writew ((val16), ioaddr + (reg))
|
||||
#define RTL_W32(reg, val32) writel ((val32), ioaddr + (reg))
|
||||
#define RTL_R8(reg) readb (ioaddr + (reg))
|
||||
#define RTL_R16(reg) readw (ioaddr + (reg))
|
||||
#define RTL_R32(reg) ((unsigned long) readl (ioaddr + (reg)))
|
||||
#define RTL_W8(tp, reg, val8) writeb((val8), tp->mmio_addr + (reg))
|
||||
#define RTL_W16(tp, reg, val16) writew((val16), tp->mmio_addr + (reg))
|
||||
#define RTL_W32(tp, reg, val32) writel((val32), tp->mmio_addr + (reg))
|
||||
#define RTL_R8(tp, reg) readb(tp->mmio_addr + (reg))
|
||||
#define RTL_R16(tp, reg) readw(tp->mmio_addr + (reg))
|
||||
#define RTL_R32(tp, reg) ((unsigned long) readl(tp->mmio_addr + (reg)))
|
||||
|
||||
#ifndef DMA_64BIT_MASK
|
||||
#define DMA_64BIT_MASK 0xffffffffffffffffULL
|
||||
@ -479,6 +486,10 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
|
||||
#define RTK_ADVERTISE_2500FULL 0x80
|
||||
|
||||
/* Tx NO CLOSE */
|
||||
#define MAX_TX_NO_CLOSE_DESC_PTR_V2 0x10000
|
||||
#define TX_NO_CLOSE_SW_PTR_MASK_V2 0x1FFFF
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3)
|
||||
@ -1099,6 +1110,9 @@ enum RTL8125_registers {
|
||||
TIMER_INT1_8125 = 0x005C,
|
||||
TIMER_INT2_8125 = 0x008C,
|
||||
TIMER_INT3_8125 = 0x00F4,
|
||||
EEE_TXIDLE_TIMER_8125 = 0x6048,
|
||||
SW_TAIL_PTR0_8125 = 0x2800,
|
||||
HW_CLO_PTR0_8125 = 0x2802,
|
||||
};
|
||||
|
||||
enum RTL8125_register_content {
|
||||
@ -1562,6 +1576,7 @@ struct rtl8125_private {
|
||||
u8 ShortPacketSwChecksum;
|
||||
|
||||
u8 UseSwPaddingShortPkt;
|
||||
u16 SwPaddingShortPktLen;
|
||||
|
||||
void *ShortPacketEmptyBuffer;
|
||||
dma_addr_t ShortPacketEmptyBufferPhy;
|
||||
@ -1576,6 +1591,10 @@ struct rtl8125_private {
|
||||
|
||||
u8 RequiredSecLanDonglePatch;
|
||||
|
||||
u8 RequirePhyMdiSwapPatch;
|
||||
|
||||
u8 RequireLSOPatch;
|
||||
|
||||
u32 HwFiberModeVer;
|
||||
u32 HwFiberStat;
|
||||
u8 HwSwitchMdiToFiber;
|
||||
@ -1594,6 +1613,11 @@ struct rtl8125_private {
|
||||
|
||||
u32 HwPcieSNOffset;
|
||||
|
||||
u8 HwSuppTxNoCloseVer;
|
||||
u8 EnableTxNoClose;
|
||||
u32 NextHwDesCloPtr0;
|
||||
u32 BeginHwDesCloPtr0;
|
||||
|
||||
//Dash+++++++++++++++++
|
||||
u8 HwSuppDashVer;
|
||||
u8 DASH;
|
||||
@ -1683,6 +1707,9 @@ struct rtl8125_private {
|
||||
//Realwow--------------
|
||||
#endif //ENABLE_REALWOW_SUPPORT
|
||||
|
||||
u32 eee_adv_t;
|
||||
u8 eee_enabled;
|
||||
|
||||
#ifdef ENABLE_R8125_PROCFS
|
||||
//Procfs support
|
||||
struct proc_dir_entry *proc_dir;
|
||||
@ -1697,8 +1724,10 @@ enum eetype {
|
||||
};
|
||||
|
||||
enum mcfg {
|
||||
CFG_METHOD_2=0,
|
||||
CFG_METHOD_2=2,
|
||||
CFG_METHOD_3,
|
||||
CFG_METHOD_4,
|
||||
CFG_METHOD_5,
|
||||
CFG_METHOD_MAX,
|
||||
CFG_METHOD_DEFAULT = 0xFF
|
||||
};
|
||||
@ -1731,6 +1760,8 @@ enum mcfg {
|
||||
//Ram Code Version
|
||||
#define NIC_RAMCODE_VERSION_CFG_METHOD_2 (0x0b11)
|
||||
#define NIC_RAMCODE_VERSION_CFG_METHOD_3 (0x0b33)
|
||||
#define NIC_RAMCODE_VERSION_CFG_METHOD_4 (0x0b17)
|
||||
#define NIC_RAMCODE_VERSION_CFG_METHOD_5 (0x0b34)
|
||||
|
||||
//hwoptimize
|
||||
#define HW_PATCH_SOC_LAN (BIT_0)
|
||||
@ -1738,11 +1769,11 @@ enum mcfg {
|
||||
|
||||
void rtl8125_mdio_write(struct rtl8125_private *tp, u32 RegAddr, u32 value);
|
||||
void rtl8125_mdio_prot_write(struct rtl8125_private *tp, u32 RegAddr, u32 value);
|
||||
void rtl8125_mdio_prot_write_phy_ocp(struct rtl8125_private *tp, u32 RegAddr, u32 value);
|
||||
void rtl8125_mdio_prot_direct_write_phy_ocp(struct rtl8125_private *tp, u32 RegAddr, u32 value);
|
||||
u32 rtl8125_mdio_read(struct rtl8125_private *tp, u32 RegAddr);
|
||||
u32 rtl8125_mdio_prot_read(struct rtl8125_private *tp, u32 RegAddr);
|
||||
u32 rtl8125_mdio_prot_read_phy_ocp(struct rtl8125_private *tp, u32 RegAddr);
|
||||
void rtl8125_ephy_write(void __iomem *ioaddr, int RegAddr, int value);
|
||||
u32 rtl8125_mdio_prot_direct_read_phy_ocp(struct rtl8125_private *tp, u32 RegAddr);
|
||||
void rtl8125_ephy_write(struct rtl8125_private *tp, int RegAddr, int value);
|
||||
void rtl8125_mac_ocp_write(struct rtl8125_private *tp, u16 reg_addr, u16 value);
|
||||
u16 rtl8125_mac_ocp_read(struct rtl8125_private *tp, u16 reg_addr);
|
||||
void rtl8125_clear_eth_phy_bit(struct rtl8125_private *tp, u8 addr, u16 mask);
|
||||
@ -1750,16 +1781,16 @@ void rtl8125_set_eth_phy_bit(struct rtl8125_private *tp, u8 addr, u16 mask);
|
||||
void rtl8125_ocp_write(struct rtl8125_private *tp, u16 addr, u8 len, u32 data);
|
||||
void rtl8125_oob_notify(struct rtl8125_private *tp, u8 cmd);
|
||||
void rtl8125_init_ring_indexes(struct rtl8125_private *tp);
|
||||
int rtl8125_eri_write(void __iomem *ioaddr, int addr, int len, u32 value, int type);
|
||||
int rtl8125_eri_write(struct rtl8125_private *tp, int addr, int len, u32 value, int type);
|
||||
void rtl8125_oob_mutex_lock(struct rtl8125_private *tp);
|
||||
u32 rtl8125_mdio_read(struct rtl8125_private *tp, u32 RegAddr);
|
||||
u32 rtl8125_ocp_read(struct rtl8125_private *tp, u16 addr, u8 len);
|
||||
u32 rtl8125_ocp_read_with_oob_base_address(struct rtl8125_private *tp, u16 addr, u8 len, u32 base_address);
|
||||
u32 rtl8125_ocp_write_with_oob_base_address(struct rtl8125_private *tp, u16 addr, u8 len, u32 value, u32 base_address);
|
||||
u32 rtl8125_eri_read(void __iomem *ioaddr, int addr, int len, int type);
|
||||
u32 rtl8125_eri_read_with_oob_base_address(void __iomem *ioaddr, int addr, int len, int type, u32 base_address);
|
||||
int rtl8125_eri_write_with_oob_base_address(void __iomem *ioaddr, int addr, int len, u32 value, int type, u32 base_address);
|
||||
u16 rtl8125_ephy_read(void __iomem *ioaddr, int RegAddr);
|
||||
u32 rtl8125_eri_read(struct rtl8125_private *tp, int addr, int len, int type);
|
||||
u32 rtl8125_eri_read_with_oob_base_address(struct rtl8125_private *tp, int addr, int len, int type, u32 base_address);
|
||||
int rtl8125_eri_write_with_oob_base_address(struct rtl8125_private *tp, int addr, int len, u32 value, int type, u32 base_address);
|
||||
u16 rtl8125_ephy_read(struct rtl8125_private *tp, int RegAddr);
|
||||
void rtl8125_wait_txrx_fifo_empty(struct net_device *dev);
|
||||
void rtl8125_enable_now_is_oob(struct rtl8125_private *tp);
|
||||
void rtl8125_disable_now_is_oob(struct rtl8125_private *tp);
|
||||
@ -1771,6 +1802,7 @@ void rtl8125_dash2_enable_rx(struct rtl8125_private *tp);
|
||||
void rtl8125_hw_disable_mac_mcu_bps(struct net_device *dev);
|
||||
|
||||
#define HW_SUPPORT_CHECK_PHY_DISABLE_MODE(_M) ((_M)->HwSuppCheckPhyDisableModeVer > 0 )
|
||||
#define HW_HAS_WRITE_PHY_MCU_RAM_CODE(_M) (((_M)->HwHasWrRamCodeToMicroP == TRUE) ? 1 : 0)
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)
|
||||
#define netdev_mc_count(dev) ((dev)->mc_count)
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -241,12 +241,12 @@ RX_DASH_BUFFER_TYPE_2, *PRX_DASH_BUFFER_TYPE_2;
|
||||
#define CMAC_TXDESC_OFFSET 0x98 //TX: 0x98 - 0x9F
|
||||
|
||||
/* cmac write/read MMIO register */
|
||||
#define RTL_CMAC_W8(reg, val8) writeb ((val8), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_W16(reg, val16) writew ((val16), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_W32(reg, val32) writel ((val32), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R8(reg) readb (tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R16(reg) readw (tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R32(reg) ((unsigned long) readl (tp->cmac_ioaddr + (reg)))
|
||||
#define RTL_CMAC_W8(tp, reg, val8) writeb ((val8), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_W16(tp, reg, val16) writew ((val16), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_W32(tp, reg, val32) writel ((val32), tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R8(tp, reg) readb (tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R16(tp, reg) readw (tp->cmac_ioaddr + (reg))
|
||||
#define RTL_CMAC_R32(tp, reg) ((unsigned long) readl (tp->cmac_ioaddr + (reg)))
|
||||
|
||||
int rtl8125_dash_ioctl(struct net_device *dev, struct ifreq *ifr);
|
||||
void HandleDashInterrupt(struct net_device *dev);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -52,18 +52,17 @@
|
||||
//-------------------------------------------------------------------
|
||||
void rtl8125_eeprom_type(struct rtl8125_private *tp)
|
||||
{
|
||||
void __iomem *ioaddr=tp->mmio_addr;
|
||||
u16 magic = 0;
|
||||
|
||||
if (tp->mcfg == CFG_METHOD_DEFAULT)
|
||||
goto out_no_eeprom;
|
||||
|
||||
if(RTL_R8(0xD2)&0x04) {
|
||||
if(RTL_R8(tp, 0xD2)&0x04) {
|
||||
//not support
|
||||
//tp->eeprom_type = EEPROM_TWSI;
|
||||
//tp->eeprom_len = 256;
|
||||
goto out_no_eeprom;
|
||||
} else if(RTL_R32(RxConfig) & RxCfg_9356SEL) {
|
||||
} else if(RTL_R32(tp, RxConfig) & RxCfg_9356SEL) {
|
||||
tp->eeprom_type = EEPROM_TYPE_93C56;
|
||||
tp->eeprom_len = 256;
|
||||
} else {
|
||||
@ -80,28 +79,28 @@ out_no_eeprom:
|
||||
}
|
||||
}
|
||||
|
||||
void rtl8125_eeprom_cleanup(void __iomem *ioaddr)
|
||||
void rtl8125_eeprom_cleanup(struct rtl8125_private *tp)
|
||||
{
|
||||
u8 x;
|
||||
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
x &= ~(Cfg9346_EEDI | Cfg9346_EECS);
|
||||
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
|
||||
rtl8125_raise_clock(&x, ioaddr);
|
||||
rtl8125_lower_clock(&x, ioaddr);
|
||||
rtl8125_raise_clock(tp, &x);
|
||||
rtl8125_lower_clock(tp, &x);
|
||||
}
|
||||
|
||||
int rtl8125_eeprom_cmd_done(void __iomem *ioaddr)
|
||||
int rtl8125_eeprom_cmd_done(struct rtl8125_private *tp)
|
||||
{
|
||||
u8 x;
|
||||
int i;
|
||||
|
||||
rtl8125_stand_by(ioaddr);
|
||||
rtl8125_stand_by(tp);
|
||||
|
||||
for (i = 0; i < 50000; i++) {
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
|
||||
if (x & Cfg9346_EEDO) {
|
||||
udelay(RTL_CLOCK_RATE * 2 * 3);
|
||||
@ -119,7 +118,6 @@ int rtl8125_eeprom_cmd_done(void __iomem *ioaddr)
|
||||
//-------------------------------------------------------------------
|
||||
u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg)
|
||||
{
|
||||
void __iomem *ioaddr=tp->mmio_addr;
|
||||
int addr_sz = 6;
|
||||
u8 x;
|
||||
u16 data;
|
||||
@ -134,16 +132,16 @@ u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg)
|
||||
addr_sz = 8;
|
||||
|
||||
x = Cfg9346_EEM1 | Cfg9346_EECS;
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
|
||||
rtl8125_shift_out_bits(RTL_EEPROM_READ_OPCODE, 3, ioaddr);
|
||||
rtl8125_shift_out_bits(reg, addr_sz, ioaddr);
|
||||
rtl8125_shift_out_bits(tp, RTL_EEPROM_READ_OPCODE, 3);
|
||||
rtl8125_shift_out_bits(tp, reg, addr_sz);
|
||||
|
||||
data = rtl8125_shift_in_bits(ioaddr);
|
||||
data = rtl8125_shift_in_bits(tp);
|
||||
|
||||
rtl8125_eeprom_cleanup(ioaddr);
|
||||
rtl8125_eeprom_cleanup(tp);
|
||||
|
||||
RTL_W8(Cfg9346, 0);
|
||||
RTL_W8(tp, Cfg9346, 0);
|
||||
|
||||
return data;
|
||||
}
|
||||
@ -154,7 +152,6 @@ u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg)
|
||||
//-------------------------------------------------------------------
|
||||
void rtl8125_eeprom_write_sc(struct rtl8125_private *tp, u16 reg, u16 data)
|
||||
{
|
||||
void __iomem *ioaddr=tp->mmio_addr;
|
||||
u8 x;
|
||||
int addr_sz = 6;
|
||||
int w_dummy_addr = 4;
|
||||
@ -172,56 +169,56 @@ void rtl8125_eeprom_write_sc(struct rtl8125_private *tp, u16 reg, u16 data)
|
||||
}
|
||||
|
||||
x = Cfg9346_EEM1 | Cfg9346_EECS;
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
|
||||
rtl8125_shift_out_bits(RTL_EEPROM_EWEN_OPCODE, 5, ioaddr);
|
||||
rtl8125_shift_out_bits(reg, w_dummy_addr, ioaddr);
|
||||
rtl8125_stand_by(ioaddr);
|
||||
rtl8125_shift_out_bits(tp, RTL_EEPROM_EWEN_OPCODE, 5);
|
||||
rtl8125_shift_out_bits(tp, reg, w_dummy_addr);
|
||||
rtl8125_stand_by(tp);
|
||||
|
||||
rtl8125_shift_out_bits(RTL_EEPROM_ERASE_OPCODE, 3, ioaddr);
|
||||
rtl8125_shift_out_bits(reg, addr_sz, ioaddr);
|
||||
if (rtl8125_eeprom_cmd_done(ioaddr) < 0) {
|
||||
rtl8125_shift_out_bits(tp, RTL_EEPROM_ERASE_OPCODE, 3);
|
||||
rtl8125_shift_out_bits(tp, reg, addr_sz);
|
||||
if (rtl8125_eeprom_cmd_done(tp) < 0) {
|
||||
return;
|
||||
}
|
||||
rtl8125_stand_by(ioaddr);
|
||||
rtl8125_stand_by(tp);
|
||||
|
||||
rtl8125_shift_out_bits(RTL_EEPROM_WRITE_OPCODE, 3, ioaddr);
|
||||
rtl8125_shift_out_bits(reg, addr_sz, ioaddr);
|
||||
rtl8125_shift_out_bits(data, 16, ioaddr);
|
||||
if (rtl8125_eeprom_cmd_done(ioaddr) < 0) {
|
||||
rtl8125_shift_out_bits(tp, RTL_EEPROM_WRITE_OPCODE, 3);
|
||||
rtl8125_shift_out_bits(tp, reg, addr_sz);
|
||||
rtl8125_shift_out_bits(tp, data, 16);
|
||||
if (rtl8125_eeprom_cmd_done(tp) < 0) {
|
||||
return;
|
||||
}
|
||||
rtl8125_stand_by(ioaddr);
|
||||
rtl8125_stand_by(tp);
|
||||
|
||||
rtl8125_shift_out_bits(RTL_EEPROM_EWDS_OPCODE, 5, ioaddr);
|
||||
rtl8125_shift_out_bits(reg, w_dummy_addr, ioaddr);
|
||||
rtl8125_shift_out_bits(tp, RTL_EEPROM_EWDS_OPCODE, 5);
|
||||
rtl8125_shift_out_bits(tp, reg, w_dummy_addr);
|
||||
|
||||
rtl8125_eeprom_cleanup(ioaddr);
|
||||
RTL_W8(Cfg9346, 0);
|
||||
rtl8125_eeprom_cleanup(tp);
|
||||
RTL_W8(tp, Cfg9346, 0);
|
||||
}
|
||||
|
||||
void rtl8125_raise_clock(u8 *x, void __iomem *ioaddr)
|
||||
void rtl8125_raise_clock(struct rtl8125_private *tp, u8 *x)
|
||||
{
|
||||
*x = *x | Cfg9346_EESK;
|
||||
RTL_W8(Cfg9346, *x);
|
||||
RTL_W8(tp, Cfg9346, *x);
|
||||
udelay(RTL_CLOCK_RATE);
|
||||
}
|
||||
|
||||
void rtl8125_lower_clock(u8 *x, void __iomem *ioaddr)
|
||||
void rtl8125_lower_clock(struct rtl8125_private *tp, u8 *x)
|
||||
{
|
||||
|
||||
*x = *x & ~Cfg9346_EESK;
|
||||
RTL_W8(Cfg9346, *x);
|
||||
RTL_W8(tp, Cfg9346, *x);
|
||||
udelay(RTL_CLOCK_RATE);
|
||||
}
|
||||
|
||||
void rtl8125_shift_out_bits(int data, int count, void __iomem *ioaddr)
|
||||
void rtl8125_shift_out_bits(struct rtl8125_private *tp, int data, int count)
|
||||
{
|
||||
u8 x;
|
||||
int mask;
|
||||
|
||||
mask = 0x01 << (count - 1);
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
x &= ~(Cfg9346_EEDI | Cfg9346_EEDO);
|
||||
|
||||
do {
|
||||
@ -230,62 +227,62 @@ void rtl8125_shift_out_bits(int data, int count, void __iomem *ioaddr)
|
||||
else
|
||||
x &= ~Cfg9346_EEDI;
|
||||
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
udelay(RTL_CLOCK_RATE);
|
||||
rtl8125_raise_clock(&x, ioaddr);
|
||||
rtl8125_lower_clock(&x, ioaddr);
|
||||
rtl8125_raise_clock(tp, &x);
|
||||
rtl8125_lower_clock(tp, &x);
|
||||
mask = mask >> 1;
|
||||
} while(mask);
|
||||
|
||||
x &= ~Cfg9346_EEDI;
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
}
|
||||
|
||||
u16 rtl8125_shift_in_bits(void __iomem *ioaddr)
|
||||
u16 rtl8125_shift_in_bits(struct rtl8125_private *tp)
|
||||
{
|
||||
u8 x;
|
||||
u16 d, i;
|
||||
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
x &= ~(Cfg9346_EEDI | Cfg9346_EEDO);
|
||||
|
||||
d = 0;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
d = d << 1;
|
||||
rtl8125_raise_clock(&x, ioaddr);
|
||||
rtl8125_raise_clock(tp, &x);
|
||||
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
x &= ~Cfg9346_EEDI;
|
||||
|
||||
if (x & Cfg9346_EEDO)
|
||||
d |= 1;
|
||||
|
||||
rtl8125_lower_clock(&x, ioaddr);
|
||||
rtl8125_lower_clock(tp, &x);
|
||||
}
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
void rtl8125_stand_by(void __iomem *ioaddr)
|
||||
void rtl8125_stand_by(struct rtl8125_private *tp)
|
||||
{
|
||||
u8 x;
|
||||
|
||||
x = RTL_R8(Cfg9346);
|
||||
x = RTL_R8(tp, Cfg9346);
|
||||
x &= ~(Cfg9346_EECS | Cfg9346_EESK);
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
udelay(RTL_CLOCK_RATE);
|
||||
|
||||
x |= Cfg9346_EECS;
|
||||
RTL_W8(Cfg9346, x);
|
||||
RTL_W8(tp, Cfg9346, x);
|
||||
}
|
||||
|
||||
void rtl8125_set_eeprom_sel_low(void __iomem *ioaddr)
|
||||
void rtl8125_set_eeprom_sel_low(struct rtl8125_private *tp)
|
||||
{
|
||||
RTL_W8(Cfg9346, Cfg9346_EEM1);
|
||||
RTL_W8(Cfg9346, Cfg9346_EEM1 | Cfg9346_EESK);
|
||||
RTL_W8(tp, Cfg9346, Cfg9346_EEM1);
|
||||
RTL_W8(tp, Cfg9346, Cfg9346_EEM1 | Cfg9346_EESK);
|
||||
|
||||
udelay(20);
|
||||
|
||||
RTL_W8(Cfg9346, Cfg9346_EEM1);
|
||||
RTL_W8(tp, Cfg9346, Cfg9346_EEM1);
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -41,15 +41,12 @@
|
||||
#define RTL_CLOCK_RATE 3
|
||||
|
||||
void rtl8125_eeprom_type(struct rtl8125_private *tp);
|
||||
void rtl8125_eeprom_cleanup(void __iomem *ioaddr);
|
||||
void rtl8125_eeprom_cleanup(struct rtl8125_private *tp);
|
||||
u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg);
|
||||
void rtl8125_eeprom_write_sc(struct rtl8125_private *tp, u16 reg, u16 data);
|
||||
void rtl8125_shift_out_bits(int data, int count, void __iomem *ioaddr);
|
||||
u16 rtl8125_shift_in_bits(void __iomem *ioaddr);
|
||||
void rtl8125_raise_clock(u8 *x, void __iomem *ioaddr);
|
||||
void rtl8125_lower_clock(u8 *x, void __iomem *ioaddr);
|
||||
void rtl8125_stand_by(void __iomem *ioaddr);
|
||||
void rtl8125_set_eeprom_sel_low(void __iomem *ioaddr);
|
||||
|
||||
|
||||
|
||||
void rtl8125_shift_out_bits(struct rtl8125_private *tp, int data, int count);
|
||||
u16 rtl8125_shift_in_bits(struct rtl8125_private *tp);
|
||||
void rtl8125_raise_clock(struct rtl8125_private *tp, u8 *x);
|
||||
void rtl8125_lower_clock(struct rtl8125_private *tp, u8 *x);
|
||||
void rtl8125_stand_by(struct rtl8125_private *tp);
|
||||
void rtl8125_set_eeprom_sel_low(struct rtl8125_private *tp);
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -121,7 +121,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
my_cmd.data = rtl8125_ephy_read(tp->mmio_addr, my_cmd.offset);
|
||||
my_cmd.data = rtl8125_ephy_read(tp, my_cmd.offset);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
|
||||
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
|
||||
@ -136,7 +136,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
rtl8125_ephy_write(tp->mmio_addr, my_cmd.offset, my_cmd.data);
|
||||
rtl8125_ephy_write(tp, my_cmd.offset, my_cmd.data);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
break;
|
||||
|
||||
@ -144,7 +144,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
my_cmd.data = 0;
|
||||
if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) {
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
my_cmd.data = rtl8125_eri_read(tp->mmio_addr, my_cmd.offset, my_cmd.len, ERIAR_ExGMAC);
|
||||
my_cmd.data = rtl8125_eri_read(tp, my_cmd.offset, my_cmd.len, ERIAR_ExGMAC);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
} else {
|
||||
ret = -EOPNOTSUPP;
|
||||
@ -167,7 +167,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
|
||||
if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) {
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
rtl8125_eri_write(tp->mmio_addr, my_cmd.offset, my_cmd.len, my_cmd.data, ERIAR_ExGMAC);
|
||||
rtl8125_eri_write(tp, my_cmd.offset, my_cmd.len, my_cmd.data, ERIAR_ExGMAC);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
} else {
|
||||
ret = -EOPNOTSUPP;
|
||||
@ -330,7 +330,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
my_cmd.data = rtl8125_mdio_prot_read_phy_ocp(tp, my_cmd.offset);
|
||||
my_cmd.data = rtl8125_mdio_prot_direct_read_phy_ocp(tp, my_cmd.offset);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
|
||||
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
|
||||
@ -345,7 +345,7 @@ int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
rtl8125_mdio_prot_write_phy_ocp(tp, my_cmd.offset, my_cmd.data);
|
||||
rtl8125_mdio_prot_direct_write_phy_ocp(tp, my_cmd.offset, my_cmd.data);
|
||||
spin_unlock_irqrestore(&tp->lock, flags);
|
||||
break;
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2019 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2020 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2014 OpenWrt-dist
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
|
||||
PKG_NAME:=redsocks2
|
||||
PKG_VERSION:=0.67
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/semigodking/redsocks.git
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_VERSION:=2b8fe69e4faba9b256808bc664d4c9daedd76f70
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MAINTAINER:=semigodking <semigodking@gmail.com>
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/redsocks2
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Redirect any TCP connection to a SOCKS or HTTPS proxy server
|
||||
URL:=https://github.com/semigodking/redsocks
|
||||
DEPENDS:=+libevent2 +libopenssl
|
||||
endef
|
||||
|
||||
define Package/redsocks2/description
|
||||
This is a modified version of original redsocks. \
|
||||
The name is changed to be REDSOCKS2 since this release to distinguish with original redsocks. \
|
||||
This variant is useful for anti-GFW (Great Fire Wall).
|
||||
endef
|
||||
|
||||
define Package/redsocks2/conffiles
|
||||
/etc/config/redsocks2
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/Default,DISABLE_SHADOWSOCKS=true)
|
||||
endef
|
||||
|
||||
define Package/redsocks2/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/redsocks2 $(1)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,redsocks2))
|
||||
@ -0,0 +1,25 @@
|
||||
From 3f5c106a880a02b21739f2022746e6aa7672474c Mon Sep 17 00:00:00 2001
|
||||
From: Matt Johnston <matt@ucc.asn.au>
|
||||
Date: Tue, 23 Jun 2020 21:38:46 +0800
|
||||
Subject: [PATCH] _GNU_SOURCE for random
|
||||
|
||||
---
|
||||
includes.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/includes.h b/includes.h
|
||||
index e8c3e18..2789f23 100644
|
||||
--- a/includes.h
|
||||
+++ b/includes.h
|
||||
@@ -125,6 +125,8 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_RANDOM_H
|
||||
+/* uclibc needs _GNU_SOURCE */
|
||||
+#define _GNU_SOURCE
|
||||
#include <sys/random.h>
|
||||
#endif
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
From a7a67585cbc3fe5df85c641618b347a51a943356 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Johnston <matt@ucc.asn.au>
|
||||
Date: Tue, 23 Jun 2020 22:24:58 +0800
|
||||
Subject: [PATCH] move GNU_SOURCE earlier
|
||||
|
||||
---
|
||||
includes.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/includes.h b/includes.h
|
||||
index 2789f23..884ebf7 100644
|
||||
--- a/includes.h
|
||||
+++ b/includes.h
|
||||
@@ -25,6 +25,8 @@
|
||||
#ifndef DROPBEAR_INCLUDES_H_
|
||||
#define DROPBEAR_INCLUDES_H_
|
||||
|
||||
+/* uclibc needs _GNU_SOURCE, maybe other things? */
|
||||
+#define _GNU_SOURCE
|
||||
|
||||
#include "options.h"
|
||||
#include "debug.h"
|
||||
@@ -125,8 +127,6 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_RANDOM_H
|
||||
-/* uclibc needs _GNU_SOURCE */
|
||||
-#define _GNU_SOURCE
|
||||
#include <sys/random.h>
|
||||
#endif
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -104,9 +104,9 @@ define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/rules
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/rules/g_rules
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard/img
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard/js
|
||||
$(INSTALL_DIR) $(1)/etc/clash/dashboard
|
||||
$(INSTALL_DIR) $(1)/etc/clash/dashboard/img
|
||||
$(INSTALL_DIR) $(1)/etc/clash/dashboard/js
|
||||
$(INSTALL_DIR) $(1)/usr/share/clash/yacd
|
||||
$(INSTALL_DIR) $(1)/etc/clash/clashtun
|
||||
$(INSTALL_DIR) $(1)/etc/clash/dtun
|
||||
@ -141,11 +141,11 @@ define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/logstatus_check $(1)/usr/share/clash/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/clash.txt $(1)/usr/share/clash/
|
||||
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/index.html $(1)/usr/share/clash/dashboard/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/main.772fa8c97df0c4f1549a.css $(1)/usr/share/clash/dashboard/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png $(1)/usr/share/clash/dashboard/img/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/1.bundle.772fa8c97df0c4f1549a.min.js $(1)/usr/share/clash/dashboard/js/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/bundle.772fa8c97df0c4f1549a.min.js $(1)/usr/share/clash/dashboard/js/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/index.html $(1)/etc/clash/dashboard/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/main.24f6f4760d8c66faaa74.css $(1)/etc/clash/dashboard/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png $(1)/etc/clash/dashboard/img/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/1.bundle.24f6f4760d8c66faaa74.min.js $(1)/etc/clash/dashboard/js/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/bundle.24f6f4760d8c66faaa74.min.js $(1)/etc/clash/dashboard/js/
|
||||
$(INSTALL_BIN) ./root/usr/share/clash/yacd/* $(1)/usr/share/clash/yacd/
|
||||
|
||||
$(INSTALL_DATA) ./luasrc/clash.lua $(1)/usr/lib/lua/luci/
|
||||
|
||||
@ -38,6 +38,13 @@ cdns = s:option(Flag, "culan", translate("Enable Lan DNS"))
|
||||
cdns.default = 1
|
||||
cdns.description = translate("Enabling will set custom DNS Servers for Lan")
|
||||
|
||||
dns = s:option(DynamicList, "landns", translate("Lan DNS servers"))
|
||||
dns.description = translate("Set custom DNS Servers for Lan")
|
||||
dns.datatype = "ipaddr"
|
||||
dns.cast = "string"
|
||||
dns:depends("culan", 1)
|
||||
|
||||
|
||||
y = s:option(ListValue, "access_control", translate("Access Control"))
|
||||
y:value("0", translate("disabled"))
|
||||
y:value("1", translate("Whitelist IPs"))
|
||||
@ -67,12 +74,6 @@ end)
|
||||
o:depends("access_control", 2)
|
||||
|
||||
|
||||
dns = s:option(DynamicList, "landns", translate("Lan DNS servers"))
|
||||
dns.description = translate("Set custom DNS Servers for Lan")
|
||||
dns.datatype = "ipaddr"
|
||||
dns.cast = "string"
|
||||
dns:depends("culan", 1)
|
||||
|
||||
|
||||
md = s:option(Flag, "tun_mode", translate("Tun Mode DNS"))
|
||||
md.default = 0
|
||||
|
||||
@ -1 +1 @@
|
||||
<!doctype html><html lang="en" dir="ltr"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel="icon" type="image/x-icon" href="https://cdn.jsdelivr.net/gh/Dreamacro/clash/docs/logo.png"/><title>Clash</title><link href="main.772fa8c97df0c4f1549a.css" rel="stylesheet"></head><body><div id="root"></div><script src="js/1.bundle.772fa8c97df0c4f1549a.min.js"></script><script src="js/bundle.772fa8c97df0c4f1549a.min.js"></script></body></html>
|
||||
<!doctype html><html lang="en" dir="ltr"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel="icon" type="image/x-icon" href="https://cdn.jsdelivr.net/gh/Dreamacro/clash/docs/logo.png"/><title>Clash</title><link href="main.24f6f4760d8c66faaa74.css" rel="stylesheet"></head><body><div id="root"></div><script src="js/1.bundle.24f6f4760d8c66faaa74.min.js"></script><script src="js/bundle.24f6f4760d8c66faaa74.min.js"></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -23,6 +23,6 @@
|
||||
.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{display:flex;align-items:center;justify-content:space-between}.rule-provider-header-part{display:flex;align-items:center}.rule-provider-name{width:120px;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-provider-behavior{width:80px;margin:0 20px 0 12px;background-color:#2c8af8;color:#fff}.rule-provider-spinner{transform:scale(0.4)}.rule-provider-proxies{list-style:none}.rule-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.rule-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.rule-provider-update{line-height:14px;font-size:14px}.rule-provider-icon{display:block;margin-left:20px;cursor:pointer}.rule-provider-icon.rule-provider-loading::before{color:#909399;cursor:not-allowed;-webkit-animation:spinner 2s infinite linear;animation:spinner 2s infinite linear}@media(max-width: 768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}
|
||||
.rules-card{display:flex;flex-direction:column;flex:1;min-height:700px;margin-top:10px;padding:0}.rules-card:focus{outline:none}.rules-card .rules{flex:1 0 auto}.rule-item{line-height:30px;padding:5px 0;height:50px;overflow:hidden;list-style:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item .rule-item-row{padding:5px 0}.rule-item .drag-handler{cursor:row-resize;margin:0 10px;display:flex;justify-content:center}.rule-item .drag-handler>i{font-weight:bold;color:#b7c5d6}.rule-item .rule-type{font-size:14px;color:#54759a}.rule-item .rule-type>i{margin-left:5px;color:#54759a}.rule-item .payload{font-size:14px;color:#54759a;cursor:pointer}.rule-item .rule-proxy{font-size:14px;color:#54759a}.rule-item .delete-btn{opacity:0;transition:all 300ms ease}.rule-item .delete-btn span{font-size:14px;color:#f56c6c;cursor:pointer}.rule-item:last-child{border-bottom:none}.rule-item:hover .delete-btn{opacity:1}.rule-proxy-option{display:flex;align-items:center;overflow:hidden}.rule-proxy-option .label{margin-right:5px;height:20px;line-height:20px;padding:0 8px;font-size:10px;border-radius:10px;color:#fff;background:#b7c5d6}.rule-proxy-option .value{line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.settings-card{margin-top:10px;padding:20px 0}.settings-card .column{font-weight:bold;align-items:center}.settings-card .value-column{justify-content:flex-end}.settings-card .label{font-size:14px;color:#54759a}.settings-card .external-controller{font-size:14px;color:#54759a;display:flex;justify-content:flex-end;font-weight:normal;line-height:17px}.settings-card .external-controller .modify-btn{color:#2c8af8;cursor:pointer}.clash-version{position:relative;margin-top:10px;padding:20px 45px;display:flex}.clash-version .check-icon{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg, #57befc, #2c8af8);display:flex;justify-content:center;align-items:center}.clash-version .check-icon>i{transform:scale(0.5);color:#fff;font-weight:bold}.clash-version .version-info{margin-left:10px;font-size:14px;line-height:24px;color:#54759a}.clash-version .check-update-btn{position:absolute;right:45px;font-size:14px;line-height:24px;color:#b7c5d6;cursor:pointer;transition:all 150ms ease}.clash-version .check-update-btn:hover{color:#54759a}@media(max-width: 768px){.settings-card .row{flex-direction:column;padding-top:0;padding-bottom:0}.settings-card .row>.column{width:100%;margin:10px 0}}
|
||||
.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:140px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg, #57befc, #2c8af8);color:#fff;box-shadow:0 2px 8px rgba(44,138,248,.5)}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;color:#54759a}@media(max-width: 768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile{display:none}.sidebar-version{display:none}}
|
||||
.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:160px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg, #57befc, #2c8af8);color:#fff;box-shadow:0 2px 8px rgba(44,138,248,.5)}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;color:#54759a}@media(max-width: 768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile{display:none}.sidebar-version{display:none}}
|
||||
.connections-card{display:flex;flex-direction:column;flex:1;margin-top:10px;padding:0;overflow:hidden}.connections-card .connections{display:flex;flex-direction:column;width:100%;flex-grow:1;flex-basis:0;overflow:auto}.connections-card .connections-body{flex:1 0 auto}.connections-card .connections-th{position:relative;text-align:center;color:#909399;background:#f3f6f9;height:30px;line-height:30px;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.connections-card .connections-resizer{position:absolute;opacity:0;right:-10px;top:8px;bottom:8px;width:20px;transition:opacity .3s ease;z-index:10;font-size:14px;font-weight:300}.connections-card .connections-resizer::before{content:"";display:block;position:absolute;left:10px;transform:translateX(-2px);width:2px;height:100%;background-color:rgba(144,147,153,.6)}.connections-card .connections-header{position:-webkit-sticky;position:sticky;top:0;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connetions-item{height:36px}.connections-card .connections-block{display:flex;align-items:center;font-size:14px;line-height:36px;padding:0 10px;color:#54759a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-card .connections-block.center{text-align:center}.connections-card .connections-block.completed{background-color:#e9eef4;color:rgba(84,117,154,.5)}.connections-filter{color:#2c8af8;font-size:14px;line-height:20px;margin-left:15px;text-shadow:0 0 6px rgba(44,138,248,.4);cursor:pointer}.connections-filter.dangerous{color:#f56c6c;text-shadow:0 0 6px rgba(87,190,252,.2)}.connections-filter.total{flex:1;cursor:unset}
|
||||
.external-controller .row{padding:0}.external-controller .alert{margin:10px 0}.external-controller .title,.external-controller .form{margin:15px 0}.external-controller .title{margin-top:15px;font-size:14px;font-weight:bold}@media(max-width: 768px){.external-controller .row{flex-direction:column;align-items:flex-start}.external-controller .title{margin:5px 0}.external-controller .form{margin:5px 0}.external-controller .column{width:100%}.external-controller .alert{display:none}}
|
||||
@ -360,7 +360,7 @@ EOF
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "external-ui: \"/usr/share/clash/dashboard\"/a\ " $TEMP_FILE 2>/dev/null
|
||||
sed -i " /a\ " $TEMP_FILE 2>/dev/null
|
||||
else
|
||||
@ -368,7 +368,7 @@ EOF
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
fi
|
||||
sed -i '/#config-start-here/ d' $TEMP_FILE 2>/dev/null
|
||||
|
||||
|
||||
@ -727,7 +727,7 @@ EOF
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "external-ui: \"/usr/share/clash/dashboard\"/a\ " $TEMP_FILE 2>/dev/null
|
||||
sed -i " /a\ " $TEMP_FILE 2>/dev/null
|
||||
else
|
||||
@ -735,7 +735,7 @@ EOF
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $TEMP_FILE 2>/dev/null
|
||||
fi
|
||||
sed -i '/#config-start-here/ d' $TEMP_FILE 2>/dev/null
|
||||
|
||||
|
||||
@ -81,7 +81,7 @@ if [ "$core" -eq 1 ] || [ "$core" -eq 2 ];then
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
|
||||
else
|
||||
@ -89,7 +89,7 @@ if [ "$core" -eq 1 ] || [ "$core" -eq 2 ];then
|
||||
sed -i "/mode: Rule/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
fi
|
||||
sed -i '/#=============/ d' $CONFIG_YAML 2>/dev/null
|
||||
@ -138,14 +138,14 @@ if [ "${core}" -eq 3 ] || [ "${core}" -eq 4 ];then
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
else
|
||||
sed -i "/allow-lan: ${allow_lan}/a\mode: Rule" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/mode: Rule/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
fi
|
||||
sed -i '/#=============/ d' $CONFIG_YAML 2>/dev/null
|
||||
@ -192,14 +192,14 @@ else
|
||||
sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
else
|
||||
sed -i "/allow-lan: ${allow_lan}/a\mode: Rule" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/mode: Rule/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_YAML 2>/dev/null
|
||||
sed -i -e "\$a " $CONFIG_YAML 2>/dev/null
|
||||
fi
|
||||
sed -i '/#=============/ d' $CONFIG_YAML 2>/dev/null
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=util-linux
|
||||
PKG_VERSION:=2.35.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.35
|
||||
@ -267,6 +267,7 @@ endef
|
||||
define Package/logger
|
||||
$(call Package/util-linux/Default)
|
||||
TITLE:=a shell command interface to the syslog system log module
|
||||
ALTERNATIVES:=200:/usr/bin/logger:/usr/bin/util-linux-logger
|
||||
endef
|
||||
|
||||
define Package/logger/description
|
||||
@ -659,7 +660,7 @@ endef
|
||||
|
||||
define Package/logger/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/logger $(1)/usr/bin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/logger $(1)/usr/bin/util-linux-logger
|
||||
endef
|
||||
|
||||
define Package/look/install
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/powerpc/platforms/4xx/pci.c
|
||||
+++ b/arch/powerpc/platforms/4xx/pci.c
|
||||
@@ -1905,9 +1905,9 @@ static void __init ppc4xx_configure_pcie
|
||||
@@ -1903,9 +1903,9 @@ static void __init ppc4xx_configure_pcie
|
||||
* if it works
|
||||
*/
|
||||
out_le32(mbase + PECFG_PIM0LAL, 0x00000000);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/powerpc/platforms/4xx/pci.c
|
||||
+++ b/arch/powerpc/platforms/4xx/pci.c
|
||||
@@ -1905,9 +1905,9 @@ static void __init ppc4xx_configure_pcie
|
||||
@@ -1903,9 +1903,9 @@ static void __init ppc4xx_configure_pcie
|
||||
* if it works
|
||||
*/
|
||||
out_le32(mbase + PECFG_PIM0LAL, 0x00000000);
|
||||
|
||||
@ -150,7 +150,7 @@ TARGET_DEVICES += ubnt_edgeswitch-5xp
|
||||
define Device/ubnt_edgeswitch-8xp
|
||||
$(Device/ubnt-sw)
|
||||
DEVICE_MODEL := EdgeSwitch 8XP
|
||||
DEVICE_PACKAGES += switch-bcm53xx-mdio
|
||||
DEVICE_PACKAGES += kmod-switch-bcm53xx-mdio
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_edgeswitch-8xp
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/drivers/usb/host/ehci-platform.c
|
||||
+++ b/drivers/usb/host/ehci-platform.c
|
||||
@@ -161,6 +161,11 @@ static int ehci_platform_probe(struct pl
|
||||
@@ -271,6 +271,11 @@ static int ehci_platform_probe(struct pl
|
||||
ehci = hcd_to_ehci(hcd);
|
||||
|
||||
if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2659,6 +2659,11 @@ static int pl011_probe(struct amba_devic
|
||||
@@ -2660,6 +2660,11 @@ static int pl011_probe(struct amba_devic
|
||||
if (IS_ERR(uap->clk))
|
||||
return PTR_ERR(uap->clk);
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1202,6 +1205,9 @@
|
||||
@@ -1205,6 +1208,9 @@
|
||||
#define USB_VENDOR_ID_XAT 0x2505
|
||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -176,6 +177,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -177,6 +178,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/drivers/usb/host/ehci-platform.c
|
||||
+++ b/drivers/usb/host/ehci-platform.c
|
||||
@@ -57,6 +57,9 @@ static int ehci_platform_reset(struct us
|
||||
@@ -62,6 +62,9 @@ static int ehci_platform_reset(struct us
|
||||
|
||||
ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/pci/probe.c
|
||||
+++ b/drivers/pci/probe.c
|
||||
@@ -2329,7 +2329,8 @@ static void pcie_write_mrrs(struct pci_d
|
||||
@@ -2330,7 +2330,8 @@ static void pcie_write_mrrs(struct pci_d
|
||||
/* In the "safe" case, do not configure the MRRS. There appear to be
|
||||
* issues with setting MRRS to 0 on a number of devices.
|
||||
*/
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/pci/probe.c
|
||||
+++ b/drivers/pci/probe.c
|
||||
@@ -2654,7 +2654,8 @@ static void pcie_write_mrrs(struct pci_d
|
||||
@@ -2655,7 +2655,8 @@ static void pcie_write_mrrs(struct pci_d
|
||||
* In the "safe" case, do not configure the MRRS. There appear to be
|
||||
* issues with setting MRRS to 0 on a number of devices.
|
||||
*/
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Driver for MikroTik RouterBoot hard config.
|
||||
*
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Driver for MikroTik RouterBoot flash data. Common routines.
|
||||
*
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Common definitions for MikroTik RouterBoot data.
|
||||
*
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
algorithm registration.
|
||||
--- a/crypto/algboss.c
|
||||
+++ b/crypto/algboss.c
|
||||
@@ -248,8 +248,12 @@ static int cryptomgr_schedule_test(struc
|
||||
@@ -246,8 +246,12 @@ static int cryptomgr_schedule_test(struc
|
||||
type = alg->cra_flags;
|
||||
|
||||
/* Do not test internal algorithms. */
|
||||
|
||||
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3012,10 +3012,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3008,10 +3008,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
#endif
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
algorithm registration.
|
||||
--- a/crypto/algboss.c
|
||||
+++ b/crypto/algboss.c
|
||||
@@ -247,8 +247,12 @@ static int cryptomgr_schedule_test(struc
|
||||
@@ -245,8 +245,12 @@ static int cryptomgr_schedule_test(struc
|
||||
type = alg->cra_flags;
|
||||
|
||||
/* Do not test internal algorithms. */
|
||||
|
||||
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3263,10 +3263,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3259,10 +3259,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
#endif
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
||||
@ -1639,7 +1639,7 @@
|
||||
* number or errno values. Not nice, but better than additional function
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -143,6 +143,9 @@
|
||||
@@ -144,6 +144,9 @@
|
||||
#include <linux/hrtimer.h>
|
||||
#include <linux/netfilter_ingress.h>
|
||||
#include <linux/crash_dump.h>
|
||||
@ -1649,7 +1649,7 @@
|
||||
#include <linux/sctp.h>
|
||||
#include <net/udp_tunnel.h>
|
||||
|
||||
@@ -3001,7 +3004,12 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -2997,7 +3000,12 @@ static int xmit_one(struct sk_buff *skb,
|
||||
unsigned int len;
|
||||
int rc;
|
||||
|
||||
@ -1662,7 +1662,7 @@
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
len = skb->len;
|
||||
@@ -3040,6 +3048,8 @@ out:
|
||||
@@ -3036,6 +3044,8 @@ out:
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__u16 tc_index; /* traffic control index */
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4816,6 +4816,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -4812,6 +4812,9 @@ static enum gro_result dev_gro_receive(s
|
||||
enum gro_result ret;
|
||||
int grow;
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (netif_elide_gro(skb->dev))
|
||||
goto normal;
|
||||
|
||||
@@ -6293,6 +6296,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -6289,6 +6292,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *upper_priv, void *upper_info)
|
||||
@@ -6331,6 +6376,7 @@ static int __netdev_upper_dev_link(struc
|
||||
@@ -6327,6 +6372,7 @@ static int __netdev_upper_dev_link(struc
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||
&changeupper_info.info);
|
||||
ret = notifier_to_errno(ret);
|
||||
@@ -6408,6 +6454,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
@@ -6404,6 +6450,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
|
||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||
&changeupper_info.info);
|
||||
}
|
||||
@@ -6972,6 +7019,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -6968,6 +7015,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
depends on ACPI
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -731,6 +731,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
@@ -730,6 +730,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
return block;
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -5124,6 +5137,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -5123,6 +5136,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = tag;
|
||||
@@ -6025,6 +6041,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -6024,6 +6040,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -6046,6 +6065,12 @@ static void ata_host_release(struct devi
|
||||
@@ -6045,6 +6064,12 @@ static void ata_host_release(struct devi
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6492,7 +6517,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -6491,7 +6516,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
@ -124,17 +124,17 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
rc = ata_tport_add(host->dev,host->ports[i]);
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -38,6 +38,9 @@
|
||||
#include <linux/acpi.h>
|
||||
@@ -39,6 +39,9 @@
|
||||
#include <linux/cdrom.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/async.h>
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+#include <linux/leds.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -890,6 +893,12 @@ struct ata_port {
|
||||
@@ -893,6 +896,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
/*
|
||||
--- a/drivers/usb/host/ehci-platform.c
|
||||
+++ b/drivers/usb/host/ehci-platform.c
|
||||
@@ -208,6 +208,8 @@ static int ehci_platform_probe(struct pl
|
||||
@@ -321,6 +321,8 @@ static int ehci_platform_probe(struct pl
|
||||
hcd->has_tt = 1;
|
||||
if (pdata->reset_on_resume)
|
||||
priv->reset_on_resume = true;
|
||||
|
||||
@ -1334,7 +1334,7 @@
|
||||
* number or errno values. Not nice, but better than additional function
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -142,6 +142,9 @@
|
||||
@@ -143,6 +143,9 @@
|
||||
#include <linux/hrtimer.h>
|
||||
#include <linux/netfilter_ingress.h>
|
||||
#include <linux/crash_dump.h>
|
||||
@ -1344,7 +1344,7 @@
|
||||
#include <linux/sctp.h>
|
||||
#include <net/udp_tunnel.h>
|
||||
#include <linux/net_namespace.h>
|
||||
@@ -3252,7 +3255,12 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3248,7 +3251,12 @@ static int xmit_one(struct sk_buff *skb,
|
||||
unsigned int len;
|
||||
int rc;
|
||||
|
||||
@ -1357,7 +1357,7 @@
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
len = skb->len;
|
||||
@@ -3291,6 +3299,8 @@ out:
|
||||
@@ -3287,6 +3295,8 @@ out:
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__u16 tc_index; /* traffic control index */
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -5477,6 +5477,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -5473,6 +5473,9 @@ static enum gro_result dev_gro_receive(s
|
||||
int same_flow;
|
||||
int grow;
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (netif_elide_gro(skb->dev))
|
||||
goto normal;
|
||||
|
||||
@@ -7135,6 +7138,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -7131,6 +7134,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *upper_priv, void *upper_info,
|
||||
@@ -7185,6 +7230,7 @@ static int __netdev_upper_dev_link(struc
|
||||
@@ -7181,6 +7226,7 @@ static int __netdev_upper_dev_link(struc
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||
&changeupper_info.info);
|
||||
ret = notifier_to_errno(ret);
|
||||
@@ -7277,6 +7323,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
@@ -7273,6 +7319,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
|
||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||
&changeupper_info.info);
|
||||
|
||||
@@ -7916,6 +7963,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -7912,6 +7959,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
depends on ACPI
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -731,6 +731,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
@@ -730,6 +730,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
return block;
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -5134,6 +5147,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -5133,6 +5146,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = qc->hw_tag = tag;
|
||||
@@ -6068,6 +6084,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -6067,6 +6083,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -6103,6 +6122,12 @@ static void ata_host_release(struct kref
|
||||
@@ -6102,6 +6121,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6566,7 +6591,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -6565,7 +6590,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
@ -124,17 +124,17 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
rc = ata_tport_add(host->dev,host->ports[i]);
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -38,6 +38,9 @@
|
||||
#include <linux/acpi.h>
|
||||
@@ -39,6 +39,9 @@
|
||||
#include <linux/cdrom.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/async.h>
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+#include <linux/leds.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -893,6 +896,12 @@ struct ata_port {
|
||||
@@ -896,6 +899,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
||||
@ -1548,7 +1548,7 @@ Date: Thu Nov 30 18:01:29 2017 +0100
|
||||
/*
|
||||
--- a/include/linux/mtd/rawnand.h
|
||||
+++ b/include/linux/mtd/rawnand.h
|
||||
@@ -1313,6 +1313,35 @@ int nand_write_page_raw(struct mtd_info
|
||||
@@ -1311,6 +1311,35 @@ int nand_write_page_raw(struct mtd_info
|
||||
/* Reset and initialize a NAND device */
|
||||
int nand_reset(struct nand_chip *chip, int chipnr);
|
||||
|
||||
|
||||
@ -152,6 +152,12 @@
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
|
||||
tca9539@74 {
|
||||
status = "okay";
|
||||
compatible = "ti,tca9539";
|
||||
reg = <0x74>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -152,6 +152,12 @@
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
|
||||
tca9539@74 {
|
||||
status = "okay";
|
||||
compatible = "ti,tca9539";
|
||||
reg = <0x74>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -276,7 +276,7 @@ define Device/ruijie_rg-mtfi-m520
|
||||
IMAGE/mmcblk0p2-kernel.bin := append-kernel | pad-to $$$${KERNEL_SIZE}
|
||||
IMAGE/mmcblk0p3-rootfs.bin := append-rootfs | pad-rootfs
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca988x-ct e2fsprogs f2fs-tools \
|
||||
kmod-hwmon-lm75 kmod-fs-ext4 kmod-fs-f2fs kmod-rtc-pcf8563 losetup
|
||||
kmod-gpio-pca953x kmod-hwmon-lm75 kmod-fs-ext4 kmod-fs-f2fs kmod-rtc-pcf8563 losetup
|
||||
endef
|
||||
TARGET_DEVICES += ruijie_rg-mtfi-m520
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/firmware/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom_scm.c
|
||||
@@ -609,6 +609,9 @@ static const struct of_device_id qcom_sc
|
||||
@@ -606,6 +606,9 @@ static const struct of_device_id qcom_sc
|
||||
{ .compatible = "qcom,scm-ipq4019",
|
||||
.data = NULL, /* no clocks */
|
||||
},
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2648,6 +2648,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2650,6 +2650,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE |
|
||||
(PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ <<
|
||||
PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT);
|
||||
@@ -886,6 +889,58 @@ out_release_res:
|
||||
@@ -882,6 +885,58 @@ out_release_res:
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
static int advk_pcie_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -960,6 +1015,9 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -956,6 +1011,9 @@ static int advk_pcie_probe(struct platfo
|
||||
list_for_each_entry(child, &bus->children, node)
|
||||
pcie_bus_configure_settings(child);
|
||||
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
From patchwork Thu Sep 28 12:58:36 2017
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [v2,5/7] PCI: aardvark: disable LOS state by default
|
||||
X-Patchwork-Submitter: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
X-Patchwork-Id: 819590
|
||||
Message-Id: <20170928125838.11887-6-thomas.petazzoni@free-electrons.com>
|
||||
To: Bjorn Helgaas <bhelgaas@google.com>, linux-pci@vger.kernel.org
|
||||
Cc: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
|
||||
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>, Gregory Clement
|
||||
<gregory.clement@free-electrons.com>,
|
||||
Nadav Haklai <nadavh@marvell.com>, Hanna Hawa <hannah@marvell.com>,
|
||||
Yehuda Yitschak <yehuday@marvell.com>,
|
||||
linux-arm-kernel@lists.infradead.org, Antoine Tenart
|
||||
<antoine.tenart@free-electrons.com>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
|
||||
<miquel.raynal@free-electrons.com>, Victor Gu <xigu@marvell.com>,
|
||||
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Thu, 28 Sep 2017 14:58:36 +0200
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
List-Id: <linux-pci.vger.kernel.org>
|
||||
|
||||
From: Victor Gu <xigu@marvell.com>
|
||||
|
||||
Some PCIe devices do not support LOS, and will cause timeouts if the
|
||||
root complex forces the LOS state. This patch disables the LOS state
|
||||
by default.
|
||||
|
||||
This is part of fixing bug
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=196339, this commit was
|
||||
reported as the user to be important to get a Intel 7260 mini-PCIe
|
||||
WiFi card working.
|
||||
|
||||
Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
|
||||
Signed-off-by: Victor Gu <xigu@marvell.com>
|
||||
Reviewed-by: Evan Wang <xswang@marvell.com>
|
||||
Reviewed-by: Nadav Haklai <nadavh@marvell.com>
|
||||
[Thomas: tweak commit log.]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
drivers/pci/host/pci-aardvark.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/pci/host/pci-aardvark.c
|
||||
+++ b/drivers/pci/host/pci-aardvark.c
|
||||
@@ -368,8 +368,7 @@ static void advk_pcie_setup_hw(struct ad
|
||||
|
||||
advk_pcie_wait_for_link(pcie);
|
||||
|
||||
- reg = PCIE_CORE_LINK_L0S_ENTRY |
|
||||
- (1 << PCIE_CORE_LINK_WIDTH_SHIFT);
|
||||
+ reg = (1 << PCIE_CORE_LINK_WIDTH_SHIFT);
|
||||
advk_writel(pcie, reg, PCIE_CORE_LINK_CTRL_STAT_REG);
|
||||
|
||||
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
|
||||
@ -10,7 +10,7 @@ This reverts commit c8e144f8ab00e6c4a070a932ef9c57db09aa41cf.
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -843,6 +843,7 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -839,6 +839,7 @@ static int advk_pcie_probe(struct platfo
|
||||
struct device *dev = &pdev->dev;
|
||||
struct advk_pcie *pcie;
|
||||
struct resource *res;
|
||||
@ -18,7 +18,7 @@ This reverts commit c8e144f8ab00e6c4a070a932ef9c57db09aa41cf.
|
||||
struct pci_host_bridge *bridge;
|
||||
int ret, irq;
|
||||
|
||||
@@ -896,13 +897,22 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -892,13 +893,22 @@ static int advk_pcie_probe(struct platfo
|
||||
bridge->map_irq = of_irq_parse_and_map_pci;
|
||||
bridge->swizzle_irq = pci_common_swizzle;
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE |
|
||||
(PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ <<
|
||||
PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT);
|
||||
@@ -838,6 +841,58 @@ out_release_res:
|
||||
@@ -834,6 +837,58 @@ out_release_res:
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
static int advk_pcie_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -912,6 +967,9 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -908,6 +963,9 @@ static int advk_pcie_probe(struct platfo
|
||||
list_for_each_entry(child, &bus->children, node)
|
||||
pcie_bus_configure_settings(child);
|
||||
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
From patchwork Thu Sep 28 12:58:36 2017
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [v2,5/7] PCI: aardvark: disable LOS state by default
|
||||
X-Patchwork-Submitter: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
X-Patchwork-Id: 819590
|
||||
Message-Id: <20170928125838.11887-6-thomas.petazzoni@free-electrons.com>
|
||||
To: Bjorn Helgaas <bhelgaas@google.com>, linux-pci@vger.kernel.org
|
||||
Cc: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
|
||||
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>, Gregory Clement
|
||||
<gregory.clement@free-electrons.com>,
|
||||
Nadav Haklai <nadavh@marvell.com>, Hanna Hawa <hannah@marvell.com>,
|
||||
Yehuda Yitschak <yehuday@marvell.com>,
|
||||
linux-arm-kernel@lists.infradead.org, Antoine Tenart
|
||||
<antoine.tenart@free-electrons.com>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
|
||||
<miquel.raynal@free-electrons.com>, Victor Gu <xigu@marvell.com>,
|
||||
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Thu, 28 Sep 2017 14:58:36 +0200
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
List-Id: <linux-pci.vger.kernel.org>
|
||||
|
||||
From: Victor Gu <xigu@marvell.com>
|
||||
|
||||
Some PCIe devices do not support LOS, and will cause timeouts if the
|
||||
root complex forces the LOS state. This patch disables the LOS state
|
||||
by default.
|
||||
|
||||
This is part of fixing bug
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=196339, this commit was
|
||||
reported as the user to be important to get a Intel 7260 mini-PCIe
|
||||
WiFi card working.
|
||||
|
||||
Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
|
||||
Signed-off-by: Victor Gu <xigu@marvell.com>
|
||||
Reviewed-by: Evan Wang <xswang@marvell.com>
|
||||
Reviewed-by: Nadav Haklai <nadavh@marvell.com>
|
||||
[Thomas: tweak commit log.]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
drivers/pci/controller/pci-aardvark.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -324,8 +324,7 @@ static void advk_pcie_setup_hw(struct ad
|
||||
|
||||
advk_pcie_wait_for_link(pcie);
|
||||
|
||||
- reg = PCIE_CORE_LINK_L0S_ENTRY |
|
||||
- (1 << PCIE_CORE_LINK_WIDTH_SHIFT);
|
||||
+ reg = (1 << PCIE_CORE_LINK_WIDTH_SHIFT);
|
||||
advk_writel(pcie, reg, PCIE_CORE_LINK_CTRL_STAT_REG);
|
||||
|
||||
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -1599,6 +1599,14 @@ unsigned ata_exec_internal_sg(struct ata
|
||||
@@ -1598,6 +1598,14 @@ unsigned ata_exec_internal_sg(struct ata
|
||||
return AC_ERR_SYSTEM;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
/* initialize internal qc */
|
||||
|
||||
/* XXX: Tag 0 is used for drivers with legacy EH as some
|
||||
@@ -5131,6 +5139,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -5130,6 +5138,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
|
||||
return NULL;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
/* libsas case */
|
||||
if (ap->flags & ATA_FLAG_SAS_HOST) {
|
||||
tag = ata_sas_allocate_tag(ap);
|
||||
@@ -5176,6 +5187,8 @@ void ata_qc_free(struct ata_queued_cmd *
|
||||
@@ -5175,6 +5186,8 @@ void ata_qc_free(struct ata_queued_cmd *
|
||||
qc->tag = ATA_TAG_POISON;
|
||||
if (ap->flags & ATA_FLAG_SAS_HOST)
|
||||
ata_sas_free_tag(tag, ap);
|
||||
@ -36,7 +36,7 @@
|
||||
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -919,6 +919,8 @@ struct ata_port_operations {
|
||||
@@ -922,6 +922,8 @@ struct ata_port_operations {
|
||||
void (*qc_prep)(struct ata_queued_cmd *qc);
|
||||
unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
|
||||
bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
/*
|
||||
* Configuration and exception handling
|
||||
@@ -1009,6 +1011,9 @@ struct ata_port_operations {
|
||||
@@ -1012,6 +1014,9 @@ struct ata_port_operations {
|
||||
void (*phy_reset)(struct ata_port *ap);
|
||||
void (*eng_timeout)(struct ata_port *ap);
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
|
||||
|
||||
--- a/include/linux/mtd/rawnand.h
|
||||
+++ b/include/linux/mtd/rawnand.h
|
||||
@@ -1016,6 +1016,7 @@ static inline void *nand_get_manufacture
|
||||
@@ -1014,6 +1014,7 @@ static inline void *nand_get_manufacture
|
||||
#define NAND_MFR_SANDISK 0x45
|
||||
#define NAND_MFR_INTEL 0x89
|
||||
#define NAND_MFR_ATO 0x9b
|
||||
|
||||
41
target/linux/ramips/dts/mt7621_xiaomi_mi-router-ac2100.dts
Normal file
41
target/linux/ramips/dts/mt7621_xiaomi_mi-router-ac2100.dts
Normal file
@ -0,0 +1,41 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7621_xiaomi_router-ac2100.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "xiaomi,mi-router-ac2100", "mediatek,mt7621-soc";
|
||||
model = "Xiaomi Mi Router AC2100";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_status_yellow;
|
||||
led-failsafe = &led_status_yellow;
|
||||
led-running = &led_status_blue;
|
||||
led-upgrade = &led_status_blue;
|
||||
label-mac-device = &gmac0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wan_yellow {
|
||||
label = "mi-router-ac2100:yellow:wan";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan_blue {
|
||||
label = "mi-router-ac2100:blue:wan";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_yellow: status_yellow {
|
||||
label = "mi-router-ac2100:yellow:status";
|
||||
gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_blue: status_blue {
|
||||
label = "mi-router-ac2100:blue:status";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
173
target/linux/ramips/dts/mt7621_xiaomi_mir4.dts
Normal file
173
target/linux/ramips/dts/mt7621_xiaomi_mir4.dts
Normal file
@ -0,0 +1,173 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7621.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
compatible = "xiaomi,mir4", "mediatek,mt7621-soc";
|
||||
model = "Xiaomi Mi Router 4";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_status_yellow;
|
||||
led-failsafe = &led_status_red;
|
||||
led-running = &led_status_blue;
|
||||
led-upgrade = &led_status_yellow;
|
||||
label-mac-device = &gmac0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_status_red: status_red {
|
||||
label = "mir4:red:status";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_blue: status_blue {
|
||||
label = "mir4:blue:status";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_yellow: status_yellow {
|
||||
label = "mir4:yellow:status";
|
||||
gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
|
||||
minet {
|
||||
label = "minet";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "Bootloader";
|
||||
reg = <0x0 0x80000>;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
label = "Config";
|
||||
reg = <0x80000 0x40000>;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "Bdata";
|
||||
reg = <0xc0000 0x40000>;
|
||||
};
|
||||
|
||||
factory: partition@100000 {
|
||||
label = "factory";
|
||||
reg = <0x100000 0x40000>;
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "crash";
|
||||
reg = <0x140000 0x40000>;
|
||||
};
|
||||
|
||||
partition@180000 {
|
||||
label = "crash_syslog";
|
||||
reg = <0x180000 0x40000>;
|
||||
};
|
||||
|
||||
partition@1c0000 {
|
||||
label = "reserved0";
|
||||
reg = <0x1c0000 0x40000>;
|
||||
};
|
||||
|
||||
/* uboot expects to find kernels at 0x200000 & 0x600000
|
||||
* referred to as system 1 & system 2 respectively.
|
||||
* a kernel is considered suitable for handing control over
|
||||
* if its linux magic number exists & uImage CRC are correct.
|
||||
* If either of those conditions fail, a matching sys'n'_fail flag
|
||||
* is set in uboot env & a restart performed in the hope that the
|
||||
* alternate kernel is okay.
|
||||
* if neither kernel checksums ok and both are marked failed, system 2
|
||||
* is booted anyway.
|
||||
*
|
||||
* Note uboot's tftp flash install writes the transferred
|
||||
* image to both kernel partitions.
|
||||
*/
|
||||
|
||||
partition@200000 {
|
||||
label = "kernel_stock";
|
||||
reg = <0x200000 0x400000>;
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
label = "kernel";
|
||||
reg = <0x600000 0x400000>;
|
||||
};
|
||||
|
||||
/* ubi partition is the result of squashing
|
||||
* next consecutive stock partitions:
|
||||
* - rootfs0 (rootfs partition for stock kernel0),
|
||||
* - rootfs1 (rootfs partition for stock failsafe kernel1),
|
||||
* - overlay (used as ubi overlay in stock fw)
|
||||
* resulting 117,5MiB space for packages.
|
||||
*/
|
||||
|
||||
partition@a00000 {
|
||||
label = "ubi";
|
||||
reg = <0xa00000 0x7580000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
compatible = "pci14c3,7603";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x0000>;
|
||||
ieee80211-freq-limit = <2400000 2500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
wifi@0,0 {
|
||||
compatible = "pci14c3,7662";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x8000>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
mtd-mac-address = <&factory 0xe000>;
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
groups = "jtag", "uart2", "uart3", "wdt";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
@ -1,10 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7621.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "mt7621_xiaomi_router-ac2100.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "xiaomi,redmi-router-ac2100", "mediatek,mt7621-soc";
|
||||
@ -18,10 +15,6 @@
|
||||
label-mac-device = &gmac0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@ -45,136 +38,4 @@
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "Bootloader";
|
||||
reg = <0x0 0x80000>;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
label = "Config";
|
||||
reg = <0x80000 0x40000>;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "Bdata";
|
||||
reg = <0xc0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
factory: partition@100000 {
|
||||
label = "factory";
|
||||
reg = <0x100000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "crash";
|
||||
reg = <0x140000 0x40000>;
|
||||
};
|
||||
|
||||
partition@180000 {
|
||||
label = "crash_syslog";
|
||||
reg = <0x180000 0x40000>;
|
||||
};
|
||||
|
||||
partition@1c0000 {
|
||||
label = "reserved0";
|
||||
reg = <0x1c0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/* We keep stock xiaomi firmware (kernel0) here */
|
||||
partition@200000 {
|
||||
label = "kernel_stock";
|
||||
reg = <0x200000 0x400000>;
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
label = "kernel";
|
||||
reg = <0x600000 0x400000>;
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
label = "ubi";
|
||||
reg = <0xa00000 0x7580000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x8000>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x0000>;
|
||||
ieee80211-freq-limit = <2400000 2500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
mtd-mac-address = <&factory 0xe000>;
|
||||
};
|
||||
|
||||
&switch0 {
|
||||
ports {
|
||||
port@0 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
mtd-mac-address = <&factory 0xe006>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
status = "okay";
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
status = "okay";
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
status = "okay";
|
||||
label = "lan3";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
groups = "uart2", "uart3", "wdt";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
146
target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi
Normal file
146
target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi
Normal file
@ -0,0 +1,146 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "mt7621.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "Bootloader";
|
||||
reg = <0x0 0x80000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
label = "Config";
|
||||
reg = <0x80000 0x40000>;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "Bdata";
|
||||
reg = <0xc0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
factory: partition@100000 {
|
||||
label = "factory";
|
||||
reg = <0x100000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "crash";
|
||||
reg = <0x140000 0x40000>;
|
||||
};
|
||||
|
||||
partition@180000 {
|
||||
label = "crash_syslog";
|
||||
reg = <0x180000 0x40000>;
|
||||
};
|
||||
|
||||
partition@1c0000 {
|
||||
label = "reserved0";
|
||||
reg = <0x1c0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/* We keep stock xiaomi firmware (kernel0) here */
|
||||
partition@200000 {
|
||||
label = "kernel_stock";
|
||||
reg = <0x200000 0x400000>;
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
label = "kernel";
|
||||
reg = <0x600000 0x400000>;
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
label = "ubi";
|
||||
reg = <0xa00000 0x7580000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x8000>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x0000>;
|
||||
ieee80211-freq-limit = <2400000 2500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
mtd-mac-address = <&factory 0xe000>;
|
||||
};
|
||||
|
||||
&switch0 {
|
||||
ports {
|
||||
port@0 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
mtd-mac-address = <&factory 0xe006>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
status = "okay";
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
status = "okay";
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
status = "okay";
|
||||
label = "lan3";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
groups = "uart2", "uart3", "wdt";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
@ -970,13 +970,45 @@ define Device/xiaomi_mir3p
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_mir3p
|
||||
|
||||
define Device/xiaomi_redmi-router-ac2100
|
||||
define Device/xiaomi_mir4
|
||||
$(Device/uimage-lzma-loader)
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 124416k
|
||||
UBINIZE_OPTS := -E 5
|
||||
IMAGES += kernel1.bin rootfs0.bin
|
||||
IMAGE/kernel1.bin := append-kernel
|
||||
IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := Mi Router 4
|
||||
DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-openssl uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_mir4
|
||||
|
||||
define Device/xiaomi_mi-router-ac2100
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 120320k
|
||||
UBINIZE_OPTS := -E 5
|
||||
IMAGES += kernel1.bin rootfs0.bin
|
||||
IMAGE/kernel1.bin := append-kernel
|
||||
IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := Mi Router AC2100
|
||||
DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e wpad-openssl uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_mi-router-ac2100
|
||||
|
||||
define Device/xiaomi_redmi-router-ac2100
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 120320k
|
||||
UBINIZE_OPTS := -E 5
|
||||
IMAGES += kernel1.bin rootfs0.bin factory.bin
|
||||
IMAGE/kernel1.bin := append-kernel
|
||||
IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
|
||||
|
||||
@ -78,6 +78,9 @@ tplink,re650-v1)
|
||||
xzwifi,creativebox-v1)
|
||||
ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "wan"
|
||||
;;
|
||||
xiaomi,mi-router-ac2100)
|
||||
ucidef_set_led_netdev "wan" "wan" "$boardname:blue:wan" "wan"
|
||||
;;
|
||||
xiaomi,redmi-router-ac2100)
|
||||
ucidef_set_led_netdev "wan" "wan" "$boardname:white:wan" "wan"
|
||||
;;
|
||||
|
||||
@ -21,7 +21,9 @@ ramips_setup_interfaces()
|
||||
;;
|
||||
gehua,ghl-r-001|\
|
||||
hiwifi,hc5962|\
|
||||
xiaomi,mir4|\
|
||||
xiaomi,mir3p|\
|
||||
xiaomi,mi-router-ac2100|\
|
||||
xiaomi,redmi-router-ac2100)
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
|
||||
;;
|
||||
|
||||
@ -55,6 +55,8 @@ platform_do_upgrade() {
|
||||
netis,wf2881|\
|
||||
xiaomi,mir3g|\
|
||||
xiaomi,mir3p|\
|
||||
xiaomi,mir4|\
|
||||
xiaomi,mi-router-ac2100|\
|
||||
xiaomi,redmi-router-ac2100)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
* selected and we have 256 byte pagesize fallback to software ECC
|
||||
--- a/include/linux/mtd/rawnand.h
|
||||
+++ b/include/linux/mtd/rawnand.h
|
||||
@@ -862,6 +862,7 @@ struct nand_manufacturer_ops {
|
||||
@@ -860,6 +860,7 @@ struct nand_manufacturer_ops {
|
||||
* structure which is shared among multiple independent
|
||||
* devices.
|
||||
* @priv: [OPTIONAL] pointer to private chip data
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
* @manufacturer: [INTERN] Contains manufacturer information
|
||||
*/
|
||||
|
||||
@@ -885,6 +886,9 @@ struct nand_chip {
|
||||
@@ -883,6 +884,9 @@ struct nand_chip {
|
||||
int(*waitfunc)(struct mtd_info *mtd, struct nand_chip *this);
|
||||
int (*erase)(struct mtd_info *mtd, int page);
|
||||
int (*scan_bbt)(struct mtd_info *mtd);
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
/* Invalidate page cache */
|
||||
--- a/include/linux/mtd/rawnand.h
|
||||
+++ b/include/linux/mtd/rawnand.h
|
||||
@@ -897,6 +897,9 @@ struct nand_chip {
|
||||
@@ -895,6 +895,9 @@ struct nand_chip {
|
||||
int (*setup_data_interface)(struct mtd_info *mtd, int chipnr,
|
||||
const struct nand_data_interface *conf);
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
ARCH:=arm
|
||||
BOARD:=sunxi
|
||||
BOARDNAME:=Allwinner A1x/A20/A3x/R40
|
||||
BOARDNAME:=Allwinner A1x/A20/A3x/H3/H5/R40
|
||||
FEATURES:=fpu usb ext4 display rtc squashfs
|
||||
SUBTARGETS:=cortexa8 cortexa7 cortexa53
|
||||
MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
|
||||
|
||||
@ -8,6 +8,6 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
ARCH:=aarch64
|
||||
BOARDNAME:=Allwinner A64
|
||||
BOARDNAME:=Allwinner A64/H5
|
||||
CPU_TYPE:=cortex-a53
|
||||
KERNELNAME:=Image dtbs
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user