mirror of
https://github.com/padavanonly/gl-mt7981.git
synced 2025-12-16 09:09:08 +00:00
sync
This commit is contained in:
parent
3a1248c62f
commit
be43a1fb06
5533
7986.config
Normal file
5533
7986.config
Normal file
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
||||
obj-m += conninfra.o
|
||||
Binary file not shown.
@ -5,12 +5,11 @@
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=conninfra
|
||||
PKG_VERSION:=
|
||||
PKG_VERSION:=bbf588
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
||||
PKG_MAINTAINER:=Kun-Ze Syue<kun-ze.syue@mediatek.com>
|
||||
|
||||
@ -22,6 +21,8 @@ PKG_KCONFIG:= \
|
||||
FPGA_EARLY_PORTING \
|
||||
CONNINFRA_AUTO_UP
|
||||
|
||||
PKG_CONFIG_DEPENDS:=$(foreach c, $(PKG_KCONFIG),$(if $(CONFIG_$c),CONFIG_$(c)))
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
# Specify package information for this program.
|
||||
66
package/conninfra/src/Makefile
Normal file
66
package/conninfra/src/Makefile
Normal file
@ -0,0 +1,66 @@
|
||||
###############################################################################
|
||||
# Necessary Check
|
||||
|
||||
#ifeq ($(AUTOCONF_H),)
|
||||
# $(error AUTOCONF_H is not defined)
|
||||
#endif
|
||||
|
||||
#ccflags-y += -imacros $(AUTOCONF_H)
|
||||
|
||||
# Force build fail on modpost warning
|
||||
KBUILD_MODPOST_FAIL_ON_WARNINGS := y
|
||||
|
||||
###############################################################################
|
||||
ccflags-y += -Werror
|
||||
ccflags-y += -Wno-error=format
|
||||
ccflags-y += -Wno-error=format-extra-args
|
||||
ccflags-y += -Wframe-larger-than=1024
|
||||
|
||||
###############################################################################
|
||||
MODULE_NAME := conninfra
|
||||
obj-m += $(MODULE_NAME).o
|
||||
|
||||
###############################################################################
|
||||
# common_main
|
||||
###############################################################################
|
||||
ccflags-y += \
|
||||
-I$(SUBDIRS)/include \
|
||||
-I$(SUBDIRS)/base/include \
|
||||
-I$(SUBDIRS)/core/include \
|
||||
-I$(SUBDIRS)/conf/include \
|
||||
-I$(SUBDIRS)/platform/include
|
||||
|
||||
$(MODULE_NAME)-objs += base/ring.o
|
||||
$(MODULE_NAME)-objs += base/osal.o
|
||||
$(MODULE_NAME)-objs += base/msg_thread.o
|
||||
$(MODULE_NAME)-objs += core/conninfra_core.o
|
||||
$(MODULE_NAME)-objs += src/conninfra_dev.o
|
||||
$(MODULE_NAME)-objs += src/conninfra.o
|
||||
$(MODULE_NAME)-objs += platform/consys_hw.o
|
||||
$(MODULE_NAME)-objs += platform/consys_hw_plat_data.o
|
||||
$(MODULE_NAME)-objs += platform/pmic_mng.o
|
||||
$(MODULE_NAME)-objs += platform/emi_mng.o
|
||||
$(MODULE_NAME)-objs += platform/consys_reg_mng.o
|
||||
|
||||
# By Plaftfrom
|
||||
# MT7986
|
||||
ifeq ($(CONFIG_MTK_CONNINFRA_APSOC_MT7986),y)
|
||||
ccflags-y += \
|
||||
-I$(SUBDIRS)/platform/mt7986/include -DCONNINFRA_APSOC_MT7986
|
||||
$(MODULE_NAME)-objs += platform/mt7986/mt7986.o
|
||||
$(MODULE_NAME)-objs += platform/mt7986/mt7986_pmic.o
|
||||
$(MODULE_NAME)-objs += platform/mt7986/mt7986_consys_reg.o
|
||||
$(MODULE_NAME)-objs += platform/mt7986/mt7986_pos.o
|
||||
$(MODULE_NAME)-objs += platform/mt7986/mt7986_emi.o
|
||||
endif
|
||||
|
||||
# MT7981
|
||||
ifeq ($(CONFIG_MTK_CONNINFRA_APSOC_MT7981),y)
|
||||
ccflags-y += \
|
||||
-I$(SUBDIRS)/platform/mt7981/include -DCONNINFRA_APSOC_MT7981
|
||||
$(MODULE_NAME)-objs += platform/mt7981/mt7981.o
|
||||
$(MODULE_NAME)-objs += platform/mt7981/mt7981_pmic.o
|
||||
$(MODULE_NAME)-objs += platform/mt7981/mt7981_consys_reg.o
|
||||
$(MODULE_NAME)-objs += platform/mt7981/mt7981_pos.o
|
||||
$(MODULE_NAME)-objs += platform/mt7981/mt7981_emi.o
|
||||
endif
|
||||
202
package/conninfra/src/NOTICE
Normal file
202
package/conninfra/src/NOTICE
Normal file
@ -0,0 +1,202 @@
|
||||
The GNU General Public License (GPL)
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU
|
||||
General Public License is intended to guarantee your freedom to share and change free software--to make sure the
|
||||
software is free for all its users. This General Public License applies to most of the Free Software Foundation's
|
||||
software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is
|
||||
covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make
|
||||
sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you
|
||||
receive source code or can get it if you want it, that you can change the software or use pieces of it in new free
|
||||
programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to
|
||||
surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the
|
||||
software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all
|
||||
the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them
|
||||
these terms so they know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty
|
||||
for this free software. If the software is modified by someone else and passed on, we want its recipients to know that
|
||||
what they have is not the original, so that any problems introduced by others will not reflect on the original authors'
|
||||
reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors
|
||||
of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification follow.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it
|
||||
may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or
|
||||
work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to
|
||||
say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into
|
||||
another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not covered by this License; they are outside its
|
||||
scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents
|
||||
constitute a work based on the Program (independent of having been made by running the Program). Whether that is true
|
||||
depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided
|
||||
that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of
|
||||
warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other
|
||||
recipients of the Program a copy of this License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection
|
||||
in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and
|
||||
copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of
|
||||
these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any
|
||||
change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the
|
||||
Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this
|
||||
License.
|
||||
|
||||
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for
|
||||
such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright
|
||||
notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may
|
||||
redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if
|
||||
the Program itself is interactive but does not normally print such an announcement, your work based on the Program is
|
||||
not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the
|
||||
Program, and can be reasonably considered independent and separate works in themselves, then this License, and its
|
||||
terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same
|
||||
sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part
|
||||
regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you;
|
||||
rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the
|
||||
Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the
|
||||
Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms
|
||||
of Sections 1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than
|
||||
your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source
|
||||
code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange;
|
||||
or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This
|
||||
alternative is allowed only for noncommercial distribution and only if you received the program in object code or
|
||||
executable form with such an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for making modifications to it. For an executable work,
|
||||
complete source code means all the source code for all modules it contains, plus any associated interface definition
|
||||
files, plus the scripts used to control compilation and installation of the executable. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally distributed (in either source or binary form)
|
||||
with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless
|
||||
that component itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering access to copy from a designated place, then offering
|
||||
equivalent access to copy the source code from the same place counts as distribution of the source code, even though
|
||||
third parties are not compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies, or rights, from you under this License will not
|
||||
have their licenses terminated so long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you
|
||||
permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do
|
||||
not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you
|
||||
indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or
|
||||
modifying the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a
|
||||
license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You
|
||||
may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not
|
||||
responsible for enforcing compliance by third parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to
|
||||
patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the
|
||||
conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as
|
||||
to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence
|
||||
you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution
|
||||
of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy
|
||||
both it and this License would be to refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the
|
||||
section is intended to apply and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest
|
||||
validity of any such claims; this section has the sole purpose of protecting the integrity of the free software
|
||||
distribution system, which is implemented by public license practices. Many people have made generous contributions to
|
||||
the wide range of software distributed through that system in reliance on consistent application of that system; it is
|
||||
up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee
|
||||
cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted
|
||||
interfaces, the original copyright holder who places the Program under this License may add an explicit geographical
|
||||
distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or
|
||||
concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program specifies a version number of this License which
|
||||
applies to it and "any later version", you have the option of following the terms and conditions either of that version
|
||||
or of any later version published by the Free Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are
|
||||
different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation,
|
||||
write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two
|
||||
goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of
|
||||
software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
|
||||
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
|
||||
CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
|
||||
WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
|
||||
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
|
||||
LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
|
||||
THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
|
||||
OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
|
||||
|
||||
141
package/conninfra/src/base/include/msg_thread.h
Normal file
141
package/conninfra/src/base/include/msg_thread.h
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _BASE_MSG_THREAD_H_
|
||||
#define _BASE_MSG_THREAD_H_
|
||||
|
||||
#include "osal.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#define MSG_THREAD_OP_DATA_SIZE 8
|
||||
#define MSG_THREAD_OP_BUF_SIZE 64
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct msg_op_data {
|
||||
unsigned int op_id; /* Event ID */
|
||||
unsigned int info_bit; /* Reserved */
|
||||
size_t op_data[MSG_THREAD_OP_DATA_SIZE]; /* OP Data */
|
||||
};
|
||||
|
||||
struct msg_op {
|
||||
struct msg_op_data op;
|
||||
OSAL_SIGNAL signal;
|
||||
int result;
|
||||
atomic_t ref_count;
|
||||
};
|
||||
|
||||
|
||||
struct msg_op_q {
|
||||
OSAL_SLEEPABLE_LOCK lock;
|
||||
unsigned int write;
|
||||
unsigned int read;
|
||||
unsigned int size;
|
||||
struct msg_op *queue[MSG_THREAD_OP_BUF_SIZE];
|
||||
};
|
||||
|
||||
typedef OSAL_OP_DAT msg_evt_op;
|
||||
typedef int(*msg_opid_func) (struct msg_op_data *);
|
||||
|
||||
struct msg_thread_ctx {
|
||||
OSAL_THREAD thread; /* core thread */
|
||||
OSAL_EVENT evt;
|
||||
|
||||
struct msg_op_q free_op_q; /* free op queue */
|
||||
struct msg_op_q active_op_q; /* active op queue */
|
||||
struct msg_op op_q_inst[MSG_THREAD_OP_BUF_SIZE]; /* real op instances */
|
||||
struct msg_op *cur_op; /* current op */
|
||||
|
||||
int op_func_size;
|
||||
const msg_opid_func *op_func;
|
||||
|
||||
struct osal_op_history op_history;
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define MSG_OP_TIMEOUT 20000
|
||||
|
||||
int msg_thread_init(struct msg_thread_ctx *ctx, const char *name,
|
||||
const msg_opid_func *func, int op_size);
|
||||
int msg_thread_deinit(struct msg_thread_ctx *ctx);
|
||||
|
||||
/* timeout:
|
||||
* 0: default value (by MSG_OP_TIMEOUT define)
|
||||
* >0: cutom timeout (ms)
|
||||
*/
|
||||
int msg_thread_send(struct msg_thread_ctx *ctx, int opid);
|
||||
int msg_thread_send_1(struct msg_thread_ctx *ctx, int opid,
|
||||
size_t param1);
|
||||
int msg_thread_send_2(struct msg_thread_ctx *ctx, int opid,
|
||||
size_t param1, size_t param2);
|
||||
|
||||
int msg_thread_send_wait(struct msg_thread_ctx *ctx, int opid,
|
||||
int timeout);
|
||||
int msg_thread_send_wait_1(struct msg_thread_ctx *ctx, int opid,
|
||||
int timeout, size_t param1);
|
||||
int msg_thread_send_wait_2(struct msg_thread_ctx *ctx, int opid,
|
||||
int timeout, size_t param1, size_t param2);
|
||||
int msg_thread_send_wait_3(struct msg_thread_ctx *ctx, int opid, int timeout, size_t param1,
|
||||
size_t param2,size_t param3);
|
||||
|
||||
int msg_thread_dump(struct msg_thread_ctx *ctx);
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _BASE_MSG_THREAD_H_ */
|
||||
399
package/conninfra/src/base/include/osal.h
Normal file
399
package/conninfra/src/base/include/osal.h
Normal file
@ -0,0 +1,399 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
|
||||
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _OSAL_H_
|
||||
#define _OSAL_H_
|
||||
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/wait.h>
|
||||
#include "ring.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define OS_BIT_OPS_SUPPORT 1
|
||||
|
||||
#ifndef MTK_CONN_BOOL_TRUE
|
||||
#define MTK_CONN_BOOL_FALSE ((MTK_CONN_BOOL) 0)
|
||||
#define MTK_CONN_BOOL_TRUE ((MTK_CONN_BOOL) 1)
|
||||
#endif
|
||||
|
||||
#define _osal_inline_ inline
|
||||
|
||||
#define MAX_THREAD_NAME_LEN 16
|
||||
#define MAX_HISTORY_NAME_LEN 16
|
||||
#define OSAL_OP_BUF_SIZE 64
|
||||
|
||||
|
||||
#if (defined(CONFIG_MTK_GMO_RAM_OPTIMIZE) && !defined(CONFIG_MTK_ENG_BUILD))
|
||||
#define OSAL_OP_DATA_SIZE 8
|
||||
#else
|
||||
#define OSAL_OP_DATA_SIZE 32
|
||||
#endif
|
||||
|
||||
#define DBG_LOG_STR_SIZE 256
|
||||
|
||||
#define osal_sizeof(x) sizeof(x)
|
||||
|
||||
#define osal_array_size(x) ARRAY_SIZE(x)
|
||||
|
||||
#ifndef NAME_MAX
|
||||
#define NAME_MAX 256
|
||||
#endif
|
||||
|
||||
#define WMT_OP_BIT(x) (0x1UL << x)
|
||||
#define WMT_OP_HIF_BIT WMT_OP_BIT(0)
|
||||
|
||||
#define GET_BIT_MASK(value, mask) ((value) & (mask))
|
||||
#define SET_BIT_MASK(pdest, value, mask) (*(pdest) = (GET_BIT_MASK(*(pdest), ~(mask)) | GET_BIT_MASK(value, mask)))
|
||||
#define GET_BIT_RANGE(data, end, begin) ((data) & GENMASK(end, begin))
|
||||
#define SET_BIT_RANGE(pdest, data, end, begin) (SET_BIT_MASK(pdest, data, GENMASK(end, begin)))
|
||||
|
||||
#define RB_LATEST(prb) ((prb)->write - 1)
|
||||
#define RB_SIZE(prb) ((prb)->size)
|
||||
#define RB_MASK(prb) (RB_SIZE(prb) - 1)
|
||||
#define RB_COUNT(prb) ((prb)->write - (prb)->read)
|
||||
#define RB_FULL(prb) (RB_COUNT(prb) >= RB_SIZE(prb))
|
||||
#define RB_EMPTY(prb) ((prb)->write == (prb)->read)
|
||||
|
||||
#define RB_INIT(prb, qsize) \
|
||||
do { \
|
||||
(prb)->read = (prb)->write = 0; \
|
||||
(prb)->size = (qsize); \
|
||||
} while (0)
|
||||
|
||||
#define RB_PUT(prb, value) \
|
||||
do { \
|
||||
if (!RB_FULL(prb)) { \
|
||||
(prb)->queue[(prb)->write & RB_MASK(prb)] = value; \
|
||||
++((prb)->write); \
|
||||
} \
|
||||
else { \
|
||||
pr_warn("RB is full!"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define RB_GET(prb, value) \
|
||||
do { \
|
||||
if (!RB_EMPTY(prb)) { \
|
||||
value = (prb)->queue[(prb)->read & RB_MASK(prb)]; \
|
||||
++((prb)->read); \
|
||||
if (RB_EMPTY(prb)) { \
|
||||
(prb)->read = (prb)->write = 0; \
|
||||
} \
|
||||
} \
|
||||
else { \
|
||||
value = NULL; \
|
||||
pr_warn("RB is empty!"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define RB_GET_LATEST(prb, value) \
|
||||
do { \
|
||||
if (!RB_EMPTY(prb)) { \
|
||||
value = (prb)->queue[RB_LATEST(prb) & RB_MASK(prb)]; \
|
||||
if (RB_EMPTY(prb)) { \
|
||||
(prb)->read = (prb)->write = 0; \
|
||||
} \
|
||||
} \
|
||||
else { \
|
||||
value = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
typedef int MTK_CONN_BOOL;
|
||||
|
||||
typedef int(*P_COND) (void *);
|
||||
|
||||
typedef struct _OSAL_UNSLEEPABLE_LOCK_ {
|
||||
spinlock_t lock;
|
||||
unsigned long flag;
|
||||
} OSAL_UNSLEEPABLE_LOCK, *P_OSAL_UNSLEEPABLE_LOCK;
|
||||
|
||||
typedef struct _OSAL_SLEEPABLE_LOCK_ {
|
||||
struct mutex lock;
|
||||
} OSAL_SLEEPABLE_LOCK, *P_OSAL_SLEEPABLE_LOCK;
|
||||
|
||||
typedef struct _OSAL_SIGNAL_ {
|
||||
struct completion comp;
|
||||
unsigned int timeoutValue;
|
||||
unsigned int timeoutExtension; /* max number of timeout caused by thread not able to acquire CPU */
|
||||
} OSAL_SIGNAL, *P_OSAL_SIGNAL;
|
||||
|
||||
typedef struct _OSAL_EVENT_ {
|
||||
wait_queue_head_t waitQueue;
|
||||
unsigned int timeoutValue;
|
||||
int waitFlag;
|
||||
|
||||
} OSAL_EVENT, *P_OSAL_EVENT;
|
||||
|
||||
/* Data collected from sched_entity and sched_statistics */
|
||||
typedef struct _OSAL_THREAD_SCHEDSTATS_ {
|
||||
unsigned long long time; /* when marked: the profiling start time(ms), when unmarked: total duration(ms) */
|
||||
unsigned long long exec; /* time spent in exec (sum_exec_runtime) */
|
||||
unsigned long long runnable; /* time spent in run-queue while not being scheduled (wait_sum) */
|
||||
unsigned long long iowait; /* time spent waiting for I/O (iowait_sum) */
|
||||
} OSAL_THREAD_SCHEDSTATS, *P_OSAL_THREAD_SCHEDSTATS;
|
||||
|
||||
typedef struct _OSAL_THREAD_ {
|
||||
struct task_struct *pThread;
|
||||
void *pThreadFunc;
|
||||
void *pThreadData;
|
||||
char threadName[MAX_THREAD_NAME_LEN];
|
||||
} OSAL_THREAD, *P_OSAL_THREAD;
|
||||
|
||||
|
||||
typedef struct _OSAL_FIFO_ {
|
||||
/*fifo definition */
|
||||
void *pFifoBody;
|
||||
spinlock_t fifoSpinlock;
|
||||
/*fifo operations */
|
||||
int (*FifoInit)(struct _OSAL_FIFO_ *pFifo, unsigned char *buf, unsigned int);
|
||||
int (*FifoDeInit)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoReset)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoSz)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoAvailSz)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoLen)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoIsEmpty)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoIsFull)(struct _OSAL_FIFO_ *pFifo);
|
||||
int (*FifoDataIn)(struct _OSAL_FIFO_ *pFifo, const void *buf, unsigned int len);
|
||||
int (*FifoDataOut)(struct _OSAL_FIFO_ *pFifo, void *buf, unsigned int len);
|
||||
} OSAL_FIFO, *P_OSAL_FIFO;
|
||||
|
||||
typedef struct firmware osal_firmware;
|
||||
|
||||
typedef struct _OSAL_OP_DAT {
|
||||
unsigned int opId; /* Event ID */
|
||||
unsigned int u4InfoBit; /* Reserved */
|
||||
size_t au4OpData[OSAL_OP_DATA_SIZE]; /* OP Data */
|
||||
} OSAL_OP_DAT, *P_OSAL_OP_DAT;
|
||||
|
||||
typedef struct _OSAL_LXOP_ {
|
||||
OSAL_OP_DAT op;
|
||||
OSAL_SIGNAL signal;
|
||||
int result;
|
||||
atomic_t ref_count;
|
||||
} OSAL_OP, *P_OSAL_OP;
|
||||
|
||||
typedef struct _OSAL_LXOP_Q {
|
||||
OSAL_SLEEPABLE_LOCK sLock;
|
||||
unsigned int write;
|
||||
unsigned int read;
|
||||
unsigned int size;
|
||||
P_OSAL_OP queue[OSAL_OP_BUF_SIZE];
|
||||
} OSAL_OP_Q, *P_OSAL_OP_Q;
|
||||
|
||||
typedef struct _OSAL_BIT_OP_VAR_ {
|
||||
unsigned long data;
|
||||
OSAL_UNSLEEPABLE_LOCK opLock;
|
||||
} OSAL_BIT_OP_VAR, *P_OSAL_BIT_OP_VAR;
|
||||
|
||||
typedef unsigned int (*P_OSAL_EVENT_CHECKER) (P_OSAL_THREAD pThread);
|
||||
|
||||
struct osal_op_history_entry {
|
||||
void *opbuf_address;
|
||||
unsigned int op_id;
|
||||
unsigned int opbuf_ref_count;
|
||||
unsigned int op_info_bit;
|
||||
size_t param_0;
|
||||
size_t param_1;
|
||||
size_t param_2;
|
||||
size_t param_3;
|
||||
unsigned long long ts;
|
||||
unsigned long usec;
|
||||
};
|
||||
|
||||
struct osal_op_history {
|
||||
struct ring ring_buffer;
|
||||
struct osal_op_history_entry *queue;
|
||||
spinlock_t lock;
|
||||
struct ring dump_ring_buffer;
|
||||
struct work_struct dump_work;
|
||||
unsigned char name[MAX_HISTORY_NAME_LEN];
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
void FlashRead(char *name,unsigned char *value, unsigned long offset, unsigned long size);
|
||||
void FlashWrite(char *name, unsigned char *p, unsigned long a, unsigned long b);
|
||||
|
||||
unsigned int osal_strlen(const char *str);
|
||||
int osal_strcmp(const char *dst, const char *src);
|
||||
int osal_strncmp(const char *dst, const char *src, unsigned int len);
|
||||
char *osal_strcpy(char *dst, const char *src);
|
||||
char *osal_strncpy(char *dst, const char *src, unsigned int len);
|
||||
char *osal_strcat(char *dst, const char *src);
|
||||
char *osal_strncat(char *dst, const char *src, unsigned int len);
|
||||
char *osal_strchr(const char *str, unsigned char c);
|
||||
char *osal_strsep(char **str, const char *c);
|
||||
int osal_strtol(const char *str, unsigned int adecimal, long *res);
|
||||
char *osal_strstr(char *str1, const char *str2);
|
||||
char *osal_strnstr(char *str1, const char *str2, int n);
|
||||
|
||||
void osal_bug_on(unsigned int val);
|
||||
|
||||
int osal_snprintf(char *buf, unsigned int len, const char *fmt, ...);
|
||||
|
||||
int osal_sprintf(char *str, const char *format, ...);
|
||||
void *osal_malloc(unsigned int size);
|
||||
void osal_free(const void *dst);
|
||||
void *osal_memset(void *buf, int i, unsigned int len);
|
||||
void *osal_memcpy(void *dst, const void *src, unsigned int len);
|
||||
void osal_memcpy_fromio(void *dst, const void *src, unsigned int len);
|
||||
void osal_memcpy_toio(void *dst, const void *src, unsigned int len);
|
||||
int osal_memcmp(const void *buf1, const void *buf2, unsigned int len);
|
||||
|
||||
int osal_sleep_ms(unsigned int ms);
|
||||
int osal_udelay(unsigned int us);
|
||||
int osal_usleep_range(unsigned long min, unsigned long max);
|
||||
|
||||
int osal_fifo_init(P_OSAL_FIFO pFifo, unsigned char *buffer, unsigned int size);
|
||||
void osal_fifo_deinit(P_OSAL_FIFO pFifo);
|
||||
int osal_fifo_reset(P_OSAL_FIFO pFifo);
|
||||
unsigned int osal_fifo_in(P_OSAL_FIFO pFifo, unsigned char *buffer,
|
||||
unsigned int size);
|
||||
unsigned int osal_fifo_out(P_OSAL_FIFO pFifo, unsigned char *buffer,
|
||||
unsigned int size);
|
||||
unsigned int osal_fifo_len(P_OSAL_FIFO pFifo);
|
||||
unsigned int osal_fifo_sz(P_OSAL_FIFO pFifo);
|
||||
unsigned int osal_fifo_avail(P_OSAL_FIFO pFifo);
|
||||
unsigned int osal_fifo_is_empty(P_OSAL_FIFO pFifo);
|
||||
unsigned int osal_fifo_is_full(P_OSAL_FIFO pFifo);
|
||||
|
||||
#if defined(CONFIG_PROVE_LOCKING)
|
||||
#define osal_unsleepable_lock_init(l) { spin_lock_init(&((l)->lock)); }
|
||||
#else
|
||||
int osal_unsleepable_lock_init(P_OSAL_UNSLEEPABLE_LOCK);
|
||||
#endif
|
||||
int osal_lock_unsleepable_lock(P_OSAL_UNSLEEPABLE_LOCK);
|
||||
int osal_unlock_unsleepable_lock(P_OSAL_UNSLEEPABLE_LOCK);
|
||||
int osal_unsleepable_lock_deinit(P_OSAL_UNSLEEPABLE_LOCK);
|
||||
|
||||
#if defined(CONFIG_PROVE_LOCKING)
|
||||
#define osal_sleepable_lock_init(l) { mutex_init(&((l)->lock)); }
|
||||
#else
|
||||
int osal_sleepable_lock_init(P_OSAL_SLEEPABLE_LOCK);
|
||||
#endif
|
||||
int osal_lock_sleepable_lock(P_OSAL_SLEEPABLE_LOCK);
|
||||
int osal_unlock_sleepable_lock(P_OSAL_SLEEPABLE_LOCK);
|
||||
int osal_trylock_sleepable_lock(P_OSAL_SLEEPABLE_LOCK);
|
||||
int osal_sleepable_lock_deinit(P_OSAL_SLEEPABLE_LOCK);
|
||||
|
||||
int osal_signal_init(P_OSAL_SIGNAL);
|
||||
int osal_wait_for_signal(P_OSAL_SIGNAL);
|
||||
int osal_wait_for_signal_timeout(P_OSAL_SIGNAL, P_OSAL_THREAD);
|
||||
int osal_raise_signal(P_OSAL_SIGNAL);
|
||||
int osal_signal_active_state(P_OSAL_SIGNAL pSignal);
|
||||
int osal_signal_deinit(P_OSAL_SIGNAL);
|
||||
|
||||
int osal_event_init(P_OSAL_EVENT);
|
||||
int osal_wait_for_event(P_OSAL_EVENT, P_COND, void*);
|
||||
int osal_wait_for_event_timeout(P_OSAL_EVENT, P_COND, void*);
|
||||
extern int osal_trigger_event(P_OSAL_EVENT);
|
||||
|
||||
int osal_event_deinit(P_OSAL_EVENT);
|
||||
long osal_wait_for_event_bit_set(P_OSAL_EVENT pEvent, unsigned long *pState, unsigned int bitOffset);
|
||||
long osal_wait_for_event_bit_clr(P_OSAL_EVENT pEvent, unsigned long *pState, unsigned int bitOffset);
|
||||
|
||||
int osal_thread_create(P_OSAL_THREAD);
|
||||
int osal_thread_run(P_OSAL_THREAD);
|
||||
int osal_thread_should_stop(P_OSAL_THREAD);
|
||||
int osal_thread_stop(P_OSAL_THREAD);
|
||||
/*int osal_thread_wait_for_event(P_OSAL_THREAD, P_OSAL_EVENT);*/
|
||||
int osal_thread_wait_for_event(P_OSAL_THREAD, P_OSAL_EVENT, P_OSAL_EVENT_CHECKER);
|
||||
/*check pOsalLxOp and OSAL_THREAD_SHOULD_STOP*/
|
||||
int osal_thread_destroy(P_OSAL_THREAD);
|
||||
int osal_thread_sched_mark(P_OSAL_THREAD, P_OSAL_THREAD_SCHEDSTATS schedstats);
|
||||
int osal_thread_sched_unmark(P_OSAL_THREAD pThread, P_OSAL_THREAD_SCHEDSTATS schedstats);
|
||||
|
||||
int osal_clear_bit(unsigned int bitOffset, P_OSAL_BIT_OP_VAR pData);
|
||||
int osal_set_bit(unsigned int bitOffset, P_OSAL_BIT_OP_VAR pData);
|
||||
int osal_test_bit(unsigned int bitOffset, P_OSAL_BIT_OP_VAR pData);
|
||||
int osal_test_and_clear_bit(unsigned int bitOffset, P_OSAL_BIT_OP_VAR pData);
|
||||
int osal_test_and_set_bit(unsigned int bitOffset, P_OSAL_BIT_OP_VAR pData);
|
||||
|
||||
int osal_gettimeofday(int *sec, int *usec);
|
||||
int osal_gettimeofday2(struct timeval *tv);
|
||||
|
||||
//int osal_printtimeofday(const unsigned char *prefix);
|
||||
void osal_get_local_time(unsigned long long *sec, unsigned long *nsec);
|
||||
unsigned long long osal_elapsed_us(unsigned long long ts, unsigned long usec);
|
||||
|
||||
void osal_buffer_dump(const unsigned char *buf, const unsigned char *title, unsigned int len, unsigned int limit);
|
||||
void osal_buffer_dump_data(const unsigned int *buf, const unsigned char *title, const unsigned int len, const unsigned int limit,
|
||||
const int flag);
|
||||
|
||||
unsigned int osal_op_get_id(P_OSAL_OP pOp);
|
||||
MTK_CONN_BOOL osal_op_is_wait_for_signal(P_OSAL_OP pOp);
|
||||
void osal_op_raise_signal(P_OSAL_OP pOp, int result);
|
||||
void osal_set_op_result(P_OSAL_OP pOp, int result);
|
||||
void osal_opq_dump(const char *qName, P_OSAL_OP_Q pOpQ);
|
||||
void osal_opq_dump_locked(const char *qName, P_OSAL_OP_Q pOpQ);
|
||||
MTK_CONN_BOOL osal_opq_has_op(P_OSAL_OP_Q pOpQ, P_OSAL_OP pOp);
|
||||
|
||||
int osal_ftrace_print(const char *str, ...);
|
||||
int osal_ftrace_print_ctrl(int flag);
|
||||
|
||||
void osal_dump_thread_state(const unsigned char *name);
|
||||
void osal_op_history_init(struct osal_op_history *log_history, int queue_size);
|
||||
void osal_op_history_save(struct osal_op_history *log_history, P_OSAL_OP pOp);
|
||||
void osal_op_history_print(struct osal_op_history *log_history, char *name);
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _OSAL_H_ */
|
||||
95
package/conninfra/src/base/include/ring.h
Normal file
95
package/conninfra/src/base/include/ring.h
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
#ifndef _RING_H_
|
||||
#define _RING_H_
|
||||
|
||||
struct ring {
|
||||
/* addr where ring buffer starts */
|
||||
void *base;
|
||||
/* addr storing the next writable pos, guaranteed to be >= read except when write overflow, but it's ok. */
|
||||
unsigned int write;
|
||||
/* addr storing the next readable pos, except when read == write as buffer empty */
|
||||
unsigned int read;
|
||||
/* must be power of 2 */
|
||||
unsigned int max_size;
|
||||
};
|
||||
|
||||
struct ring_segment {
|
||||
/* addr points into ring buffer for read/write */
|
||||
void *ring_pt;
|
||||
/* size to read/write */
|
||||
unsigned int sz;
|
||||
/* pos in external data buffer to read/write */
|
||||
unsigned int data_pos;
|
||||
/* the size to be read/write after this segment completed */
|
||||
unsigned int remain;
|
||||
};
|
||||
|
||||
void ring_init(void *base, unsigned int max_size, unsigned int read,
|
||||
unsigned int write, struct ring *ring);
|
||||
unsigned int ring_read_prepare(unsigned int sz, struct ring_segment *seg, struct ring *ring);
|
||||
#define ring_read_all_prepare(seg, ring) ring_read_prepare((ring)->max_size, seg, ring)
|
||||
unsigned int ring_write_prepare(unsigned int sz, struct ring_segment *seg, struct ring *ring);
|
||||
unsigned int ring_overwrite_prepare(unsigned int sz,
|
||||
struct ring_segment *seg, struct ring *ring);
|
||||
|
||||
/* making sure max_size is power of 2 */
|
||||
#define RING_VALIDATE_SIZE(max_size) WARN_ON(!max_size || (max_size & (max_size - 1)))
|
||||
|
||||
#define RING_EMPTY(ring) ((ring)->read == (ring)->write)
|
||||
/* equation works even when write overflow */
|
||||
#define RING_SIZE(ring) ((ring)->write - (ring)->read)
|
||||
#define RING_FULL(ring) (RING_SIZE(ring) == (ring)->max_size)
|
||||
#define RING_WRITE_REMAIN_SIZE(ring) ((ring)->max_size - RING_SIZE(ring))
|
||||
|
||||
#define RING_READ_FOR_EACH(_sz, _seg, _ring) \
|
||||
for (ring_read_prepare(_sz, &(_seg), _ring), \
|
||||
_ring_segment_prepare((_ring)->read, &(_seg), (_ring)); \
|
||||
(_seg).sz > 0; \
|
||||
_ring_read_commit(&(_seg), (_ring)), _ring_segment_prepare((_ring)->read, \
|
||||
&(_seg), (_ring)))
|
||||
|
||||
#define RING_READ_ALL_FOR_EACH(seg, ring) RING_READ_FOR_EACH((ring)->max_size, seg, ring)
|
||||
|
||||
#define RING_READ_FOR_EACH_ITEM(_sz, _seg, _ring) \
|
||||
for (ring_read_prepare(_sz, &(_seg), _ring), \
|
||||
_ring_segment_prepare_item((_ring)->read, &(_seg), (_ring)); \
|
||||
(_seg).sz > 0; \
|
||||
_ring_read_commit(&(_seg), (_ring)), _ring_segment_prepare_item((_ring)->read, \
|
||||
&(_seg), (_ring)))
|
||||
|
||||
#define RING_WRITE_FOR_EACH(_sz, _seg, _ring) \
|
||||
for (ring_write_prepare(_sz, &(_seg), _ring),\
|
||||
_ring_segment_prepare((_ring)->write, &(_seg), (_ring)); \
|
||||
(_seg).sz > 0; \
|
||||
_ring_write_commit(&(_seg), (_ring)), _ring_segment_prepare((_ring)->write, \
|
||||
&(_seg), (_ring)))
|
||||
|
||||
#define RING_OVERWRITE_FOR_EACH(_sz, _seg, _ring) \
|
||||
for (ring_overwrite_prepare(_sz, &(_seg), _ring), \
|
||||
_ring_segment_prepare((_ring)->write, &(_seg), (_ring)); \
|
||||
(_seg).sz > 0; \
|
||||
_ring_write_commit(&(_seg), (_ring)), _ring_segment_prepare((_ring)->write, \
|
||||
&(_seg), (_ring)))
|
||||
|
||||
void ring_dump(const char *title, struct ring *ring);
|
||||
void ring_dump_segment(const char *title, struct ring_segment *seg);
|
||||
|
||||
|
||||
/* ring Buffer Internal API */
|
||||
void _ring_segment_prepare(unsigned int from, struct ring_segment *seg, struct ring *ring);
|
||||
void _ring_segment_prepare_item(unsigned int from, struct ring_segment *seg, struct ring *ring);
|
||||
void _ring_read_commit(struct ring_segment *seg, struct ring *ring);
|
||||
void _ring_write_commit(struct ring_segment *seg, struct ring *ring);
|
||||
|
||||
#endif
|
||||
716
package/conninfra/src/base/msg_thread.c
Normal file
716
package/conninfra/src/base/msg_thread.c
Normal file
@ -0,0 +1,716 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
#include <linux/delay.h>
|
||||
#include "msg_thread.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
static void msg_opq_dump(const char *qName, struct msg_op_q *op_q);
|
||||
static void _msg_opq_dump(const char *qName, struct msg_op_q *op_q);
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define MSG_OP_SIZE(prb) ((prb)->size)
|
||||
#define MSG_OP_MASK(prb) (MSG_OP_SIZE(prb) - 1)
|
||||
#define MSG_OP_COUNT(prb) ((prb)->write - (prb)->read)
|
||||
#define MSG_OP_FULL(prb) (MSG_OP_COUNT(prb) >= MSG_OP_SIZE(prb))
|
||||
#define MSG_OP_EMPTY(prb) ((prb)->write == (prb)->read)
|
||||
|
||||
#define MSG_OP_INIT(prb, qsize) \
|
||||
do { \
|
||||
(prb)->read = (prb)->write = 0; \
|
||||
(prb)->size = (qsize); \
|
||||
} while (0)
|
||||
|
||||
#define MSG_OP_PUT(prb, value) \
|
||||
do { \
|
||||
if (!MSG_OP_FULL(prb)) { \
|
||||
(prb)->queue[(prb)->write & MSG_OP_MASK(prb)] = value; \
|
||||
++((prb)->write); \
|
||||
} \
|
||||
else { \
|
||||
pr_warn("Message queue is full.\n"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define MSG_OP_GET(prb, value) \
|
||||
do { \
|
||||
if (!MSG_OP_EMPTY(prb)) { \
|
||||
value = (prb)->queue[(prb)->read & MSG_OP_MASK(prb)]; \
|
||||
++((prb)->read); \
|
||||
if (MSG_OP_EMPTY(prb)) { \
|
||||
(prb)->read = (prb)->write = 0; \
|
||||
} \
|
||||
} \
|
||||
else { \
|
||||
value = NULL; \
|
||||
pr_warn("Message queue is empty.\n"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
#if defined(CONFIG_MTK_ENG_BUILD) || defined(CONFIG_MT_ENG_BUILD)
|
||||
static bool msg_evt_opq_has_op(struct msg_op_q *op_q, struct msg_op *op)
|
||||
{
|
||||
unsigned int rd;
|
||||
unsigned int wt;
|
||||
struct msg_op *tmp_op;
|
||||
|
||||
rd = op_q->read;
|
||||
wt = op_q->write;
|
||||
|
||||
while (rd != wt) {
|
||||
tmp_op = op_q->queue[rd & MSG_OP_MASK(op_q)];
|
||||
if (op == tmp_op)
|
||||
return true;
|
||||
rd++;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Utility functions
|
||||
*/
|
||||
static int msg_evt_put_op_to_q(struct msg_op_q *op_q, struct msg_op *op)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!op_q || !op) {
|
||||
pr_err("invalid input param: pOpQ(0x%p), pLxOp(0x%p)\n", op_q, op);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = osal_lock_sleepable_lock(&op_q->lock);
|
||||
if (ret) {
|
||||
pr_warn("osal_lock_sleepable_lock iRet(%d)\n", ret);
|
||||
return -2;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MTK_ENG_BUILD) || defined(CONFIG_MT_ENG_BUILD)
|
||||
if (msg_evt_opq_has_op(op_q, op)) {
|
||||
pr_err("Op(%p) already exists in queue(%p)\n", op, op_q);
|
||||
ret = -3;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* acquire lock success */
|
||||
if (!MSG_OP_FULL(op_q))
|
||||
MSG_OP_PUT(op_q, op);
|
||||
else {
|
||||
pr_warn("MSG_OP_FULL(%p -> %p)\n", op, op_q);
|
||||
ret = -4;
|
||||
}
|
||||
|
||||
osal_unlock_sleepable_lock(&op_q->lock);
|
||||
|
||||
if (ret) {
|
||||
//osal_opq_dump("FreeOpQ", &g_conninfra_ctx.rFreeOpQ);
|
||||
//osal_opq_dump("ActiveOpQ", &g_conninfra_ctx.rActiveOpQ);
|
||||
return ret;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Utility functions
|
||||
*/
|
||||
static struct msg_op *msg_evt_get_op_from_q(struct msg_op_q *op_q)
|
||||
{
|
||||
struct msg_op *op;
|
||||
int ret;
|
||||
|
||||
if (op_q == NULL) {
|
||||
pr_err("pOpQ = NULL\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ret = osal_lock_sleepable_lock(&op_q->lock);
|
||||
if (ret) {
|
||||
pr_err("osal_lock_sleepable_lock iRet(%d)\n", ret);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* acquire lock success */
|
||||
MSG_OP_GET(op_q, op);
|
||||
osal_unlock_sleepable_lock(&op_q->lock);
|
||||
|
||||
if (op == NULL) {
|
||||
pr_warn("MSG_OP_GET(%p) return NULL\n", op_q);
|
||||
//osal_opq_dump("FreeOpQ", &g_conninfra_ctx.rFreeOpQ);
|
||||
//osal_opq_dump("ActiveOpQ", &g_conninfra_ctx.rActiveOpQ);
|
||||
}
|
||||
|
||||
return op;
|
||||
}
|
||||
|
||||
static void _msg_opq_dump(const char *qName, struct msg_op_q *op_q)
|
||||
{
|
||||
/* Line format:
|
||||
* [LogicalIdx(PhysicalIdx)]Address:OpId(Ref)(Result)-Info-OpData0,OpData1,OpData2,OpData3,OpData5_
|
||||
* [LogicalIdx] max 10+2=12 chars (decimal)
|
||||
* (PhysicalIdx) max 10+2=12 chars (decimal)
|
||||
* Address: max 16+1=17 chars (hex)
|
||||
* OpId max 10 chars (decimal)
|
||||
* (Ref) max 2+2=4 chars (should only be 1 digit, reserve 2 in case of negative number)
|
||||
* (Result) max 11+2=13 chars (signed decimal)
|
||||
* -Info- max 8+2=10 chars (hex)
|
||||
* OpData, max 16+1=17 chars (hex)
|
||||
*/
|
||||
#define OPQ_DUMP_OP_PER_LINE 1
|
||||
#define OPQ_DUMP_OPDATA_PER_OP 6
|
||||
#define OPQ_DUMP_OP_BUF_SIZE (12 + 12 + 17 + 10 + 4 + 13 + 10 + (17 * (OPQ_DUMP_OPDATA_PER_OP)) + 1)
|
||||
#define OPQ_DUMP_LINE_BUF_SIZE ((OPQ_DUMP_OP_BUF_SIZE * OPQ_DUMP_OP_PER_LINE) + 1)
|
||||
unsigned int rd;
|
||||
unsigned int wt;
|
||||
unsigned int idx = 0;
|
||||
unsigned int op_data_idx;
|
||||
unsigned int buf_idx;
|
||||
int printed;
|
||||
struct msg_op *op;
|
||||
char buf[OPQ_DUMP_LINE_BUF_SIZE];
|
||||
|
||||
rd = op_q->read;
|
||||
wt = op_q->write;
|
||||
|
||||
pr_info("%s(%p), sz:%u/%u, rd:%u, wt:%u\n",
|
||||
qName, op_q, RB_COUNT(op_q), RB_SIZE(op_q), rd, wt);
|
||||
while (rd != wt && idx < RB_SIZE(op_q)) {
|
||||
buf_idx = idx % OPQ_DUMP_OP_PER_LINE;
|
||||
op = op_q->queue[rd & RB_MASK(op_q)];
|
||||
|
||||
if (buf_idx == 0) {
|
||||
printed = 0;
|
||||
buf[0] = 0;
|
||||
}
|
||||
|
||||
if (op) {
|
||||
printed += snprintf(buf + printed, OPQ_DUMP_LINE_BUF_SIZE - printed,
|
||||
"[%u(%u)]%p:%u(%d)(%d)-%u-",
|
||||
idx,
|
||||
(rd & RB_MASK(op_q)),
|
||||
op,
|
||||
op->op.op_id,
|
||||
atomic_read(&op->ref_count),
|
||||
op->result,
|
||||
op->op.info_bit);
|
||||
for (op_data_idx = 0; op_data_idx < OPQ_DUMP_OPDATA_PER_OP; op_data_idx++)
|
||||
printed += snprintf(buf + printed, OPQ_DUMP_LINE_BUF_SIZE - printed,
|
||||
"%zx,", op->op.op_data[op_data_idx]);
|
||||
buf[printed-1] = ' ';
|
||||
} else {
|
||||
printed += snprintf(buf + printed, OPQ_DUMP_LINE_BUF_SIZE - printed,
|
||||
"[%u(%u)]%p ", idx, (rd & RB_MASK(op_q)), op);
|
||||
}
|
||||
buf[printed++] = ' ';
|
||||
|
||||
if (buf_idx == OPQ_DUMP_OP_PER_LINE - 1 || rd == wt - 1) {
|
||||
buf[printed - 1] = 0;
|
||||
pr_info("%s\n", buf);
|
||||
}
|
||||
rd++;
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
|
||||
void msg_opq_dump(const char *qName, struct msg_op_q *op_q)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = osal_lock_sleepable_lock(&op_q->lock);
|
||||
if (err) {
|
||||
pr_info("Failed to lock queue (%d)\n", err);
|
||||
return;
|
||||
}
|
||||
|
||||
_msg_opq_dump(qName, op_q);
|
||||
|
||||
osal_unlock_sleepable_lock(&op_q->lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* msg_evt_thread API
|
||||
*/
|
||||
|
||||
int msg_evt_put_op_to_free_queue(struct msg_thread_ctx *ctx, struct msg_op *op)
|
||||
{
|
||||
if (msg_evt_put_op_to_q(&ctx->free_op_q, op))
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
struct msg_op *msg_evt_get_free_op(struct msg_thread_ctx *ctx)
|
||||
{
|
||||
struct msg_op *op = NULL;
|
||||
|
||||
if (ctx == NULL) {
|
||||
pr_warn("ctx is null.\n");
|
||||
return op;
|
||||
}
|
||||
op = msg_evt_get_op_from_q(&ctx->free_op_q);
|
||||
if (op)
|
||||
osal_memset(op, 0, osal_sizeof(struct msg_op));
|
||||
return op;
|
||||
}
|
||||
|
||||
int msg_evt_put_op_to_active(struct msg_thread_ctx *ctx, struct msg_op *op)
|
||||
{
|
||||
P_OSAL_SIGNAL signal = NULL;
|
||||
int wait_ret = -1;
|
||||
int ret = 0;
|
||||
|
||||
do {
|
||||
if (!ctx || !op) {
|
||||
pr_err("msg_thread_ctx(0x%p), op(0x%p)\n", ctx, op);
|
||||
break;
|
||||
}
|
||||
|
||||
signal = &op->signal;
|
||||
if (signal->timeoutValue) {
|
||||
op->result = -9;
|
||||
osal_signal_init(signal);
|
||||
atomic_set(&op->ref_count, 1);
|
||||
} else
|
||||
atomic_set(&op->ref_count, 0);
|
||||
|
||||
/* Increment ref_count by 1 as wmtd thread will hold a reference also,
|
||||
* this must be done here instead of on target thread, because
|
||||
* target thread might not be scheduled until a much later time,
|
||||
* allowing current thread to decrement ref_count at the end of function,
|
||||
* putting op back to free queue before target thread has a chance to process.
|
||||
*/
|
||||
atomic_inc(&op->ref_count);
|
||||
|
||||
/* put to active Q */
|
||||
ret = msg_evt_put_op_to_q(&ctx->active_op_q, op);
|
||||
if (ret) {
|
||||
pr_warn("put to active queue fail\n");
|
||||
atomic_dec(&op->ref_count);
|
||||
break;
|
||||
}
|
||||
|
||||
/* wake up conninfra_cored */
|
||||
osal_trigger_event(&ctx->evt);
|
||||
|
||||
if (signal->timeoutValue == 0) {
|
||||
//ret = -1;
|
||||
/* Not set timeout, don't wait */
|
||||
/* pr_info("[%s] timeout is zero", __func__);*/
|
||||
break;
|
||||
}
|
||||
|
||||
/* check result */
|
||||
wait_ret = osal_wait_for_signal_timeout(signal, &ctx->thread);
|
||||
/*pr_info("osal_wait_for_signal_timeout:%d result=[%d]\n",
|
||||
wait_ret, op->result);*/
|
||||
|
||||
if (wait_ret == 0)
|
||||
pr_warn("opId(%d) completion timeout\n", op->op.op_id);
|
||||
else if (op->result)
|
||||
pr_info("opId(%d) result:%d\n",
|
||||
op->op.op_id, op->result);
|
||||
|
||||
/* op completes, check result */
|
||||
ret = op->result;
|
||||
} while (0);
|
||||
|
||||
if (op != NULL && signal != NULL && signal->timeoutValue &&
|
||||
atomic_dec_and_test(&op->ref_count)) {
|
||||
/* put Op back to freeQ */
|
||||
msg_evt_put_op_to_free_queue(ctx, op);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int msg_thread_send(struct msg_thread_ctx *ctx, int opid)
|
||||
{
|
||||
return msg_thread_send_2(ctx, opid, 0, 0);
|
||||
}
|
||||
|
||||
int msg_thread_send_1(struct msg_thread_ctx *ctx, int opid,
|
||||
size_t param1)
|
||||
{
|
||||
return msg_thread_send_2(ctx, opid, param1, 0);
|
||||
}
|
||||
|
||||
int msg_thread_send_2(struct msg_thread_ctx *ctx, int opid,
|
||||
size_t param1, size_t param2)
|
||||
{
|
||||
struct msg_op *op = NULL;
|
||||
P_OSAL_SIGNAL signal;
|
||||
int ret;
|
||||
|
||||
op = msg_evt_get_free_op(ctx);
|
||||
if (!op) {
|
||||
pr_err("[%s] can't get free op\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
op->op.op_id = opid;
|
||||
op->op.op_data[0] = param1;
|
||||
op->op.op_data[1] = param2;
|
||||
|
||||
signal = &op->signal;
|
||||
//signal->timeoutValue = timeout > 0 ? timeout : MSG_OP_TIMEOUT;
|
||||
signal->timeoutValue = 0;
|
||||
ret = msg_evt_put_op_to_active(ctx, op);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int msg_thread_send_wait(struct msg_thread_ctx *ctx, int opid,
|
||||
int timeout)
|
||||
{
|
||||
return msg_thread_send_wait_3(ctx, opid, timeout, 0, 0, 0);
|
||||
}
|
||||
|
||||
int msg_thread_send_wait_1(struct msg_thread_ctx *ctx,
|
||||
int opid, int timeout,
|
||||
size_t param1)
|
||||
{
|
||||
return msg_thread_send_wait_3(ctx, opid, timeout, param1, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
int msg_thread_send_wait_2(struct msg_thread_ctx *ctx,
|
||||
int opid, int timeout,
|
||||
size_t param1,
|
||||
size_t param2)
|
||||
{
|
||||
return msg_thread_send_wait_3(ctx, opid, timeout, param1, param2, 0);
|
||||
}
|
||||
|
||||
int msg_thread_send_wait_3(struct msg_thread_ctx *ctx,
|
||||
int opid, int timeout,
|
||||
size_t param1,
|
||||
size_t param2,
|
||||
size_t param3)
|
||||
{
|
||||
struct msg_op *op = NULL;
|
||||
P_OSAL_SIGNAL signal;
|
||||
int ret;
|
||||
|
||||
op = msg_evt_get_free_op(ctx);
|
||||
if (!op) {
|
||||
pr_err("can't get free op for 0x%x\n", opid);
|
||||
return -1;
|
||||
}
|
||||
op->op.op_id = opid;
|
||||
op->op.op_data[0] = param1;
|
||||
op->op.op_data[1] = param2;
|
||||
op->op.op_data[2] = param3;
|
||||
|
||||
signal = &op->signal;
|
||||
signal->timeoutValue = timeout > 0 ? timeout : MSG_OP_TIMEOUT;
|
||||
ret = msg_evt_put_op_to_active(ctx, op);
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
void msg_op_history_save(struct osal_op_history *log_history, struct msg_op *op)
|
||||
{
|
||||
struct osal_op_history_entry *entry = NULL;
|
||||
struct ring_segment seg;
|
||||
int index;
|
||||
unsigned long long sec = 0;
|
||||
unsigned long usec = 0;
|
||||
unsigned long flags;
|
||||
|
||||
if (log_history->queue == NULL)
|
||||
return;
|
||||
|
||||
osal_get_local_time(&sec, &usec);
|
||||
|
||||
spin_lock_irqsave(&(log_history->lock), flags);
|
||||
RING_OVERWRITE_FOR_EACH(1, seg, &log_history->ring_buffer) {
|
||||
index = seg.ring_pt - log_history->ring_buffer.base;
|
||||
entry = &log_history->queue[index];
|
||||
}
|
||||
|
||||
if (entry == NULL) {
|
||||
pr_info("Entry is null, size %d\n",
|
||||
RING_SIZE(&log_history->ring_buffer));
|
||||
spin_unlock_irqrestore(&(log_history->lock), flags);
|
||||
return;
|
||||
}
|
||||
|
||||
entry->opbuf_address = op;
|
||||
entry->op_id = op->op.op_id;
|
||||
entry->opbuf_ref_count = atomic_read(&op->ref_count);
|
||||
entry->op_info_bit = op->op.info_bit;
|
||||
entry->param_0 = op->op.op_data[0];
|
||||
entry->param_1 = op->op.op_data[1];
|
||||
entry->param_2 = op->op.op_data[2];
|
||||
entry->param_3 = op->op.op_data[3];
|
||||
entry->ts = sec;
|
||||
entry->usec = usec;
|
||||
spin_unlock_irqrestore(&(log_history->lock), flags);
|
||||
}
|
||||
|
||||
unsigned int msg_evt_wait_event_checker(P_OSAL_THREAD thread)
|
||||
{
|
||||
struct msg_thread_ctx *ctx = NULL;
|
||||
|
||||
if (thread) {
|
||||
ctx = (struct msg_thread_ctx *) (thread->pThreadData);
|
||||
return !MSG_OP_EMPTY(&ctx->active_op_q);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int msg_evt_set_current_op(struct msg_thread_ctx *ctx, struct msg_op *op)
|
||||
{
|
||||
ctx->cur_op = op;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int msg_evt_opid_handler(struct msg_thread_ctx *ctx, struct msg_op_data *op)
|
||||
{
|
||||
int opid, ret;
|
||||
|
||||
/*sanity check */
|
||||
if (op == NULL) {
|
||||
pr_warn("null op\n");
|
||||
return -1;
|
||||
}
|
||||
if (ctx == NULL) {
|
||||
pr_warn("null evt thread ctx\n");
|
||||
return -2;
|
||||
}
|
||||
|
||||
opid = op->op_id;
|
||||
|
||||
if (opid >= ctx->op_func_size) {
|
||||
pr_err("msg_evt_thread invalid OPID(%d)\n", opid);
|
||||
return -3;
|
||||
}
|
||||
|
||||
if (ctx->op_func[opid] == NULL) {
|
||||
pr_err("null handler (%d)\n", opid);
|
||||
return -4;
|
||||
}
|
||||
ret = (*(ctx->op_func[opid])) (op);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int msg_evt_thread(void *pvData)
|
||||
{
|
||||
struct msg_thread_ctx *ctx = (struct msg_thread_ctx *)pvData;
|
||||
P_OSAL_EVENT evt = NULL;
|
||||
struct msg_op *op;
|
||||
int ret;
|
||||
|
||||
if (ctx == NULL) {
|
||||
pr_err("msg_evt_thread (NULL)\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
evt = &(ctx->evt);
|
||||
|
||||
for (;;) {
|
||||
op = NULL;
|
||||
evt->timeoutValue = 0;
|
||||
|
||||
osal_thread_wait_for_event(&ctx->thread, evt, msg_evt_wait_event_checker);
|
||||
|
||||
if (osal_thread_should_stop(&ctx->thread)) {
|
||||
pr_info("msg_evt_thread thread should stop now...\n");
|
||||
/* TODO: clean up active opQ */
|
||||
break;
|
||||
}
|
||||
/* get Op from activeQ */
|
||||
op = msg_evt_get_op_from_q(&ctx->active_op_q);
|
||||
if (!op) {
|
||||
pr_warn("get op from activeQ fail\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* TODO: save op history */
|
||||
msg_op_history_save(&ctx->op_history, op);
|
||||
msg_evt_set_current_op(ctx, op);
|
||||
ret = msg_evt_opid_handler(ctx, &op->op);
|
||||
msg_evt_set_current_op(ctx, NULL);
|
||||
|
||||
if (ret)
|
||||
pr_warn("opid (0x%x) failed, ret(%d)\n",
|
||||
op->op.op_id, ret);
|
||||
|
||||
if (atomic_dec_and_test(&op->ref_count)) {
|
||||
/* msg_evt_free_op(ctx) */
|
||||
msg_evt_put_op_to_free_queue(ctx, op);
|
||||
} else if (op->signal.timeoutValue) {
|
||||
op->result = ret;
|
||||
osal_raise_signal(&op->signal);
|
||||
}
|
||||
}
|
||||
|
||||
pr_debug("msg evt thread exists\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int msg_thread_dump(struct msg_thread_ctx *ctx)
|
||||
{
|
||||
P_OSAL_THREAD p_thread;
|
||||
struct msg_op *cur_op;
|
||||
|
||||
if (ctx == NULL) {
|
||||
pr_err("get NULL input\n");
|
||||
return 0;
|
||||
}
|
||||
p_thread = &ctx->thread;
|
||||
pr_info("Dump msg_thread_ctx: %s\n", p_thread->threadName);
|
||||
cur_op = ctx->cur_op;
|
||||
if (cur_op) {
|
||||
pr_info("cur_op: %x(%x)-%zx,%zx,%zx,%zx\n",
|
||||
cur_op->op.op_id, cur_op->op.info_bit,
|
||||
cur_op->op.op_data[0], cur_op->op.op_data[1],
|
||||
cur_op->op.op_data[2], cur_op->op.op_data[3]);
|
||||
}
|
||||
osal_dump_thread_state(p_thread->threadName);
|
||||
osal_op_history_print(&(ctx->op_history), p_thread->threadName);
|
||||
msg_opq_dump("ActiveOpQ", &ctx->active_op_q);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int msg_thread_init(struct msg_thread_ctx *ctx,
|
||||
const char *thread_name, const msg_opid_func *funcs,
|
||||
int op_size)
|
||||
{
|
||||
int r = 0, i;
|
||||
P_OSAL_THREAD p_thread;
|
||||
|
||||
osal_memset(ctx, 0, sizeof(struct msg_thread_ctx));
|
||||
|
||||
ctx->op_func = funcs;
|
||||
ctx->op_func_size = op_size;
|
||||
|
||||
/* init thread inst */
|
||||
p_thread = &ctx->thread;
|
||||
|
||||
osal_strncpy(p_thread->threadName, thread_name,
|
||||
sizeof(p_thread->threadName));
|
||||
|
||||
p_thread->pThreadData = (void *) ctx;
|
||||
p_thread->pThreadFunc = (void *) msg_evt_thread;
|
||||
r = osal_thread_create(p_thread);
|
||||
|
||||
if (r) {
|
||||
pr_err("osal_thread_create(0x%p) fail(%d)\n", p_thread, r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
osal_event_init(&ctx->evt);
|
||||
osal_sleepable_lock_init(&ctx->active_op_q.lock);
|
||||
osal_sleepable_lock_init(&ctx->free_op_q.lock);
|
||||
|
||||
/* Initialize op queue */
|
||||
MSG_OP_INIT(&ctx->free_op_q, MSG_THREAD_OP_BUF_SIZE);
|
||||
MSG_OP_INIT(&ctx->active_op_q, MSG_THREAD_OP_BUF_SIZE);
|
||||
|
||||
/* Put all to free Q */
|
||||
for (i = 0; i < MSG_THREAD_OP_BUF_SIZE; i++) {
|
||||
osal_signal_init(&(ctx->op_q_inst[i].signal));
|
||||
msg_evt_put_op_to_free_queue(ctx, &(ctx->op_q_inst[i]));
|
||||
}
|
||||
|
||||
osal_op_history_init(&ctx->op_history, 16);
|
||||
|
||||
r = osal_thread_run(p_thread);
|
||||
if (r) {
|
||||
pr_err("osal_thread_run(evt_thread 0x%p) fail(%d)\n",
|
||||
p_thread, r);
|
||||
return -2;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
int msg_thread_deinit(struct msg_thread_ctx *ctx)
|
||||
{
|
||||
int r, i;
|
||||
P_OSAL_THREAD p_thraed = &ctx->thread;
|
||||
|
||||
r = osal_thread_stop(p_thraed);
|
||||
if (r) {
|
||||
pr_err("osal_thread_stop(0x%p) fail(%d)\n", p_thraed, r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < MSG_THREAD_OP_BUF_SIZE; i++)
|
||||
osal_signal_deinit(&(ctx->op_q_inst[i].signal));
|
||||
|
||||
osal_sleepable_lock_deinit(&ctx->free_op_q.lock);
|
||||
osal_sleepable_lock_deinit(&ctx->active_op_q.lock);
|
||||
|
||||
r = osal_thread_destroy(p_thraed);
|
||||
if (r) {
|
||||
pr_err("osal_thread_stop(0x%p) fail(%d)\n", p_thraed, r);
|
||||
return -2;
|
||||
}
|
||||
|
||||
osal_memset(ctx, 0, sizeof(struct msg_thread_ctx));
|
||||
|
||||
pr_debug("[%s] DONE\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
1595
package/conninfra/src/base/osal.c
Normal file
1595
package/conninfra/src/base/osal.c
Normal file
File diff suppressed because it is too large
Load Diff
150
package/conninfra/src/base/ring.c
Normal file
150
package/conninfra/src/base/ring.c
Normal file
@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
#include "ring.h"
|
||||
#include <linux/string.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/bug.h>
|
||||
|
||||
|
||||
void ring_init(void *base, unsigned int max_size, unsigned int read,
|
||||
unsigned int write, struct ring *ring)
|
||||
{
|
||||
WARN_ON(!base);
|
||||
|
||||
/* making sure max_size is power of 2 */
|
||||
WARN_ON(!max_size || (max_size & (max_size - 1)));
|
||||
|
||||
/* making sure write largger than read */
|
||||
WARN_ON(read > write);
|
||||
|
||||
ring->base = base;
|
||||
ring->read = read;
|
||||
ring->write = write;
|
||||
ring->max_size = max_size;
|
||||
}
|
||||
|
||||
void ring_dump(const char *title, struct ring *ring)
|
||||
{
|
||||
pr_info("[%s] ring:{write=%d, read=%d, max_size=%d}\n",
|
||||
title, ring->write, ring->read, ring->max_size);
|
||||
}
|
||||
|
||||
void ring_dump_segment(const char *title, struct ring_segment *seg)
|
||||
{
|
||||
pr_info("[%s] seg:{ring_pt=0x%p, data_pos=%d, sz=%d, remain=%d}\n",
|
||||
title, seg->ring_pt, seg->data_pos,
|
||||
seg->sz, seg->remain);
|
||||
}
|
||||
|
||||
/*
|
||||
* Function prepares the ring_segment and
|
||||
* returns the number of valid bytes for read.
|
||||
*/
|
||||
unsigned int ring_read_prepare(unsigned int sz,
|
||||
struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
unsigned int wt = ring->write;
|
||||
unsigned int rd = ring->read;
|
||||
|
||||
memset(seg, 0, sizeof(struct ring_segment));
|
||||
if (sz > wt - rd)
|
||||
sz = wt - rd;
|
||||
seg->remain = sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
return seg->remain;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function prepares the ring_segment and
|
||||
* returns the number of bytes available for write.
|
||||
*/
|
||||
unsigned int ring_write_prepare(unsigned int sz,
|
||||
struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
unsigned int wt = ring->write;
|
||||
unsigned int rd = ring->read;
|
||||
|
||||
memset(seg, 0, sizeof(struct ring_segment));
|
||||
if (sz > ring->max_size - (wt - rd))
|
||||
sz = ring->max_size - (wt - rd);
|
||||
seg->remain = sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
return seg->remain;
|
||||
}
|
||||
|
||||
unsigned int ring_overwrite_prepare(unsigned int sz, struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
unsigned int wt = ring->write;
|
||||
unsigned int rd = ring->read;
|
||||
|
||||
memset(seg, 0, sizeof(struct ring_segment));
|
||||
if (sz > ring->max_size - (wt - rd))
|
||||
ring->read += sz - (ring->max_size - (wt - rd));
|
||||
seg->remain = sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
return seg->remain;
|
||||
}
|
||||
|
||||
void __ring_segment_prepare(unsigned int from, unsigned int sz,
|
||||
struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
unsigned int ring_pos = from & (ring->max_size - 1);
|
||||
|
||||
seg->ring_pt = ring->base + ring_pos;
|
||||
seg->data_pos = (seg->sz ? seg->data_pos + seg->sz : 0);
|
||||
if (ring_pos + sz <= ring->max_size)
|
||||
seg->sz = sz;
|
||||
else
|
||||
seg->sz = ring->max_size - ring_pos;
|
||||
seg->remain -= seg->sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
}
|
||||
|
||||
void _ring_segment_prepare(unsigned int from,
|
||||
struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
__ring_segment_prepare(from, seg->remain, seg, ring);
|
||||
}
|
||||
|
||||
void _ring_segment_prepare_item(unsigned int from,
|
||||
struct ring_segment *seg,
|
||||
struct ring *ring)
|
||||
{
|
||||
unsigned int size;
|
||||
|
||||
size = (seg->remain ? 1 : 0);
|
||||
__ring_segment_prepare(from, size, seg, ring);
|
||||
}
|
||||
|
||||
void _ring_read_commit(struct ring_segment *seg, struct ring *ring)
|
||||
{
|
||||
ring->read += seg->sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
}
|
||||
void _ring_write_commit(struct ring_segment *seg, struct ring *ring)
|
||||
{
|
||||
ring->write += seg->sz;
|
||||
/* ring_dump(__func__, ring); */
|
||||
/* ring_dump_segment(__func__, seg); */
|
||||
}
|
||||
|
||||
1244
package/conninfra/src/core/conninfra_core.c
Normal file
1244
package/conninfra/src/core/conninfra_core.c
Normal file
File diff suppressed because it is too large
Load Diff
193
package/conninfra/src/core/include/conninfra_core.h
Normal file
193
package/conninfra/src/core/include/conninfra_core.h
Normal file
@ -0,0 +1,193 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _CONNINFRA_CORE_H_
|
||||
#define _CONNINFRA_CORE_H_
|
||||
|
||||
#include <linux/semaphore.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/time.h>
|
||||
|
||||
#include "osal.h"
|
||||
#include "msg_thread.h"
|
||||
#include "conninfra.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define CHIP_RST_REASON_MAX_LEN 128
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
typedef enum _ENUM_DRV_STS_ {
|
||||
DRV_STS_POWER_OFF = 0, /* initial state */
|
||||
DRV_STS_POWER_ON = 1, /* powered on */
|
||||
DRV_STS_MAX
|
||||
} ENUM_DRV_STS, *P_ENUM_DRV_STS;
|
||||
|
||||
enum chip_rst_status {
|
||||
CHIP_RST_NONE = 0,
|
||||
CHIP_RST_START = 1,
|
||||
CHIP_RST_PRE_CB = 2,
|
||||
CHIP_RST_RESET = 3,
|
||||
CHIP_RST_POST_CB = 4,
|
||||
CHIP_RST_DONE = 5
|
||||
};
|
||||
|
||||
struct subsys_drv_inst {
|
||||
ENUM_DRV_STS drv_status; /* Controlled driver status */
|
||||
unsigned int rst_state;
|
||||
struct sub_drv_ops_cb ops_cb;
|
||||
struct msg_thread_ctx msg_ctx;
|
||||
};
|
||||
|
||||
/*
|
||||
* state of conninfra
|
||||
*
|
||||
*/
|
||||
struct conninfra_ctx {
|
||||
ENUM_DRV_STS infra_drv_status;
|
||||
|
||||
struct subsys_drv_inst drv_inst[CONNDRV_TYPE_MAX];
|
||||
/*struct spinlock infra_lock;*/
|
||||
spinlock_t infra_lock;
|
||||
|
||||
OSAL_SLEEPABLE_LOCK core_lock;
|
||||
|
||||
/* chip reset */
|
||||
enum chip_rst_status rst_status;
|
||||
spinlock_t rst_lock;
|
||||
|
||||
struct semaphore rst_sema;
|
||||
atomic_t rst_state;
|
||||
enum consys_drv_type trg_drv;
|
||||
char trg_reason[CHIP_RST_REASON_MAX_LEN];
|
||||
|
||||
struct msg_thread_ctx msg_ctx;
|
||||
struct msg_thread_ctx cb_ctx;
|
||||
|
||||
unsigned int hw_ver;
|
||||
unsigned int fw_ver;
|
||||
unsigned int ip_ver;
|
||||
};
|
||||
|
||||
//typedef enum _ENUM_CONNINFRA_CORE_OPID_T {
|
||||
typedef enum {
|
||||
CONNINFRA_OPID_PWR_ON = 0,
|
||||
CONNINFRA_OPID_PWR_OFF = 1,
|
||||
CONNINFRA_OPID_RFSPI_READ = 2,
|
||||
CONNINFRA_OPID_RFSPI_WRITE = 3,
|
||||
CONNINFRA_OPID_ADIE_TOP_CK_EN_ON = 4,
|
||||
CONNINFRA_OPID_ADIE_TOP_CK_EN_OFF = 5,
|
||||
CONNINFRA_OPID_SPI_CLOCK_SWITCH = 6,
|
||||
CONNINFRA_OPID_FORCE_CONNINFRA_WAKUP = 7,
|
||||
CONNINFRA_OPID_FORCE_CONNINFRA_SLEEP = 8,
|
||||
CONNINFRA_OPID_DUMP_POWER_STATE = 9,
|
||||
CONNINFRA_OPID_MAX
|
||||
} conninfra_core_opid;
|
||||
|
||||
/* For the operation which may callback subsys driver */
|
||||
typedef enum {
|
||||
CONNINFRA_CB_OPID_CHIP_RST = 0,
|
||||
CONNINFRA_CB_OPID_MAX
|
||||
} conninfra_core_cb_opid;
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
extern int conninfra_core_init(void);
|
||||
extern int conninfra_core_deinit(void);
|
||||
|
||||
int conninfra_core_power_on(enum consys_drv_type type);
|
||||
int conninfra_core_power_off(enum consys_drv_type type);
|
||||
|
||||
int conninfra_core_lock_rst(void);
|
||||
int conninfra_core_unlock_rst(void);
|
||||
int conninfra_core_trg_chip_rst(enum consys_drv_type drv, char *reason);
|
||||
|
||||
int conninfra_core_subsys_ops_reg(enum consys_drv_type type, struct sub_drv_ops_cb *cb);
|
||||
int conninfra_core_subsys_ops_unreg(enum consys_drv_type type);
|
||||
|
||||
/* reg control */
|
||||
/* NOTE: NOT thread-safe
|
||||
* return value
|
||||
* 1 : Yes, 0: NO
|
||||
*/
|
||||
int conninfra_core_reg_readable(void);
|
||||
int conninfra_core_reg_readable_no_lock(void);
|
||||
int conninfra_core_is_bus_hang(void);
|
||||
|
||||
int conninfra_core_is_consys_reg(phys_addr_t addr);
|
||||
int conninfra_core_reg_read(unsigned long address, unsigned int *value, unsigned int mask);
|
||||
int conninfra_core_reg_write(unsigned long address, unsigned int value, unsigned int mask);
|
||||
|
||||
int conninfra_core_is_rst_locking(void);
|
||||
|
||||
int conninfra_core_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
int conninfra_core_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
|
||||
int conninfra_core_adie_top_ck_en_on(enum consys_drv_type type);
|
||||
int conninfra_core_adie_top_ck_en_off(enum consys_drv_type type);
|
||||
|
||||
int conninfra_core_force_conninfra_wakeup(void);
|
||||
int conninfra_core_force_conninfra_sleep(void);
|
||||
|
||||
int conninfra_core_spi_clock_switch(enum connsys_spi_speed_type type);
|
||||
|
||||
int conninfra_core_dump_power_state(void);
|
||||
int conninfra_core_pmic_event_cb(unsigned int, unsigned int);
|
||||
int conninfra_core_debug_dump(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _CONNINFRA_CORE_H_ */
|
||||
216
package/conninfra/src/include/conninfra.h
Normal file
216
package/conninfra/src/include/conninfra.h
Normal file
@ -0,0 +1,216 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _CONNINFRA_H_
|
||||
#define _CONNINFRA_H_
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
#define AIDE_NUM_MAX 2
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
enum consys_drv_type {
|
||||
CONNDRV_TYPE_BT = 0,
|
||||
CONNDRV_TYPE_FM = 1,
|
||||
CONNDRV_TYPE_GPS = 2,
|
||||
CONNDRV_TYPE_WIFI = 3,
|
||||
CONNDRV_TYPE_CONNINFRA = 4,
|
||||
CONNDRV_TYPE_MAX
|
||||
};
|
||||
|
||||
/* HW-specific, need sync with FW. DO NOT MODIFY */
|
||||
enum sys_spi_subsystem
|
||||
{
|
||||
SYS_SPI_WF1 = 0x00,
|
||||
SYS_SPI_WF = 0x01,
|
||||
SYS_SPI_BT = 0x02,
|
||||
SYS_SPI_FM = 0x03,
|
||||
SYS_SPI_GPS = 0x04,
|
||||
SYS_SPI_TOP = 0x05,
|
||||
SYS_SPI_WF2 = 0x06,
|
||||
SYS_SPI_WF3 = 0x07,
|
||||
SYS_SPI_2ND_ADIE_WF1 = 0x10,
|
||||
SYS_SPI_2ND_ADIE_WF = 0x11,
|
||||
SYS_SPI_2ND_ADIE_BT = 0x12,
|
||||
SYS_SPI_2ND_ADIE_FM = 0x13,
|
||||
SYS_SPI_2ND_ADIE_GPS = 0x14,
|
||||
SYS_SPI_2ND_ADIE_TOP = 0x15,
|
||||
SYS_SPI_2ND_ADIE_WF2 = 0x16,
|
||||
SYS_SPI_2ND_ADIE_WF3 = 0x17,
|
||||
SYS_SPI_MAX
|
||||
};
|
||||
|
||||
enum connsys_spi_speed_type {
|
||||
CONNSYS_SPI_SPEED_26M,
|
||||
CONNSYS_SPI_SPEED_64M,
|
||||
CONNSYS_SPI_SPEED_MAX
|
||||
};
|
||||
|
||||
/* Conninfra driver allocate EMI for FW and WFDAM
|
||||
* (FW includes: BT, WIFI and their MCU)
|
||||
* +-----------+ +
|
||||
* | | |
|
||||
* | FW | |
|
||||
* | | |
|
||||
* +-----------+ v
|
||||
* | |
|
||||
* | | FW_WFDMA
|
||||
* | | ^
|
||||
* | WFDMA | |
|
||||
* | | |
|
||||
* | | |
|
||||
* +-----------+ +
|
||||
*
|
||||
* MCIF region is provided by MD
|
||||
* +-----------+
|
||||
* | |
|
||||
* | |
|
||||
* | MCIF |
|
||||
* | |
|
||||
* +-----------+
|
||||
*/
|
||||
enum connsys_emi_type
|
||||
{
|
||||
CONNSYS_EMI_FW = 0,
|
||||
CONNSYS_EMI_MAX,
|
||||
};
|
||||
|
||||
#define CONNINFRA_SPI_OP_FAIL 0x1
|
||||
|
||||
#define CONNINFRA_CB_RET_CAL_PASS_POWER_OFF 0x0
|
||||
#define CONNINFRA_CB_RET_CAL_PASS_POWER_ON 0x2
|
||||
#define CONNINFRA_CB_RET_CAL_FAIL_POWER_OFF 0x1
|
||||
#define CONNINFRA_CB_RET_CAL_FAIL_POWER_ON 0x3
|
||||
|
||||
#define CONNINFRA_BUS_CLOCK_WPLL 0x1
|
||||
#define CONNINFRA_BUS_CLOCK_ALL (CONNINFRA_BUS_CLOCK_WPLL)
|
||||
|
||||
/* bus hang error define */
|
||||
#define CONNINFRA_INFRA_BUS_HANG 0x1
|
||||
#define CONNINFRA_AP2CONN_RX_SLP_PROT_ERR 0x2
|
||||
#define CONNINFRA_AP2CONN_TX_SLP_PROT_ERR 0x4
|
||||
#define CONNINFRA_AP2CONN_CLK_ERR 0x8
|
||||
#define CONNINFRA_INFRA_BUS_HANG_IRQ 0x10
|
||||
|
||||
#define CONNINFRA_ERR_RST_ONGOING -0x7788
|
||||
#define CONNINFRA_ERR_WAKEUP_FAIL -0x5566
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/* SPI clock switch */
|
||||
int conninfra_spi_clock_switch(enum connsys_spi_speed_type type);
|
||||
|
||||
/* A-die top_ck_en control, only for MT6885 */
|
||||
int conninfra_adie_top_ck_en_on(enum consys_drv_type type);
|
||||
int conninfra_adie_top_ck_en_off(enum consys_drv_type type);
|
||||
|
||||
/* RFSPI */
|
||||
int conninfra_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
int conninfra_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
|
||||
/* EMI */
|
||||
void conninfra_get_emi_phy_addr(enum connsys_emi_type type, phys_addr_t* base, unsigned int *size);
|
||||
|
||||
/* power on/off */
|
||||
int conninfra_pwr_on(enum consys_drv_type drv_type);
|
||||
int conninfra_pwr_off(enum consys_drv_type drv_type);
|
||||
|
||||
/* To setup config relative data, ex: debug flag */
|
||||
void conninfra_config_setup(void);
|
||||
|
||||
/*
|
||||
* 0 : NO hang
|
||||
* > 0 : HANG!!
|
||||
* CONNINFRA_ERR_RST_ONGOING: whole chip reset is ongoing
|
||||
*/
|
||||
int conninfra_is_bus_hang(void);
|
||||
|
||||
/* chip reset
|
||||
* return:
|
||||
* <0: error
|
||||
* =0: triggered
|
||||
* =1: ongoing
|
||||
*/
|
||||
int conninfra_trigger_whole_chip_rst(enum consys_drv_type drv, char *reason);
|
||||
|
||||
int conninfra_debug_dump(void);
|
||||
|
||||
struct whole_chip_rst_cb {
|
||||
int (*pre_whole_chip_rst)(enum consys_drv_type drv, char *reason);
|
||||
int (*post_whole_chip_rst)(void);
|
||||
};
|
||||
|
||||
/* driver state query */
|
||||
|
||||
/* VCN control */
|
||||
|
||||
/* Thermal */
|
||||
|
||||
/* Config */
|
||||
|
||||
/* semaphore */
|
||||
|
||||
/* calibration */
|
||||
|
||||
struct sub_drv_ops_cb {
|
||||
/* chip reset */
|
||||
struct whole_chip_rst_cb rst_cb;
|
||||
};
|
||||
|
||||
int conninfra_sub_drv_ops_register(enum consys_drv_type drv_type, struct sub_drv_ops_cb *cb);
|
||||
int conninfra_sub_drv_ops_unregister(enum consys_drv_type drv_type);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _CONNINFRA_H_ */
|
||||
663
package/conninfra/src/platform/consys_hw.c
Normal file
663
package/conninfra/src/platform/consys_hw.c
Normal file
@ -0,0 +1,663 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
|
||||
#include "osal.h"
|
||||
#include "consys_hw.h"
|
||||
#include "emi_mng.h"
|
||||
#include "pmic_mng.h"
|
||||
#include "consys_reg_mng.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
static int mtk_conninfra_probe(struct platform_device *pdev);
|
||||
static int mtk_conninfra_remove(struct platform_device *pdev);
|
||||
static int mtk_conninfra_suspend(struct platform_device *pdev, pm_message_t state);
|
||||
static int mtk_conninfra_resume(struct platform_device *pdev);
|
||||
|
||||
static int consys_hw_init(struct platform_device *pdev);
|
||||
static int consys_hw_deinit(void);
|
||||
static int _consys_hw_conninfra_wakeup(void);
|
||||
static int _consys_hw_conninfra_sleep(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
extern const struct of_device_id apconninfra_of_ids[];
|
||||
|
||||
static struct platform_driver mtk_conninfra_dev_drv = {
|
||||
.probe = mtk_conninfra_probe,
|
||||
.remove = mtk_conninfra_remove,
|
||||
.suspend = mtk_conninfra_suspend,
|
||||
.resume = mtk_conninfra_resume,
|
||||
.driver = {
|
||||
.name = "mtk_conninfra",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = apconninfra_of_ids,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
struct consys_hw_env conn_hw_env[AIDE_NUM_MAX];
|
||||
|
||||
const struct consys_hw_ops_struct *consys_hw_ops;
|
||||
struct platform_device *g_pdev;
|
||||
|
||||
int g_conninfra_wakeup_ref_cnt;
|
||||
|
||||
struct work_struct ap_resume_work;
|
||||
|
||||
struct conninfra_dev_cb *g_conninfra_dev_cb;
|
||||
const struct conninfra_plat_data *g_conninfra_plat_data = NULL;
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
struct platform_device *get_consys_device(void)
|
||||
{
|
||||
return g_pdev;
|
||||
}
|
||||
|
||||
int consys_hw_get_clock_schematic(void)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_co_clock_type)
|
||||
return consys_hw_ops->consys_plt_co_clock_type();
|
||||
else
|
||||
pr_err("consys_hw_ops->consys_co_clock_type not supported\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
unsigned int consys_hw_chipid_get(void)
|
||||
{
|
||||
if (g_conninfra_plat_data && g_conninfra_plat_data->chip_id)
|
||||
return g_conninfra_plat_data->chip_id;
|
||||
else if (consys_hw_ops->consys_plt_soc_chipid_get)
|
||||
return consys_hw_ops->consys_plt_soc_chipid_get();
|
||||
else
|
||||
pr_err("consys_plt_soc_chipid_get not supported\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int consys_hw_get_hw_ver(void)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_get_hw_ver)
|
||||
return consys_hw_ops->consys_plt_get_hw_ver();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int consys_hw_reg_readable(void)
|
||||
{
|
||||
return consys_reg_mng_reg_readable();
|
||||
}
|
||||
|
||||
int consys_hw_is_connsys_reg(phys_addr_t addr)
|
||||
{
|
||||
return consys_reg_mng_is_connsys_reg(addr);
|
||||
}
|
||||
|
||||
int consys_hw_is_bus_hang(void)
|
||||
{
|
||||
return consys_reg_mng_is_bus_hang();
|
||||
}
|
||||
|
||||
int consys_hw_dump_bus_status(void)
|
||||
{
|
||||
return consys_reg_mng_dump_bus_status();
|
||||
}
|
||||
|
||||
int consys_hw_dump_cpupcr(enum conn_dump_cpupcr_type dump_type, int times, unsigned long interval_us)
|
||||
{
|
||||
return consys_reg_mng_dump_cpupcr(dump_type, times, interval_us);
|
||||
}
|
||||
|
||||
int consys_hw_pwr_on(unsigned int curr_status, unsigned int on_radio)
|
||||
{
|
||||
//unsigned int next_status = (curr_status | (0x1 << on_radio));
|
||||
|
||||
/* first power on */
|
||||
if (curr_status == 0) {
|
||||
/* POS PART 0:
|
||||
* Set PMIC to turn on the power that AFE WBG circuit in D-die,
|
||||
* OSC or crystal component, and A-die need.
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_xtal_ctrl_fast_mode)
|
||||
consys_hw_ops->consys_plt_xtal_ctrl_fast_mode();
|
||||
|
||||
if (consys_hw_ops->consys_plt_connsys_sw_reset_ctrl)
|
||||
consys_hw_ops->consys_plt_connsys_sw_reset_ctrl(false);
|
||||
|
||||
/* POS PART 1:
|
||||
* 1. Pinmux setting
|
||||
* 2. Turn on MTCMOS
|
||||
* 3. Enable AHB bus
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_set_if_pinmux)
|
||||
consys_hw_ops->consys_plt_set_if_pinmux(true);
|
||||
|
||||
udelay(500);
|
||||
|
||||
if (consys_hw_ops->consys_plt_tx_rx_bus_slp_prot_ctrl)
|
||||
consys_hw_ops->consys_plt_tx_rx_bus_slp_prot_ctrl(true);
|
||||
|
||||
if (consys_hw_ops->consys_plt_polling_consys_chipid)
|
||||
consys_hw_ops->consys_plt_polling_consys_chipid();
|
||||
|
||||
/* POS PART 2:
|
||||
* 1. Set connsys EMI mapping
|
||||
* 2. d_die_cfg
|
||||
* 3. spi_master_cfg
|
||||
* 4. a_die_cfg
|
||||
* 5. afe_wbg_cal
|
||||
* 6. patch default value
|
||||
* 7. CONN_INFRA low power setting (srcclken wait time, mtcmos HW ctl...)
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_bus_clock_ctrl)
|
||||
consys_hw_ops->consys_plt_bus_clock_ctrl(on_radio, CONNINFRA_BUS_CLOCK_ALL);
|
||||
|
||||
emi_mng_set_remapping_reg();
|
||||
emi_mng_set_region_protection();
|
||||
|
||||
if (consys_hw_ops->consys_plt_d_die_cfg)
|
||||
consys_hw_ops->consys_plt_d_die_cfg();
|
||||
|
||||
if (consys_hw_ops->consys_plt_conninfra_sysram_hw_ctrl)
|
||||
consys_hw_ops->consys_plt_conninfra_sysram_hw_ctrl();
|
||||
|
||||
if (consys_hw_ops->consys_plt_spi_master_cfg)
|
||||
consys_hw_ops->consys_plt_spi_master_cfg();
|
||||
|
||||
#ifndef CONFIG_FPGA_EARLY_PORTING
|
||||
if (consys_hw_ops->consys_plt_adie_type_check)
|
||||
consys_hw_ops->consys_plt_adie_type_check();
|
||||
|
||||
if (consys_hw_ops->consys_plt_a_die_cfg)
|
||||
consys_hw_ops->consys_plt_a_die_cfg();
|
||||
#endif
|
||||
|
||||
if (consys_hw_ops->consys_plt_afe_wbg_cal)
|
||||
consys_hw_ops->consys_plt_afe_wbg_cal();
|
||||
|
||||
if (consys_hw_ops->consys_plt_subsys_pll_initial)
|
||||
consys_hw_ops->consys_plt_subsys_pll_initial();
|
||||
|
||||
if (consys_hw_ops->consys_plt_osc_legacy_mode)
|
||||
consys_hw_ops->consys_plt_osc_legacy_mode();
|
||||
|
||||
#ifndef CONFIG_FPGA_EARLY_PORTING
|
||||
if (consys_hw_ops->consys_plt_top_pwr_ctrl)
|
||||
consys_hw_ops->consys_plt_top_pwr_ctrl();
|
||||
#endif
|
||||
|
||||
if (consys_hw_ops->consys_plt_conn_infra_bus_timeout)
|
||||
consys_hw_ops->consys_plt_conn_infra_bus_timeout();
|
||||
|
||||
if (consys_hw_ops->consys_plt_clkgen_wpll_hw_ctrl)
|
||||
consys_hw_ops->consys_plt_clkgen_wpll_hw_ctrl();
|
||||
|
||||
/* POS PART 3:
|
||||
* 1. A-die low power setting
|
||||
* 2. bgfsys power on(BT/GPS on)
|
||||
*/
|
||||
consys_hw_force_conninfra_wakeup();
|
||||
#ifndef CONFIG_FPGA_EARLY_PORTING
|
||||
consys_hw_adie_top_ck_en_on(on_radio);
|
||||
//consys_hw_adie_top_ck_en_off(on_radio);
|
||||
#endif
|
||||
consys_hw_force_conninfra_sleep();
|
||||
}else {
|
||||
switch (on_radio) {
|
||||
case CONNDRV_TYPE_WIFI:
|
||||
/* Power on WFSYS PART 0:
|
||||
* 1. wake up conn_infra
|
||||
* 2. turn on MTCMOS power switch of "wfsys_top_on" and "wfsys_top_off" circuit in D-die ("wfsys_top_off" is turned on by "wfsys_top_on" automatically)
|
||||
* 3. enable AHB bus(WF2conn/conn2WF)
|
||||
* 4. downlad CONNSYS EMI code
|
||||
* 5. patch default value
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_conninfra_wf_wakeup)
|
||||
consys_hw_ops->consys_plt_conninfra_wf_wakeup();
|
||||
|
||||
if (consys_hw_ops->consys_plt_conn_wmcpu_sw_reset)
|
||||
consys_hw_ops->consys_plt_conn_wmcpu_sw_reset(true);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wf_bus_slp_prot_ctrl)
|
||||
consys_hw_ops->consys_plt_wf_bus_slp_prot_ctrl(false);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wfsys_top_on_ctrl)
|
||||
consys_hw_ops->consys_plt_wfsys_top_on_ctrl(true);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wfsys_bus_slp_prot_check)
|
||||
consys_hw_ops->consys_plt_wfsys_bus_slp_prot_check(true);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wfsys_bus_timeout_ctrl)
|
||||
consys_hw_ops->consys_plt_wfsys_bus_timeout_ctrl();
|
||||
|
||||
if (consys_hw_ops->consys_plt_conn_wmcpu_sw_reset)
|
||||
consys_hw_ops->consys_plt_conn_wmcpu_sw_reset(false);
|
||||
|
||||
#ifndef CONFIG_FPGA_EARLY_PORTING
|
||||
if (consys_hw_ops->consys_plt_conn_wmcpu_idle_loop_check)
|
||||
consys_hw_ops->consys_plt_conn_wmcpu_idle_loop_check();
|
||||
|
||||
if (consys_hw_ops->consys_plt_adie_type_cfg)
|
||||
consys_hw_ops->consys_plt_adie_type_cfg();
|
||||
#endif
|
||||
/* No sleep requiremenct for rebb AP */
|
||||
#if 0
|
||||
if (consys_hw_ops->consys_plt_conninfra_wf_sleep)
|
||||
consys_hw_ops->consys_plt_conninfra_wf_sleep();
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
pr_err("Not support type now (on_radio = %d)\n", on_radio);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_hw_pwr_off(unsigned int curr_status, unsigned int off_radio)
|
||||
{
|
||||
//int ret = 0;
|
||||
unsigned int next_status = curr_status & ~(0x1 << off_radio);
|
||||
|
||||
if (next_status == 0) {
|
||||
pr_info("Last pwoer off: %d\n", off_radio);
|
||||
|
||||
/* Power off CONNSYS PART 0:
|
||||
* 1. A-die low power setting
|
||||
*/
|
||||
consys_hw_force_conninfra_wakeup();
|
||||
#ifndef CONFIG_FPGA_EARLY_PORTING
|
||||
//consys_hw_adie_top_ck_en_off(off_radio);
|
||||
#endif
|
||||
consys_hw_force_conninfra_sleep();
|
||||
|
||||
/* Power off CONNSYS PART 1:
|
||||
* 1. disable AXI bus
|
||||
* 2. turn off MTCMOS power switch of "conn_top_on" and "conn_top_off" circuit in D-die
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_tx_rx_bus_slp_prot_ctrl)
|
||||
consys_hw_ops->consys_plt_tx_rx_bus_slp_prot_ctrl(false);
|
||||
|
||||
if (consys_hw_ops->consys_plt_connsys_sw_reset_ctrl)
|
||||
consys_hw_ops->consys_plt_connsys_sw_reset_ctrl(true);
|
||||
|
||||
udelay(1);
|
||||
} else {
|
||||
switch (off_radio) {
|
||||
case CONNDRV_TYPE_WIFI:
|
||||
/* Power off WFSYS PART 1:
|
||||
* 1. disable AXI bus(wf2conn/conn2wf)
|
||||
* 2. turn off MTCMOS power switch of "wf_top_on" and "wf_top_off" circuit in D-die ("wf_top_off" is turned off by "wf_top_on" automatically)
|
||||
*/
|
||||
if (consys_hw_ops->consys_plt_conninfra_wf_wakeup)
|
||||
consys_hw_ops->consys_plt_conninfra_wf_wakeup();
|
||||
|
||||
if (consys_hw_ops->consys_plt_wf_bus_slp_prot_ctrl)
|
||||
consys_hw_ops->consys_plt_wf_bus_slp_prot_ctrl(true);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wfsys_bus_slp_prot_check)
|
||||
consys_hw_ops->consys_plt_wfsys_bus_slp_prot_check(false);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wpll_ctrl)
|
||||
consys_hw_ops->consys_plt_wpll_ctrl(false);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wfsys_top_on_ctrl)
|
||||
consys_hw_ops->consys_plt_wfsys_top_on_ctrl(false);
|
||||
|
||||
if (consys_hw_ops->consys_plt_wpll_ctrl)
|
||||
consys_hw_ops->consys_plt_wpll_ctrl(true);
|
||||
|
||||
consys_hw_adie_top_ck_en_off(off_radio);
|
||||
|
||||
if (consys_hw_ops->consys_plt_conninfra_wf_req_clr)
|
||||
consys_hw_ops->consys_plt_conninfra_wf_req_clr();
|
||||
|
||||
if (consys_hw_ops->consys_plt_conninfra_wf_sleep)
|
||||
consys_hw_ops->consys_plt_conninfra_wf_sleep();
|
||||
break;
|
||||
|
||||
default:
|
||||
consys_hw_force_conninfra_wakeup();
|
||||
consys_hw_adie_top_ck_en_off(off_radio);
|
||||
consys_hw_force_conninfra_sleep();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_hw_wifi_power_ctl(unsigned int enable)
|
||||
{
|
||||
return pmic_mng_wifi_power_ctrl(enable);
|
||||
}
|
||||
|
||||
int consys_hw_bt_power_ctl(unsigned int enable)
|
||||
{
|
||||
return pmic_mng_bt_power_ctrl(enable);
|
||||
}
|
||||
|
||||
int consys_hw_gps_power_ctl(unsigned int enable)
|
||||
{
|
||||
return pmic_mng_gps_power_ctrl(enable);
|
||||
}
|
||||
|
||||
int consys_hw_fm_power_ctl(unsigned int enable)
|
||||
{
|
||||
return pmic_mng_fm_power_ctrl(enable);
|
||||
}
|
||||
|
||||
int consys_hw_dump_power_state(void)
|
||||
{
|
||||
if (consys_hw_ops && consys_hw_ops->consys_plt_power_state)
|
||||
consys_hw_ops->consys_plt_power_state();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_hw_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_spi_read)
|
||||
return consys_hw_ops->consys_plt_spi_read(subsystem, addr, data);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_hw_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_spi_write)
|
||||
return consys_hw_ops->consys_plt_spi_write(subsystem, addr, data);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_hw_adie_top_ck_en_on(enum consys_drv_type type)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_adie_top_ck_en_on_off_ctrl)
|
||||
return consys_hw_ops->consys_plt_adie_top_ck_en_on_off_ctrl(type, 1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_hw_adie_top_ck_en_off(enum consys_drv_type type)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_adie_top_ck_en_on_off_ctrl)
|
||||
return consys_hw_ops->consys_plt_adie_top_ck_en_on_off_ctrl(type, 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
static int _consys_hw_conninfra_wakeup(void)
|
||||
{
|
||||
int ref = g_conninfra_wakeup_ref_cnt;
|
||||
bool wakeup = false, ret;
|
||||
|
||||
if (consys_hw_ops->consys_plt_conninfra_wakeup) {
|
||||
if (g_conninfra_wakeup_ref_cnt == 0) {
|
||||
ret = consys_hw_ops->consys_plt_conninfra_wakeup();
|
||||
if (ret) {
|
||||
pr_err("wakeup fail!! ret=[%d]\n", ret);
|
||||
return ret;
|
||||
}
|
||||
wakeup = true;
|
||||
}
|
||||
|
||||
g_conninfra_wakeup_ref_cnt++;
|
||||
}
|
||||
|
||||
pr_info("conninfra_wakeup refcnt=[%d]->[%d] %s\n",
|
||||
ref, g_conninfra_wakeup_ref_cnt, (wakeup ? "wakeup!!" : ""));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _consys_hw_conninfra_sleep(void)
|
||||
{
|
||||
int ref = g_conninfra_wakeup_ref_cnt;
|
||||
bool sleep = false;
|
||||
|
||||
if (consys_hw_ops->consys_plt_conninfra_sleep &&
|
||||
--g_conninfra_wakeup_ref_cnt == 0) {
|
||||
sleep = true;
|
||||
consys_hw_ops->consys_plt_conninfra_sleep();
|
||||
}
|
||||
|
||||
if (g_conninfra_wakeup_ref_cnt < 0)
|
||||
g_conninfra_wakeup_ref_cnt = 0;
|
||||
|
||||
pr_info("conninfra_sleep refcnt=[%d]->[%d] %s\n",
|
||||
ref, g_conninfra_wakeup_ref_cnt, (sleep ? "sleep!!" : ""));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_hw_force_conninfra_wakeup(void)
|
||||
{
|
||||
return _consys_hw_conninfra_wakeup();
|
||||
}
|
||||
|
||||
int consys_hw_force_conninfra_sleep(void)
|
||||
{
|
||||
return _consys_hw_conninfra_sleep();
|
||||
}
|
||||
|
||||
int consys_hw_spi_clock_switch(enum connsys_spi_speed_type type)
|
||||
{
|
||||
if (consys_hw_ops->consys_plt_spi_clock_switch)
|
||||
return consys_hw_ops->consys_plt_spi_clock_switch(type);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_hw_pmic_event_cb(unsigned int id, unsigned int event)
|
||||
{
|
||||
pmic_mng_event_cb(id, event);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mtk_conninfra_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
if (pdev)
|
||||
g_pdev = pdev;
|
||||
else {
|
||||
pr_err("pdev is NULL\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
g_conninfra_plat_data = (const struct conninfra_plat_data*)of_device_get_match_data(&pdev->dev);
|
||||
if (g_conninfra_plat_data == NULL) {
|
||||
pr_err("Get platform data fail.\n");
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (consys_hw_ops == NULL)
|
||||
consys_hw_ops = (const struct consys_hw_ops_struct*)g_conninfra_plat_data->hw_ops;
|
||||
if (consys_hw_ops == NULL) {
|
||||
pr_err("Get HW op fail\n");
|
||||
return -3;
|
||||
}
|
||||
|
||||
/* Read device node */
|
||||
if (consys_reg_mng_init(pdev, g_conninfra_plat_data) != 0) {
|
||||
pr_err("consys_plt_read_reg_from_dts fail\n");
|
||||
return -4;
|
||||
}
|
||||
|
||||
if (consys_hw_ops->consys_plt_clk_get_from_dts) {
|
||||
if (consys_hw_ops->consys_plt_clk_get_from_dts(pdev) != 0) {
|
||||
pr_err("consys_plt_clk_get_from_dts fail\n");
|
||||
return -5;
|
||||
}
|
||||
}
|
||||
|
||||
/* HW operation init */
|
||||
if (consys_hw_init(pdev) != 0) {
|
||||
pr_err("consys_hw_init fail\n");
|
||||
return -6;
|
||||
}
|
||||
|
||||
/* emi mng init */
|
||||
ret = emi_mng_init(pdev, g_conninfra_plat_data);
|
||||
if (ret) {
|
||||
pr_err("emi_mng init fail, %d\n", ret);
|
||||
return -7;
|
||||
}
|
||||
|
||||
ret = pmic_mng_init(pdev, g_conninfra_dev_cb, g_conninfra_plat_data);
|
||||
if (ret) {
|
||||
pr_err("pmic_mng init fail, %d\n", ret);
|
||||
return -8;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int mtk_conninfra_remove(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = pmic_mng_deinit();
|
||||
pr_info("pmic_mng_deinit ret=%d\n", ret);
|
||||
|
||||
ret = emi_mng_deinit();
|
||||
pr_info("emi_mng_deinit ret=%d\n", ret);
|
||||
|
||||
if (consys_hw_ops->consys_plt_clk_detach)
|
||||
consys_hw_ops->consys_plt_clk_detach();
|
||||
else
|
||||
pr_err("consys_plt_clk_detach is null\n");
|
||||
|
||||
ret = consys_reg_mng_deinit();
|
||||
pr_info("consys_reg_mng_deinit ret=%d\n", ret);
|
||||
|
||||
ret = consys_hw_deinit();
|
||||
pr_info("consys_hw_deinit ret=%d\n", ret);
|
||||
|
||||
if (g_pdev)
|
||||
g_pdev = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mtk_conninfra_suspend(struct platform_device *pdev, pm_message_t state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mtk_conninfra_resume(struct platform_device *pdev)
|
||||
{
|
||||
/* suspend callback is in atomic context, use schedule work to execute STEP */
|
||||
|
||||
schedule_work(&ap_resume_work);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void consys_hw_ap_resume_handler(struct work_struct *work)
|
||||
{
|
||||
if (g_conninfra_dev_cb && g_conninfra_dev_cb->conninfra_resume_cb)
|
||||
(*g_conninfra_dev_cb->conninfra_resume_cb)();
|
||||
}
|
||||
|
||||
int consys_hw_init(struct platform_device *pdev)
|
||||
{
|
||||
int iRet = 0;
|
||||
|
||||
if (consys_hw_ops->consys_plt_hw_init)
|
||||
iRet = consys_hw_ops->consys_plt_hw_init();
|
||||
|
||||
return iRet;
|
||||
}
|
||||
|
||||
int consys_hw_deinit(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mtk_conninfra_drv_init(struct conninfra_dev_cb *dev_cb)
|
||||
{
|
||||
int iRet = 0;
|
||||
|
||||
g_conninfra_dev_cb = dev_cb;
|
||||
|
||||
pr_info("Before platform_driver_register\n");
|
||||
|
||||
iRet = platform_driver_register(&mtk_conninfra_dev_drv);
|
||||
if (iRet)
|
||||
pr_err("Conninfra platform driver registered failed(%d)\n", iRet);
|
||||
|
||||
pr_info("After platform_driver_register\n");
|
||||
|
||||
INIT_WORK(&ap_resume_work, consys_hw_ap_resume_handler);
|
||||
|
||||
return iRet;
|
||||
}
|
||||
|
||||
int mtk_conninfra_drv_deinit(void)
|
||||
{
|
||||
platform_driver_unregister(&mtk_conninfra_dev_drv);
|
||||
g_conninfra_dev_cb = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
39
package/conninfra/src/platform/consys_hw_plat_data.c
Normal file
39
package/conninfra/src/platform/consys_hw_plat_data.c
Normal file
@ -0,0 +1,39 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2019 MediaTek Inc.
|
||||
*/
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include "consys_hw.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/* Platform data */
|
||||
#ifdef CONNINFRA_APSOC_MT7986
|
||||
extern struct conninfra_plat_data mt7986_plat_data;
|
||||
const struct of_device_id apconninfra_of_ids[] = {
|
||||
{
|
||||
.compatible = "mediatek,mt7986-consys",
|
||||
.data = (void*)&mt7986_plat_data,
|
||||
},
|
||||
{}
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONNINFRA_APSOC_MT7981
|
||||
extern struct conninfra_plat_data mt7981_plat_data;
|
||||
const struct of_device_id apconninfra_of_ids[] = {
|
||||
{
|
||||
.compatible = "mediatek,mt7981-consys",
|
||||
.data = (void*)&mt7981_plat_data,
|
||||
},
|
||||
{}
|
||||
};
|
||||
#endif
|
||||
148
package/conninfra/src/platform/consys_reg_mng.c
Normal file
148
package/conninfra/src/platform/consys_reg_mng.c
Normal file
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_mng.h"
|
||||
#include "consys_reg_util.h"
|
||||
|
||||
const struct consys_reg_mng_ops* g_consys_reg_ops = NULL;
|
||||
|
||||
int consys_reg_mng_reg_readable(void)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_check_reable)
|
||||
return g_consys_reg_ops->consys_reg_mng_check_reable();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_reg_mng_is_connsys_reg(phys_addr_t addr)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_is_consys_reg)
|
||||
return g_consys_reg_ops->consys_reg_mng_is_consys_reg(addr);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int consys_reg_mng_is_bus_hang(void)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_is_bus_hang)
|
||||
return g_consys_reg_ops->consys_reg_mng_is_bus_hang();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_reg_mng_dump_bus_status(void)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_dump_bus_status)
|
||||
return g_consys_reg_ops->consys_reg_mng_dump_bus_status();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_reg_mng_dump_conninfra_status(void)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_dump_conninfra_status)
|
||||
return g_consys_reg_ops->consys_reg_mng_dump_conninfra_status();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_reg_mng_dump_cpupcr(enum conn_dump_cpupcr_type dump_type, int times, unsigned long interval_us)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_dump_cpupcr)
|
||||
return g_consys_reg_ops->consys_reg_mng_dump_cpupcr(dump_type, times, interval_us);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int consys_reg_mng_init(struct platform_device *pdev, const struct conninfra_plat_data* plat_data)
|
||||
{
|
||||
int ret = 0;
|
||||
if (g_consys_reg_ops == NULL)
|
||||
g_consys_reg_ops = (const struct consys_reg_mng_ops*)plat_data->reg_ops;
|
||||
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_init)
|
||||
ret = g_consys_reg_ops->consys_reg_mng_init(pdev);
|
||||
else
|
||||
ret = EFAULT;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int consys_reg_mng_deinit(void)
|
||||
{
|
||||
if (g_consys_reg_ops&&
|
||||
g_consys_reg_ops->consys_reg_mng_deinit)
|
||||
g_consys_reg_ops->consys_reg_mng_deinit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_reg_mng_reg_read(unsigned long addr, unsigned int *value, unsigned int mask)
|
||||
{
|
||||
void __iomem *vir_addr = NULL;
|
||||
|
||||
vir_addr = ioremap_nocache(addr, 0x100);
|
||||
if (!vir_addr) {
|
||||
pr_err("ioremap fail\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
*value = (unsigned int)CONSYS_REG_READ(vir_addr) & mask;
|
||||
|
||||
pr_info("[%x] mask=[%x]\n", *value, mask);
|
||||
|
||||
iounmap(vir_addr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int consys_reg_mng_reg_write(unsigned long addr, unsigned int value, unsigned int mask)
|
||||
{
|
||||
void __iomem *vir_addr = NULL;
|
||||
|
||||
vir_addr = ioremap_nocache(addr, 0x100);
|
||||
if (!vir_addr) {
|
||||
pr_err("ioremap fail\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
CONSYS_REG_WRITE_MASK(vir_addr, value, mask);
|
||||
|
||||
iounmap(vir_addr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int consys_reg_mng_is_host_csr(unsigned long addr)
|
||||
{
|
||||
if (g_consys_reg_ops &&
|
||||
g_consys_reg_ops->consys_reg_mng_is_host_csr)
|
||||
return g_consys_reg_ops->consys_reg_mng_is_host_csr(addr);
|
||||
|
||||
return -1;
|
||||
}
|
||||
158
package/conninfra/src/platform/emi_mng.c
Normal file
158
package/conninfra/src/platform/emi_mng.c
Normal file
@ -0,0 +1,158 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/types.h>
|
||||
#include "osal.h"
|
||||
|
||||
#include "consys_hw.h"
|
||||
#include "emi_mng.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
unsigned long long gConEmiSize = 0;
|
||||
phys_addr_t gConEmiPhyBase = 0x0;
|
||||
|
||||
const struct consys_platform_emi_ops* consys_platform_emi_ops = NULL;
|
||||
|
||||
struct consys_emi_addr_info connsys_emi_addr_info = {
|
||||
.emi_ap_phy_base = 0,
|
||||
.emi_ap_phy_size = 0,
|
||||
.fw_emi_size = 0,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
int emi_mng_set_region_protection(void)
|
||||
{
|
||||
if (consys_platform_emi_ops &&
|
||||
consys_platform_emi_ops->consys_ic_emi_set_region_protection)
|
||||
return consys_platform_emi_ops->consys_ic_emi_set_region_protection();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int emi_mng_set_remapping_reg(void)
|
||||
{
|
||||
if (consys_platform_emi_ops &&
|
||||
consys_platform_emi_ops->consys_ic_emi_set_remapping_reg)
|
||||
return consys_platform_emi_ops->consys_ic_emi_set_remapping_reg();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
struct consys_emi_addr_info* emi_mng_get_phy_addr(void)
|
||||
{
|
||||
return &connsys_emi_addr_info;
|
||||
}
|
||||
|
||||
int emi_mng_init(struct platform_device *pdev, const struct conninfra_plat_data* plat_data)
|
||||
{
|
||||
unsigned int fw_emi_size = 0;
|
||||
|
||||
#ifdef CONFIG_CONNINFRA_EMI_SUPPORT
|
||||
struct device_node *np;
|
||||
struct reserved_mem *rmem;
|
||||
|
||||
np = of_parse_phandle(pdev->dev.of_node, "memory-region", 0);
|
||||
if (!np) {
|
||||
pr_info("[%s] memory region not found.\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
rmem = of_reserved_mem_lookup(np);
|
||||
if (!rmem) {
|
||||
pr_info("[%s] no memory-region\n", __func__);
|
||||
return -1;
|
||||
} else {
|
||||
gConEmiPhyBase = rmem->base;
|
||||
gConEmiSize = rmem->size;
|
||||
}
|
||||
#else
|
||||
pr_info("Conninfra not support EMI reservation for %04x\n", plat_data->chip_id);
|
||||
#endif /* CONFIG_CONNINFRA_EMI_SUPPORT */
|
||||
|
||||
if (consys_platform_emi_ops == NULL) {
|
||||
consys_platform_emi_ops = (const struct consys_platform_emi_ops*)plat_data->platform_emi_ops;
|
||||
}
|
||||
|
||||
if (consys_platform_emi_ops && consys_platform_emi_ops->consys_ic_emi_get_fw_emi_size)
|
||||
fw_emi_size = consys_platform_emi_ops->consys_ic_emi_get_fw_emi_size();
|
||||
|
||||
pr_info("[emi_mng_init] gConEmiPhyBase = [0x%llx] size = [0x%llx] fw size = [0x%x] ops=[%p]\n",
|
||||
gConEmiPhyBase, gConEmiSize, fw_emi_size, consys_platform_emi_ops);
|
||||
|
||||
if (gConEmiPhyBase) {
|
||||
connsys_emi_addr_info.emi_ap_phy_base = gConEmiPhyBase;
|
||||
connsys_emi_addr_info.emi_ap_phy_size = gConEmiSize;
|
||||
connsys_emi_addr_info.fw_emi_size = fw_emi_size;
|
||||
} else {
|
||||
pr_err("consys emi memory address gConEmiPhyBase invalid\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int emi_mng_deinit(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
255
package/conninfra/src/platform/include/consys_hw.h
Normal file
255
package/conninfra/src/platform/include/consys_hw.h
Normal file
@ -0,0 +1,255 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_CONSYS_HW_H_
|
||||
#define _PLATFORM_CONSYS_HW_H_
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include "conninfra.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define CONN_SEMA_GET_SUCCESS 0
|
||||
#define CONN_SEMA_GET_FAIL 1
|
||||
|
||||
#define CONN_SEMA_TIMEOUT (1*1000) /* 1ms */
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct conninfra_dev_cb {
|
||||
int (*conninfra_suspend_cb) (void);
|
||||
int (*conninfra_resume_cb) (void);
|
||||
int (*conninfra_pmic_event_notifier) (unsigned int, unsigned int);
|
||||
};
|
||||
|
||||
typedef int(*CONSYS_PLT_HW_INIT)(void);
|
||||
typedef int(*CONSYS_PLT_XTAL_CTRL_FAST_MODE)(void);
|
||||
typedef int(*CONSYS_PLT_CONNSYS_SW_RESET_CTRL)(bool bassert);
|
||||
typedef void(*CONSYS_PLT_SET_IF_PINMUX)(bool enable);
|
||||
typedef int(*CONSYS_PLT_TX_RX_BUS_SLP_PROT_CTRL)(bool enable);
|
||||
typedef int(*CONSYS_PLT_POLLING_CONSYS_CHIPID)(void);
|
||||
typedef int(*CONSYS_PLT_BUS_CLOCK_CTRL)(enum consys_drv_type drv_type, unsigned int bus_clock);
|
||||
typedef int(*CONSYS_PLT_D_DIE_CFG)(void);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_SYSRAM_HW_CTRL)(void);
|
||||
typedef int(*CONSYS_PLT_SPI_MASTER_CFG)(void);
|
||||
typedef int(*CONSYS_PLT_A_DIE_CFG)(void);
|
||||
typedef int(*CONSYS_PLT_AFE_WBG_CAL)(void);
|
||||
typedef int(*CONSYS_PLT_SUBSYS_PLL_INITIAL)(void);
|
||||
typedef int(*CONSYS_PLT_OSC_LEGACY_MODE)(void);
|
||||
typedef int(*CONSYS_PLT_TOP_PWR_CTRL)(void);
|
||||
typedef int(*CONSYS_PLT_CONN_INFRA_BUS_TIMEOUT)(void);
|
||||
typedef int(*CONSYS_PLT_CLKGEN_WPLL_HW_CTRL)(void);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_TOP_WAKEUP) (void);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_TOP_SLEEP) (void);
|
||||
typedef int(*CONSYS_PLT_ADIE_TOP_CK_EN_ON_OFF_CTRL)(enum consys_drv_type type, unsigned char on);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_WF_WAKEUP) (void);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_WF_SLEEP) (void);
|
||||
typedef int(*CONSYS_PLT_CONN_WMCPU_SW_RESET) (bool bassert);
|
||||
typedef int(*CONSYS_PLT_WF_BUS_SLP_PROT_CTRL)(bool enable);
|
||||
typedef int(*CONSYS_PLT_WFSYS_TOP_ON_CTRL) (bool enable);
|
||||
typedef int(*CONSYS_PLT_WFSYS_BUS_SLP_PROT_CHECK)(bool enable);
|
||||
typedef int(*CONSYS_PLT_WFSYS_BUS_TIMEOUT_CTRL) (void);
|
||||
typedef int(*CONSYS_PLT_CONN_WMCPU_IDLE_LOOP_CHECK) (void);
|
||||
typedef int(*CONSYS_PLT_WPLL_CTRL)(bool enable);
|
||||
typedef int(*CONSYS_PLT_CONNINFRA_WF_REQ_CLR) (void);
|
||||
typedef int(*CONSYS_PLT_CLK_GET_FROM_DTS) (struct platform_device *pdev);
|
||||
typedef int(*CONSYS_PLT_CLK_DETACH) (void);
|
||||
typedef int(*CONSYS_PLT_CO_CLOCK_TYPE) (void);
|
||||
typedef unsigned int(*CONSYS_PLT_SOC_CHIPID_GET) (void);
|
||||
typedef unsigned int(*CONSYS_PLT_GET_HW_VER)(void);
|
||||
typedef int(*CONSYS_PLT_SPI_READ)(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
typedef int(*CONSYS_PLT_SPI_WRITE)(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
typedef int(*CONSYS_PLT_SPI_CLOCK_SWITCH)(enum connsys_spi_speed_type type);
|
||||
typedef int(*CONSYS_PLT_POWER_STATE)(void);
|
||||
typedef int(*CONSYS_PLT_AIDE_TYPE_CHECK)(void);
|
||||
typedef int(*CONSYS_PLT_AIDE_TYPE_CFG)(void);
|
||||
|
||||
struct consys_hw_ops_struct {
|
||||
/* HW init */
|
||||
CONSYS_PLT_HW_INIT consys_plt_hw_init;
|
||||
|
||||
/* Power on/off CONNSYS PART (by Conn_infra Driver) */
|
||||
CONSYS_PLT_XTAL_CTRL_FAST_MODE consys_plt_xtal_ctrl_fast_mode;
|
||||
CONSYS_PLT_CONNSYS_SW_RESET_CTRL consys_plt_connsys_sw_reset_ctrl;
|
||||
CONSYS_PLT_SET_IF_PINMUX consys_plt_set_if_pinmux;
|
||||
CONSYS_PLT_TX_RX_BUS_SLP_PROT_CTRL consys_plt_tx_rx_bus_slp_prot_ctrl;
|
||||
CONSYS_PLT_POLLING_CONSYS_CHIPID consys_plt_polling_consys_chipid;
|
||||
CONSYS_PLT_BUS_CLOCK_CTRL consys_plt_bus_clock_ctrl;
|
||||
CONSYS_PLT_D_DIE_CFG consys_plt_d_die_cfg;
|
||||
CONSYS_PLT_CONNINFRA_SYSRAM_HW_CTRL consys_plt_conninfra_sysram_hw_ctrl;
|
||||
CONSYS_PLT_SPI_MASTER_CFG consys_plt_spi_master_cfg;
|
||||
CONSYS_PLT_A_DIE_CFG consys_plt_a_die_cfg;
|
||||
CONSYS_PLT_AFE_WBG_CAL consys_plt_afe_wbg_cal;
|
||||
CONSYS_PLT_SUBSYS_PLL_INITIAL consys_plt_subsys_pll_initial;
|
||||
CONSYS_PLT_OSC_LEGACY_MODE consys_plt_osc_legacy_mode;
|
||||
CONSYS_PLT_TOP_PWR_CTRL consys_plt_top_pwr_ctrl;
|
||||
CONSYS_PLT_CONN_INFRA_BUS_TIMEOUT consys_plt_conn_infra_bus_timeout;
|
||||
CONSYS_PLT_CLKGEN_WPLL_HW_CTRL consys_plt_clkgen_wpll_hw_ctrl;
|
||||
CONSYS_PLT_CONNINFRA_TOP_WAKEUP consys_plt_conninfra_wakeup;
|
||||
CONSYS_PLT_CONNINFRA_TOP_SLEEP consys_plt_conninfra_sleep;
|
||||
CONSYS_PLT_ADIE_TOP_CK_EN_ON_OFF_CTRL consys_plt_adie_top_ck_en_on_off_ctrl;
|
||||
CONSYS_PLT_WPLL_CTRL consys_plt_wpll_ctrl;
|
||||
|
||||
/* Power on/off WFSYS PART 0 (by WF Driver) */
|
||||
CONSYS_PLT_CONNINFRA_WF_WAKEUP consys_plt_conninfra_wf_wakeup;
|
||||
CONSYS_PLT_CONNINFRA_WF_SLEEP consys_plt_conninfra_wf_sleep;
|
||||
CONSYS_PLT_CONN_WMCPU_SW_RESET consys_plt_conn_wmcpu_sw_reset;
|
||||
CONSYS_PLT_WF_BUS_SLP_PROT_CTRL consys_plt_wf_bus_slp_prot_ctrl;
|
||||
CONSYS_PLT_WFSYS_TOP_ON_CTRL consys_plt_wfsys_top_on_ctrl;
|
||||
CONSYS_PLT_WFSYS_BUS_SLP_PROT_CHECK consys_plt_wfsys_bus_slp_prot_check;
|
||||
CONSYS_PLT_WFSYS_BUS_TIMEOUT_CTRL consys_plt_wfsys_bus_timeout_ctrl;
|
||||
CONSYS_PLT_CONN_WMCPU_IDLE_LOOP_CHECK consys_plt_conn_wmcpu_idle_loop_check;
|
||||
CONSYS_PLT_CONNINFRA_WF_REQ_CLR consys_plt_conninfra_wf_req_clr;
|
||||
|
||||
/* load from dts */
|
||||
CONSYS_PLT_CLK_GET_FROM_DTS consys_plt_clk_get_from_dts;
|
||||
CONSYS_PLT_CLK_DETACH consys_plt_clk_detach;
|
||||
|
||||
/* clock */
|
||||
CONSYS_PLT_CO_CLOCK_TYPE consys_plt_co_clock_type;
|
||||
|
||||
CONSYS_PLT_SOC_CHIPID_GET consys_plt_soc_chipid_get;
|
||||
|
||||
/* debug */
|
||||
CONSYS_PLT_GET_HW_VER consys_plt_get_hw_ver;
|
||||
|
||||
/* For SPI operation */
|
||||
CONSYS_PLT_SPI_READ consys_plt_spi_read;
|
||||
CONSYS_PLT_SPI_WRITE consys_plt_spi_write;
|
||||
|
||||
/* For SPI clock switch */
|
||||
CONSYS_PLT_SPI_CLOCK_SWITCH consys_plt_spi_clock_switch;
|
||||
|
||||
/* power state */
|
||||
CONSYS_PLT_POWER_STATE consys_plt_power_state;
|
||||
|
||||
/* others */
|
||||
CONSYS_PLT_AIDE_TYPE_CHECK consys_plt_adie_type_check;
|
||||
CONSYS_PLT_AIDE_TYPE_CFG consys_plt_adie_type_cfg;
|
||||
};
|
||||
|
||||
struct consys_hw_env {
|
||||
bool valid;
|
||||
unsigned int adie_hw_version;
|
||||
unsigned int adie_id;
|
||||
int is_rc_mode;
|
||||
};
|
||||
|
||||
struct conninfra_plat_data {
|
||||
const unsigned int chip_id;
|
||||
const void* hw_ops;
|
||||
const void* reg_ops;
|
||||
const void* platform_emi_ops;
|
||||
const void* platform_pmic_ops;
|
||||
};
|
||||
|
||||
extern struct consys_hw_env conn_hw_env[AIDE_NUM_MAX];
|
||||
extern struct consys_base_addr conn_reg;
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
int mtk_conninfra_drv_init(struct conninfra_dev_cb *dev_cb);
|
||||
int mtk_conninfra_drv_deinit(void);
|
||||
|
||||
int consys_hw_pwr_on(unsigned int curr_status, unsigned int on_radio);
|
||||
int consys_hw_pwr_off(unsigned int curr_status, unsigned int off_radio);
|
||||
|
||||
int consys_hw_wifi_power_ctl(unsigned int enable);
|
||||
int consys_hw_bt_power_ctl(unsigned int enable);
|
||||
int consys_hw_gps_power_ctl(unsigned int enable);
|
||||
int consys_hw_fm_power_ctl(unsigned int enable);
|
||||
int consys_hw_pmic_event_cb(unsigned int id, unsigned int event);
|
||||
|
||||
unsigned int consys_hw_chipid_get(void);
|
||||
|
||||
int consys_hw_get_clock_schematic(void);
|
||||
unsigned int consys_hw_get_hw_ver(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* tempoary for STEP
|
||||
********************************************************************************
|
||||
*/
|
||||
/*
|
||||
* return
|
||||
* 1 : can read
|
||||
* 0 : can't read
|
||||
* -1: not consys register
|
||||
*/
|
||||
int consys_hw_reg_readable(void);
|
||||
int consys_hw_is_connsys_reg(phys_addr_t addr);
|
||||
/*
|
||||
* 0 means NO hang
|
||||
* > 0 means hang!!
|
||||
*/
|
||||
int consys_hw_is_bus_hang(void);
|
||||
int consys_hw_dump_bus_status(void);
|
||||
|
||||
int consys_hw_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
int consys_hw_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
|
||||
int consys_hw_adie_top_ck_en_on(enum consys_drv_type type);
|
||||
int consys_hw_adie_top_ck_en_off(enum consys_drv_type type);
|
||||
|
||||
/* NOTE: debug only*/
|
||||
int consys_hw_force_conninfra_wakeup(void);
|
||||
int consys_hw_force_conninfra_sleep(void);
|
||||
|
||||
int consys_hw_spi_clock_switch(enum connsys_spi_speed_type type);
|
||||
|
||||
struct platform_device *get_consys_device(void);
|
||||
struct consys_base_addr *get_conn_reg_base_addr(void);
|
||||
|
||||
int consys_hw_dump_power_state(void);
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_CONSYS_HW_H_ */
|
||||
28
package/conninfra/src/platform/include/consys_reg_base.h
Normal file
28
package/conninfra/src/platform/include/consys_reg_base.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_CONSYS_REG_BASE_H_
|
||||
#define _PLATFORM_CONSYS_REG_BASE_H_
|
||||
|
||||
struct consys_reg_base_addr {
|
||||
unsigned long phy_addr;
|
||||
unsigned long long size;
|
||||
unsigned long vir_addr;
|
||||
};
|
||||
|
||||
#endif /* _PLATFORM_CONSYS_REG_BASE_H_ */
|
||||
57
package/conninfra/src/platform/include/consys_reg_mng.h
Normal file
57
package/conninfra/src/platform/include/consys_reg_mng.h
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_CONSYS_REG_MNG_H_
|
||||
#define _PLATFORM_CONSYS_REG_MNG_H_
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "consys_hw.h"
|
||||
|
||||
enum conn_dump_cpupcr_type
|
||||
{
|
||||
CONN_DUMP_CPUPCR_TYPE_BT = 1,
|
||||
CONN_DUMP_CPUPCR_TYPE_WF = 2,
|
||||
CONN_DUMP_CPUPCR_TYPE_ALL = 3,
|
||||
};
|
||||
|
||||
struct consys_reg_mng_ops {
|
||||
int(*consys_reg_mng_init) (struct platform_device *pdev);
|
||||
int(*consys_reg_mng_deinit) (void);
|
||||
int(*consys_reg_mng_check_reable) (void);
|
||||
int(*consys_reg_mng_is_consys_reg) (unsigned int addr);
|
||||
int(*consys_reg_mng_is_bus_hang) (void);
|
||||
int(*consys_reg_mng_dump_bus_status) (void);
|
||||
int(*consys_reg_mng_dump_conninfra_status) (void);
|
||||
int(*consys_reg_mng_dump_cpupcr) (enum conn_dump_cpupcr_type, int times, unsigned long interval_us);
|
||||
int(*consys_reg_mng_is_host_csr) (unsigned long addr);
|
||||
};
|
||||
|
||||
int consys_reg_mng_init(struct platform_device *pdev, const struct conninfra_plat_data* plat_data);
|
||||
int consys_reg_mng_deinit(void);
|
||||
int consys_reg_mng_reg_readable(void);
|
||||
int consys_reg_mng_is_connsys_reg(phys_addr_t addr);
|
||||
int consys_reg_mng_reg_read(unsigned long addr, unsigned int *value, unsigned int mask);
|
||||
int consys_reg_mng_reg_write(unsigned long addr, unsigned int value, unsigned int mask);
|
||||
int consys_reg_mng_is_bus_hang(void);
|
||||
int consys_reg_mng_dump_bus_status(void);
|
||||
int consys_reg_mng_dump_conninfra_status(void);
|
||||
int consys_reg_mng_dump_cpupcr(enum conn_dump_cpupcr_type dump_type, int times, unsigned long interval_us);
|
||||
int consys_reg_mng_is_host_csr(unsigned long addr);
|
||||
|
||||
#endif /* _PLATFORM_CONSYS_REG_MNG_H_ */
|
||||
174
package/conninfra/src/platform/include/consys_reg_util.h
Normal file
174
package/conninfra/src/platform/include/consys_reg_util.h
Normal file
@ -0,0 +1,174 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_CONSYS_REG_UTIL_H_
|
||||
#define _PLATFORM_CONSYS_REG_UTIL_H_
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
/* platform dependent */
|
||||
#include "plat_def.h"
|
||||
|
||||
#ifndef BIT
|
||||
#define BIT(x) (1<<(x))
|
||||
#endif
|
||||
|
||||
#define KBYTE (1024*sizeof(char))
|
||||
#ifndef GENMASK
|
||||
#define GENMASK(h, l) \
|
||||
(((~0UL) - (1UL << (l)) + 1) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
|
||||
#endif
|
||||
|
||||
#define GET_BIT_MASK(value, mask) ((value) & (mask))
|
||||
#define SET_BIT_MASK(pdest, value, mask) (*(pdest) = (GET_BIT_MASK(*(pdest), ~(mask)) | GET_BIT_MASK(value, mask)))
|
||||
#define GET_BIT_RANGE(data, end, begin) ((data) & GENMASK(end, begin))
|
||||
#define SET_BIT_RANGE(pdest, data, end, begin) (SET_BIT_MASK(pdest, data, GENMASK(end, begin)))
|
||||
|
||||
#define CONSYS_SET_BIT(REG, BITVAL) (*((volatile unsigned int *)(REG)) |= ((unsigned int)(BITVAL)))
|
||||
#define CONSYS_CLR_BIT(REG, BITVAL) ((*(volatile unsigned int *)(REG)) &= ~((unsigned int)(BITVAL)))
|
||||
#define CONSYS_CLR_BIT_WITH_KEY(REG, BITVAL, KEY) {\
|
||||
unsigned int val = (*(volatile unsigned int *)(REG)); \
|
||||
val &= ~((unsigned int)(BITVAL)); \
|
||||
val |= ((unsigned int)(KEY)); \
|
||||
(*(volatile unsigned int *)(REG)) = val;\
|
||||
}
|
||||
#define CONSYS_REG_READ(addr) (*((volatile unsigned int *)(addr)))
|
||||
#define CONSYS_REG_READ_BIT(addr, BITVAL) (*((volatile unsigned int *)(addr)) & ((unsigned int)(BITVAL)))
|
||||
#define CONSYS_REG_WRITE(addr, data) mt_reg_sync_writel(data, addr)
|
||||
#define CONSYS_REG_WRITE_RANGE(reg, data, end, begin) {\
|
||||
unsigned int val = CONSYS_REG_READ(reg); \
|
||||
SET_BIT_RANGE(&val, data, end, begin); \
|
||||
CONSYS_REG_WRITE(reg, val); \
|
||||
}
|
||||
#define CONSYS_REG_WRITE_MASK(reg, data, mask) {\
|
||||
unsigned int val = CONSYS_REG_READ(reg); \
|
||||
SET_BIT_MASK(&val, data, mask); \
|
||||
CONSYS_REG_WRITE(reg, val); \
|
||||
}
|
||||
|
||||
/*
|
||||
* Write value with value_offset bits of right shift and size bits,
|
||||
* to the reg_offset-th bit of address reg
|
||||
* value -----------XXXXXXXXXXXX-------------------
|
||||
* |<--size-->|<--value_offset-->|
|
||||
* reg -------------OOOOOOOOOOOO-----------------
|
||||
* |<--size-->|<--reg_offset-->|
|
||||
* result -------------XXXXXXXXXXXX-----------------
|
||||
*/
|
||||
#define CONSYS_REG_WRITE_OFFSET_RANGE(reg, value, reg_offset, value_offset, size) ({\
|
||||
unsigned int data = (value) >> (value_offset); \
|
||||
data = GET_BIT_RANGE(data, size, 0); \
|
||||
data = data << (reg_offset); \
|
||||
CONSYS_REG_WRITE_RANGE(reg, data, ((reg_offset) + ((size) - 1)), reg_offset); \
|
||||
})
|
||||
|
||||
#define CONSYS_REG_WRITE_BIT(reg, offset, val) CONSYS_REG_WRITE_OFFSET_RANGE(reg, ((val) & 1), offset, 0, 1)
|
||||
|
||||
#define CONSYS_REG_BIT_POLLING(addr, bit_index, exp_val, loop, delay, success) {\
|
||||
unsigned int polling_count = 0; \
|
||||
unsigned int reg_value = 0; \
|
||||
success = 0; \
|
||||
reg_value = (CONSYS_REG_READ_BIT(addr, (0x1 << bit_index)) >> bit_index); \
|
||||
while (reg_value != exp_val) { \
|
||||
if (polling_count > loop) { \
|
||||
success = -1; \
|
||||
break; \
|
||||
} \
|
||||
reg_value = (CONSYS_REG_READ_BIT(addr, (0x1 << bit_index)) >> bit_index); \
|
||||
udelay(delay); \
|
||||
polling_count++; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CONSYS_REG_POLLING_LARGER_OR_EQUAL(addr, mask, bit_index, exp_val, loop, delay, success) {\
|
||||
unsigned int polling_count = 0; \
|
||||
unsigned int reg_value = 0; \
|
||||
success = 0; \
|
||||
reg_value = ((CONSYS_REG_READ(addr) & mask) >> bit_index); \
|
||||
while (reg_value < exp_val) { \
|
||||
if (polling_count > loop) { \
|
||||
success = -1; \
|
||||
break; \
|
||||
} \
|
||||
reg_value = ((CONSYS_REG_READ(addr) & mask) >> bit_index); \
|
||||
udelay(delay); \
|
||||
polling_count++; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CONSYS_REG_POLLING_EQUAL(addr, mask, bit_index, exp_val, loop, delay, success) {\
|
||||
unsigned int polling_count = 0; \
|
||||
unsigned int reg_value = 0; \
|
||||
success = 0; \
|
||||
reg_value = ((CONSYS_REG_READ(addr) & mask) >> bit_index); \
|
||||
while (reg_value != exp_val) { \
|
||||
if (polling_count > loop) { \
|
||||
success = -1; \
|
||||
break; \
|
||||
} \
|
||||
reg_value = ((CONSYS_REG_READ(addr) & mask) >> bit_index); \
|
||||
udelay(delay); \
|
||||
polling_count++; \
|
||||
} \
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_CONSYS_REG_UTIL_H_ */
|
||||
99
package/conninfra/src/platform/include/emi_mng.h
Normal file
99
package/conninfra/src/platform/include/emi_mng.h
Normal file
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_EMI_MNG_H_
|
||||
#define _PLATFORM_EMI_MNG_H_
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/types.h>
|
||||
#include "osal.h"
|
||||
|
||||
#include "consys_hw.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_emi_addr_info {
|
||||
/* This include BT/WF FW and WFDMA */
|
||||
phys_addr_t emi_ap_phy_base;
|
||||
unsigned int emi_ap_phy_size;
|
||||
unsigned int fw_emi_size;
|
||||
};
|
||||
|
||||
typedef int(*CONSYS_IC_EMI_SET_REGION_PROTECTION) (void);
|
||||
typedef int(*CONSYS_IC_EMI_SET_REMAPPING_REG) (void);
|
||||
typedef unsigned int (*CONSYS_IC_GET_FW_EMI_SIZE)(void);
|
||||
|
||||
struct consys_platform_emi_ops {
|
||||
CONSYS_IC_EMI_SET_REGION_PROTECTION consys_ic_emi_set_region_protection;
|
||||
CONSYS_IC_EMI_SET_REMAPPING_REG consys_ic_emi_set_remapping_reg;
|
||||
CONSYS_IC_GET_FW_EMI_SIZE consys_ic_emi_get_fw_emi_size;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
int emi_mng_init(struct platform_device *pdev, const struct conninfra_plat_data* plat_data);
|
||||
int emi_mng_deinit(void);
|
||||
|
||||
int emi_mng_set_region_protection(void);
|
||||
int emi_mng_set_remapping_reg(void);
|
||||
struct consys_emi_addr_info* emi_mng_get_phy_addr(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_EMI_MNG_H_ */
|
||||
|
||||
31
package/conninfra/src/platform/include/plat_def.h
Normal file
31
package/conninfra/src/platform/include/plat_def.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_DEF_H_
|
||||
#define _PLATFORM_DEF_H_
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#define mt_reg_sync_writel(v, a) \
|
||||
do { \
|
||||
writel((v), (void __force __iomem *)((a))); \
|
||||
mb(); \
|
||||
} while (0)
|
||||
|
||||
#endif /* _PLATFORM_DEF_H_ */
|
||||
110
package/conninfra/src/platform/include/pmic_mng.h
Normal file
110
package/conninfra/src/platform/include/pmic_mng.h
Normal file
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_PMIC_MNG_H_
|
||||
#define _PLATFORM_PMIC_MNG_H_
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "consys_hw.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
typedef int(*CONSYS_PMIC_GET_FROM_DTS) (
|
||||
struct platform_device *pdev,
|
||||
struct conninfra_dev_cb* dev_cb);
|
||||
|
||||
typedef int(*CONSYS_PMIC_COMMON_POWER_CTRL) (unsigned int enable);
|
||||
|
||||
typedef int(*CONSYS_PMIC_WIFI_POWER_CTRL) (unsigned int enable);
|
||||
typedef int(*CONSYS_PMIC_BT_POWER_CTRL) (unsigned int enable);
|
||||
typedef int(*CONSYS_PMIC_GPS_POWER_CTRL) (unsigned int enable);
|
||||
typedef int(*CONSYS_PMIC_FM_POWER_CTRL) (unsigned int enable);
|
||||
typedef int(*CONSYS_PMIC_EVENT_NOTIFIER) (unsigned int id, unsigned int event);
|
||||
|
||||
struct consys_platform_pmic_ops {
|
||||
CONSYS_PMIC_GET_FROM_DTS consys_pmic_get_from_dts;
|
||||
/* vcn 18 */
|
||||
CONSYS_PMIC_COMMON_POWER_CTRL consys_pmic_common_power_ctrl;
|
||||
CONSYS_PMIC_WIFI_POWER_CTRL consys_pmic_wifi_power_ctrl;
|
||||
CONSYS_PMIC_BT_POWER_CTRL consys_pmic_bt_power_ctrl;
|
||||
CONSYS_PMIC_GPS_POWER_CTRL consys_pmic_gps_power_ctrl;
|
||||
CONSYS_PMIC_FM_POWER_CTRL consys_pmic_fm_power_ctrl;
|
||||
CONSYS_PMIC_EVENT_NOTIFIER consys_pmic_event_notifier;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
int pmic_mng_init(
|
||||
struct platform_device *pdev,
|
||||
struct conninfra_dev_cb* dev_cb,
|
||||
const struct conninfra_plat_data* plat_data);
|
||||
int pmic_mng_deinit(void);
|
||||
|
||||
int pmic_mng_common_power_ctrl(unsigned int enable);
|
||||
int pmic_mng_wifi_power_ctrl(unsigned int enable);
|
||||
int pmic_mng_bt_power_ctrl(unsigned int enable);
|
||||
int pmic_mng_gps_power_ctrl(unsigned int enable);
|
||||
int pmic_mng_fm_power_ctrl(unsigned int enable);
|
||||
int pmic_mng_event_cb(unsigned int id, unsigned int event);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_PMIC_MNG_H_ */
|
||||
59
package/conninfra/src/platform/mt7981/include/mt7981.h
Normal file
59
package/conninfra/src/platform/mt7981/include/mt7981.h
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_H_
|
||||
#define _PLATFORM_MT7981_H_
|
||||
|
||||
enum
|
||||
{
|
||||
ADIE_TYPE_NONE = 0,
|
||||
ADIE_TYPE_ONE,
|
||||
ADIE_TYPE_TWO,
|
||||
ADIE_TYPE_NUM_MAX
|
||||
};
|
||||
|
||||
enum conn_semaphore_type
|
||||
{
|
||||
CONN_SEMA_CHIP_POWER_ON_INDEX = 0,
|
||||
CONN_SEMA_CALIBRATION_INDEX = 1,
|
||||
CONN_SEMA_FW_DL_INDEX = 2,
|
||||
CONN_SEMA_CLOCK_SWITCH_INDEX = 3,
|
||||
CONN_SEMA_CCIF_INDEX = 4,
|
||||
CONN_SEMA_COEX_INDEX = 5,
|
||||
CONN_SEMA_USB_EP0_INDEX = 6,
|
||||
CONN_SEMA_USB_SHARED_INFO_INDEX = 7,
|
||||
CONN_SEMA_USB_SUSPEND_INDEX = 8,
|
||||
CONN_SEMA_USB_RESUME_INDEX = 9,
|
||||
CONN_SEMA_PCIE_INDEX = 10,
|
||||
CONN_SEMA_RFSPI_INDEX = 11,
|
||||
CONN_SEMA_EFUSE_INDEX = 12,
|
||||
CONN_SEMA_THERMAL_INDEX = 13,
|
||||
CONN_SEMA_FLASH_INDEX = 14,
|
||||
CONN_SEMA_DEBUG_INDEX = 15,
|
||||
CONN_SEMA_WIFI_LP_INDEX = 16,
|
||||
CONN_SEMA_PATCH_DL_INDEX = 17,
|
||||
CONN_SEMA_SHARED_VAR_INDEX = 18,
|
||||
CONN_SEMA_CONN_INFRA_COMMON_SYSRAM_INDEX = 19,
|
||||
CONN_SEMA_NUM_MAX = 32 /* can't be omitted */
|
||||
};
|
||||
|
||||
unsigned int consys_soc_chipid_get(void);
|
||||
unsigned int consys_get_hw_ver(void);
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7981_H_ */
|
||||
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_CONSYS_REG_H_
|
||||
#define _PLATFORM_MT7981_CONSYS_REG_H_
|
||||
|
||||
#include "consys_reg_base.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
enum consys_base_addr_index {
|
||||
TOP_MISC_BASE = 0, /* top_misc */
|
||||
TOPRGU_BASE = 1, /* TOPRGU */
|
||||
GPIO_BASE = 2, /* GPIO */
|
||||
IOCFG_TM_BASE = 3, /* IOCFG_TM */
|
||||
IOCFG_LT_BASE = 4, /* IOCFG_LT */
|
||||
INFRACFG_AO_BASE = 5, /* infracfg_ao_auto_gen_reg */
|
||||
CONN_INFRA_CFG_BASE = 6, /* conn_infra_cfg */
|
||||
CONN_INFRA_SYSRAM_BASE = 7, /* conn_infra_sysram */
|
||||
CONN_INFRA_CLKGEN_ON_TOP_BASE = 8, /* conn_infra_clkgen_on_top */
|
||||
CONN_HOST_CSR_TOP_BASE = 9, /* conn_host_csr_top */
|
||||
CONN_INFRA_BUS_CR_BASE = 10, /* conn_infra_bus_cr */
|
||||
CONN_INFRA_RGU_BASE = 11, /* conn_infra_rgu */
|
||||
CONN_WT_SLP_CTL_REG_BASE = 12, /* conn_wt_slp_ctl_reg */
|
||||
INST2_CONN_WT_SLP_CTL_REG_BASE = 13, /* Inst2_conn_wt_slp_ctl_reg */
|
||||
CONN_RF_SPI_MST_REG_BASE = 14, /* conn_rf_spi_mst_reg */
|
||||
INST2_CONN_RF_SPI_MST_REG_BASE = 15, /* Inst2_conn_rf_spi_mst_reg */
|
||||
CONN_SEMAPHORE_BASE = 16, /* conn_semaphore */
|
||||
CONN_AFE_CTL_BASE = 17, /* conn_afe_ctl */
|
||||
CONN_AFE_CTL_2ND_BASE = 18, /* conn_afe_ctl_2nd */
|
||||
WF_TOP_SLPPROT_ON_BASE = 19, /* wf_top_slpprot_on by remapping to 0x81020000 */
|
||||
WF_TOP_CFG_BASE = 20, /* wf_top_cfg by remapping to 0x80020000 */
|
||||
WF_MCU_CONFIG_LS_BASE = 21, /* wf_mcu_confg_ls by remapping to 0x88000000 */
|
||||
WF_MCU_BUS_CR_BASE = 22, /* wf_mcu_bus_cr by remapping to 0x830C0XXX */
|
||||
WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE = 23, /* wf_mcusys_infra_bus_full_u_debug_ctrl_ao by remapping to 0x810F0000 */
|
||||
WF_TOP_CFG_ON_BASE = 24, /* wf_top_cfg_on by remapping to 0x81021000 */
|
||||
CONSYS_BASE_ADDR_MAX
|
||||
};
|
||||
|
||||
struct consys_base_addr {
|
||||
struct consys_reg_base_addr reg_base_addr[CONSYS_BASE_ADDR_MAX];
|
||||
};
|
||||
|
||||
extern struct consys_base_addr conn_reg;
|
||||
|
||||
#define REG_TOP_MISC_ADDR conn_reg.reg_base_addr[TOP_MISC_BASE].vir_addr
|
||||
#define REG_TOP_RGU_ADDR conn_reg.reg_base_addr[TOPRGU_BASE].vir_addr
|
||||
#define REG_GPIO_BASE_ADDR conn_reg.reg_base_addr[GPIO_BASE].vir_addr
|
||||
#define REG_IOCFG_TM_ADDR conn_reg.reg_base_addr[IOCFG_TM_BASE].vir_addr
|
||||
#define REG_IOCFG_LT_ADDR conn_reg.reg_base_addr[IOCFG_LT_BASE].vir_addr
|
||||
#define REG_INFRACFG_AO_ADDR conn_reg.reg_base_addr[INFRACFG_AO_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_CFG_ADDR conn_reg.reg_base_addr[CONN_INFRA_CFG_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_SYSRAM_ADDR conn_reg.reg_base_addr[CONN_INFRA_SYSRAM_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_CLKGEN_ON_TOP_ADDR conn_reg.reg_base_addr[CONN_INFRA_CLKGEN_ON_TOP_BASE].vir_addr
|
||||
#define REG_CONN_HOST_CSR_TOP_ADDR conn_reg.reg_base_addr[CONN_HOST_CSR_TOP_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_BUS_CR_ADDR conn_reg.reg_base_addr[CONN_INFRA_BUS_CR_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_RGU_ADDR conn_reg.reg_base_addr[CONN_INFRA_RGU_BASE].vir_addr
|
||||
#define REG_CONN_WT_SLP_CTL_REG_ADDR conn_reg.reg_base_addr[CONN_WT_SLP_CTL_REG_BASE].vir_addr
|
||||
#define REG_INST2_CONN_WT_SLP_CTL_REG_ADDR conn_reg.reg_base_addr[INST2_CONN_WT_SLP_CTL_REG_BASE].vir_addr
|
||||
#define REG_CONN_RF_SPI_MST_REG_ADDR conn_reg.reg_base_addr[CONN_RF_SPI_MST_REG_BASE].vir_addr
|
||||
#define REG_INST2_CONN_RF_SPI_MST_REG_ADDR conn_reg.reg_base_addr[INST2_CONN_RF_SPI_MST_REG_BASE].vir_addr
|
||||
#define REG_CONN_SEMAPHORE_ADDR conn_reg.reg_base_addr[CONN_SEMAPHORE_BASE].vir_addr
|
||||
#define REG_CONN_AFE_CTL_ADDR conn_reg.reg_base_addr[CONN_AFE_CTL_BASE].vir_addr
|
||||
#define REG_CONN_AFE_CTL_2ND_ADDR conn_reg.reg_base_addr[CONN_AFE_CTL_2ND_BASE].vir_addr
|
||||
#define REG_WF_TOP_SLPPROT_ON_ADDR conn_reg.reg_base_addr[WF_TOP_SLPPROT_ON_BASE].vir_addr
|
||||
#define REG_WF_TOP_CFG_ADDR conn_reg.reg_base_addr[WF_TOP_CFG_BASE].vir_addr
|
||||
#define REG_WF_MCU_CONFIG_LS_ADDR conn_reg.reg_base_addr[WF_MCU_CONFIG_LS_BASE].vir_addr
|
||||
#define REG_WF_MCU_BUS_CR_ADDR conn_reg.reg_base_addr[WF_MCU_BUS_CR_BASE].vir_addr
|
||||
#define REG_WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_ADDR conn_reg.reg_base_addr[WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE].vir_addr
|
||||
#define REG_WF_TOP_CFG_ON_ADDR conn_reg.reg_base_addr[WF_TOP_CFG_ON_BASE].vir_addr
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_base_addr* get_conn_reg_base_addr(void);
|
||||
|
||||
#endif /* _PLATFORM_MT7981_CONSYS_REG_H_ */
|
||||
@ -0,0 +1,243 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_CONSYS_REG_OFFSET_H_
|
||||
#define _PLATFORM_MT7981_CONSYS_REG_OFFSET_H_
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: TOP_MISC (0x11D1_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONNSYS_MISC 0x0114
|
||||
#define TOP_MISC_RSRV_ALL1_3 0x021C
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: TOP RGU (0x1001_C000) */
|
||||
/**********************************************************************/
|
||||
#define TOP_RGU_WDT_SWSYSRST 0x0018
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: GPIO (0x11D0_0000) */
|
||||
/**********************************************************************/
|
||||
#define GPIO_MODE5 0x0350
|
||||
#define GPIO_MODE6 0x0360
|
||||
#define GPIO_MODE7 0x0370
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: IOCFG_TM (0x11F0_0000) */
|
||||
/**********************************************************************/
|
||||
#define IOCFG_TM_DRV_CFG0 0x0000
|
||||
#define IOCFG_TM_DRV_CFG1 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: IOCFG_LT (0x11F1_0000) */
|
||||
/**********************************************************************/
|
||||
#define IOCFG_LT_DRV_CFG0 0x0000
|
||||
#define IOCFG_LT_DRV_CFG1 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: INFRACFG_AO (0x1000_3000) */
|
||||
/**********************************************************************/
|
||||
#define CONN2AP_GALS_SLPPROT 0x00D0
|
||||
#define AP2CONN_GALS_SLPPROT 0x00D4
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_CFG (0x1800_1000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_CFG_IP_VERSION 0x0000
|
||||
#define EFUSE 0x0020
|
||||
#define ADIE_CTL 0x0030
|
||||
#define CONN_INFRA_CFG_PWRCTRL0 0x0200
|
||||
#define CONN_INFRA_CFG_RC_CTL_0 0x0380
|
||||
#define OSC_CTL_0 0x0300
|
||||
#define EMI_CTL_WF 0x0414
|
||||
#define CONN_INFRA_WF_SLP_CTRL 0x0540
|
||||
#define CONN_INFRA_WF_SLP_STATUS 0x0544
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_SYSRAM (0x1805_0000) */
|
||||
/**********************************************************************/
|
||||
#define SYSRAM_BASE_ADDR 0x0000
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_CLKGEN_ON_TOP (0x1800_9000) */
|
||||
/**********************************************************************/
|
||||
#define CKGEN_BUS_WPLL_DIV_1 0x0008
|
||||
#define CKGEN_BUS_WPLL_DIV_2 0x000C
|
||||
#define CKGEN_RFSPI_WPLL_DIV 0x0040
|
||||
#define CKGEN_BUS 0x0A00
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_HOST_CSR_TOP (0x1806_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_WAKEPU_TOP 0x01A0
|
||||
#define CONN_INFRA_WAKEPU_WF 0x01A4
|
||||
#define CONN2AP_REMAP_MCU_EMI 0x01C4
|
||||
#define CONN2AP_REMAP_WF_PERI 0x01D4
|
||||
#define CONN2AP_RSVD_PERI_REGION1 0x01D8
|
||||
#define DBG_DUMMY_3 0x02CC
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_BUS_CR (0x1800_E000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_BUS_OFF_TIMEOUT_CTRL 0x0300
|
||||
#define CONN_INFRA_BUS_ON_TIMEOUT_CTRL 0x031C
|
||||
#define CONN2AP_EMI_PATH_ADDR_START 0x0360
|
||||
#define CONN2AP_EMI_PATH_ADDR_END 0x0364
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_RGU (0x1800_0000) */
|
||||
/**********************************************************************/
|
||||
#define WFSYS_ON_TOP_PWR_CTL 0x0010
|
||||
#define BGFYS_ON_TOP_PWR_CTL 0x0020
|
||||
#define SYSRAM_HWCTL_PDN 0x0050
|
||||
#define SYSRAM_HWCTL_SLP 0x0054
|
||||
#define WFSYS_CPU_SW_RST_B 0x0120
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_WT_SLP_CTL_REG (0x1800_5000) */
|
||||
/* Base: INST2_CONN_WT_SLP_CTL_REG (0x1808_5000) */
|
||||
/**********************************************************************/
|
||||
#define WB_WF_CK_ADDR 0x0070
|
||||
#define WB_WF_WAKE_ADDR 0x0074
|
||||
#define WB_WF_ZPS_ADDR 0x0078
|
||||
#define WB_TOP_CK_ADDR 0x0084
|
||||
#define WB_WF_B0_CMD_ADDR 0x008C
|
||||
#define WB_WF_B1_CMD_ADDR 0x0090
|
||||
#define WB_SLP_TOP_CK_0 0x0120
|
||||
#define WB_SLP_TOP_CK_1 0x0124
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_RF_SPI_MST_REG (0x1800_4000) */
|
||||
/* Base: INST2_CONN_RF_SPI_MST_REG (0x1808_4000) */
|
||||
/**********************************************************************/
|
||||
#define SPI_STA 0x0000
|
||||
#define SPI_WF_ADDR 0x0010
|
||||
#define SPI_WF_WDAT 0x0014
|
||||
#define SPI_WF_RDAT 0x0018
|
||||
#define SPI_BT_ADDR 0x0020
|
||||
#define SPI_BT_WDAT 0x0024
|
||||
#define SPI_BT_RDAT 0x0028
|
||||
#define SPI_FM_ADDR 0x0030
|
||||
#define SPI_FM_WDAT 0x0034
|
||||
#define SPI_FM_RDAT 0x0038
|
||||
#define SPI_GPS_ADDR 0x0040
|
||||
#define SPI_GPS_WDAT 0x0044
|
||||
#define SPI_GPS_RDAT 0x0048
|
||||
#define SPI_TOP_ADDR 0x0050
|
||||
#define SPI_TOP_WDAT 0x0054
|
||||
#define SPI_TOP_RDAT 0x0058
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_SEMAPHORE_BASE (0x1807_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_SEMA00_M2_OWN_STA 0x2000
|
||||
#define CONN_SEMA00_M2_OWN_REL 0x2200
|
||||
#define CONN_SEMA_OWN_BY_M0_STA_REP 0x0400
|
||||
#define CONN_SEMA_OWN_BY_M1_STA_REP 0x1400
|
||||
#define CONN_SEMA_OWN_BY_M2_STA_REP 0x2400
|
||||
#define CONN_SEMA_OWN_BY_M3_STA_REP 0x3400
|
||||
#define CONN_SEMA_OWN_BY_M4_STA_REP 0x4400
|
||||
#define CONN_SEMA_OWN_BY_M5_STA_REP 0x5400
|
||||
#define CONN_SEMA_OWN_BY_M6_STA_REP 0x6400
|
||||
#define CONN_SEMA_OWN_BY_M7_STA_REP 0x7400
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_AFE_CTL_BASE (0x1800_3000) */
|
||||
/* Base: CONN_AFE_CTL_2ND_BASE (0x1808_3000) */
|
||||
/**********************************************************************/
|
||||
#define RG_DIG_EN_01 0x0000
|
||||
#define RG_DIG_EN_02 0x0004
|
||||
#define RG_DIG_EN_03 0x0008
|
||||
#define RG_DIG_TOP_01 0x000C
|
||||
#define RG_PLL_STB_TIME 0x00F4
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_SLPPROT_ON_BASE (0x8102_0000 remap to 0x184C_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_TOP_SLPPROT_ON_STATUS_READ 0x300C
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_CFG_BASE (0x8002_0000 remap to 0x184B_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_TOP_CFG_IP_VERSION 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCU_CONFIG_LS_BASE (0x8800_0000 remap to 0x184F_0000) */
|
||||
/**********************************************************************/
|
||||
#define BUSHANGCR 0x0440
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCU_BUS_CR_BASE (0x830C_0XXX remap to 0x1840_0XXX) */
|
||||
/**********************************************************************/
|
||||
#define AP2WF_REMAP_1 0x0120
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE (0x810F_0000 remap to 0x1850_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_WFMCU_PWA_CTRL0 0x0000
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_CFG_ON_BASE (0x8102_1000 remap to 0x184C_0000) */
|
||||
/**********************************************************************/
|
||||
#define ROMCODE_INDEX 0x1604
|
||||
|
||||
/**********************************************************************/
|
||||
/* A-die CR */
|
||||
/**********************************************************************/
|
||||
#define ATOP_CHIP_ID 0x02C
|
||||
#define ATOP_TOP_CLK_EN 0xA00
|
||||
#define ATOP_RG_ENCAL_WBTAC_IF_SW 0x070
|
||||
#define ATOP_RG_WRI_CK_SELECT 0x4AC
|
||||
#define ATOP_EFUSE_CTRL_1 0x108
|
||||
#define ATOP_EFUSE_CTRL_2 0x148
|
||||
#define ATOP_EFUSE_CTRL_3 0x14C
|
||||
#define ATOP_EFUSE_CTRL_4 0x15C
|
||||
#define ATOP_EFUSE_RDATA0 0x130
|
||||
#define ATOP_EFUSE_RDATA1 0x134
|
||||
#define ATOP_EFUSE_RDATA2 0x138
|
||||
#define ATOP_EFUSE_RDATA3 0x13C
|
||||
#define ATOP_RG_EFUSE_CFG5 0x144
|
||||
#define ATOP_THADC_ANALOG 0x3A6
|
||||
#define ATOP_THADC_SLOP 0x3A7
|
||||
#define ATOP_RG_TOP_THADC_BG 0x034
|
||||
#define ATOP_RG_TOP_THADC_00 0x038
|
||||
|
||||
#define ATOP_XTAL_TRIM_FLOW 0x3AC
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_80M_OSC 0x390
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_40M_OSC 0x391
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_TRIM1_80M_OSC 0x398
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_TRIM1_40M_OSC 0x399
|
||||
#define ATOP_RG_STRAP_PIN_IN 0x4FC
|
||||
#define ATOP_RG_XO_01 0x65C
|
||||
#define ATOP_RG_XO_03 0x664
|
||||
|
||||
|
||||
#define ATOP_7975_XTAL_CALIBRATION 0x3A1
|
||||
#define ATOP_7975_XTAL_TRIM2_COMPENSATION 0x3A2
|
||||
#define ATOP_7975_XTAL_TRIM3_COMPENSATION 0x3A3
|
||||
#define ATOP_7975_XTAL_TRIM4_COMPENSATION 0x3A4
|
||||
#define ATOP_7975_XTAL_TRIM_FLOW 0x3A5
|
||||
#define ATOP_7975_CR_C1_C2_A94 0xA94
|
||||
#define ATOP_7975_CR_C1_C2_A18 0xA18
|
||||
#define ATOP_7975_CR_C1_C2_A84 0xA84
|
||||
#define ATOP_7975_CR_C1_C2_AA4 0xAA4
|
||||
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7981_CONSYS_REG_OFFSET_H_ */
|
||||
72
package/conninfra/src/platform/mt7981/include/mt7981_emi.h
Normal file
72
package/conninfra/src/platform/mt7981/include/mt7981_emi.h
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_EMI_H_
|
||||
#define _PLATFORM_MT7981_EMI_H_
|
||||
|
||||
#include "osal.h"
|
||||
#include "emi_mng.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_emi_ops* get_consys_platform_emi_ops(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_MT7981_EMI_H_ */
|
||||
72
package/conninfra/src/platform/mt7981/include/mt7981_pmic.h
Normal file
72
package/conninfra/src/platform/mt7981/include/mt7981_pmic.h
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_PMIC_H_
|
||||
#define _PLATFORM_MT7981_PMIC_H_
|
||||
|
||||
#include "osal.h"
|
||||
#include "pmic_mng.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops* get_consys_platform_pmic_ops(void);
|
||||
|
||||
#endif /* _PLATFORM_MT7981_PMIC_H_ */
|
||||
63
package/conninfra/src/platform/mt7981/include/mt7981_pos.h
Normal file
63
package/conninfra/src/platform/mt7981/include/mt7981_pos.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7981_POS_H_
|
||||
#define _PLATFORM_MT7981_POS_H_
|
||||
|
||||
int consys_plt_hw_init(void);
|
||||
int consys_xtal_ctrl_fast_mode(void);
|
||||
int consys_sw_reset_ctrl(bool bassert);
|
||||
int consys_tx_rx_bus_slp_prot_ctrl(bool enable);
|
||||
void consys_set_if_pinmux(bool enable);
|
||||
int consys_polling_chipid(void);
|
||||
int consys_plt_adie_type_cfg(void);
|
||||
int consys_bus_clock_ctrl(enum consys_drv_type drv_type, unsigned int bus_clock);
|
||||
int consys_emi_set_remapping_reg(void);
|
||||
int consys_emi_set_region_protection(void);
|
||||
int connsys_d_die_cfg(void);
|
||||
int connsys_conninfra_sysram_hw_ctrl(void);
|
||||
int connsys_spi_master_cfg(void);
|
||||
int consys_sema_acquire_timeout(unsigned int index, unsigned int usec);
|
||||
void consys_sema_release(unsigned int index);
|
||||
int consys_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
int consys_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
int consys_spi_write_offset_range(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int value,
|
||||
unsigned int reg_offset, unsigned int value_offset, unsigned int size);
|
||||
int connsys_a_die_cfg(void);
|
||||
int connsys_afe_wbg_cal(void);
|
||||
int connsys_subsys_pll_initial(void);
|
||||
int connsys_osc_legacy_mode(void);
|
||||
int connsys_top_pwr_ctrl(void);
|
||||
int connsys_conn_infra_bus_timeout(void);
|
||||
int connsys_clkgen_wpll_hw_ctrl(void);
|
||||
int consys_conninfra_top_wakeup(void);
|
||||
int consys_conninfra_top_sleep(void);
|
||||
int consys_adie_top_ck_en_on_off_ctrl(enum consys_drv_type type, unsigned char on);
|
||||
int consys_conninfra_wf_wakeup(void);
|
||||
int consys_conninfra_wf_sleep(void);
|
||||
int consys_conn_wmcpu_sw_reset(bool bassert);
|
||||
int consys_wf_bus_slp_prot_ctrl(bool enable);
|
||||
int consys_wfsys_top_on_ctrl(bool enable);
|
||||
int consys_wfsys_bus_slp_prot_check(bool enable);
|
||||
int consys_wfsys_bus_timeout_ctrl(void);
|
||||
int consys_wmcpu_idle_loop_check(void);
|
||||
int consys_wpll_ctrl(bool enable);
|
||||
int consys_conninfra_wf_req_clr(void);
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7981_POS_H_ */
|
||||
162
package/conninfra/src/platform/mt7981/mt7981.c
Normal file
162
package/conninfra/src/platform/mt7981/mt7981.c
Normal file
@ -0,0 +1,162 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include "osal.h"
|
||||
#include "conninfra.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_mng.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "mt7981.h"
|
||||
#include "mt7981_pos.h"
|
||||
#include "emi_mng.h"
|
||||
#include "mt7981_consys_reg.h"
|
||||
#include "mt7981_consys_reg_offset.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
#define PLATFORM_SOC_CHIP 0x7981
|
||||
#define CONN_IP_VER 0x02090000
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
struct consys_hw_ops_struct g_consys_hw_ops_mt7981 = {
|
||||
/* HW init */
|
||||
.consys_plt_hw_init = consys_plt_hw_init,
|
||||
|
||||
/* POS */
|
||||
.consys_plt_xtal_ctrl_fast_mode = consys_xtal_ctrl_fast_mode,
|
||||
.consys_plt_connsys_sw_reset_ctrl = consys_sw_reset_ctrl,
|
||||
.consys_plt_set_if_pinmux = consys_set_if_pinmux,
|
||||
.consys_plt_tx_rx_bus_slp_prot_ctrl = consys_tx_rx_bus_slp_prot_ctrl,
|
||||
.consys_plt_polling_consys_chipid = consys_polling_chipid,
|
||||
.consys_plt_bus_clock_ctrl = consys_bus_clock_ctrl,
|
||||
.consys_plt_d_die_cfg = connsys_d_die_cfg,
|
||||
.consys_plt_conninfra_sysram_hw_ctrl = connsys_conninfra_sysram_hw_ctrl,
|
||||
.consys_plt_spi_master_cfg = connsys_spi_master_cfg,
|
||||
.consys_plt_a_die_cfg = connsys_a_die_cfg,
|
||||
.consys_plt_afe_wbg_cal = connsys_afe_wbg_cal,
|
||||
.consys_plt_subsys_pll_initial = connsys_subsys_pll_initial,
|
||||
.consys_plt_osc_legacy_mode = connsys_osc_legacy_mode,
|
||||
.consys_plt_top_pwr_ctrl = connsys_top_pwr_ctrl,
|
||||
.consys_plt_conn_infra_bus_timeout = connsys_conn_infra_bus_timeout,
|
||||
.consys_plt_clkgen_wpll_hw_ctrl = connsys_clkgen_wpll_hw_ctrl,
|
||||
.consys_plt_conninfra_wakeup = consys_conninfra_top_wakeup,
|
||||
.consys_plt_conninfra_sleep = consys_conninfra_top_sleep,
|
||||
.consys_plt_adie_top_ck_en_on_off_ctrl = consys_adie_top_ck_en_on_off_ctrl,
|
||||
.consys_plt_conninfra_wf_wakeup = consys_conninfra_wf_wakeup,
|
||||
.consys_plt_conninfra_wf_sleep = consys_conninfra_wf_sleep,
|
||||
.consys_plt_conn_wmcpu_sw_reset = consys_conn_wmcpu_sw_reset,
|
||||
.consys_plt_wf_bus_slp_prot_ctrl = consys_wf_bus_slp_prot_ctrl,
|
||||
.consys_plt_wfsys_top_on_ctrl = consys_wfsys_top_on_ctrl,
|
||||
.consys_plt_wfsys_bus_slp_prot_check = consys_wfsys_bus_slp_prot_check,
|
||||
.consys_plt_wfsys_bus_timeout_ctrl = consys_wfsys_bus_timeout_ctrl,
|
||||
.consys_plt_conn_wmcpu_idle_loop_check = consys_wmcpu_idle_loop_check,
|
||||
.consys_plt_wpll_ctrl = consys_wpll_ctrl,
|
||||
.consys_plt_conninfra_wf_req_clr = consys_conninfra_wf_req_clr,
|
||||
|
||||
/* load from dts */
|
||||
/* TODO: mtcmos should move to a independent module */
|
||||
.consys_plt_clk_get_from_dts = NULL,
|
||||
.consys_plt_clk_detach = NULL,
|
||||
|
||||
/* clock */
|
||||
.consys_plt_soc_chipid_get = consys_soc_chipid_get,
|
||||
|
||||
/* debug */
|
||||
.consys_plt_get_hw_ver = consys_get_hw_ver,
|
||||
.consys_plt_spi_read = consys_spi_read,
|
||||
.consys_plt_spi_write = consys_spi_write,
|
||||
.consys_plt_spi_clock_switch = NULL,
|
||||
.consys_plt_power_state = NULL,
|
||||
|
||||
/* others */
|
||||
.consys_plt_adie_type_cfg = consys_plt_adie_type_cfg,
|
||||
};
|
||||
|
||||
/* For mt7981 */
|
||||
extern struct consys_hw_ops_struct g_consys_hw_ops_mt7981;
|
||||
extern struct consys_reg_mng_ops g_dev_consys_reg_ops_mt7981;
|
||||
extern struct consys_platform_emi_ops g_consys_platform_emi_ops_mt7981;
|
||||
extern struct consys_platform_pmic_ops g_consys_platform_pmic_ops_mt7981;
|
||||
|
||||
const struct conninfra_plat_data mt7981_plat_data = {
|
||||
.chip_id = PLATFORM_SOC_CHIP,
|
||||
.hw_ops = &g_consys_hw_ops_mt7981,
|
||||
.reg_ops = &g_dev_consys_reg_ops_mt7981,
|
||||
.platform_emi_ops = &g_consys_platform_emi_ops_mt7981,
|
||||
.platform_pmic_ops = &g_consys_platform_pmic_ops_mt7981,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
unsigned int consys_soc_chipid_get(void)
|
||||
{
|
||||
return PLATFORM_SOC_CHIP;
|
||||
}
|
||||
|
||||
unsigned int consys_get_hw_ver(void)
|
||||
{
|
||||
return CONN_IP_VER;
|
||||
}
|
||||
|
||||
172
package/conninfra/src/platform/mt7981/mt7981_consys_reg.c
Normal file
172
package/conninfra/src/platform/mt7981/mt7981_consys_reg.c
Normal file
@ -0,0 +1,172 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/random.h>
|
||||
#include "consys_reg_mng.h"
|
||||
#include "mt7981_consys_reg.h"
|
||||
#include "mt7981_consys_reg_offset.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
|
||||
#define CFG_REG_LOAD_FROM_DTS_CTRL 0
|
||||
|
||||
static int consys_reg_init(struct platform_device *pdev);
|
||||
static int consys_reg_deinit(void);
|
||||
|
||||
struct consys_base_addr conn_reg = {
|
||||
.reg_base_addr[TOP_MISC_BASE] = {0x11D10000, 0x1000, 0},
|
||||
.reg_base_addr[TOPRGU_BASE] = {0x1001C000, 0x1000, 0},
|
||||
.reg_base_addr[GPIO_BASE] = {0x11D00000, 0x1000, 0},
|
||||
.reg_base_addr[IOCFG_TM_BASE] = {0x11F00000, 0x1000, 0},
|
||||
.reg_base_addr[IOCFG_LT_BASE] = {0x11F10000, 0x1000, 0},
|
||||
.reg_base_addr[INFRACFG_AO_BASE] = {0x10003000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_CFG_BASE] = {0x18001000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_SYSRAM_BASE] = {0x18050000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_CLKGEN_ON_TOP_BASE] = {0x18009000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_HOST_CSR_TOP_BASE] = {0x18060000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_BUS_CR_BASE] = {0x1800E000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_RGU_BASE] = {0x18000000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_WT_SLP_CTL_REG_BASE] = {0x18005000, 0x1000, 0},
|
||||
.reg_base_addr[INST2_CONN_WT_SLP_CTL_REG_BASE] = {0x18085000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_RF_SPI_MST_REG_BASE] = {0x18004000, 0x1000, 0},
|
||||
.reg_base_addr[INST2_CONN_RF_SPI_MST_REG_BASE] = {0x18084000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_SEMAPHORE_BASE] = {0x18070000, 0x10000, 0},
|
||||
.reg_base_addr[CONN_AFE_CTL_BASE] = {0x18003000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_AFE_CTL_2ND_BASE] = {0x18083000, 0x1000, 0},
|
||||
.reg_base_addr[WF_TOP_SLPPROT_ON_BASE] = {0x184C0000, 0x10000, 0},
|
||||
.reg_base_addr[WF_TOP_CFG_BASE] = {0x184B0000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCU_CONFIG_LS_BASE] = {0x184F0000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCU_BUS_CR_BASE] = {0x18400000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE] = {0x18500000, 0x1000, 0},
|
||||
.reg_base_addr[WF_TOP_CFG_ON_BASE] = {0x184C0000, 0x10000, 0},
|
||||
};
|
||||
|
||||
const char* consys_base_addr_index_to_str[CONSYS_BASE_ADDR_MAX] = {
|
||||
"TOP_MISC_BASE",
|
||||
"TOPRGU_BASE",
|
||||
"GPIO_BASE",
|
||||
"IOCFG_TR_BASE",
|
||||
"IOCFG_TL_BASE",
|
||||
"INFRACFG_AO_BASE",
|
||||
"CONN_INFRA_CFG_BASE",
|
||||
"CONN_INFRA_SYSRAM_BASE",
|
||||
"CONN_INFRA_CLKGEN_ON_TOP_BASE",
|
||||
"CONN_HOST_CSR_TOP_BASE",
|
||||
"CONN_INFRA_BUS_CR_BASE",
|
||||
"CONN_INFRA_RGU_BASE",
|
||||
"CONN_WT_SLP_CTL_REG_BASE",
|
||||
"INST2_CONN_WT_SLP_CTL_REG_BASE",
|
||||
"CONN_RF_SPI_MST_REG_BASE",
|
||||
"INST2_CONN_RF_SPI_MST_REG_BASE",
|
||||
"CONN_SEMAPHORE_BASE",
|
||||
"CONN_AFE_CTL_BASE",
|
||||
"CONN_AFE_CTL_2ND_BASE",
|
||||
"WF_TOP_SLPPROT_ON_BASE",
|
||||
"WF_TOP_CFG_BASE",
|
||||
"WF_MCU_CONFIG_LS_BASE",
|
||||
"WF_MCU_BUS_CR_BASE",
|
||||
"WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE",
|
||||
"WF_TOP_CFG_ON_BASE"
|
||||
};
|
||||
|
||||
struct consys_reg_mng_ops g_dev_consys_reg_ops_mt7981 = {
|
||||
.consys_reg_mng_init = consys_reg_init,
|
||||
.consys_reg_mng_deinit = consys_reg_deinit,
|
||||
.consys_reg_mng_check_reable = NULL,
|
||||
.consys_reg_mng_is_consys_reg = NULL,
|
||||
.consys_reg_mng_is_bus_hang = NULL,
|
||||
.consys_reg_mng_dump_bus_status = NULL,
|
||||
.consys_reg_mng_dump_conninfra_status = NULL,
|
||||
.consys_reg_mng_dump_cpupcr = NULL,
|
||||
.consys_reg_mng_is_host_csr = NULL,
|
||||
};
|
||||
|
||||
struct consys_base_addr* get_conn_reg_base_addr()
|
||||
{
|
||||
return &conn_reg;
|
||||
}
|
||||
|
||||
static int consys_reg_init(struct platform_device *pdev)
|
||||
{
|
||||
int ret = -1;
|
||||
struct device_node *node = NULL;
|
||||
struct consys_reg_base_addr *base_addr = NULL;
|
||||
int i = 0;
|
||||
|
||||
node = pdev->dev.of_node;
|
||||
if (node) {
|
||||
#if (CFG_REG_LOAD_FROM_DTS_CTRL == 1)
|
||||
struct resource res;
|
||||
int flag;
|
||||
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
base_addr = &conn_reg.reg_base_addr[i];
|
||||
ret = of_address_to_resource(node, i, &res);
|
||||
if (ret) {
|
||||
pr_err("Get Reg Index(%d-%s) failed\n", i, consys_base_addr_index_to_str[i]);
|
||||
continue;
|
||||
}
|
||||
base_addr->phy_addr = res.start;
|
||||
base_addr->vir_addr = (unsigned long)of_iomap(node, i);
|
||||
of_get_address(node, i, &(base_addr->size), &flag);
|
||||
#if 0
|
||||
pr_info("Get Index(%d-%s) phy_addr(0x%zx) vir_addr=(0x%zx) size=(0x%zx)\n",
|
||||
i, consys_base_addr_index_to_str[i], base_addr->phy_addr,
|
||||
base_addr->vir_addr, base_addr->size);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
base_addr = &conn_reg.reg_base_addr[i];
|
||||
if (base_addr->vir_addr == 0)
|
||||
base_addr->vir_addr = (unsigned long)ioremap(base_addr->phy_addr, base_addr->size);
|
||||
|
||||
pr_info("Get Index(%d-%s) phy_addr(0x%zx) vir_addr=(0x%zx) size=(0x%zx)\n",
|
||||
i, consys_base_addr_index_to_str[i], base_addr->phy_addr,
|
||||
base_addr->vir_addr, base_addr->size);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
pr_err("[%s] can't find CONSYS compatible node\n", __func__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int consys_reg_deinit(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
if (conn_reg.reg_base_addr[i].vir_addr) {
|
||||
pr_info("[%d] Unmap %s (0x%zx)\n", i, consys_base_addr_index_to_str[i],
|
||||
conn_reg.reg_base_addr[i].vir_addr);
|
||||
iounmap((void __iomem*)conn_reg.reg_base_addr[i].vir_addr);
|
||||
conn_reg.reg_base_addr[i].vir_addr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
50
package/conninfra/src/platform/mt7981/mt7981_emi.c
Normal file
50
package/conninfra/src/platform/mt7981/mt7981_emi.c
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include "mt7981_emi.h"
|
||||
#include "mt7981.h"
|
||||
#include "mt7981_consys_reg.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "mt7981_pos.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
unsigned int consys_emi_get_fw_emi_size(void)
|
||||
{
|
||||
return 0x100000;
|
||||
}
|
||||
|
||||
struct consys_platform_emi_ops g_consys_platform_emi_ops_mt7981 = {
|
||||
.consys_ic_emi_set_region_protection = consys_emi_set_region_protection,
|
||||
.consys_ic_emi_set_remapping_reg = consys_emi_set_remapping_reg,
|
||||
.consys_ic_emi_get_fw_emi_size = consys_emi_get_fw_emi_size,
|
||||
};
|
||||
|
||||
struct consys_platform_emi_ops* get_consys_platform_emi_ops(void)
|
||||
{
|
||||
return &g_consys_platform_emi_ops_mt7981;
|
||||
}
|
||||
|
||||
95
package/conninfra/src/platform/mt7981/mt7981_pmic.c
Normal file
95
package/conninfra/src/platform/mt7981/mt7981_pmic.c
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "osal.h"
|
||||
#include "mt7981_pmic.h"
|
||||
#include "mt7981_pos.h"
|
||||
#include "mt7981_consys_reg.h"
|
||||
#include "mt7981_consys_reg_offset.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops g_consys_platform_pmic_ops_mt7981 = {
|
||||
.consys_pmic_get_from_dts = NULL,
|
||||
.consys_pmic_common_power_ctrl = NULL,
|
||||
.consys_pmic_wifi_power_ctrl = NULL,
|
||||
.consys_pmic_bt_power_ctrl = NULL,
|
||||
.consys_pmic_gps_power_ctrl = NULL,
|
||||
.consys_pmic_fm_power_ctrl = NULL,
|
||||
.consys_pmic_event_notifier = NULL,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops* get_consys_platform_pmic_ops(void)
|
||||
{
|
||||
return &g_consys_platform_pmic_ops_mt7981;
|
||||
}
|
||||
|
||||
1715
package/conninfra/src/platform/mt7981/mt7981_pos.c
Normal file
1715
package/conninfra/src/platform/mt7981/mt7981_pos.c
Normal file
File diff suppressed because it is too large
Load Diff
59
package/conninfra/src/platform/mt7986/include/mt7986.h
Normal file
59
package/conninfra/src/platform/mt7986/include/mt7986.h
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_H_
|
||||
#define _PLATFORM_MT7986_H_
|
||||
|
||||
enum
|
||||
{
|
||||
ADIE_TYPE_NONE = 0,
|
||||
ADIE_TYPE_ONE,
|
||||
ADIE_TYPE_TWO,
|
||||
ADIE_TYPE_NUM_MAX
|
||||
};
|
||||
|
||||
enum conn_semaphore_type
|
||||
{
|
||||
CONN_SEMA_CHIP_POWER_ON_INDEX = 0,
|
||||
CONN_SEMA_CALIBRATION_INDEX = 1,
|
||||
CONN_SEMA_FW_DL_INDEX = 2,
|
||||
CONN_SEMA_CLOCK_SWITCH_INDEX = 3,
|
||||
CONN_SEMA_CCIF_INDEX = 4,
|
||||
CONN_SEMA_COEX_INDEX = 5,
|
||||
CONN_SEMA_USB_EP0_INDEX = 6,
|
||||
CONN_SEMA_USB_SHARED_INFO_INDEX = 7,
|
||||
CONN_SEMA_USB_SUSPEND_INDEX = 8,
|
||||
CONN_SEMA_USB_RESUME_INDEX = 9,
|
||||
CONN_SEMA_PCIE_INDEX = 10,
|
||||
CONN_SEMA_RFSPI_INDEX = 11,
|
||||
CONN_SEMA_EFUSE_INDEX = 12,
|
||||
CONN_SEMA_THERMAL_INDEX = 13,
|
||||
CONN_SEMA_FLASH_INDEX = 14,
|
||||
CONN_SEMA_DEBUG_INDEX = 15,
|
||||
CONN_SEMA_WIFI_LP_INDEX = 16,
|
||||
CONN_SEMA_PATCH_DL_INDEX = 17,
|
||||
CONN_SEMA_SHARED_VAR_INDEX = 18,
|
||||
CONN_SEMA_CONN_INFRA_COMMON_SYSRAM_INDEX = 19,
|
||||
CONN_SEMA_NUM_MAX = 32 /* can't be omitted */
|
||||
};
|
||||
|
||||
unsigned int consys_soc_chipid_get(void);
|
||||
unsigned int consys_get_hw_ver(void);
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7986_H_ */
|
||||
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_CONSYS_REG_H_
|
||||
#define _PLATFORM_MT7986_CONSYS_REG_H_
|
||||
|
||||
#include "consys_reg_base.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
enum consys_base_addr_index {
|
||||
TOP_MISC_BASE = 0, /* top_misc */
|
||||
TOPRGU_BASE = 1, /* TOPRGU */
|
||||
GPIO_BASE = 2, /* GPIO */
|
||||
IOCFG_TR_BASE = 3, /* IOCFG_TR */
|
||||
IOCFG_TL_BASE = 4, /* IOCFG_TL */
|
||||
INFRACFG_AO_BASE = 5, /* infracfg_ao_auto_gen_reg */
|
||||
CONN_INFRA_CFG_BASE = 6, /* conn_infra_cfg */
|
||||
CONN_INFRA_SYSRAM_BASE = 7, /* conn_infra_sysram */
|
||||
CONN_INFRA_CLKGEN_ON_TOP_BASE = 8, /* conn_infra_clkgen_on_top */
|
||||
CONN_HOST_CSR_TOP_BASE = 9, /* conn_host_csr_top */
|
||||
CONN_INFRA_BUS_CR_BASE = 10, /* conn_infra_bus_cr */
|
||||
CONN_INFRA_RGU_BASE = 11, /* conn_infra_rgu */
|
||||
CONN_WT_SLP_CTL_REG_BASE = 12, /* conn_wt_slp_ctl_reg */
|
||||
INST2_CONN_WT_SLP_CTL_REG_BASE = 13, /* Inst2_conn_wt_slp_ctl_reg */
|
||||
CONN_RF_SPI_MST_REG_BASE = 14, /* conn_rf_spi_mst_reg */
|
||||
INST2_CONN_RF_SPI_MST_REG_BASE = 15, /* Inst2_conn_rf_spi_mst_reg */
|
||||
CONN_SEMAPHORE_BASE = 16, /* conn_semaphore */
|
||||
CONN_AFE_CTL_BASE = 17, /* conn_afe_ctl */
|
||||
CONN_AFE_CTL_2ND_BASE = 18, /* conn_afe_ctl_2nd */
|
||||
WF_TOP_SLPPROT_ON_BASE = 19, /* wf_top_slpprot_on by remapping to 0x81020000 */
|
||||
WF_TOP_CFG_BASE = 20, /* wf_top_cfg by remapping to 0x80020000 */
|
||||
WF_MCU_CONFIG_LS_BASE = 21, /* wf_mcu_confg_ls by remapping to 0x88000000 */
|
||||
WF_MCU_BUS_CR_BASE = 22, /* wf_mcu_bus_cr by remapping to 0x830C0XXX */
|
||||
WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE = 23, /* wf_mcusys_infra_bus_full_u_debug_ctrl_ao by remapping to 0x810F0000 */
|
||||
WF_TOP_CFG_ON_BASE = 24, /* wf_top_cfg_on by remapping to 0x81021000 */
|
||||
CONSYS_BASE_ADDR_MAX
|
||||
};
|
||||
|
||||
struct consys_base_addr {
|
||||
struct consys_reg_base_addr reg_base_addr[CONSYS_BASE_ADDR_MAX];
|
||||
};
|
||||
|
||||
extern struct consys_base_addr conn_reg;
|
||||
|
||||
#define REG_TOP_MISC_ADDR conn_reg.reg_base_addr[TOP_MISC_BASE].vir_addr
|
||||
#define REG_TOP_RGU_ADDR conn_reg.reg_base_addr[TOPRGU_BASE].vir_addr
|
||||
#define REG_GPIO_BASE_ADDR conn_reg.reg_base_addr[GPIO_BASE].vir_addr
|
||||
#define REG_IOCFG_TR_ADDR conn_reg.reg_base_addr[IOCFG_TR_BASE].vir_addr
|
||||
#define REG_IOCFG_TL_ADDR conn_reg.reg_base_addr[IOCFG_TL_BASE].vir_addr
|
||||
#define REG_INFRACFG_AO_ADDR conn_reg.reg_base_addr[INFRACFG_AO_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_CFG_ADDR conn_reg.reg_base_addr[CONN_INFRA_CFG_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_SYSRAM_ADDR conn_reg.reg_base_addr[CONN_INFRA_SYSRAM_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_CLKGEN_ON_TOP_ADDR conn_reg.reg_base_addr[CONN_INFRA_CLKGEN_ON_TOP_BASE].vir_addr
|
||||
#define REG_CONN_HOST_CSR_TOP_ADDR conn_reg.reg_base_addr[CONN_HOST_CSR_TOP_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_BUS_CR_ADDR conn_reg.reg_base_addr[CONN_INFRA_BUS_CR_BASE].vir_addr
|
||||
#define REG_CONN_INFRA_RGU_ADDR conn_reg.reg_base_addr[CONN_INFRA_RGU_BASE].vir_addr
|
||||
#define REG_CONN_WT_SLP_CTL_REG_ADDR conn_reg.reg_base_addr[CONN_WT_SLP_CTL_REG_BASE].vir_addr
|
||||
#define REG_INST2_CONN_WT_SLP_CTL_REG_ADDR conn_reg.reg_base_addr[INST2_CONN_WT_SLP_CTL_REG_BASE].vir_addr
|
||||
#define REG_CONN_RF_SPI_MST_REG_ADDR conn_reg.reg_base_addr[CONN_RF_SPI_MST_REG_BASE].vir_addr
|
||||
#define REG_INST2_CONN_RF_SPI_MST_REG_ADDR conn_reg.reg_base_addr[INST2_CONN_RF_SPI_MST_REG_BASE].vir_addr
|
||||
#define REG_CONN_SEMAPHORE_ADDR conn_reg.reg_base_addr[CONN_SEMAPHORE_BASE].vir_addr
|
||||
#define REG_CONN_AFE_CTL_ADDR conn_reg.reg_base_addr[CONN_AFE_CTL_BASE].vir_addr
|
||||
#define REG_CONN_AFE_CTL_2ND_ADDR conn_reg.reg_base_addr[CONN_AFE_CTL_2ND_BASE].vir_addr
|
||||
#define REG_WF_TOP_SLPPROT_ON_ADDR conn_reg.reg_base_addr[WF_TOP_SLPPROT_ON_BASE].vir_addr
|
||||
#define REG_WF_TOP_CFG_ADDR conn_reg.reg_base_addr[WF_TOP_CFG_BASE].vir_addr
|
||||
#define REG_WF_MCU_CONFIG_LS_ADDR conn_reg.reg_base_addr[WF_MCU_CONFIG_LS_BASE].vir_addr
|
||||
#define REG_WF_MCU_BUS_CR_ADDR conn_reg.reg_base_addr[WF_MCU_BUS_CR_BASE].vir_addr
|
||||
#define REG_WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_ADDR conn_reg.reg_base_addr[WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE].vir_addr
|
||||
#define REG_WF_TOP_CFG_ON_ADDR conn_reg.reg_base_addr[WF_TOP_CFG_ON_BASE].vir_addr
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_base_addr* get_conn_reg_base_addr(void);
|
||||
|
||||
#endif /* _PLATFORM_MT7986_CONSYS_REG_H_ */
|
||||
@ -0,0 +1,243 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_CONSYS_REG_OFFSET_H_
|
||||
#define _PLATFORM_MT7986_CONSYS_REG_OFFSET_H_
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: TOP_MISC (0x11D1_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONNSYS_MISC 0x0114
|
||||
#define TOP_MISC_RSRV_ALL1_3 0x021C
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: TOP RGU (0x1001_C000) */
|
||||
/**********************************************************************/
|
||||
#define TOP_RGU_WDT_SWSYSRST 0x0018
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: GPIO (0x1001_F000) */
|
||||
/**********************************************************************/
|
||||
#define GPIO_MODE9 0x0390
|
||||
#define GPIO_MODE10 0x03A0
|
||||
#define GPIO_MODE11 0x03B0
|
||||
#define GPIO_MODE12 0x03C0
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: IOCFG_TR (0x11F0_0000) */
|
||||
/**********************************************************************/
|
||||
#define IOCFG_TR_DRV_CFG0 0x0000
|
||||
#define IOCFG_TR_DRV_CFG1 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: IOCFG_TL (0x11F1_0000) */
|
||||
/**********************************************************************/
|
||||
#define IOCFG_TL_DRV_CFG0 0x0000
|
||||
#define IOCFG_TL_DRV_CFG1 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: INFRACFG_AO (0x1000_3000) */
|
||||
/**********************************************************************/
|
||||
#define CONN2AP_GALS_SLPPROT 0x00D0
|
||||
#define AP2CONN_GALS_SLPPROT 0x00D4
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_CFG (0x1800_1000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_CFG_IP_VERSION 0x0000
|
||||
#define EFUSE 0x0020
|
||||
#define ADIE_CTL 0x0030
|
||||
#define CONN_INFRA_CFG_PWRCTRL0 0x0200
|
||||
#define CONN_INFRA_CFG_RC_CTL_0 0x0380
|
||||
#define OSC_CTL_0 0x0300
|
||||
#define EMI_CTL_WF 0x0414
|
||||
#define CONN_INFRA_WF_SLP_CTRL 0x0540
|
||||
#define CONN_INFRA_WF_SLP_STATUS 0x0544
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_SYSRAM (0x1805_0000) */
|
||||
/**********************************************************************/
|
||||
#define SYSRAM_BASE_ADDR 0x0000
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_CLKGEN_ON_TOP (0x1800_9000) */
|
||||
/**********************************************************************/
|
||||
#define CKGEN_BUS_WPLL_DIV_1 0x0008
|
||||
#define CKGEN_BUS_WPLL_DIV_2 0x000C
|
||||
#define CKGEN_RFSPI_WPLL_DIV 0x0040
|
||||
#define CKGEN_BUS 0x0A00
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_HOST_CSR_TOP (0x1806_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_WAKEPU_TOP 0x01A0
|
||||
#define CONN_INFRA_WAKEPU_WF 0x01A4
|
||||
#define CONN2AP_REMAP_MCU_EMI 0x01C4
|
||||
#define CONN2AP_REMAP_WF_PERI 0x01D4
|
||||
#define DBG_DUMMY_3 0x02CC
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_BUS_CR (0x1800_E000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_INFRA_BUS_OFF_TIMEOUT_CTRL 0x0300
|
||||
#define CONN_INFRA_BUS_ON_TIMEOUT_CTRL 0x031C
|
||||
#define CONN2AP_EMI_PATH_ADDR_START 0x0360
|
||||
#define CONN2AP_EMI_PATH_ADDR_END 0x0364
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_INFRA_RGU (0x1800_0000) */
|
||||
/**********************************************************************/
|
||||
#define WFSYS_ON_TOP_PWR_CTL 0x0010
|
||||
#define BGFYS_ON_TOP_PWR_CTL 0x0020
|
||||
#define SYSRAM_HWCTL_PDN 0x0050
|
||||
#define SYSRAM_HWCTL_SLP 0x0054
|
||||
#define WFSYS_CPU_SW_RST_B 0x0120
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_WT_SLP_CTL_REG (0x1800_5000) */
|
||||
/* Base: INST2_CONN_WT_SLP_CTL_REG (0x1808_5000) */
|
||||
/**********************************************************************/
|
||||
#define WB_WF_CK_ADDR 0x0070
|
||||
#define WB_WF_WAKE_ADDR 0x0074
|
||||
#define WB_WF_ZPS_ADDR 0x0078
|
||||
#define WB_TOP_CK_ADDR 0x0084
|
||||
#define WB_WF_B0_CMD_ADDR 0x008C
|
||||
#define WB_WF_B1_CMD_ADDR 0x0090
|
||||
#define WB_SLP_TOP_CK_0 0x0120
|
||||
#define WB_SLP_TOP_CK_1 0x0124
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_RF_SPI_MST_REG (0x1800_4000) */
|
||||
/* Base: INST2_CONN_RF_SPI_MST_REG (0x1808_4000) */
|
||||
/**********************************************************************/
|
||||
#define SPI_STA 0x0000
|
||||
#define SPI_WF_ADDR 0x0010
|
||||
#define SPI_WF_WDAT 0x0014
|
||||
#define SPI_WF_RDAT 0x0018
|
||||
#define SPI_BT_ADDR 0x0020
|
||||
#define SPI_BT_WDAT 0x0024
|
||||
#define SPI_BT_RDAT 0x0028
|
||||
#define SPI_FM_ADDR 0x0030
|
||||
#define SPI_FM_WDAT 0x0034
|
||||
#define SPI_FM_RDAT 0x0038
|
||||
#define SPI_GPS_ADDR 0x0040
|
||||
#define SPI_GPS_WDAT 0x0044
|
||||
#define SPI_GPS_RDAT 0x0048
|
||||
#define SPI_TOP_ADDR 0x0050
|
||||
#define SPI_TOP_WDAT 0x0054
|
||||
#define SPI_TOP_RDAT 0x0058
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_SEMAPHORE_BASE (0x1807_0000) */
|
||||
/**********************************************************************/
|
||||
#define CONN_SEMA00_M2_OWN_STA 0x2000
|
||||
#define CONN_SEMA00_M2_OWN_REL 0x2200
|
||||
#define CONN_SEMA_OWN_BY_M0_STA_REP 0x0400
|
||||
#define CONN_SEMA_OWN_BY_M1_STA_REP 0x1400
|
||||
#define CONN_SEMA_OWN_BY_M2_STA_REP 0x2400
|
||||
#define CONN_SEMA_OWN_BY_M3_STA_REP 0x3400
|
||||
#define CONN_SEMA_OWN_BY_M4_STA_REP 0x4400
|
||||
#define CONN_SEMA_OWN_BY_M5_STA_REP 0x5400
|
||||
#define CONN_SEMA_OWN_BY_M6_STA_REP 0x6400
|
||||
#define CONN_SEMA_OWN_BY_M7_STA_REP 0x7400
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: CONN_AFE_CTL_BASE (0x1800_3000) */
|
||||
/* Base: CONN_AFE_CTL_2ND_BASE (0x1808_3000) */
|
||||
/**********************************************************************/
|
||||
#define RG_DIG_EN_01 0x0000
|
||||
#define RG_DIG_EN_02 0x0004
|
||||
#define RG_DIG_EN_03 0x0008
|
||||
#define RG_DIG_TOP_01 0x000C
|
||||
#define RG_PLL_STB_TIME 0x00F4
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_SLPPROT_ON_BASE (0x8102_0000 remap to 0x184C_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_TOP_SLPPROT_ON_STATUS_READ 0x300C
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_CFG_BASE (0x8002_0000 remap to 0x184B_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_TOP_CFG_IP_VERSION 0x0010
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCU_CONFIG_LS_BASE (0x8800_0000 remap to 0x184F_0000) */
|
||||
/**********************************************************************/
|
||||
#define BUSHANGCR 0x0440
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCU_BUS_CR_BASE (0x830C_0XXX remap to 0x1840_0XXX) */
|
||||
/**********************************************************************/
|
||||
#define AP2WF_REMAP_1 0x0120
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE (0x810F_0000 remap to 0x1850_0000) */
|
||||
/**********************************************************************/
|
||||
#define WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_WFMCU_PWA_CTRL0 0x0000
|
||||
|
||||
/**********************************************************************/
|
||||
/* Base: WF_TOP_CFG_ON_BASE (0x8102_1000 remap to 0x184C_0000) */
|
||||
/**********************************************************************/
|
||||
#define ROMCODE_INDEX 0x1604
|
||||
|
||||
/**********************************************************************/
|
||||
/* A-die CR */
|
||||
/**********************************************************************/
|
||||
#define ATOP_CHIP_ID 0x02C
|
||||
#define ATOP_TOP_CLK_EN 0xA00
|
||||
#define ATOP_RG_ENCAL_WBTAC_IF_SW 0x070
|
||||
#define ATOP_RG_WRI_CK_SELECT 0x4AC
|
||||
#define ATOP_EFUSE_CTRL_1 0x108
|
||||
#define ATOP_EFUSE_CTRL_2 0x148
|
||||
#define ATOP_EFUSE_CTRL_3 0x14C
|
||||
#define ATOP_EFUSE_CTRL_4 0x15C
|
||||
#define ATOP_EFUSE_RDATA0 0x130
|
||||
#define ATOP_EFUSE_RDATA1 0x134
|
||||
#define ATOP_EFUSE_RDATA2 0x138
|
||||
#define ATOP_EFUSE_RDATA3 0x13C
|
||||
#define ATOP_RG_EFUSE_CFG5 0x144
|
||||
#define ATOP_THADC_ANALOG 0x3A6
|
||||
#define ATOP_THADC_SLOP 0x3A7
|
||||
#define ATOP_RG_TOP_THADC_BG 0x034
|
||||
#define ATOP_RG_TOP_THADC_00 0x038
|
||||
|
||||
#define ATOP_XTAL_TRIM_FLOW 0x3AC
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_80M_OSC 0x390
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_40M_OSC 0x391
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_TRIM1_80M_OSC 0x398
|
||||
#define ATOP_XTAL_CR_C1_SEL_AXM_TRIM1_40M_OSC 0x399
|
||||
#define ATOP_RG_STRAP_PIN_IN 0x4FC
|
||||
#define ATOP_RG_XO_01 0x65C
|
||||
#define ATOP_RG_XO_03 0x664
|
||||
|
||||
|
||||
#define ATOP_7975_XTAL_CALIBRATION 0x3A1
|
||||
#define ATOP_7975_XTAL_TRIM2_COMPENSATION 0x3A2
|
||||
#define ATOP_7975_XTAL_TRIM3_COMPENSATION 0x3A3
|
||||
#define ATOP_7975_XTAL_TRIM4_COMPENSATION 0x3A4
|
||||
#define ATOP_7975_XTAL_TRIM_FLOW 0x3A5
|
||||
#define ATOP_7975_CR_C1_C2_A94 0xA94
|
||||
#define ATOP_7975_CR_C1_C2_A18 0xA18
|
||||
#define ATOP_7975_CR_C1_C2_A84 0xA84
|
||||
#define ATOP_7975_CR_C1_C2_AA4 0xAA4
|
||||
#define ATOP_7975_CO_CLK 0xA1C
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7986_CONSYS_REG_OFFSET_H_ */
|
||||
72
package/conninfra/src/platform/mt7986/include/mt7986_emi.h
Normal file
72
package/conninfra/src/platform/mt7986/include/mt7986_emi.h
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_EMI_H_
|
||||
#define _PLATFORM_MT7986_EMI_H_
|
||||
|
||||
#include "osal.h"
|
||||
#include "emi_mng.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_emi_ops* get_consys_platform_emi_ops(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* _PLATFORM_MT7986_EMI_H_ */
|
||||
72
package/conninfra/src/platform/mt7986/include/mt7986_pmic.h
Normal file
72
package/conninfra/src/platform/mt7986/include/mt7986_pmic.h
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_PMIC_H_
|
||||
#define _PLATFORM_MT7986_PMIC_H_
|
||||
|
||||
#include "osal.h"
|
||||
#include "pmic_mng.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops* get_consys_platform_pmic_ops(void);
|
||||
|
||||
#endif /* _PLATFORM_MT7986_PMIC_H_ */
|
||||
64
package/conninfra/src/platform/mt7986/include/mt7986_pos.h
Normal file
64
package/conninfra/src/platform/mt7986/include/mt7986_pos.h
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_MT7986_POS_H_
|
||||
#define _PLATFORM_MT7986_POS_H_
|
||||
|
||||
int consys_plt_hw_init(void);
|
||||
int consys_xtal_ctrl_fast_mode(void);
|
||||
int consys_sw_reset_ctrl(bool bassert);
|
||||
int consys_tx_rx_bus_slp_prot_ctrl(bool enable);
|
||||
void consys_set_if_pinmux(bool enable);
|
||||
int consys_polling_chipid(void);
|
||||
int consys_plt_adie_type_check(void);
|
||||
int consys_plt_adie_type_cfg(void);
|
||||
int consys_bus_clock_ctrl(enum consys_drv_type drv_type, unsigned int bus_clock);
|
||||
int consys_emi_set_remapping_reg(void);
|
||||
int consys_emi_set_region_protection(void);
|
||||
int connsys_d_die_cfg(void);
|
||||
int connsys_conninfra_sysram_hw_ctrl(void);
|
||||
int connsys_spi_master_cfg(void);
|
||||
int consys_sema_acquire_timeout(unsigned int index, unsigned int usec);
|
||||
void consys_sema_release(unsigned int index);
|
||||
int consys_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data);
|
||||
int consys_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data);
|
||||
int consys_spi_write_offset_range(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int value,
|
||||
unsigned int reg_offset, unsigned int value_offset, unsigned int size);
|
||||
int connsys_a_die_cfg(void);
|
||||
int connsys_afe_wbg_cal(void);
|
||||
int connsys_subsys_pll_initial(void);
|
||||
int connsys_osc_legacy_mode(void);
|
||||
int connsys_top_pwr_ctrl(void);
|
||||
int connsys_conn_infra_bus_timeout(void);
|
||||
int connsys_clkgen_wpll_hw_ctrl(void);
|
||||
int consys_conninfra_top_wakeup(void);
|
||||
int consys_conninfra_top_sleep(void);
|
||||
int consys_adie_top_ck_en_on_off_ctrl(enum consys_drv_type type, unsigned char on);
|
||||
int consys_conninfra_wf_wakeup(void);
|
||||
int consys_conninfra_wf_sleep(void);
|
||||
int consys_conn_wmcpu_sw_reset(bool bassert);
|
||||
int consys_wf_bus_slp_prot_ctrl(bool enable);
|
||||
int consys_wfsys_top_on_ctrl(bool enable);
|
||||
int consys_wfsys_bus_slp_prot_check(bool enable);
|
||||
int consys_wfsys_bus_timeout_ctrl(void);
|
||||
int consys_wmcpu_idle_loop_check(void);
|
||||
int consys_wpll_ctrl(bool enable);
|
||||
int consys_conninfra_wf_req_clr(void);
|
||||
|
||||
|
||||
#endif /* _PLATFORM_MT7986_POS_H_ */
|
||||
163
package/conninfra/src/platform/mt7986/mt7986.c
Normal file
163
package/conninfra/src/platform/mt7986/mt7986.c
Normal file
@ -0,0 +1,163 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include "osal.h"
|
||||
#include "conninfra.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_mng.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "mt7986.h"
|
||||
#include "mt7986_pos.h"
|
||||
#include "emi_mng.h"
|
||||
#include "mt7986_consys_reg.h"
|
||||
#include "mt7986_consys_reg_offset.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
#define PLATFORM_SOC_CHIP 0x7986
|
||||
#define CONN_IP_VER 0x02070000
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
struct consys_hw_ops_struct g_consys_hw_ops_mt7986 = {
|
||||
/* HW init */
|
||||
.consys_plt_hw_init = consys_plt_hw_init,
|
||||
|
||||
/* POS */
|
||||
.consys_plt_xtal_ctrl_fast_mode = consys_xtal_ctrl_fast_mode,
|
||||
.consys_plt_connsys_sw_reset_ctrl = consys_sw_reset_ctrl,
|
||||
.consys_plt_set_if_pinmux = consys_set_if_pinmux,
|
||||
.consys_plt_tx_rx_bus_slp_prot_ctrl = consys_tx_rx_bus_slp_prot_ctrl,
|
||||
.consys_plt_polling_consys_chipid = consys_polling_chipid,
|
||||
.consys_plt_bus_clock_ctrl = consys_bus_clock_ctrl,
|
||||
.consys_plt_d_die_cfg = connsys_d_die_cfg,
|
||||
.consys_plt_conninfra_sysram_hw_ctrl = connsys_conninfra_sysram_hw_ctrl,
|
||||
.consys_plt_spi_master_cfg = connsys_spi_master_cfg,
|
||||
.consys_plt_a_die_cfg = connsys_a_die_cfg,
|
||||
.consys_plt_afe_wbg_cal = connsys_afe_wbg_cal,
|
||||
.consys_plt_subsys_pll_initial = connsys_subsys_pll_initial,
|
||||
.consys_plt_osc_legacy_mode = connsys_osc_legacy_mode,
|
||||
.consys_plt_top_pwr_ctrl = connsys_top_pwr_ctrl,
|
||||
.consys_plt_conn_infra_bus_timeout = connsys_conn_infra_bus_timeout,
|
||||
.consys_plt_clkgen_wpll_hw_ctrl = connsys_clkgen_wpll_hw_ctrl,
|
||||
.consys_plt_conninfra_wakeup = consys_conninfra_top_wakeup,
|
||||
.consys_plt_conninfra_sleep = consys_conninfra_top_sleep,
|
||||
.consys_plt_adie_top_ck_en_on_off_ctrl = consys_adie_top_ck_en_on_off_ctrl,
|
||||
.consys_plt_conninfra_wf_wakeup = consys_conninfra_wf_wakeup,
|
||||
.consys_plt_conninfra_wf_sleep = consys_conninfra_wf_sleep,
|
||||
.consys_plt_conn_wmcpu_sw_reset = consys_conn_wmcpu_sw_reset,
|
||||
.consys_plt_wf_bus_slp_prot_ctrl = consys_wf_bus_slp_prot_ctrl,
|
||||
.consys_plt_wfsys_top_on_ctrl = consys_wfsys_top_on_ctrl,
|
||||
.consys_plt_wfsys_bus_slp_prot_check = consys_wfsys_bus_slp_prot_check,
|
||||
.consys_plt_wfsys_bus_timeout_ctrl = consys_wfsys_bus_timeout_ctrl,
|
||||
.consys_plt_conn_wmcpu_idle_loop_check = consys_wmcpu_idle_loop_check,
|
||||
.consys_plt_wpll_ctrl = consys_wpll_ctrl,
|
||||
.consys_plt_conninfra_wf_req_clr = consys_conninfra_wf_req_clr,
|
||||
|
||||
/* load from dts */
|
||||
/* TODO: mtcmos should move to a independent module */
|
||||
.consys_plt_clk_get_from_dts = NULL,
|
||||
.consys_plt_clk_detach = NULL,
|
||||
|
||||
/* clock */
|
||||
.consys_plt_soc_chipid_get = consys_soc_chipid_get,
|
||||
|
||||
/* debug */
|
||||
.consys_plt_get_hw_ver = consys_get_hw_ver,
|
||||
.consys_plt_spi_read = consys_spi_read,
|
||||
.consys_plt_spi_write = consys_spi_write,
|
||||
.consys_plt_spi_clock_switch = NULL,
|
||||
.consys_plt_power_state = NULL,
|
||||
|
||||
/* others */
|
||||
.consys_plt_adie_type_check = consys_plt_adie_type_check,
|
||||
.consys_plt_adie_type_cfg = consys_plt_adie_type_cfg,
|
||||
};
|
||||
|
||||
/* For mt7986 */
|
||||
extern struct consys_hw_ops_struct g_consys_hw_ops_mt7986;
|
||||
extern struct consys_reg_mng_ops g_dev_consys_reg_ops_mt7986;
|
||||
extern struct consys_platform_emi_ops g_consys_platform_emi_ops_mt7986;
|
||||
extern struct consys_platform_pmic_ops g_consys_platform_pmic_ops_mt7986;
|
||||
|
||||
const struct conninfra_plat_data mt7986_plat_data = {
|
||||
.chip_id = PLATFORM_SOC_CHIP,
|
||||
.hw_ops = &g_consys_hw_ops_mt7986,
|
||||
.reg_ops = &g_dev_consys_reg_ops_mt7986,
|
||||
.platform_emi_ops = &g_consys_platform_emi_ops_mt7986,
|
||||
.platform_pmic_ops = &g_consys_platform_pmic_ops_mt7986,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
unsigned int consys_soc_chipid_get(void)
|
||||
{
|
||||
return PLATFORM_SOC_CHIP;
|
||||
}
|
||||
|
||||
unsigned int consys_get_hw_ver(void)
|
||||
{
|
||||
return CONN_IP_VER;
|
||||
}
|
||||
|
||||
172
package/conninfra/src/platform/mt7986/mt7986_consys_reg.c
Normal file
172
package/conninfra/src/platform/mt7986/mt7986_consys_reg.c
Normal file
@ -0,0 +1,172 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/random.h>
|
||||
#include "consys_reg_mng.h"
|
||||
#include "mt7986_consys_reg.h"
|
||||
#include "mt7986_consys_reg_offset.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
|
||||
#define CFG_REG_LOAD_FROM_DTS_CTRL 0
|
||||
|
||||
static int consys_reg_init(struct platform_device *pdev);
|
||||
static int consys_reg_deinit(void);
|
||||
|
||||
struct consys_base_addr conn_reg = {
|
||||
.reg_base_addr[TOP_MISC_BASE] = {0x11D10000, 0x1000, 0},
|
||||
.reg_base_addr[TOPRGU_BASE] = {0x1001C000, 0x1000, 0},
|
||||
.reg_base_addr[GPIO_BASE] = {0x1001F000, 0x1000, 0},
|
||||
.reg_base_addr[IOCFG_TR_BASE] = {0x11F00000, 0x1000, 0},
|
||||
.reg_base_addr[IOCFG_TL_BASE] = {0x11F10000, 0x1000, 0},
|
||||
.reg_base_addr[INFRACFG_AO_BASE] = {0x10003000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_CFG_BASE] = {0x18001000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_SYSRAM_BASE] = {0x18050000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_CLKGEN_ON_TOP_BASE] = {0x18009000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_HOST_CSR_TOP_BASE] = {0x18060000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_BUS_CR_BASE] = {0x1800E000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_INFRA_RGU_BASE] = {0x18000000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_WT_SLP_CTL_REG_BASE] = {0x18005000, 0x1000, 0},
|
||||
.reg_base_addr[INST2_CONN_WT_SLP_CTL_REG_BASE] = {0x18085000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_RF_SPI_MST_REG_BASE] = {0x18004000, 0x1000, 0},
|
||||
.reg_base_addr[INST2_CONN_RF_SPI_MST_REG_BASE] = {0x18084000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_SEMAPHORE_BASE] = {0x18070000, 0x10000, 0},
|
||||
.reg_base_addr[CONN_AFE_CTL_BASE] = {0x18003000, 0x1000, 0},
|
||||
.reg_base_addr[CONN_AFE_CTL_2ND_BASE] = {0x18083000, 0x1000, 0},
|
||||
.reg_base_addr[WF_TOP_SLPPROT_ON_BASE] = {0x184C0000, 0x10000, 0},
|
||||
.reg_base_addr[WF_TOP_CFG_BASE] = {0x184B0000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCU_CONFIG_LS_BASE] = {0x184F0000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCU_BUS_CR_BASE] = {0x18400000, 0x1000, 0},
|
||||
.reg_base_addr[WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE] = {0x18500000, 0x1000, 0},
|
||||
.reg_base_addr[WF_TOP_CFG_ON_BASE] = {0x184C0000, 0x10000, 0},
|
||||
};
|
||||
|
||||
const char* consys_base_addr_index_to_str[CONSYS_BASE_ADDR_MAX] = {
|
||||
"TOP_MISC_BASE",
|
||||
"TOPRGU_BASE",
|
||||
"GPIO_BASE",
|
||||
"IOCFG_TR_BASE",
|
||||
"IOCFG_TL_BASE",
|
||||
"INFRACFG_AO_BASE",
|
||||
"CONN_INFRA_CFG_BASE",
|
||||
"CONN_INFRA_SYSRAM_BASE",
|
||||
"CONN_INFRA_CLKGEN_ON_TOP_BASE",
|
||||
"CONN_HOST_CSR_TOP_BASE",
|
||||
"CONN_INFRA_BUS_CR_BASE",
|
||||
"CONN_INFRA_RGU_BASE",
|
||||
"CONN_WT_SLP_CTL_REG_BASE",
|
||||
"INST2_CONN_WT_SLP_CTL_REG_BASE",
|
||||
"CONN_RF_SPI_MST_REG_BASE",
|
||||
"INST2_CONN_RF_SPI_MST_REG_BASE",
|
||||
"CONN_SEMAPHORE_BASE",
|
||||
"CONN_AFE_CTL_BASE",
|
||||
"CONN_AFE_CTL_2ND_BASE",
|
||||
"WF_TOP_SLPPROT_ON_BASE",
|
||||
"WF_TOP_CFG_BASE",
|
||||
"WF_MCU_CONFIG_LS_BASE",
|
||||
"WF_MCU_BUS_CR_BASE",
|
||||
"WF_MCUSYS_INFRA_BUS_FULL_U_DEBUG_CTRL_AO_BASE",
|
||||
"WF_TOP_CFG_ON_BASE"
|
||||
};
|
||||
|
||||
struct consys_reg_mng_ops g_dev_consys_reg_ops_mt7986 = {
|
||||
.consys_reg_mng_init = consys_reg_init,
|
||||
.consys_reg_mng_deinit = consys_reg_deinit,
|
||||
.consys_reg_mng_check_reable = NULL,
|
||||
.consys_reg_mng_is_consys_reg = NULL,
|
||||
.consys_reg_mng_is_bus_hang = NULL,
|
||||
.consys_reg_mng_dump_bus_status = NULL,
|
||||
.consys_reg_mng_dump_conninfra_status = NULL,
|
||||
.consys_reg_mng_dump_cpupcr = NULL,
|
||||
.consys_reg_mng_is_host_csr = NULL,
|
||||
};
|
||||
|
||||
struct consys_base_addr* get_conn_reg_base_addr()
|
||||
{
|
||||
return &conn_reg;
|
||||
}
|
||||
|
||||
static int consys_reg_init(struct platform_device *pdev)
|
||||
{
|
||||
int ret = -1;
|
||||
struct device_node *node = NULL;
|
||||
struct consys_reg_base_addr *base_addr = NULL;
|
||||
int i = 0;
|
||||
|
||||
node = pdev->dev.of_node;
|
||||
if (node) {
|
||||
#if (CFG_REG_LOAD_FROM_DTS_CTRL == 1)
|
||||
struct resource res;
|
||||
int flag;
|
||||
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
base_addr = &conn_reg.reg_base_addr[i];
|
||||
ret = of_address_to_resource(node, i, &res);
|
||||
if (ret) {
|
||||
pr_err("Get Reg Index(%d-%s) failed\n", i, consys_base_addr_index_to_str[i]);
|
||||
continue;
|
||||
}
|
||||
base_addr->phy_addr = res.start;
|
||||
base_addr->vir_addr = (unsigned long)of_iomap(node, i);
|
||||
of_get_address(node, i, &(base_addr->size), &flag);
|
||||
#if 0
|
||||
pr_info("Get Index(%d-%s) phy_addr(0x%zx) vir_addr=(0x%zx) size=(0x%zx)\n",
|
||||
i, consys_base_addr_index_to_str[i], base_addr->phy_addr,
|
||||
base_addr->vir_addr, base_addr->size);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
base_addr = &conn_reg.reg_base_addr[i];
|
||||
if (base_addr->vir_addr == 0)
|
||||
base_addr->vir_addr = (unsigned long)ioremap(base_addr->phy_addr, base_addr->size);
|
||||
|
||||
pr_info("Get Index(%d-%s) phy_addr(0x%zx) vir_addr=(0x%zx) size=(0x%zx)\n",
|
||||
i, consys_base_addr_index_to_str[i], base_addr->phy_addr,
|
||||
base_addr->vir_addr, base_addr->size);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
pr_err("[%s] can't find CONSYS compatible node\n", __func__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int consys_reg_deinit(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < CONSYS_BASE_ADDR_MAX; i++) {
|
||||
if (conn_reg.reg_base_addr[i].vir_addr) {
|
||||
pr_info("[%d] Unmap %s (0x%zx)\n", i, consys_base_addr_index_to_str[i],
|
||||
conn_reg.reg_base_addr[i].vir_addr);
|
||||
iounmap((void __iomem*)conn_reg.reg_base_addr[i].vir_addr);
|
||||
conn_reg.reg_base_addr[i].vir_addr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
50
package/conninfra/src/platform/mt7986/mt7986_emi.c
Normal file
50
package/conninfra/src/platform/mt7986/mt7986_emi.c
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include "mt7986_emi.h"
|
||||
#include "mt7986.h"
|
||||
#include "mt7986_consys_reg.h"
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "mt7986_pos.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
unsigned int consys_emi_get_fw_emi_size(void)
|
||||
{
|
||||
return 0x100000;
|
||||
}
|
||||
|
||||
struct consys_platform_emi_ops g_consys_platform_emi_ops_mt7986 = {
|
||||
.consys_ic_emi_set_region_protection = consys_emi_set_region_protection,
|
||||
.consys_ic_emi_set_remapping_reg = consys_emi_set_remapping_reg,
|
||||
.consys_ic_emi_get_fw_emi_size = consys_emi_get_fw_emi_size,
|
||||
};
|
||||
|
||||
struct consys_platform_emi_ops* get_consys_platform_emi_ops(void)
|
||||
{
|
||||
return &g_consys_platform_emi_ops_mt7986;
|
||||
}
|
||||
|
||||
95
package/conninfra/src/platform/mt7986/mt7986_pmic.c
Normal file
95
package/conninfra/src/platform/mt7986/mt7986_pmic.c
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
#include "consys_hw.h"
|
||||
#include "consys_reg_util.h"
|
||||
#include "osal.h"
|
||||
#include "mt7986_pmic.h"
|
||||
#include "mt7986_pos.h"
|
||||
#include "mt7986_consys_reg.h"
|
||||
#include "mt7986_consys_reg_offset.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops g_consys_platform_pmic_ops_mt7986 = {
|
||||
.consys_pmic_get_from_dts = NULL,
|
||||
.consys_pmic_common_power_ctrl = NULL,
|
||||
.consys_pmic_wifi_power_ctrl = NULL,
|
||||
.consys_pmic_bt_power_ctrl = NULL,
|
||||
.consys_pmic_gps_power_ctrl = NULL,
|
||||
.consys_pmic_fm_power_ctrl = NULL,
|
||||
.consys_pmic_event_notifier = NULL,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct consys_platform_pmic_ops* get_consys_platform_pmic_ops(void)
|
||||
{
|
||||
return &g_consys_platform_pmic_ops_mt7986;
|
||||
}
|
||||
|
||||
2043
package/conninfra/src/platform/mt7986/mt7986_pos.c
Normal file
2043
package/conninfra/src/platform/mt7986/mt7986_pos.c
Normal file
File diff suppressed because it is too large
Load Diff
145
package/conninfra/src/platform/pmic_mng.c
Normal file
145
package/conninfra/src/platform/pmic_mng.c
Normal file
@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#include "consys_hw.h"
|
||||
#include "pmic_mng.h"
|
||||
#include "osal.h"
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
const struct consys_platform_pmic_ops* consys_platform_pmic_ops = NULL;
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
int pmic_mng_init(
|
||||
struct platform_device *pdev,
|
||||
struct conninfra_dev_cb* dev_cb,
|
||||
const struct conninfra_plat_data* plat_data)
|
||||
{
|
||||
if (consys_platform_pmic_ops == NULL) {
|
||||
consys_platform_pmic_ops = (const struct consys_platform_pmic_ops*)plat_data->platform_pmic_ops;
|
||||
}
|
||||
|
||||
if (consys_platform_pmic_ops && consys_platform_pmic_ops->consys_pmic_get_from_dts)
|
||||
consys_platform_pmic_ops->consys_pmic_get_from_dts(pdev, dev_cb);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pmic_mng_deinit(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pmic_mng_common_power_ctrl(unsigned int enable)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_common_power_ctrl)
|
||||
ret = consys_platform_pmic_ops->consys_pmic_common_power_ctrl(enable);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int pmic_mng_wifi_power_ctrl(unsigned int enable)
|
||||
{
|
||||
int ret = 0;
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_wifi_power_ctrl)
|
||||
ret = consys_platform_pmic_ops->consys_pmic_wifi_power_ctrl(enable);
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
int pmic_mng_bt_power_ctrl(unsigned int enable)
|
||||
{
|
||||
int ret = 0;
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_bt_power_ctrl)
|
||||
ret = consys_platform_pmic_ops->consys_pmic_bt_power_ctrl(enable);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int pmic_mng_gps_power_ctrl(unsigned int enable)
|
||||
{
|
||||
int ret = 0;
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_gps_power_ctrl)
|
||||
ret = consys_platform_pmic_ops->consys_pmic_gps_power_ctrl(enable);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int pmic_mng_fm_power_ctrl(unsigned int enable)
|
||||
{
|
||||
int ret = 0;
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_fm_power_ctrl)
|
||||
ret = consys_platform_pmic_ops->consys_pmic_fm_power_ctrl(enable);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int pmic_mng_event_cb(unsigned int id, unsigned int event)
|
||||
{
|
||||
if (consys_platform_pmic_ops &&
|
||||
consys_platform_pmic_ops->consys_pmic_event_notifier)
|
||||
consys_platform_pmic_ops->consys_pmic_event_notifier(id, event);
|
||||
return 0;
|
||||
}
|
||||
263
package/conninfra/src/src/conninfra.c
Normal file
263
package/conninfra/src/src/conninfra.c
Normal file
@ -0,0 +1,263 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME "@(%s:%d) " fmt, __func__, __LINE__
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/cdev.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include "conninfra.h"
|
||||
#include "emi_mng.h"
|
||||
#include "conninfra_core.h"
|
||||
#include "consys_hw.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define CONNINFRA_RST_RATE_LIMIT 0
|
||||
|
||||
#if CONNINFRA_RST_RATE_LIMIT
|
||||
DEFINE_RATELIMIT_STATE(g_rs, HZ, 1);
|
||||
|
||||
#define DUMP_LOG() if (__ratelimit(&g_rs)) \
|
||||
pr_info("rst is ongoing\n")
|
||||
|
||||
#else
|
||||
#define DUMP_LOG()
|
||||
#endif
|
||||
|
||||
struct conninfra_rst_data {
|
||||
enum consys_drv_type drv;
|
||||
char *reason;
|
||||
};
|
||||
|
||||
struct conninfra_rst_data rst_data;
|
||||
|
||||
void conninfra_get_emi_phy_addr(enum connsys_emi_type type, phys_addr_t* base, unsigned int *size)
|
||||
{
|
||||
struct consys_emi_addr_info* addr_info = emi_mng_get_phy_addr();
|
||||
|
||||
switch (type) {
|
||||
case CONNSYS_EMI_FW:
|
||||
if (base)
|
||||
*base = addr_info->emi_ap_phy_base;
|
||||
|
||||
if (size)
|
||||
*size = addr_info->fw_emi_size;
|
||||
break;
|
||||
|
||||
default:
|
||||
pr_err("Wrong EMI type: %d\n", type);
|
||||
if (base)
|
||||
*base = 0x0;
|
||||
|
||||
if (size)
|
||||
*size = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_get_emi_phy_addr);
|
||||
|
||||
int conninfra_pwr_on(enum consys_drv_type drv_type)
|
||||
{
|
||||
pr_info("[%s] drv=[%d]\n", __func__, drv_type);
|
||||
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
|
||||
return conninfra_core_power_on(drv_type);
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_pwr_on);
|
||||
|
||||
int conninfra_pwr_off(enum consys_drv_type drv_type)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
|
||||
return conninfra_core_power_off(drv_type);
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_pwr_off);
|
||||
|
||||
int conninfra_is_bus_hang(void)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
return conninfra_core_is_bus_hang();
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_is_bus_hang);
|
||||
|
||||
int conninfra_trigger_whole_chip_rst(enum consys_drv_type who, char *reason)
|
||||
{
|
||||
/* use schedule worker to trigger ??? */
|
||||
/* so that function can be returned immediately */
|
||||
int r;
|
||||
|
||||
r = conninfra_core_lock_rst();
|
||||
if (r >= CHIP_RST_START) {
|
||||
/* reset is ongoing */
|
||||
pr_warn("r=[%d] chip rst is ongoing\n", r);
|
||||
return 1;
|
||||
}
|
||||
pr_info("rst lock [%d] [%d] reason=%s\n", r, who, reason);
|
||||
|
||||
conninfra_core_trg_chip_rst(who, reason);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_trigger_whole_chip_rst);
|
||||
|
||||
int conninfra_sub_drv_ops_register(enum consys_drv_type type,
|
||||
struct sub_drv_ops_cb *cb)
|
||||
{
|
||||
/* type validation */
|
||||
if (type < 0 || type >= CONNDRV_TYPE_MAX) {
|
||||
pr_err("incorrect drv type [%d]\n", type);
|
||||
return -EINVAL;
|
||||
}
|
||||
pr_info("----\n");
|
||||
conninfra_core_subsys_ops_reg(type, cb);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_sub_drv_ops_register);
|
||||
|
||||
int conninfra_sub_drv_ops_unregister(enum consys_drv_type type)
|
||||
{
|
||||
/* type validation */
|
||||
if (type < 0 || type >= CONNDRV_TYPE_MAX) {
|
||||
pr_err("[%s] incorrect drv type [%d]\n", __func__, type);
|
||||
return -EINVAL;
|
||||
}
|
||||
pr_info("----\n");
|
||||
conninfra_core_subsys_ops_unreg(type);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_sub_drv_ops_unregister);
|
||||
|
||||
int conninfra_spi_read(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int *data)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
if (subsystem >= SYS_SPI_MAX) {
|
||||
pr_err("wrong subsys %d\n", subsystem);
|
||||
return -EINVAL;
|
||||
}
|
||||
conninfra_core_spi_read(subsystem, addr, data);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_spi_read);
|
||||
|
||||
int conninfra_spi_write(enum sys_spi_subsystem subsystem, unsigned int addr, unsigned int data)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
|
||||
if (subsystem >= SYS_SPI_MAX) {
|
||||
pr_err("wrong subsys %d\n", subsystem);
|
||||
return -EINVAL;
|
||||
}
|
||||
conninfra_core_spi_write(subsystem, addr, data);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_spi_write);
|
||||
|
||||
int conninfra_adie_top_ck_en_on(enum consys_drv_type type)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
|
||||
return conninfra_core_adie_top_ck_en_on(type);
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_adie_top_ck_en_on);
|
||||
|
||||
int conninfra_adie_top_ck_en_off(enum consys_drv_type type)
|
||||
{
|
||||
if (conninfra_core_is_rst_locking()) {
|
||||
DUMP_LOG();
|
||||
return CONNINFRA_ERR_RST_ONGOING;
|
||||
}
|
||||
|
||||
return conninfra_core_adie_top_ck_en_off(type);
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_adie_top_ck_en_off);
|
||||
|
||||
int conninfra_spi_clock_switch(enum connsys_spi_speed_type type)
|
||||
{
|
||||
return conninfra_core_spi_clock_switch(type);
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_spi_clock_switch);
|
||||
|
||||
int conninfra_debug_dump(void)
|
||||
{
|
||||
return conninfra_core_debug_dump();
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(conninfra_debug_dump);
|
||||
344
package/conninfra/src/src/conninfra_dev.c
Normal file
344
package/conninfra/src/src/conninfra_dev.c
Normal file
@ -0,0 +1,344 @@
|
||||
/*
|
||||
* Copyright (C) 2016 MediaTek Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
||||
*/
|
||||
/*! \file
|
||||
* \brief Declaration of library functions
|
||||
*
|
||||
* Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
|
||||
*/
|
||||
|
||||
#include <linux/cdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include "conninfra.h"
|
||||
#include "conninfra_core.h"
|
||||
#include "consys_hw.h"
|
||||
#include "emi_mng.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* C O M P I L E R F L A G S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M A C R O S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define CONNINFRA_DEV_MAJOR 164
|
||||
#define CONNINFRA_DEV_NUM 1
|
||||
#define CONNINFRA_DRVIER_NAME "conninfra_drv"
|
||||
#define CONNINFRA_DEVICE_NAME "conninfra_dev"
|
||||
|
||||
#define CONNINFRA_DEV_IOC_MAGIC 0xc2
|
||||
#define CONNINFRA_IOCTL_GET_CHIP_ID _IOR(CONNINFRA_DEV_IOC_MAGIC, 0, int)
|
||||
|
||||
#define CONNINFRA_DEV_INIT_TO_MS (2 * 1000)
|
||||
|
||||
/*******************************************************************************
|
||||
* E X T E R N A L R E F E R E N C E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* C O N S T A N T S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
enum conninfra_init_status {
|
||||
CONNINFRA_INIT_NOT_START,
|
||||
CONNINFRA_INIT_START,
|
||||
CONNINFRA_INIT_DONE,
|
||||
};
|
||||
static int g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
static wait_queue_head_t g_conninfra_init_wq;
|
||||
|
||||
/*******************************************************************************
|
||||
* D A T A T Y P E S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N D E C L A R A T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
static int conninfra_dev_open(struct inode *inode, struct file *file);
|
||||
static int conninfra_dev_close(struct inode *inode, struct file *file);
|
||||
static ssize_t conninfra_dev_read(struct file *filp, char __user *buf,
|
||||
size_t count, loff_t *f_pos);
|
||||
static ssize_t conninfra_dev_write(struct file *filp,
|
||||
const char __user *buf, size_t count,
|
||||
loff_t *f_pos);
|
||||
static long conninfra_dev_unlocked_ioctl(
|
||||
struct file *filp, unsigned int cmd, unsigned long arg);
|
||||
#ifdef CONFIG_COMPAT
|
||||
static long conninfra_dev_compat_ioctl(
|
||||
struct file *filp, unsigned int cmd, unsigned long arg);
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
static int conninfra_dev_suspend_cb(void);
|
||||
static int conninfra_dev_resume_cb(void);
|
||||
static int conninfra_dev_pmic_event_cb(unsigned int, unsigned int);
|
||||
/*******************************************************************************
|
||||
* P U B L I C D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* P R I V A T E D A T A
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
struct class *pConninfraClass;
|
||||
struct device *pConninfraDev;
|
||||
static struct cdev gConninfraCdev;
|
||||
|
||||
const struct file_operations gConninfraDevFops = {
|
||||
.open = conninfra_dev_open,
|
||||
.release = conninfra_dev_close,
|
||||
.read = conninfra_dev_read,
|
||||
.write = conninfra_dev_write,
|
||||
.unlocked_ioctl = conninfra_dev_unlocked_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_ioctl = conninfra_dev_compat_ioctl,
|
||||
#endif /* CONFIG_COMPAT */
|
||||
};
|
||||
|
||||
static int gConnInfraMajor = CONNINFRA_DEV_MAJOR;
|
||||
|
||||
/* screen on/off notification */
|
||||
|
||||
static struct conninfra_dev_cb gConninfraDevCb = {
|
||||
.conninfra_suspend_cb = conninfra_dev_suspend_cb,
|
||||
.conninfra_resume_cb = conninfra_dev_resume_cb,
|
||||
.conninfra_pmic_event_notifier = conninfra_dev_pmic_event_cb,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* F U N C T I O N S
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
int conninfra_dev_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
static DEFINE_RATELIMIT_STATE(_rs, HZ, 1);
|
||||
|
||||
if (!wait_event_timeout(g_conninfra_init_wq, g_conninfra_init_status == CONNINFRA_INIT_DONE,
|
||||
msecs_to_jiffies(CONNINFRA_DEV_INIT_TO_MS))) {
|
||||
if (__ratelimit(&_rs)) {
|
||||
pr_warn("wait_event_timeout (%d)ms,(%lu)jiffies,return -EIO\n",
|
||||
CONNINFRA_DEV_INIT_TO_MS, msecs_to_jiffies(CONNINFRA_DEV_INIT_TO_MS));
|
||||
}
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
pr_info("open major %d minor %d (pid %d)\n",
|
||||
imajor(inode), iminor(inode), current->pid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int conninfra_dev_close(struct inode *inode, struct file *file)
|
||||
{
|
||||
pr_info("close major %d minor %d (pid %d)\n",
|
||||
imajor(inode), iminor(inode), current->pid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ssize_t conninfra_dev_read(struct file *filp, char __user *buf,
|
||||
size_t count, loff_t *f_pos)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
ssize_t conninfra_dev_write(struct file *filp,
|
||||
const char __user *buf, size_t count, loff_t *f_pos)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static long conninfra_dev_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
pr_info("[%s] cmd (%d),arg(%ld)\n", __func__, cmd, arg);
|
||||
switch (cmd) {
|
||||
case CONNINFRA_IOCTL_GET_CHIP_ID:
|
||||
retval = consys_hw_chipid_get();
|
||||
break;
|
||||
}
|
||||
return retval;
|
||||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
static long conninfra_dev_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
long ret;
|
||||
|
||||
pr_info("[%s] cmd (%d)\n", __func__, cmd);
|
||||
ret = conninfra_dev_unlocked_ioctl(filp, cmd, arg);
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
static int conninfra_dev_suspend_cb(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int conninfra_dev_resume_cb(void)
|
||||
{
|
||||
conninfra_core_dump_power_state();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int conninfra_dev_pmic_event_cb(unsigned int id, unsigned int event)
|
||||
{
|
||||
conninfra_core_pmic_event_cb(id, event);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
static int conninfra_dev_init(void)
|
||||
{
|
||||
dev_t devID = MKDEV(gConnInfraMajor, 0);
|
||||
int cdevErr = -1;
|
||||
int iret = 0;
|
||||
|
||||
g_conninfra_init_status = CONNINFRA_INIT_START;
|
||||
init_waitqueue_head((wait_queue_head_t *)&g_conninfra_init_wq);
|
||||
|
||||
iret = register_chrdev_region(devID, CONNINFRA_DEV_NUM, CONNINFRA_DRVIER_NAME);
|
||||
if (iret) {
|
||||
pr_err("fail to register chrdev\n");
|
||||
g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
return -1;
|
||||
}
|
||||
|
||||
cdev_init(&gConninfraCdev, &gConninfraDevFops);
|
||||
gConninfraCdev.owner = THIS_MODULE;
|
||||
|
||||
cdevErr = cdev_add(&gConninfraCdev, devID, CONNINFRA_DEV_NUM);
|
||||
if (cdevErr) {
|
||||
pr_err("cdev_add() fails (%d)\n", cdevErr);
|
||||
goto err1;
|
||||
}
|
||||
|
||||
pConninfraClass = class_create(THIS_MODULE, CONNINFRA_DEVICE_NAME);
|
||||
if (IS_ERR(pConninfraClass)) {
|
||||
pr_err("class create fail, error code(%ld)\n", PTR_ERR(pConninfraClass));
|
||||
goto err1;
|
||||
}
|
||||
|
||||
pConninfraDev = device_create(pConninfraClass, NULL, devID, NULL, CONNINFRA_DEVICE_NAME);
|
||||
if (IS_ERR(pConninfraDev)) {
|
||||
pr_err("device create fail, error code(%ld)\n", PTR_ERR(pConninfraDev));
|
||||
goto err2;
|
||||
}
|
||||
|
||||
iret = mtk_conninfra_drv_init(&gConninfraDevCb);
|
||||
if (iret) {
|
||||
pr_err("init consys_hw fail, ret = %d\n", iret);
|
||||
g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
return -2;
|
||||
}
|
||||
|
||||
iret = conninfra_core_init();
|
||||
if (iret) {
|
||||
pr_err("conninfra init fail\n");
|
||||
g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
return -3;
|
||||
}
|
||||
|
||||
pr_info("ConnInfra Dev: init (%d)\n", iret);
|
||||
g_conninfra_init_status = CONNINFRA_INIT_DONE;
|
||||
|
||||
#ifdef CONFIG_CONNINFRA_AUTO_UP
|
||||
iret = conninfra_core_power_on(CONNDRV_TYPE_CONNINFRA);
|
||||
if (iret) {
|
||||
pr_err("conninfra auto load power on fail\n");
|
||||
return -4;
|
||||
}
|
||||
#endif /* CONFIG_CONNINFRA_AUTO_UP */
|
||||
|
||||
return 0;
|
||||
|
||||
err2:
|
||||
|
||||
pr_err("[conninfra_dev_init] err2\n");
|
||||
if (pConninfraClass) {
|
||||
class_destroy(pConninfraClass);
|
||||
pConninfraClass = NULL;
|
||||
}
|
||||
err1:
|
||||
pr_err("[conninfra_dev_init] err1\n");
|
||||
if (cdevErr == 0)
|
||||
cdev_del(&gConninfraCdev);
|
||||
|
||||
if (iret == 0) {
|
||||
unregister_chrdev_region(devID, CONNINFRA_DEV_NUM);
|
||||
gConnInfraMajor = -1;
|
||||
}
|
||||
|
||||
g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
return -2;
|
||||
}
|
||||
|
||||
static void conninfra_dev_deinit(void)
|
||||
{
|
||||
dev_t dev = MKDEV(gConnInfraMajor, 0);
|
||||
int iret = 0;
|
||||
|
||||
#ifdef CONFIG_CONNINFRA_AUTO_UP
|
||||
iret = conninfra_core_power_off(CONNDRV_TYPE_CONNINFRA);
|
||||
if (iret) {
|
||||
pr_err("conninfra auto load power off fail\n");
|
||||
}
|
||||
#endif /* CONFIG_CONNINFRA_AUTO_UP */
|
||||
|
||||
g_conninfra_init_status = CONNINFRA_INIT_NOT_START;
|
||||
|
||||
iret = conninfra_core_deinit();
|
||||
|
||||
iret = mtk_conninfra_drv_deinit();
|
||||
|
||||
if (pConninfraDev) {
|
||||
device_destroy(pConninfraClass, dev);
|
||||
pConninfraDev = NULL;
|
||||
}
|
||||
|
||||
if (pConninfraClass) {
|
||||
class_destroy(pConninfraClass);
|
||||
pConninfraClass = NULL;
|
||||
}
|
||||
|
||||
cdev_del(&gConninfraCdev);
|
||||
unregister_chrdev_region(dev, CONNINFRA_DEV_NUM);
|
||||
|
||||
pr_info("ConnInfra: platform init (%d)\n", iret);
|
||||
}
|
||||
|
||||
module_init(conninfra_dev_init);
|
||||
module_exit(conninfra_dev_deinit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Willy.Yu @ CTD/SE5/CS5");
|
||||
|
||||
module_param(gConnInfraMajor, uint, 0644);
|
||||
|
||||
33
package/kernel/leds-ws2812b/Makefile
Normal file
33
package/kernel/leds-ws2812b/Makefile
Normal file
@ -0,0 +1,33 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 OpenWrt.org
|
||||
#
|
||||
# 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-ws2812b
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/leds-ws2812b
|
||||
SUBMENU:=LED modules
|
||||
TITLE:=Worldsemi WS2812B (NeoPixel) LED support
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/leds-ws2812b.ko
|
||||
AUTOLOAD:=$(call AutoProbe,leds-ws2812b,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/leds-ws2812b/description
|
||||
LED support for driving WS2812B (NeoPixel) using SPI MOSI.
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,leds-ws2812b))
|
||||
1
package/kernel/leds-ws2812b/src/Makefile
Normal file
1
package/kernel/leds-ws2812b/src/Makefile
Normal file
@ -0,0 +1 @@
|
||||
obj-m := leds-ws2812b.o
|
||||
240
package/kernel/leds-ws2812b/src/leds-ws2812b.c
Normal file
240
package/kernel/leds-ws2812b/src/leds-ws2812b.c
Normal file
@ -0,0 +1,240 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* WorldSemi WS2812B individually-addressable LED driver using SPI
|
||||
*
|
||||
* Copyright 2022 Chuanhong Guo <gch981213@gmail.com>
|
||||
*
|
||||
* This driver simulates WS2812B protocol using SPI MOSI pin. A one pulse
|
||||
* is transferred as 3'b110 and a zero pulse is 3'b100. For this driver to
|
||||
* work properly, the SPI frequency should be 2.105MHz~2.85MHz and it needs
|
||||
* to transfer all the bytes continuously.
|
||||
*/
|
||||
|
||||
#include <linux/led-class-multicolor.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#define WS2812B_BYTES_PER_COLOR 3
|
||||
#define WS2812B_NUM_COLORS 3
|
||||
/* A continuous 0 for 50us+ as the 'reset' signal */
|
||||
#define WS2812B_RESET_LEN 14
|
||||
|
||||
struct ws2812b_led {
|
||||
struct led_classdev_mc mc_cdev;
|
||||
struct mc_subled subled[WS2812B_NUM_COLORS];
|
||||
int cascade;
|
||||
};
|
||||
|
||||
struct ws2812b_priv {
|
||||
struct led_classdev ldev;
|
||||
struct spi_device *spi;
|
||||
struct mutex mutex;
|
||||
int num_leds;
|
||||
size_t data_len;
|
||||
u8 *data_buf;
|
||||
struct ws2812b_led leds[];
|
||||
};
|
||||
|
||||
/**
|
||||
* ws2812b_set_byte - convert a byte of data to 3-byte SPI data for pulses
|
||||
* @priv: pointer to the private data structure
|
||||
* @offset: offset of the target byte in the data stream
|
||||
* @val: 1-byte data to be set
|
||||
*
|
||||
* WS2812B receives a stream of bytes from DI, takes the first 3 byte as LED
|
||||
* brightness and pases the rest to the next LED through the DO pin.
|
||||
* This function assembles a single byte of data to the LED:
|
||||
* A bit is represented with a pulse of specific length. A long pulse is a 1
|
||||
* and a short pulse is a 0.
|
||||
* SPI transfers data continuously, MSB first. We can send 3'b100 to create a
|
||||
* 0 pulse and 3'b110 for a 1 pulse. In this way, a byte of data takes up 3
|
||||
* bytes in a SPI transfer:
|
||||
* 1x0 1x0 1x0 1x0 1x0 1x0 1x0 1x0
|
||||
* Let's rearrange it in 8 bits:
|
||||
* 1x01x01x 01x01x01 x01x01x0
|
||||
* The higher 3 bits, middle 2 bits and lower 3 bits are represented with the
|
||||
* 1st, 2nd and 3rd byte in the SPI transfer respectively.
|
||||
* There are only 8 combinations for 3 bits and 4 for 2 bits, so we can create
|
||||
* a lookup table for the 3 bytes.
|
||||
* e.g. For 0x6b -> 2'b01101011:
|
||||
* Bit 7-5: 3'b011 -> 10011011 -> 0x9b
|
||||
* Bit 4-3: 2'b01 -> 01001101 -> 0x4d
|
||||
* Bit 2-0: 3'b011 -> 00110110 -> 0x36
|
||||
*/
|
||||
static void ws2812b_set_byte(struct ws2812b_priv *priv, size_t offset, u8 val)
|
||||
{
|
||||
/* The lookup table for Bit 7-5 4-3 2-0 */
|
||||
const u8 h3b[] = { 0x92, 0x93, 0x9a, 0x9b, 0xd2, 0xd3, 0xda, 0xdb };
|
||||
const u8 m2b[] = { 0x49, 0x4d, 0x69, 0x6d };
|
||||
const u8 l3b[] = { 0x24, 0x26, 0x34, 0x36, 0xa4, 0xa6, 0xb4, 0xb6 };
|
||||
u8 *p = priv->data_buf + WS2812B_RESET_LEN + (offset * WS2812B_BYTES_PER_COLOR);
|
||||
|
||||
p[0] = h3b[val >> 5]; /* Bit 7-5 */
|
||||
p[1] = m2b[(val >> 3) & 0x3]; /* Bit 4-3 */
|
||||
p[2] = l3b[val & 0x7]; /* Bit 2-0 */
|
||||
}
|
||||
|
||||
static int ws2812b_set(struct led_classdev *cdev,
|
||||
enum led_brightness brightness)
|
||||
{
|
||||
struct led_classdev_mc *mc_cdev = lcdev_to_mccdev(cdev);
|
||||
struct ws2812b_led *led =
|
||||
container_of(mc_cdev, struct ws2812b_led, mc_cdev);
|
||||
struct ws2812b_priv *priv = dev_get_drvdata(cdev->dev->parent);
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
led_mc_calc_color_components(mc_cdev, brightness);
|
||||
|
||||
mutex_lock(&priv->mutex);
|
||||
for (i = 0; i < WS2812B_NUM_COLORS; i++)
|
||||
ws2812b_set_byte(priv, led->cascade * WS2812B_NUM_COLORS + i,
|
||||
led->subled[i].brightness);
|
||||
ret = spi_write(priv->spi, priv->data_buf, priv->data_len);
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ws2812b_probe(struct spi_device *spi)
|
||||
{
|
||||
struct device *dev = &spi->dev;
|
||||
int cur_led = 0;
|
||||
struct ws2812b_priv *priv;
|
||||
struct fwnode_handle *led_node;
|
||||
int num_leds, i, cnt, ret;
|
||||
|
||||
num_leds = device_get_child_node_count(dev);
|
||||
|
||||
priv = devm_kzalloc(dev, struct_size(priv, leds, num_leds), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
priv->data_len =
|
||||
num_leds * WS2812B_BYTES_PER_COLOR * WS2812B_NUM_COLORS +
|
||||
WS2812B_RESET_LEN;
|
||||
priv->data_buf = kzalloc(priv->data_len, GFP_KERNEL);
|
||||
if (!priv->data_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < num_leds * WS2812B_NUM_COLORS; i++)
|
||||
ws2812b_set_byte(priv, i, 0);
|
||||
|
||||
mutex_init(&priv->mutex);
|
||||
priv->num_leds = num_leds;
|
||||
priv->spi = spi;
|
||||
|
||||
device_for_each_child_node(dev, led_node) {
|
||||
struct led_init_data init_data = {
|
||||
.fwnode = led_node,
|
||||
};
|
||||
/* WS2812B LEDs usually come with GRB color */
|
||||
u32 color_idx[WS2812B_NUM_COLORS] = {
|
||||
LED_COLOR_ID_GREEN,
|
||||
LED_COLOR_ID_RED,
|
||||
LED_COLOR_ID_BLUE,
|
||||
};
|
||||
|
||||
u32 color_intensity[WS2812B_NUM_COLORS] = { 255, 255, 255, };
|
||||
u32 cascade;
|
||||
|
||||
ret = fwnode_property_read_u32(led_node, "reg", &cascade);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to obtain numerical LED index for %s",
|
||||
fwnode_get_name(led_node));
|
||||
goto ERR_UNREG_LEDS;
|
||||
}
|
||||
if (cascade >= num_leds) {
|
||||
dev_err(dev, "LED index of %s is larger than the number of LEDs.",
|
||||
fwnode_get_name(led_node));
|
||||
ret = -EINVAL;
|
||||
goto ERR_UNREG_LEDS;
|
||||
}
|
||||
|
||||
cnt = fwnode_property_count_u32(led_node, "color-index");
|
||||
if (cnt > 0 && cnt <= WS2812B_NUM_COLORS)
|
||||
fwnode_property_read_u32_array(led_node, "color-index",
|
||||
color_idx, (size_t)cnt);
|
||||
|
||||
cnt = fwnode_property_count_u32(led_node, "color-intensity");
|
||||
if (cnt > 0 && cnt <= WS2812B_NUM_COLORS)
|
||||
fwnode_property_read_u32_array(led_node, "color-intensity",
|
||||
color_intensity, (size_t)cnt);
|
||||
|
||||
priv->leds[cur_led].mc_cdev.subled_info =
|
||||
priv->leds[cur_led].subled;
|
||||
priv->leds[cur_led].mc_cdev.num_colors = WS2812B_NUM_COLORS;
|
||||
priv->leds[cur_led].mc_cdev.led_cdev.max_brightness = 255;
|
||||
priv->leds[cur_led].mc_cdev.led_cdev.brightness_set_blocking = ws2812b_set;
|
||||
|
||||
for (i = 0; i < WS2812B_NUM_COLORS; i++) {
|
||||
priv->leds[cur_led].subled[i].color_index = color_idx[i];
|
||||
priv->leds[cur_led].subled[i].intensity = color_intensity[i];
|
||||
}
|
||||
|
||||
priv->leds[cur_led].cascade = cascade;
|
||||
|
||||
ret = led_classdev_multicolor_register_ext(
|
||||
dev, &priv->leds[cur_led].mc_cdev, &init_data);
|
||||
if (ret) {
|
||||
dev_err(dev, "registration of %s failed.",
|
||||
fwnode_get_name(led_node));
|
||||
goto ERR_UNREG_LEDS;
|
||||
}
|
||||
cur_led++;
|
||||
}
|
||||
|
||||
spi_set_drvdata(spi, priv);
|
||||
|
||||
return 0;
|
||||
ERR_UNREG_LEDS:
|
||||
for (; cur_led >= 0; cur_led--)
|
||||
led_classdev_multicolor_unregister(&priv->leds[cur_led].mc_cdev);
|
||||
mutex_destroy(&priv->mutex);
|
||||
kfree(priv->data_buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ws2812b_remove(struct spi_device *spi)
|
||||
{
|
||||
struct ws2812b_priv *priv = spi_get_drvdata(spi);
|
||||
int cur_led;
|
||||
|
||||
for (cur_led = priv->num_leds - 1; cur_led >= 0; cur_led--)
|
||||
led_classdev_multicolor_unregister(&priv->leds[cur_led].mc_cdev);
|
||||
kfree(priv->data_buf);
|
||||
mutex_destroy(&priv->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct spi_device_id ws2812b_spi_ids[] = {
|
||||
{ "ws2812b" },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, ws2812b_spi_ids);
|
||||
|
||||
static const struct of_device_id ws2812b_dt_ids[] = {
|
||||
{ .compatible = "worldsemi,ws2812b" },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ws2812b_dt_ids);
|
||||
|
||||
static struct spi_driver ws2812b_driver = {
|
||||
.probe = ws2812b_probe,
|
||||
.remove = ws2812b_remove,
|
||||
.id_table = ws2812b_spi_ids,
|
||||
.driver = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.of_match_table = ws2812b_dt_ids,
|
||||
},
|
||||
};
|
||||
|
||||
module_spi_driver(ws2812b_driver);
|
||||
|
||||
MODULE_AUTHOR("Chuanhong Guo <gch981213@gmail.com>");
|
||||
MODULE_DESCRIPTION("WS2812B LED driver using SPI");
|
||||
MODULE_LICENSE("GPL");
|
||||
14
package/luci-app-upnp/Makefile
Normal file
14
package/luci-app-upnp/Makefile
Normal file
@ -0,0 +1,14 @@
|
||||
#
|
||||
# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=Universal Plug & Play configuration module
|
||||
LUCI_DEPENDS:=+miniupnpd
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
@ -0,0 +1,74 @@
|
||||
'use strict';
|
||||
'require baseclass';
|
||||
'require dom';
|
||||
'require rpc';
|
||||
'require uci';
|
||||
|
||||
var callUpnpGetStatus, callUpnpDeleteRule, handleDelRule;
|
||||
|
||||
callUpnpGetStatus = rpc.declare({
|
||||
object: 'luci.upnp',
|
||||
method: 'get_status',
|
||||
expect: { }
|
||||
});
|
||||
|
||||
callUpnpDeleteRule = rpc.declare({
|
||||
object: 'luci.upnp',
|
||||
method: 'delete_rule',
|
||||
params: [ 'token' ],
|
||||
expect: { result : "OK" },
|
||||
});
|
||||
|
||||
handleDelRule = function(num, ev) {
|
||||
dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5;
|
||||
ev.currentTarget.classList.add('spinning');
|
||||
ev.currentTarget.disabled = true;
|
||||
ev.currentTarget.blur();
|
||||
callUpnpDeleteRule(num);
|
||||
};
|
||||
|
||||
return baseclass.extend({
|
||||
title: _('Active UPnP Redirects'),
|
||||
|
||||
load: function() {
|
||||
return Promise.all([
|
||||
callUpnpGetStatus(),
|
||||
]);
|
||||
},
|
||||
|
||||
render: function(data) {
|
||||
|
||||
var table = E('table', { 'class': 'table', 'id': 'upnp_status_table' }, [
|
||||
E('tr', { 'class': 'tr table-titles' }, [
|
||||
E('th', { 'class': 'th' }, _('Protocol')),
|
||||
E('th', { 'class': 'th' }, _('External Port')),
|
||||
E('th', { 'class': 'th' }, _('Client Address')),
|
||||
E('th', { 'class': 'th' }, _('Host')),
|
||||
E('th', { 'class': 'th' }, _('Client Port')),
|
||||
E('th', { 'class': 'th' }, _('Description')),
|
||||
E('th', { 'class': 'th cbi-section-actions' }, '')
|
||||
])
|
||||
]);
|
||||
|
||||
var rules = Array.isArray(data[0].rules) ? data[0].rules : [];
|
||||
|
||||
var rows = rules.map(function(rule) {
|
||||
return [
|
||||
rule.proto,
|
||||
rule.extport,
|
||||
rule.intaddr,
|
||||
rule.host_hint || _('Unknown'),
|
||||
rule.intport,
|
||||
rule.descr,
|
||||
E('button', {
|
||||
'class': 'btn cbi-button-remove',
|
||||
'click': L.bind(handleDelRule, this, rule.num)
|
||||
}, [ _('Delete') ])
|
||||
];
|
||||
});
|
||||
|
||||
cbi_update_table(table, rows, E('em', _('There are no active redirects.')));
|
||||
|
||||
return table;
|
||||
}
|
||||
});
|
||||
@ -0,0 +1,215 @@
|
||||
'use strict';
|
||||
'require view';
|
||||
'require dom';
|
||||
'require poll';
|
||||
'require uci';
|
||||
'require rpc';
|
||||
'require form';
|
||||
|
||||
var callInitAction, callUpnpGetStatus, callUpnpDeleteRule, handleDelRule;
|
||||
|
||||
callInitAction = rpc.declare({
|
||||
object: 'luci',
|
||||
method: 'setInitAction',
|
||||
params: [ 'name', 'action' ],
|
||||
expect: { result: false }
|
||||
});
|
||||
|
||||
callUpnpGetStatus = rpc.declare({
|
||||
object: 'luci.upnp',
|
||||
method: 'get_status',
|
||||
expect: { }
|
||||
});
|
||||
|
||||
callUpnpDeleteRule = rpc.declare({
|
||||
object: 'luci.upnp',
|
||||
method: 'delete_rule',
|
||||
params: [ 'token' ],
|
||||
expect: { result : "OK" },
|
||||
});
|
||||
|
||||
handleDelRule = function(num, ev) {
|
||||
dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5;
|
||||
ev.currentTarget.classList.add('spinning');
|
||||
ev.currentTarget.disabled = true;
|
||||
ev.currentTarget.blur();
|
||||
callUpnpDeleteRule(num);
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
load: function() {
|
||||
return Promise.all([
|
||||
callUpnpGetStatus(),
|
||||
uci.load('upnpd')
|
||||
]);
|
||||
},
|
||||
|
||||
poll_status: function(nodes, data) {
|
||||
|
||||
var rules = Array.isArray(data[0].rules) ? data[0].rules : [];
|
||||
|
||||
var rows = rules.map(function(rule) {
|
||||
return [
|
||||
rule.proto,
|
||||
rule.extport,
|
||||
rule.intaddr,
|
||||
rule.host_hint || _('Unknown'),
|
||||
rule.intport,
|
||||
rule.descr,
|
||||
E('button', {
|
||||
'class': 'btn cbi-button-remove',
|
||||
'click': L.bind(handleDelRule, this, rule.num)
|
||||
}, [ _('Delete') ])
|
||||
];
|
||||
});
|
||||
|
||||
cbi_update_table(nodes.querySelector('#upnp_status_table'), rows, E('em', _('There are no active redirects.')));
|
||||
|
||||
return;
|
||||
},
|
||||
|
||||
render: function(data) {
|
||||
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map('upnpd', [_('Universal Plug & Play')],
|
||||
_('UPnP allows clients in the local network to automatically configure the router.'));
|
||||
|
||||
s = m.section(form.GridSection, '_active_rules');
|
||||
|
||||
s.render = L.bind(function(view, section_id) {
|
||||
var table = E('table', { 'class': 'table cbi-section-table', 'id': 'upnp_status_table' }, [
|
||||
E('tr', { 'class': 'tr table-titles' }, [
|
||||
E('th', { 'class': 'th' }, _('Protocol')),
|
||||
E('th', { 'class': 'th' }, _('External Port')),
|
||||
E('th', { 'class': 'th' }, _('Client Address')),
|
||||
E('th', { 'class': 'th' }, _('Host')),
|
||||
E('th', { 'class': 'th' }, _('Client Port')),
|
||||
E('th', { 'class': 'th' }, _('Description')),
|
||||
E('th', { 'class': 'th cbi-section-actions' }, '')
|
||||
])
|
||||
]);
|
||||
|
||||
var rules = Array.isArray(data[0].rules) ? data[0].rules : [];
|
||||
|
||||
var rows = rules.map(function(rule) {
|
||||
return [
|
||||
rule.proto,
|
||||
rule.extport,
|
||||
rule.intaddr,
|
||||
rule.host_hint || _('Unknown'),
|
||||
rule.intport,
|
||||
rule.descr,
|
||||
E('button', {
|
||||
'class': 'btn cbi-button-remove',
|
||||
'click': L.bind(handleDelRule, this, rule.num)
|
||||
}, [ _('Delete') ])
|
||||
];
|
||||
});
|
||||
|
||||
cbi_update_table(table, rows, E('em', _('There are no active redirects.')));
|
||||
|
||||
return E('div', { 'class': 'cbi-section cbi-tblsection' }, [
|
||||
E('h3', _('Active UPnP Redirects')), table ]);
|
||||
}, o, this);
|
||||
|
||||
s = m.section(form.NamedSection, 'config', 'upnpd', _('MiniUPnP settings'));
|
||||
s.addremove = false;
|
||||
s.tab('general', _('General Settings'));
|
||||
s.tab('advanced', _('Advanced Settings'));
|
||||
|
||||
o = s.taboption('general', form.Flag, 'enabled', _('Start UPnP and NAT-PMP service'));
|
||||
o.rmempty = false;
|
||||
|
||||
s.taboption('general', form.Flag, 'enable_upnp', _('Enable UPnP functionality')).default = '1'
|
||||
s.taboption('general', form.Flag, 'enable_natpmp', _('Enable NAT-PMP functionality')).default = '1'
|
||||
|
||||
s.taboption('general', form.Flag, 'secure_mode', _('Enable secure mode'),
|
||||
_('Allow adding forwards only to requesting ip addresses')).default = '1'
|
||||
|
||||
s.taboption('general', form.Flag, 'igdv1', _('Enable IGDv1 mode'),
|
||||
_('Advertise as IGDv1 device instead of IGDv2')).default = '0'
|
||||
|
||||
s.taboption('general', form.Flag, 'log_output', _('Enable additional logging'),
|
||||
_('Puts extra debugging information into the system log'))
|
||||
|
||||
s.taboption('general', form.Value, 'download', _('Downlink'),
|
||||
_('Value in KByte/s, informational only')).rmempty = true
|
||||
|
||||
s.taboption('general', form.Value, 'upload', _('Uplink'),
|
||||
_('Value in KByte/s, informational only')).rmempty = true
|
||||
|
||||
o = s.taboption('general', form.Value, 'port', _('Port'))
|
||||
o.datatype = 'port'
|
||||
o.default = 5000
|
||||
|
||||
s.taboption('advanced', form.Flag, 'system_uptime', _('Report system instead of daemon uptime')).default = '1'
|
||||
|
||||
s.taboption('advanced', form.Value, 'uuid', _('Device UUID'))
|
||||
s.taboption('advanced', form.Value, 'serial_number', _('Announced serial number'))
|
||||
s.taboption('advanced', form.Value, 'model_number', _('Announced model number'))
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'notify_interval', _('Notify interval'))
|
||||
o.datatype = 'uinteger'
|
||||
o.placeholder = 30
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'clean_ruleset_threshold', _('Clean rules threshold'))
|
||||
o.datatype = 'uinteger'
|
||||
o.placeholder = 20
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'clean_ruleset_interval', _('Clean rules interval'))
|
||||
o.datatype = 'uinteger'
|
||||
o.placeholder = 600
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'presentation_url', _('Presentation URL'))
|
||||
o.placeholder = 'http://192.168.1.1/'
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'upnp_lease_file', _('UPnP lease file'))
|
||||
o.placeholder = '/var/run/miniupnpd.leases'
|
||||
|
||||
s.taboption('advanced', form.Flag, 'use_stun', _('Use STUN'))
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'stun_host', _('STUN Host'))
|
||||
o.depends('use_stun', '1');
|
||||
o.datatype = 'host'
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'stun_port', _('STUN Port'))
|
||||
o.depends('use_stun', '1');
|
||||
o.datatype = 'port'
|
||||
o.placeholder = '0-65535'
|
||||
|
||||
s = m.section(form.GridSection, 'perm_rule', _('MiniUPnP ACLs'),
|
||||
_('ACLs specify which external ports may be redirected to which internal addresses and ports'))
|
||||
|
||||
s.sortable = true
|
||||
s.anonymous = true
|
||||
s.addremove = true
|
||||
|
||||
s.option(form.Value, 'comment', _('Comment'))
|
||||
|
||||
o = s.option(form.Value, 'ext_ports', _('External ports'))
|
||||
o.datatype = 'portrange'
|
||||
o.placeholder = '0-65535'
|
||||
|
||||
o = s.option(form.Value, 'int_addr', _('Internal addresses'))
|
||||
o.datatype = 'ip4addr'
|
||||
o.placeholder = '0.0.0.0/0'
|
||||
|
||||
o = s.option(form.Value, 'int_ports', _('Internal ports'))
|
||||
o.datatype = 'portrange'
|
||||
o.placeholder = '0-65535'
|
||||
|
||||
o = s.option(form.ListValue, 'action', _('Action'))
|
||||
o.value('allow')
|
||||
o.value('deny')
|
||||
|
||||
return m.render().then(L.bind(function(m, nodes) {
|
||||
poll.add(L.bind(function() {
|
||||
return Promise.all([
|
||||
callUpnpGetStatus()
|
||||
]).then(L.bind(this.poll_status, this, nodes));
|
||||
}, this), 5);
|
||||
return nodes;
|
||||
}, this, m));
|
||||
}
|
||||
});
|
||||
230
package/luci-app-upnp/po/ar/upnp.po
Normal file
230
package/luci-app-upnp/po/ar/upnp.po
Normal file
@ -0,0 +1,230 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-03-04 13:50+0000\n"
|
||||
"Last-Translator: Said Zakaria <said.zakaria@gmail.com>\n"
|
||||
"Language-Team: Arabic <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ar/>\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Weblate 4.5.1-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "إجراء"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "إعدادات متقدمة"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "تعليق"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "احدف"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "الوصف"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "الاعدادات العامة"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "ضيف"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "المنفذ"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "بروتوكول"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "مجهول"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
229
package/luci-app-upnp/po/bg/upnp.po
Normal file
229
package/luci-app-upnp/po/bg/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-09-27 22:36+0000\n"
|
||||
"Last-Translator: Iskren Mihaylov <iskren.mihaylov91@gmail.com>\n"
|
||||
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/bg/>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Действие"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Разширени настройки"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Коментар"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Изтрий"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Основни настройки"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Протокол"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
229
package/luci-app-upnp/po/bn_BD/upnp.po
Normal file
229
package/luci-app-upnp/po/bn_BD/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-10-08 18:54+0000\n"
|
||||
"Last-Translator: Rayhan Nabi <rayhanjanam@gmail.com>\n"
|
||||
"Language-Team: Bengali (Bangladesh) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsupnp/bn_BD/>\n"
|
||||
"Language: bn_BD\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "উন্নত সেটিংস"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "বর্ণনা"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "সাধারণ সেটিংস"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "পোর্ট"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "প্রোটোকল"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "অজানা"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
235
package/luci-app-upnp/po/ca/upnp.po
Normal file
235
package/luci-app-upnp/po/ca/upnp.po
Normal file
@ -0,0 +1,235 @@
|
||||
# upnp.pot
|
||||
# generated from ./applications/luci-upnp/luasrc/i18n/upnp.en.lua
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
|
||||
"PO-Revision-Date: 2021-09-17 06:52+0000\n"
|
||||
"Last-Translator: Roger Pueyo Centelles <weblate@rogerpueyo.com>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Els ACL especifiquen quins ports externs es poden redirigir a quines adreces "
|
||||
"i ports interns"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Acció"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redireccions UPnP actives"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configuració avançada"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Permet que s'afegeixin redireccions només a les adreces IP peticionant"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Número de model anunciat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Número de sèrie anunciat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Interval de neteja de regles"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Llindar de neteja de regles"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adreça de client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port de client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Commentari"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Suprimeix"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID de dispositiu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Enllaç de baixada"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Habilita la funcionalitat NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Habilita la funcionalitat UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Habilita el registre addicional"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Habilita mode segur"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Port extern"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Ports externs"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Paràmetres generals"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Amfitrió"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Adreces internes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Ports interns"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs de MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Ajusts de MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Interval de notificació"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Posa informació extra de depuració en el registre de sistema"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Reporta el temps actiu del sistema en lloc del del dimoni"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Inicia el servei UPnP i NAP-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "No hi ha redireccions actives."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permet als clients de la xarxa local configurar automàticament el "
|
||||
"router."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Fitxer d'arrendament UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Desconegut"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Enllaç de pujada"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valor en KByte/s, només per informació"
|
||||
230
package/luci-app-upnp/po/cs/upnp.po
Normal file
230
package/luci-app-upnp/po/cs/upnp.po
Normal file
@ -0,0 +1,230 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2020-10-27 21:26+0000\n"
|
||||
"Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\n"
|
||||
"Language-Team: Czech <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/cs/>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL stanovují, které vnější porty by měly být přesměrovány na které vnitřní "
|
||||
"adresy a porty"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Akce"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktivní přesměrování UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Pokročilá nastavení"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Inzerovat jako IGDv1 zařízení místo IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Povolit přesměrování pouze na dotazující ip adresy"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Oznámené číslo modelu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Oznámené sériové číslo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Interval čištění pravidel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Práh čištění pravidel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adresa klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Komentář"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Odstranit"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Popis"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID zařízení"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Povolit režim IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Povolit funkčnost NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Povolit funkčnost UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Povolit přídavné logování"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Povolit bezpečný režim"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Vnější port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Vnější porty"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Obecná nastavení"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Hostitel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Vnitřní adresy"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Vnitřní porty"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL listy"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Nastavení MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Interval oznamování"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Prezentační URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Vypisovat extra ladící informace do systémového záznamu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Hlásit uptime systému namísto uptime daemonu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Spustit službu UPnP a NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Neexistují žádná aktivní přesměrování."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP umožňuje klientům v místní síti automaticky nakonfigurovat router."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Soubor UPnP výpůjček"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Univerzální Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámé"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Pouze informační hodnoty (v KByte/s)"
|
||||
233
package/luci-app-upnp/po/da/upnp.po
Normal file
233
package/luci-app-upnp/po/da/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-11-13 08:12+0000\n"
|
||||
"Last-Translator: drax red <drax@outlook.dk>\n"
|
||||
"Language-Team: Danish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/da/>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.9.1-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL'er angiver, hvilke eksterne porte der kan omdirigeres til hvilke interne "
|
||||
"adresser og porte"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Handling"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktive UPnP-omdirigeringer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Avancerede indstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Annoncerer som IGDv1-enhed i stedet for IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Tillad kun at tilføje viderestillinger til ip-adresser, der anmoder om"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Annonceret modelnummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Annonceret serienummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Interval for rene regler"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Tærskel for rene regler"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Klient adresse"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Klient port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Slet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Beskrivelse"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Enhedens UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Aktiver IGDv1-tilstand"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Aktiver NAT-PMP-funktionalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Aktiver UPnP-funktionalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Aktiver yderligere logning"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Aktiver sikker tilstand"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Ekstern port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Eksterne porte"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Generelle indstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Giv adgang til upnp-procedurer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Vært"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Interne adresser"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Interne porte"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL'er"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP-indstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Underretningsinterval"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL til præsentation"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Sætter ekstra fejlfindingsoplysninger i systemloggen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Rapportere system i stedet for dæmonens oppetid"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN vært"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Start UPnP- og NAT-PMP-tjenesten"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Der er ingen aktive omdirigeringer."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP gør det muligt for klienter i det lokale netværk at konfigurere "
|
||||
"routeren automatisk."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP-lease-fil"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universelt plug &play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Ukendt"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Brug STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Værdi i KByte/s, kun til information"
|
||||
233
package/luci-app-upnp/po/de/upnp.po
Normal file
233
package/luci-app-upnp/po/de/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-26 17:57+0200\n"
|
||||
"PO-Revision-Date: 2022-02-24 06:56+0000\n"
|
||||
"Last-Translator: ssantos <ssantos@web.de>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/de/>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACLs definieren, welche externen Ports zu welchen internen Adressen und "
|
||||
"Ports weitergeleitet werden dürfen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Aktion"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktive UPnP-Weiterleitungen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Erweiterte Einstellungen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Als IGDv1-Gerät anstelle von IGDv2 bekanntgeben"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Nur Weiterleitungen zurück zum anfordernden Client zulassen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Angekündigte Modellnummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Angekündigte Seriennummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Aufräumintervall für Weiterleitungen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Aufräumschwellenwert für Weiterleitungen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Clientadresse"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Clientport"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Geräte-UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Download-Bandbreite"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "IGDv1 Modus aktivieren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "NAT-PMP Funktionalität aktivieren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "UPnP Funktionalität aktivieren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Erweiterte Protokollierung aktivieren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Sicheren Modus aktivieren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Externer Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Externe Ports"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Allgemeine Einstellungen"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Zugriff auf UPNP-Prozeduren gewähren"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Interne Adressen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Interne Ports"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs der MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP-Einstellungen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Benachrichtigungsintervall"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Präsentations-URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokoll"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Schreibt zusätzliche Debug-Informationen in das Systemprotokoll"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Systemlaufzeit statt Prozesslaufzeit melden"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN-Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN-Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "UPnP und NAT-PMP Dienst starten"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Es gibt keine aktiven Weiterleitungen."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP erlaubt es Clients im lokalen Netzwerk automatisch Port-Weiterleitungen "
|
||||
"auf diesem Router einzurichten."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP Lease-Datei"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "STUN verwenden"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Wert in Kilobyte/s, nur informativ"
|
||||
229
package/luci-app-upnp/po/el/upnp.po
Normal file
229
package/luci-app-upnp/po/el/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-28 02:08+0200\n"
|
||||
"PO-Revision-Date: 2022-10-03 08:34+0000\n"
|
||||
"Last-Translator: TakissX <pxatzidakis@gmail.com>\n"
|
||||
"Language-Team: Greek <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/el/>\n"
|
||||
"Language: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Δράση"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Ρυθμίσεις για προχωρημένους"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Σχόλιο"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Περιγραφή"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Γενικές ρυθμίσεις"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Θύρα"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Πρωτόκολλο"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
229
package/luci-app-upnp/po/en/upnp.po
Normal file
229
package/luci-app-upnp/po/en/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-06-24 10:23+0000\n"
|
||||
"Last-Translator: Hannu Nyman <hannu.nyman@iki.fi>\n"
|
||||
"Language-Team: English <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/en/>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.7.1-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Advanced Settings"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Enable secure mode"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
233
package/luci-app-upnp/po/es/upnp.po
Normal file
233
package/luci-app-upnp/po/es/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
|
||||
"PO-Revision-Date: 2020-11-15 19:47+0000\n"
|
||||
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.4-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Los ACL especifican qué puertos externos pueden ser redirigidos hacia qué "
|
||||
"direcciones y puertos internos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redirecciones UPnP activas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configuración avanzada"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Anunciarse como dispositivo IGDv1 en lugar de IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Permitir añadir redirecciones sólo a IPs que lo soliciten"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Número de modelo declarado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Número de serie declarado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Intervalo de borrado de reglas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Umbral de borrado de reglas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Dirección del cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Puerto del cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Comentario"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID del dispositivo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Enlace descendente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Activar modo IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Activar la funcionalidad NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Activar la funcionalidad UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Activar registro adicional"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Activar modo seguro"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Puerto externo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Puertos externos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Configuración general"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Conceder acceso a los procedimientos de upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Direcciones internas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Puertos internos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Configuración MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervalo de notificación"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Puerto"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL de presentación"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocolo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Escribe información de depuración extra en el registro del sistema"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Informar del tiempo activo del sistema en vez de el del demonio"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Host STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Puerto STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Iniciar servicio UPnP y NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Sin redirecciones activas."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permite a los clientes en la red local configurar automáticamente el "
|
||||
"enrutador."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Tiempo de conexión UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play universal"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Enlace ascendente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Utilice STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valor en KBytes/s (sólo informativo)"
|
||||
229
package/luci-app-upnp/po/fi/upnp.po
Normal file
229
package/luci-app-upnp/po/fi/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2022-04-21 23:00+0000\n"
|
||||
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
||||
"Language-Team: Finnish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/fi/>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Toiminta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktiivise UPnP-uudelleenohjaukset"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Lisäasetukset"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Kommentti"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Poista"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Kuvaus"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Laitteen UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Käytä IGDv1-tilaa"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Käytä NAT-PMP-toiminnallisuutta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Käytä UPnP-toiminnallisuutta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Ulkoinen portti"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Ulkoiset portit"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Yleiset asetukset"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Palvelin"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Sisäiset osoitteet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Sisäiset portit"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP-asetukset"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Ilmoitusväli"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Portti"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokolla"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Käynnistä UPnP- ja NAT-PMP-palvelu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Ei aktiivisia uudelleenohjauksia."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP-lainatiedosto"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Tuntematon"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Lähetysyhteys"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Käytä STUN:ia"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
236
package/luci-app-upnp/po/fr/upnp.po
Normal file
236
package/luci-app-upnp/po/fr/upnp.po
Normal file
@ -0,0 +1,236 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2022-02-04 18:56+0000\n"
|
||||
"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/fr/>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Les ACLs définissent quels ports externes peuvent être redirigés, vers "
|
||||
"quelles adresses et ports internes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redirections UPnP actives"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Paramètres avancés"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Annoncer comme dispositif IGDv1 au lieu de IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
"Permet d'ajouter des redirections seulement vers les adresses IP qui font "
|
||||
"des demandes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Numéro de modèle annoncé"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Numéro de série annoncé"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Intervalle des règles de nettoyage"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Niveau des règles de nettoyage"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adresse du client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port du client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Effacer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID du périphérique"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Liaison descendante"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Activer le mode IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Activer la fonctionnalité NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Activer la fonctionnalité UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Activer la journalisation additionnelle"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Activer le mode sécurisé"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Port externe"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Ports externes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Paramètres généraux"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Accorder l'accès aux procédures de upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Adresses internes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Ports internes"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Paramètres MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervalle de notification"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL de présentation"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocole"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Rajoute des informations de debug dans le journal-système"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
"Indiquer la durée de fonctionnement du système plutôt que celle du démon UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Hôte STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Port STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Démarrer les services UPnP et NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Il n'y a pas de redirections actives."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permet à des clients du réseau local de configurer automatiquement le "
|
||||
"routeur."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Fichier des baux UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play universel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Inconnue"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Liaison montante"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Utiliser STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valeur en Ko/s, pour information seulement"
|
||||
227
package/luci-app-upnp/po/he/upnp.po
Normal file
227
package/luci-app-upnp/po/he/upnp.po
Normal file
@ -0,0 +1,227 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2021-01-15 22:31+0000\n"
|
||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||
"Language-Team: Hebrew <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/he/>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "הגדרות מתקדמות"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "תיאור"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "פתחה"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
227
package/luci-app-upnp/po/hi/upnp.po
Normal file
227
package/luci-app-upnp/po/hi/upnp.po
Normal file
@ -0,0 +1,227 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: hi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 1.1.1\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
233
package/luci-app-upnp/po/hu/upnp.po
Normal file
233
package/luci-app-upnp/po/hu/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2021-08-12 12:55+0000\n"
|
||||
"Last-Translator: Tudós Péter <tudi.sk@gmail.com>\n"
|
||||
"Language-Team: Hungarian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/hu/>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.8-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Az ACL-ek határozzák meg, hogy melyik külső portok melyik belső portokra és "
|
||||
"címekre kerülhetnek továbbításra"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Művelet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktív UPnP átirányítások"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Haladó Beállítások"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Hirdetés IGDv1 eszközként IGDv2 helyett"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
"Kizárólag a kérést küldő IP címre történő továbbítás hozzáadásának "
|
||||
"engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Bejelentett modellszám"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Bejelentett sorozatszám"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Szabály törlési időköz"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Szabály törlési küszöbérték"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Ügyfél cím"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Ügyfél port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Megjegyzés"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Törlés"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Leírás"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Eszköz UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Befelé jövő kapcsolat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "IGDv1 mód engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "NAT-PMP funkció engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "UPnP funkció engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "További naplózás engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Biztonságos mód engedélyezése"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Külső port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Külső portok"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Általános Beállítások"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Gép"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Belső címek"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Belső portok"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL-ek"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP beállítások"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Értesítési időköz"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Bemutató URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "További hibakeresési információkat tesz a rendszernaplóba"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "A démon helyett a rendszer működési idejét jeleníti meg"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "UPnP és NAT-PMP szolgáltatás elindítása"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Nincsenek aktív átírányítások."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"Az UPnP lehetővé teszi a hálózatban lévő ügyfelek számára hogy automatikusan "
|
||||
"beállítsák a routert."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP bérlet fájl"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Univerzális Plug and Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Ismeretlen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Kifelé menő kapcsolat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Érték KByte/s-ban, csak tájékoztató jellegű"
|
||||
233
package/luci-app-upnp/po/it/upnp.po
Normal file
233
package/luci-app-upnp/po/it/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2022-02-18 20:58+0000\n"
|
||||
"Last-Translator: pisquan8 <cimurro@outlook.de>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/it/>\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Le ACL specificano quali porte esterne possono essere redirezionate a quali "
|
||||
"indirizzi e porte interni"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Azione"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Attiva reindirizzamento UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Impostazioni Avanzate"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Pubblicizza come dispositivo IGDv1 anziché IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Permetti l'aggiunta della mappatura solo agli indirizzi IP richiedenti"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Numero modello annunciato"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Numero seriale annunciato"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Cancella le regole"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Pulisci le regole degli eventi"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Indirizzo IP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Porta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Commento"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Elimina"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descrizione"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID del dispositivo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Abilita modalità IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Abilita il protocollo NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Abilita il protocollo UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Abilita log addizionale"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Abilita la modalità sicura"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Porta Esterna"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Porte Esterne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Impostazioni Generali"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Concedere l'accesso alle procedure upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Indirizzi Interni"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Porte Interne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACL MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Opzioni di MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervallo di notifica"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Porta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL di presentazione"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocollo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Scrivi nel log di sistema le informazioni di extra debugging"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Mostra l'uptime del sistema invece del demone"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Host STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Porta STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Avvia il servizo UPnP e NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Non ci sono mappature attive."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permette ai dispositivi nella rete locale di configurare "
|
||||
"automaticamente il router."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "File di leasing UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play universale"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Sconosciuto"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Usare STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valori in KByte/s, (informativo)"
|
||||
233
package/luci-app-upnp/po/ja/upnp.po
Normal file
233
package/luci-app-upnp/po/ja/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-02-07 07:33+0000\n"
|
||||
"Last-Translator: Satoru Yoshida <ramat@ram.ne.jp>\n"
|
||||
"Language-Team: Japanese <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ja/>\n"
|
||||
"Language: ja\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: Weblate 4.5-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"アクセス制御リスト(ACL)は、どの外部ポートからどの内部アドレス及びポートへリ"
|
||||
"ダイレクトするかを設定します。"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "アクション"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "稼働中のUPnPリダイレクト"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "詳細設定"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "IGDv2 ではなく IGDv1 デバイスとしてアドバタイズ"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "要求元IPアドレスへの転送のみ、追加を許可します。"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "通知するモデル番号"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "通知するシリアル番号"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "ルール消去間隔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "ルール消去しきい値"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "クライアント・アドレス"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "クライアント・ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "コメント"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "削除"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "説明"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "デバイス UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "ダウンリンク"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "IGDv1 モードを有効化"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "NAT-PMP機能を有効にする"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "UPnP機能を有効にする"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "ログ機能を有効にする"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "セキュアモードを有効にする"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "外部ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "外部ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "一般設定"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "upnp プロシージャへのアクセスを許可"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "ホスト"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "内部アドレス"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "内部ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnPアクセス制御リスト(ACL)"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP 設定"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "通知間隔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "プレゼンテーションURL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "プロトコル"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "追加のデバッグ情報をシステムログへ挿入する"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "サービスの起動時間の代わりにシステムの起動時間を使用する"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN ホスト"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN ポート"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "UPnP及びNAT-PMPサービスを開始する"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "有効なリダイレクトはありません。"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータを"
|
||||
"構成することができます。"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP リースファイル"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "ユニバーサル プラグ & プレイ"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "不明"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "アップリンク"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "STUN を使用"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "クライアントへの情報提供のみに使用される、KByte/sの値です。"
|
||||
229
package/luci-app-upnp/po/ko/upnp.po
Normal file
229
package/luci-app-upnp/po/ko/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2022-12-27 13:49+0000\n"
|
||||
"Last-Translator: somni <me@somni.one>\n"
|
||||
"Language-Team: Korean <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ko/>\n"
|
||||
"Language: ko\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: Weblate 4.15.1-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "액션"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "고급 설정"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "메모"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "삭제"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "설명"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "기본 설정"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "포트"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "프로토콜"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
229
package/luci-app-upnp/po/mr/upnp.po
Normal file
229
package/luci-app-upnp/po/mr/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2020-02-07 09:18+0000\n"
|
||||
"Last-Translator: Prachi Joshi <josprachi@yahoo.com>\n"
|
||||
"Language-Team: Marathi <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/mr/>\n"
|
||||
"Language: mr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 3.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "प्रगत सेटिंग्ज"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "टिप्पणी"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "हटवा"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "वर्णन"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "सामान्य सेटिंग्ज"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "पोर्ट"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "प्रोटोकॉल"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "अज्ञात"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "अपलिंक"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
227
package/luci-app-upnp/po/ms/upnp.po
Normal file
227
package/luci-app-upnp/po/ms/upnp.po
Normal file
@ -0,0 +1,227 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2021-03-31 12:26+0000\n"
|
||||
"Last-Translator: Faruki Ramly <farukiramly45@gmail.com>\n"
|
||||
"Language-Team: Malay <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ms/>\n"
|
||||
"Language: ms\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: Weblate 4.6-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Tindakan"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Tetapan Lanjutan"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Keterangan"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
229
package/luci-app-upnp/po/nb_NO/upnp.po
Normal file
229
package/luci-app-upnp/po/nb_NO/upnp.po
Normal file
@ -0,0 +1,229 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2021-02-27 05:11+0000\n"
|
||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/nb_NO/>\n"
|
||||
"Language: nb_NO\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL angir hvilke eksterne porter som kan bli viderekoblet, og til hvilke "
|
||||
"interne adresser og porter."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Handling"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktive UPnP Viderekoblinger"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Avanserte innstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Tillat videkobling kun til IP adresser som ber om det"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Annonsert modellnummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Annonsert serienummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Nullstill UPnP Viderekoblinger intervall"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Nullstill UPnP terskel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Klient adresse"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Klient port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Slett"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Beskrivelse"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Enhet UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Nedlinje"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Aktiver NAT-PMP funksjonalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Aktiver UPnP funksjonalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Aktiver tilleggs logging"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Aktiver sikker modus"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Ekstern port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Eksterne porter"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Generelle innstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Interne adresser"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Interne porter"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL'er"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP Innstillinger"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Informasjons intervall"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Presentasjon URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokoll"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Setter ekstra debugging informasjon i systemloggen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Rapporter systemets oppetid istedenfor daemon oppetid"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Start UPnP og NAT-PMP tjenesten"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Det finnes ingen aktive viderekoblinger"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP gjør at klientene i det lokale nettverket automatisk kan konfigurere "
|
||||
"ruteren."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP leie fil"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Opplinje"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Verdi i KByte/sek, kun for informasjon"
|
||||
232
package/luci-app-upnp/po/pl/upnp.po
Normal file
232
package/luci-app-upnp/po/pl/upnp.po
Normal file
@ -0,0 +1,232 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2022-06-10 13:18+0000\n"
|
||||
"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/pl/>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.13-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Listy kontroli dostępu (ang. ACL) określają jakie porty mogą być "
|
||||
"przekierowane do jakich wewnętrznych adresów i portów"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Akcja"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktywne przekierowania UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Ustawienia zaawansowane"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Rozgłaszanie jako urządzenie IGDv1 zamiast jako IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Zezwól na dodawanie przekazywań tylko do odpytujących adresów IP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Rozgłaszany numer modelu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Rozgłaszany numer seryjny"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Interwał czyszczenia reguł"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Próg czyszczenia reguł"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adres klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Komentarz"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID urządzenia"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Pobieranie"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Włącz tryb IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Włącz funkcjonalność NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Włącz funkcjonalność UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Włącz rozszerzone raportowanie"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Włącz tryb bezpieczny"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Port zewnętrzny"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Porty zewnętrzne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Ustawienia główne"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Udziel dostępu do procedur UPNP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Adresy wewnętrzne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Porty wewnętrzne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "Listy kontroli dostępu MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Ustawienia MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Interwał powiadamiania"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL prezentacji"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokół"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
"Umieszcza dodatkowe informacje dotyczące debugowania w dzienniku systemowym"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Zgłaszaj czas pracy systemu zamiast czas pracy usługi"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Host STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Port STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Uruchom usługi UPnP i NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Nie ma aktywnych przekierowań."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP umożliwia klientom w sieci lokalnej automatyczne konfigurowanie routera."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Plik dzierżawy UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Nieznany"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Wysyłanie"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Użyj STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Wartość w KB/s, tylko informacyjna"
|
||||
234
package/luci-app-upnp/po/pt/upnp.po
Normal file
234
package/luci-app-upnp/po/pt/upnp.po
Normal file
@ -0,0 +1,234 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-05-26 19:03+0200\n"
|
||||
"PO-Revision-Date: 2021-03-13 09:19+0000\n"
|
||||
"Last-Translator: ssantos <ssantos@web.de>\n"
|
||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/pt/>\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Os ACL especificam quais as portas externas que podem ser redirecionadas "
|
||||
"para que endereços internos e portas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Ação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redirecionamentos ativos da UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Definições Avançadas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Anuncie como aparelho IGDv1 em vez de IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
"Permitir a adição de encaminhamentos apenas para solicitar endereços IP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Número modelo anunciado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Número de série anunciado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Limpar intervalo de regras"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Limpar limiar de regras"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Endereço do Cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Porta do Cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Comentário"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID do aparelho"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Ativar o modo IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Ativar a funcionalidade NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Ativar a funcionalidade UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Ativar log adicional"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Ativar o modo seguro"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Porta Externa"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Portas externas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Configurações gerais"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Conceder acesso UCI aos procedimentos upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Endereços internos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Portas internas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Definições MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervalo de Notificação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Porta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL de apresentação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocolo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Põe informações de depuração extras no log do sistema"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Relata uptime do sistema ao invés da do daemon"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Host STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Porta STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Iniciar serviço UPnP e NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Não há redirecionamentos ativos."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permite que os clientes da rede local configurem o router "
|
||||
"automaticamente."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Ficheiro de concessão UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play Universal"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Ligação ascendente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Utilizar STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valor em KByte/s, apenas informativo"
|
||||
233
package/luci-app-upnp/po/pt_BR/upnp.po
Normal file
233
package/luci-app-upnp/po/pt_BR/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
|
||||
"PO-Revision-Date: 2023-03-08 10:38+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsupnp/pt_BR/>\n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.16.2-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACLs especificam quais portas externas podem ser redirecionadas para quais "
|
||||
"endereços e portas internos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Ação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redirecionamentos UPnP Ativos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configurações avançadas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Anuncie-se como um dispositivo IGDv1 ao invés de um IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
"Permite adicionar encaminhamento apenas para o endereço IP requisitante"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Número do modelo anunciado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Número de série anunciado"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Intervalo de limpeza das regras"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Limiar de limpeza das regras"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Endereço do cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Porta do Cliente"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Comentário"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID do Dispositivo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Velocidade de recebimento do enlace (downlink)"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Habilitar o modo IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Habilite a função NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Habilite a função UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Habilite registros adicionais"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Habilite modo seguro"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Porta externa"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Portas Externas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Configurações gerais"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Conceda acesso UCI aos procedimentos upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Endereços internos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Portas internas"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACLs do MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Configurações do MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervalo de notificação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Porta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL de Apresentação"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocolo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Envie informações extra de depuração ao registro do sistema"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Informe o tempo de vida do sistema ao invés do tempo do processo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Host STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Porta STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Dispare os serviços de UPnP e NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Não existe redirecionamentos ativos."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP permite os clientes da rede local configurem automaticamente o roteador."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Arquivo de concessão do UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play Universal"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Velocidade de envio do enlace (uplink)"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Use o STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valores em KByte/s, apenas informativas"
|
||||
231
package/luci-app-upnp/po/ro/upnp.po
Normal file
231
package/luci-app-upnp/po/ro/upnp.po
Normal file
@ -0,0 +1,231 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2022-01-25 22:56+0000\n"
|
||||
"Last-Translator: CRISTIAN ANDREI <cristianvdr@gmail.com>\n"
|
||||
"Language-Team: Romanian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ro/>\n"
|
||||
"Language: ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
|
||||
"20)) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL-urile specifica porturile externe care pot fi redirectate si spre ce "
|
||||
"adrese si porturi interne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Acțiune"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Redirecturi active UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Setări avansate"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Publicitate ca dispozitiv IGDv1 în loc de IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Permite adaugarea forward-urilor doar catre adresele ip solicitante"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Numărul modelului anunțat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Număr de serie anunțat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Intervalul de curatare reguli"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Limita de curatare reguli"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adresa client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port client"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Comentariu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Ștergeți"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Descriere"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID al dispozitivului"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Link în jos"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Activează modul IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Activeaza functionalitatea NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Activeaza functionalitatea UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Activeaza log-area aditionala"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Activeaza modul securizat"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Port extern"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Porturi externe"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Setări generale"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Acordarea accesului la procedurile upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Gazdă"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Adrese interne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Porturi interne"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "Liste de acces mini UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Setari mini UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Interval de notificare"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Adresa de prezentare"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protocol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Pune informatii utile suplimentare in log-ul de sistem"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Raporteaza timpul de functionare de sistem in loc de serviciu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Gazda STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Portul STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Porniți UPnP și serviciul NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Nu exista redirecturi active."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPNP permite clientulor din reteaua locala sa configureze automat routerul."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Fisierul de conexiuni UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Plug & Play universal"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Necunoscut"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Legătură ascendentă"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Utilizați STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Valorea in KOcteti/s , doar informational"
|
||||
235
package/luci-app-upnp/po/ru/upnp.po
Normal file
235
package/luci-app-upnp/po/ru/upnp.po
Normal file
@ -0,0 +1,235 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LuCI: upnp\n"
|
||||
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
|
||||
"PO-Revision-Date: 2021-10-26 14:59+0000\n"
|
||||
"Last-Translator: Darin Avdeyeva <yulyablack@inbox.lv>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/ru/>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
|
||||
"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Список доступа задает внешние порты для перенаправления на внутренние адреса "
|
||||
"и порты"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Действие"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Активные UPnP-переадресации"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Дополнительные настройки"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Объявить как IGDv1 устройство вместо IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Разрешить перенаправление только для запрашивающих IP-адресов"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Объявить номер модели"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Объявить серийный номер"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Интервал очистки правил"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Порог очистки правил"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Адрес клиента"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Порт клиента"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Комментарий"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID устройства"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Внутреннее соединение"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "IGDv1 режим"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Включить NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Включить UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Дополнительное журналирование"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Защищённый режим"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Внешний порт"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Внешние порты"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Общие настройки"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Предоставить доступ к процедурам UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Устройство"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Внутренние адреса"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Внутренние порты"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "Список доступа MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Настройки MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Интервал уведомления"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Порт"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Задать URL-адрес"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Протокол"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Добавлять дополнительную отладочную информацию в системный журнал"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Сообщать время работы системы вместо службы"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Хост STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Порт STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Запустить службы<br />UPnP и NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Активные переадресации отсутствуют."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP позволяет клиентам в локальной сети автоматически настраивать "
|
||||
"маршрутизатор."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Файл аренды UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестно"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Внешнее соединение"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Используйте STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Значение в КБ/с, только для информации"
|
||||
227
package/luci-app-upnp/po/sk/upnp.po
Normal file
227
package/luci-app-upnp/po/sk/upnp.po
Normal file
@ -0,0 +1,227 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2020-04-04 17:34+0000\n"
|
||||
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
|
||||
"Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/sk/>\n"
|
||||
"Language: sk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.0-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Akcia"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktívne presmerovania UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Pokročilé nastavenia"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Umožniť pridanie preposielaní iba požadovaným adresám IP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Ohlásené číslo modelu"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Ohlásené sériové číslo"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Vymazať interval pravidiel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Vymazať prah pravidiel"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Adresa klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Port klienta"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Komentár"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Odstrániť"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Popis"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID zariadenia"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Povoliť režim IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Povoliť funkcionalitu NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Povoliť funkcionalitu UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Povoliť dodatočné zaznamenávanie"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Povoliť zabezpečený režim"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Externý port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Externé porty"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Všeobecné nastavenia"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Hostiteľ"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Interné adresy"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Interné porty"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Nastavenia MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Interval upozornení"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Prezentačná URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Spustiť službu UPnP a NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Neexistujú žiadne aktívne presmerovania."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr "UPnP umožňuje klientom v miestnej sieti automaticky nastaviť smerovač."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Neznáme"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Hodnota v KBajtoch za sekundu, iba informatívne"
|
||||
231
package/luci-app-upnp/po/sv/upnp.po
Normal file
231
package/luci-app-upnp/po/sv/upnp.po
Normal file
@ -0,0 +1,231 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2022-12-06 01:48+0000\n"
|
||||
"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
|
||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/sv/>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.15-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL:er anger vilka externa portar som ska omdirigeras till vilka interna "
|
||||
"adresser och portar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Åtgärd"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktivera UPnP-omdirigeringar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Avancerade inställningar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Aviserat modellnummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Aviserat serienummer"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Klient-adress"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Klient-port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Kommentera"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Ta bort"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Beskrivning"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Enhetens UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Nerlänk"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Aktivera NAT-PMP-funktionalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Aktivera UPnP-funktionalitet"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Aktivera ytterligare loggning"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Aktivera säkert läge"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Extern port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Externa portar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Generella inställningar"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Värd"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Interna adresser"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Interna portar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "ACL:er för MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Inställningar för MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Intervall för avisering"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Presentationens URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokoll"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Lägger extra felsökningsinformation till system-loggen"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Rapportera systemet iställer för demonens upptid"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Starta UPnP och NAT-PMP-tjänsten"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Det finns inga aktiva omdirigeringar."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP tillåter klienter i det lokala nätverket att automatiskt ställa in "
|
||||
"routern."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Hyr-fil för UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universiell Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Okänd"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Upplänk"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Värde i KByte/s, endast informell"
|
||||
216
package/luci-app-upnp/po/templates/upnp.pot
Normal file
216
package/luci-app-upnp/po/templates/upnp.pot
Normal file
@ -0,0 +1,216 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
231
package/luci-app-upnp/po/tr/upnp.po
Normal file
231
package/luci-app-upnp/po/tr/upnp.po
Normal file
@ -0,0 +1,231 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2021-05-14 02:32+0000\n"
|
||||
"Last-Translator: semih <semiht@gmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/tr/>\n"
|
||||
"Language: tr\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: Weblate 4.7-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACL'ler, hangi harici bağlantı noktalarının hangi dahili adreslere ve "
|
||||
"bağlantı noktalarına yeniden yönlendirilebileceğini belirtir"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Eylem"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Aktif UPnP Yönlendirmeleri"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Gelişmiş Ayarlar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "IGDv2 yerine IGDv1 cihazı olarak duyuru yap"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "Yalnızca istekte bulunan ip adreslerine yönlendirme eklemeye izin ver"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Açıklanan model numarası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Açıklanan seri numarası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Temiz kurallar aralığı"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Temiz kural eşiği"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "İstemci Adresi"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "İstemci Bağlantı Noktası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Açıklama"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Sil"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Açıklama"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "Cihaz UUID'si"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "IGDv1 modunu etkinleştir"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "NAT-PMP işlevselliğini etkinleştirin"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "UPnP işlevselliğini etkinleştirin"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Ek günlük kaydını etkinleştir"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Güvenli modu etkinleştir"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Harici Bağlantı Noktası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Harici bağlantı noktaları"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Genel Ayarlar"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Upnp prosedürlerine erişim izni verin"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Ana bilgisayar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Dahili adresler"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Dahili bağlantı noktaları"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL'leri"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP ayarları"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Bildirme aralığı"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Bağlantı noktası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "Sunum URL'si"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Protokol"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Sistem günlüğüne fazladan hata ayıklama bilgisi koyar"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Arka plan programı çalışma süresi yerine sistemi rapor et"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN Ana Bilgisayarı"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN Bağlantı Noktası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "UPnP ve NAT-PMP hizmetini başlatın"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Etkin yönlendirme yok."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP, yerel ağdaki istemcilerin yönlendiriciyi otomatik olarak "
|
||||
"yapılandırmasına izin verir."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP kira dosyası"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Evrensel Tak ve Çalıştır"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Bilinmiyor"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "STUN kullan"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "KBayt/sn cinsinden değer, yalnızca bilgi amaçlı"
|
||||
233
package/luci-app-upnp/po/uk/upnp.po
Normal file
233
package/luci-app-upnp/po/uk/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"PO-Revision-Date: 2022-12-22 22:51+0000\n"
|
||||
"Last-Translator: Bohdan <chbgdn@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.15.1-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"Списки контролю доступу (ACL) визначають, які зовнішні порти можуть бути "
|
||||
"переспрямовані на які внутрішні адреси й порти"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Дія"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "Активні переспрямування UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Додаткові налаштування"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "Оголошувати як пристрій IGDv1 замість IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
"Дозволити додавання переспрямування тільки для IP-адрес, що надсилають запити"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "Оголошуваний номер моделі"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "Оголошуваний серійний номер"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "Інтервал очищення правил"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "Поріг очищення правил"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "Адреса клієнта"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "Порт клієнта"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Примітка"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "Видалити"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Опис"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "UUID пристрою"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Низхідне з'єднання"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "Увімкнути режим IGDv1"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "Увімкнути функцію NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "Увімкнути функцію UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "Увімкнути додаткове журналювання"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Увімкнути захищений режим"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "Зовнішній порт"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "Зовнішні порти"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "Загальні налаштування"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "Надати доступ до процедур upnp"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "Вузол"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "Внутрішні адреси"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "Внутрішні порти"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "Список контролю доступу MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "Настройки MiniUPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "Інтервал сповіщення"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "Порт"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "URL презентації"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Протокол"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "Включати додаткові відомості для налагодження до системного журналу"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "Повідомляти час безвідмовної роботи системи, а не сервісу"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "Хост STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "Порт STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "Запускати служби UPnP та NAT-PMP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "Немає активних переспрямувань."
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP надає клієнтам у локальній мережі змогу автоматично настроювати "
|
||||
"маршрутизатор."
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "Файл оренд UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "Невідомо"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Висхідне з'єднання"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "Використовувати STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "Значення (КБ/с), тільки для інформації"
|
||||
233
package/luci-app-upnp/po/vi/upnp.po
Normal file
233
package/luci-app-upnp/po/vi/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
# upnp.pot
|
||||
# generated from ./applications/luci-upnp/luasrc/i18n/upnp.en.lua
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-08-16 06:59+0200\n"
|
||||
"PO-Revision-Date: 2023-02-20 15:36+0000\n"
|
||||
"Last-Translator: Nguyễn văn tuyên <admin@tuyen.vn>\n"
|
||||
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsupnp/vi/>\n"
|
||||
"Language: vi\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: Weblate 4.16-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"ACLs chỉ định cổng bên ngoài nào có thể được chuyển hướng đến địa chỉ và "
|
||||
"cổng nội bộ nào"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "Hành động"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Cài đặt nâng cao"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "Bình luận"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "Mô tả"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "Downlink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "Kích hoạt chế độ an toàn"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "Giao thức"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "Universal Plug & Play"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "Uplink"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr ""
|
||||
232
package/luci-app-upnp/po/zh_Hans/upnp.po
Normal file
232
package/luci-app-upnp/po/zh_Hans/upnp.po
Normal file
@ -0,0 +1,232 @@
|
||||
#
|
||||
# Yangfl <mmyangfl@gmail.com>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
|
||||
"PO-Revision-Date: 2023-03-11 03:53+0000\n"
|
||||
"Last-Translator: Eric <hamburger2048@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsupnp/zh_Hans/>\n"
|
||||
"Language: zh_Hans\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: Weblate 4.16.2-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr "访问控制列表指定哪些外部端口可以被重定向至哪些内部地址及端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "活动的 UPnP 重定向"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "高级设置"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "广播为 IGDv1 设备,而不是 IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "仅允许请求的 IP 地址添加自己的转发"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "通告的设备型号"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "通告的设备序列号"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "定时清除规则"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "清除规则阈值"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "客户端地址"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "客户端端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "备注"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "描述"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "设备 UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "下行速率"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "启用 IGDv1 模式"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "启用 NAT-PMP 功能"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "启用 UPnP 功能"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "启用额外的日志"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "启用安全模式"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "外部端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "外部端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "常规设置"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "授予访问 UPnP 程序的权限"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "主机"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "内部地址"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "内部端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP 访问控制列表"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP 设置"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "通知的时间间隔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "服务网址"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "协议"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "将额外的调试信息打印至系统日志中"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "用系统运行时间代替进程运行时间"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN 主机"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN 端口"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "启动 UPnP 与 NAT-PMP 服务"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "没有活动的重定向。"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr "UPnP 允许局域网内客户端自动设置路由器上的端口转发。"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP 租约文件"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "通用即插即用(UPnP)"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "上行速率"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "使用 STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "单位为 KByte/s,仅供参考"
|
||||
233
package/luci-app-upnp/po/zh_Hant/upnp.po
Normal file
233
package/luci-app-upnp/po/zh_Hant/upnp.po
Normal file
@ -0,0 +1,233 @@
|
||||
#
|
||||
# Yangfl <mmyangfl@gmail.com>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2022-02-05 09:21+0000\n"
|
||||
"Last-Translator: Hulen <shift0106@gmail.com>\n"
|
||||
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsupnp/zh_Hant/>\n"
|
||||
"Language: zh_Hant\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: Weblate 4.11-dev\n"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182
|
||||
msgid ""
|
||||
"ACLs specify which external ports may be redirected to which internal "
|
||||
"addresses and ports"
|
||||
msgstr ""
|
||||
"您可以使用 ACL(存取控制串列)來規定哪些「外部埠」可被重新導向到哪些「內部位"
|
||||
"址」和「內部埠」"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202
|
||||
msgid "Action"
|
||||
msgstr "動作"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:31
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113
|
||||
msgid "Active UPnP Redirects"
|
||||
msgstr "動態 UPnP 重新導向"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:119
|
||||
msgid "Advanced Settings"
|
||||
msgstr "進階設定"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:131
|
||||
msgid "Advertise as IGDv1 device instead of IGDv2"
|
||||
msgstr "宣傳為 IGDv1 裝置,而非 IGDv2"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:128
|
||||
msgid "Allow adding forwards only to requesting ip addresses"
|
||||
msgstr "只容許向請求的IP位址新增轉發"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150
|
||||
msgid "Announced model number"
|
||||
msgstr "發布的型號"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:149
|
||||
msgid "Announced serial number"
|
||||
msgstr "發布的序列號"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160
|
||||
msgid "Clean rules interval"
|
||||
msgstr "清除規則間隔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156
|
||||
msgid "Clean rules threshold"
|
||||
msgstr "清除規則門檻值"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:85
|
||||
msgid "Client Address"
|
||||
msgstr "客戶端位址"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:47
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87
|
||||
msgid "Client Port"
|
||||
msgstr "客戶端埠"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:188
|
||||
msgid "Comment"
|
||||
msgstr "註解"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:106
|
||||
msgid "Delete"
|
||||
msgstr "刪除"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:48
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88
|
||||
msgid "Description"
|
||||
msgstr "描述"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148
|
||||
msgid "Device UUID"
|
||||
msgstr "裝置 UUID"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:136
|
||||
msgid "Downlink"
|
||||
msgstr "下行鏈路"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:130
|
||||
msgid "Enable IGDv1 mode"
|
||||
msgstr "啟用 IGDv1 模式"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:125
|
||||
msgid "Enable NAT-PMP functionality"
|
||||
msgstr "啓用 NAT-PMP 功能"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:124
|
||||
msgid "Enable UPnP functionality"
|
||||
msgstr "啓用 UPnP 功能"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:133
|
||||
msgid "Enable additional logging"
|
||||
msgstr "啓用附加日誌"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:127
|
||||
msgid "Enable secure mode"
|
||||
msgstr "啓用安全模式"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:84
|
||||
msgid "External Port"
|
||||
msgstr "外部埠"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:190
|
||||
msgid "External ports"
|
||||
msgstr "外部埠範圍"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:118
|
||||
msgid "General Settings"
|
||||
msgstr "一般設定"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3
|
||||
msgid "Grant access to upnp procedures"
|
||||
msgstr "授予存取 UPnP 程序的權限"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:86
|
||||
msgid "Host"
|
||||
msgstr "主機"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194
|
||||
msgid "Internal addresses"
|
||||
msgstr "內部位址範圍"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:198
|
||||
msgid "Internal ports"
|
||||
msgstr "內部埠範圍"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:181
|
||||
msgid "MiniUPnP ACLs"
|
||||
msgstr "MiniUPnP ACL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:116
|
||||
msgid "MiniUPnP settings"
|
||||
msgstr "MiniUPnP 設定"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:152
|
||||
msgid "Notify interval"
|
||||
msgstr "通知時間間隔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:142
|
||||
msgid "Port"
|
||||
msgstr "連接埠"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164
|
||||
msgid "Presentation URL"
|
||||
msgstr "存在 URL"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:83
|
||||
msgid "Protocol"
|
||||
msgstr "協定"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134
|
||||
msgid "Puts extra debugging information into the system log"
|
||||
msgstr "將額外的除錯資訊寫入系統日誌"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:146
|
||||
msgid "Report system instead of daemon uptime"
|
||||
msgstr "報告使用系統上線時間,而非程序上線時間"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172
|
||||
msgid "STUN Host"
|
||||
msgstr "STUN 主機"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:176
|
||||
msgid "STUN Port"
|
||||
msgstr "STUN 埠"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:121
|
||||
msgid "Start UPnP and NAT-PMP service"
|
||||
msgstr "啟動服務"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:70
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:66
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:110
|
||||
msgid "There are no active redirects."
|
||||
msgstr "沒有活躍的重新導向。"
|
||||
|
||||
#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3
|
||||
msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76
|
||||
msgid ""
|
||||
"UPnP allows clients in the local network to automatically configure the "
|
||||
"router."
|
||||
msgstr ""
|
||||
"UPnP(通用隨插即用)允許本地網絡中的客戶端配置路由器,自動設定埠的重新導向。"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:167
|
||||
msgid "UPnP lease file"
|
||||
msgstr "UPnP 租約檔"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:75
|
||||
msgid "Universal Plug & Play"
|
||||
msgstr "通用隨插即用 (UPnP)"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:60
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:56
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:139
|
||||
msgid "Uplink"
|
||||
msgstr "上行鏈路"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:170
|
||||
msgid "Use STUN"
|
||||
msgstr "使用 STUN"
|
||||
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137
|
||||
#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:140
|
||||
msgid "Value in KByte/s, informational only"
|
||||
msgstr "值 (KByte/s) 僅供參考"
|
||||
10
package/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp
Executable file
10
package/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@upnpd[-1]
|
||||
add ucitrack upnpd
|
||||
set ucitrack.@upnpd[-1].init=miniupnpd
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
exit 0
|
||||
155
package/luci-app-upnp/root/usr/libexec/rpcd/luci.upnp
Executable file
155
package/luci-app-upnp/root/usr/libexec/rpcd/luci.upnp
Executable file
@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
local json = require "luci.jsonc"
|
||||
local UCI = require "luci.model.uci"
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
|
||||
local methods = {
|
||||
get_status = {
|
||||
call = function()
|
||||
local uci = UCI.cursor()
|
||||
local lease_file = uci:get("upnpd", "config", "upnp_lease_file")
|
||||
|
||||
local ipv4_hints = sys.net.ipv4_hints()
|
||||
local rule = { }
|
||||
|
||||
local ipt = io.popen("iptables --line-numbers -t nat -xnvL MINIUPNPD 2>/dev/null")
|
||||
if ipt then
|
||||
local upnpf = lease_file and io.open(lease_file, "r")
|
||||
while true do
|
||||
local ln = ipt:read("*l")
|
||||
if not ln then
|
||||
break
|
||||
elseif ln:match("^%d+") then
|
||||
local num, proto, extport, intaddr, intport =
|
||||
ln:match("^(%d+).-([a-z]+).-dpt:(%d+) to:(%S-):(%d+)")
|
||||
local descr = ""
|
||||
|
||||
if num and proto and extport and intaddr and intport then
|
||||
extport = tonumber(extport)
|
||||
intport = tonumber(intport)
|
||||
|
||||
if upnpf then
|
||||
local uln = upnpf:read("*l")
|
||||
if uln then descr = uln:match(string.format("^%s:%d:%s:%d:%%d*:(.*)$", proto:upper(), extport, intaddr, intport)) end
|
||||
if not descr then descr = "" end
|
||||
end
|
||||
|
||||
local host_hint, _, e
|
||||
|
||||
for _,e in pairs(ipv4_hints) do
|
||||
if e[1] == intaddr then
|
||||
host_hint = e[2]
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
rule[#rule+1] = {
|
||||
num = num,
|
||||
proto = proto:upper(),
|
||||
extport = extport,
|
||||
intaddr = intaddr,
|
||||
host_hint = host_hint,
|
||||
intport = intport,
|
||||
descr = descr
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if upnpf then upnpf:close() end
|
||||
ipt:close()
|
||||
end
|
||||
|
||||
return { rules = rule }
|
||||
end
|
||||
},
|
||||
delete_rule = {
|
||||
args = { token = "token" },
|
||||
call = function(args)
|
||||
local util = require "luci.util"
|
||||
local idx = args and tonumber(args.token)
|
||||
local res = {}
|
||||
|
||||
if idx and idx > 0 then
|
||||
local uci = UCI.cursor()
|
||||
|
||||
sys.call("iptables -t filter -D MINIUPNPD %d 2>/dev/null" % idx)
|
||||
sys.call("iptables -t nat -D MINIUPNPD %d 2>/dev/null" % idx)
|
||||
|
||||
local lease_file = uci:get("upnpd", "config", "upnp_lease_file")
|
||||
if lease_file and fs.access(lease_file) then
|
||||
sys.call("sed -i -e '%dd' %s" %{ idx, util.shellquote(lease_file) })
|
||||
end
|
||||
|
||||
uci.unload()
|
||||
|
||||
return { result = "OK" }
|
||||
end
|
||||
|
||||
return { result = "Bad request" }
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
local function parseInput()
|
||||
local parse = json.new()
|
||||
local done, err
|
||||
|
||||
while true do
|
||||
local chunk = io.read(4096)
|
||||
if not chunk then
|
||||
break
|
||||
elseif not done and not err then
|
||||
done, err = parse:parse(chunk)
|
||||
end
|
||||
end
|
||||
|
||||
if not done then
|
||||
print(json.stringify({ error = err or "Incomplete input" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
return parse:get()
|
||||
end
|
||||
|
||||
local function validateArgs(func, uargs)
|
||||
local method = methods[func]
|
||||
if not method then
|
||||
print(json.stringify({ error = "Method not found" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
if type(uargs) ~= "table" then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
uargs.ubus_rpc_session = nil
|
||||
|
||||
local k, v
|
||||
local margs = method.args or {}
|
||||
for k, v in pairs(uargs) do
|
||||
if margs[k] == nil or
|
||||
(v ~= nil and type(v) ~= type(margs[k]))
|
||||
then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
||||
return method
|
||||
end
|
||||
|
||||
if arg[1] == "list" then
|
||||
local _, method, rv = nil, nil, {}
|
||||
for _, method in pairs(methods) do rv[_] = method.args or {} end
|
||||
print((json.stringify(rv):gsub(":%[%]", ":{}")))
|
||||
elseif arg[1] == "call" then
|
||||
local args = parseInput()
|
||||
local method = validateArgs(arg[2], args)
|
||||
local result, code = method.call(args)
|
||||
print((json.stringify(result):gsub("^%[%]$", "{}")))
|
||||
os.exit(code or 0)
|
||||
end
|
||||
@ -0,0 +1,13 @@
|
||||
{
|
||||
"admin/services/upnp": {
|
||||
"title": "UPnP",
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "upnp/upnp"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-ddns" ],
|
||||
"uci": { "upnpd": true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
{
|
||||
"luci-app-ddns": {
|
||||
"description": "Grant access to upnp procedures",
|
||||
"read": {
|
||||
"ubus": {
|
||||
"luci.upnp": [ "get_status" ],
|
||||
"luci": [ "setInitAction" ]
|
||||
},
|
||||
"uci": [ "upnpd" ]
|
||||
},
|
||||
"write": {
|
||||
"ubus": {
|
||||
"luci.upnp": [ "delete_rule" ]
|
||||
},
|
||||
"uci": [ "upnpd" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
80
package/miniupnpd/Makefile
Normal file
80
package/miniupnpd/Makefile
Normal file
@ -0,0 +1,80 @@
|
||||
#
|
||||
# Copyright (C) 2006-2014 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=miniupnpd
|
||||
PKG_VERSION:=2.0.20170421
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_URL:=http://miniupnp.free.fr/files
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_HASH:=9677aeccadf73b4bf8bb9d832c32b5da8266b4d58eed888f3fd43d7656405643
|
||||
|
||||
PKG_MAINTAINER:=Markus Stenberg <fingon@iki.fi>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/miniupnpd
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
DEPENDS:=+iptables +libip4tc +libuuid
|
||||
TITLE:=Lightweight UPnP IGD, NAT-PMP & PCP daemon
|
||||
SUBMENU:=Firewall
|
||||
URL:=http://miniupnp.free.fr/
|
||||
endef
|
||||
|
||||
define Package/miniupnpd/config
|
||||
config MINIUPNPD_IGDv2
|
||||
bool
|
||||
default n
|
||||
prompt "Enable IGDv2"
|
||||
endef
|
||||
|
||||
define Package/miniupnpd/conffiles
|
||||
/etc/config/upnpd
|
||||
endef
|
||||
|
||||
define Package/miniupnpd/postinst
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z "$$IPKG_INSTROOT" ]; then
|
||||
( . /etc/uci-defaults/99-miniupnpd )
|
||||
rm -f /etc/uci-defaults/99-miniupnpd
|
||||
fi
|
||||
|
||||
exit 0
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
$(call Build/Prepare/Default)
|
||||
echo "OpenWrt" | tr \(\)\ _ >$(PKG_BUILD_DIR)/os.openwrt
|
||||
endef
|
||||
|
||||
MAKE_FLAGS += \
|
||||
TARGET_OPENWRT=1 TEST=0 \
|
||||
LIBS="" \
|
||||
CC="$(TARGET_CC) -DIPTABLES_143 \
|
||||
-lip4tc -luuid" \
|
||||
CONFIG_OPTIONS="--portinuse --leasefile \
|
||||
$(if $(CONFIG_MINIUPNPD_IGDv2),--igd2)" \
|
||||
-f Makefile.linux \
|
||||
miniupnpd
|
||||
|
||||
|
||||
define Package/miniupnpd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/uci-defaults $(1)/etc/hotplug.d/iface $(1)/usr/share/miniupnpd
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/miniupnpd $(1)/usr/sbin/miniupnpd
|
||||
$(INSTALL_BIN) ./files/miniupnpd.init $(1)/etc/init.d/miniupnpd
|
||||
$(INSTALL_CONF) ./files/upnpd.config $(1)/etc/config/upnpd
|
||||
$(INSTALL_DATA) ./files/miniupnpd.hotplug $(1)/etc/hotplug.d/iface/50-miniupnpd
|
||||
$(INSTALL_DATA) ./files/miniupnpd.defaults $(1)/etc/uci-defaults/99-miniupnpd
|
||||
$(INSTALL_DATA) ./files/firewall.include $(1)/usr/share/miniupnpd/firewall.include
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,miniupnpd))
|
||||
57
package/miniupnpd/files/firewall.include
Normal file
57
package/miniupnpd/files/firewall.include
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
# miniupnpd integration for firewall3
|
||||
|
||||
IP6TABLES=/usr/sbin/ip6tables
|
||||
|
||||
iptables -t filter -N MINIUPNPD 2>/dev/null
|
||||
iptables -t nat -N MINIUPNPD 2>/dev/null
|
||||
iptables -t nat -N MINIUPNPD-POSTROUTING 2>/dev/null
|
||||
|
||||
[ -x $IP6TABLES ] && $IP6TABLES -t filter -N MINIUPNPD 2>/dev/null
|
||||
|
||||
. /lib/functions/network.sh
|
||||
|
||||
ADDED=0
|
||||
|
||||
add_extzone_rules() {
|
||||
local ext_zone=$1
|
||||
|
||||
[ -z "$ext_zone" ] && return
|
||||
|
||||
# IPv4 - due to NAT, need to add both to nat and filter table
|
||||
iptables -t filter -I zone_${ext_zone}_forward -j MINIUPNPD
|
||||
iptables -t nat -I zone_${ext_zone}_prerouting -j MINIUPNPD
|
||||
iptables -t nat -I zone_${ext_zone}_postrouting -j MINIUPNPD-POSTROUTING
|
||||
|
||||
# IPv6 if available - filter only
|
||||
[ -x $IP6TABLES ] && {
|
||||
$IP6TABLES -t filter -I zone_${ext_zone}_forward -j MINIUPNPD
|
||||
}
|
||||
ADDED=$(($ADDED + 1))
|
||||
}
|
||||
|
||||
# By default, user configuration is king.
|
||||
|
||||
for ext_iface in $(uci -q get upnpd.config.external_iface); do
|
||||
add_extzone_rules $(fw3 -q network "$ext_iface")
|
||||
done
|
||||
|
||||
add_extzone_rules $(uci -q get upnpd.config.external_zone)
|
||||
|
||||
[ ! $ADDED = 0 ] && exit 0
|
||||
|
||||
|
||||
# If really nothing is available, resort to network_find_wan{,6} and
|
||||
# assume external interfaces all have same firewall zone.
|
||||
|
||||
# (This heuristic may fail horribly, in case of e.g. multihoming, so
|
||||
# please set external_zone in that case!)
|
||||
|
||||
network_find_wan wan_iface
|
||||
network_find_wan6 wan6_iface
|
||||
|
||||
for ext_iface in $wan_iface $wan6_iface; do
|
||||
# fw3 -q network fails on sub-interfaces => map to device first
|
||||
network_get_device ext_device $ext_iface
|
||||
add_extzone_rules $(fw3 -q device "$ext_device")
|
||||
done
|
||||
13
package/miniupnpd/files/miniupnpd.defaults
Normal file
13
package/miniupnpd/files/miniupnpd.defaults
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOT
|
||||
delete firewall.miniupnpd
|
||||
set firewall.miniupnpd=include
|
||||
set firewall.miniupnpd.type=script
|
||||
set firewall.miniupnpd.path=/usr/share/miniupnpd/firewall.include
|
||||
set firewall.miniupnpd.family=any
|
||||
set firewall.miniupnpd.reload=1
|
||||
commit firewall
|
||||
EOT
|
||||
|
||||
exit 0
|
||||
39
package/miniupnpd/files/miniupnpd.hotplug
Normal file
39
package/miniupnpd/files/miniupnpd.hotplug
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
/etc/init.d/miniupnpd enabled || exit 0
|
||||
|
||||
. /lib/functions/service.sh
|
||||
|
||||
# If miniupnpd is not running:
|
||||
# - check on _any_ event (even updates may contribute to network_find_wan*)
|
||||
|
||||
# If miniupnpd _is_ running:
|
||||
# - check only on ifup (otherwise lease updates etc would cause
|
||||
# miniupnpd state loss)
|
||||
|
||||
[ ! "$ACTION" = "ifup" ] && service_check /usr/sbin/miniupnpd && exit 0
|
||||
|
||||
tmpconf="/var/etc/miniupnpd.conf"
|
||||
extiface=$(uci -q get upnpd.config.external_iface)
|
||||
extzone=$(uci -q get upnpd.config.external_zone)
|
||||
|
||||
. /lib/functions/network.sh
|
||||
|
||||
for iface in $(uci -q get upnpd.config.internal_iface); do
|
||||
network_get_device device $iface
|
||||
[ "$DEVICE" = "$device" ] && /etc/init.d/miniupnpd restart && exit 0
|
||||
done
|
||||
|
||||
|
||||
if [ -z "$extiface" ] ; then
|
||||
# manual external zone (if dynamically find interfaces
|
||||
# belonging to it) overrides network_find_wan*
|
||||
if [ -n "$extzone" ] ; then
|
||||
ifname=$(fw3 -q zone $extzone | head -1)
|
||||
fi
|
||||
[ -n "$extiface" ] || network_find_wan extiface
|
||||
[ -n "$extiface" ] || network_find_wan6 extiface
|
||||
fi
|
||||
|
||||
[ -n "$ifname" ] || network_get_device ifname ${extiface}
|
||||
grep -qs "ext_ifname=$ifname" $tmpconf || /etc/init.d/miniupnpd restart
|
||||
212
package/miniupnpd/files/miniupnpd.init
Normal file
212
package/miniupnpd/files/miniupnpd.init
Normal file
@ -0,0 +1,212 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2014 OpenWrt.org
|
||||
|
||||
START=94
|
||||
STOP=15
|
||||
|
||||
SERVICE_USE_PID=1
|
||||
|
||||
upnpd_get_port_range() {
|
||||
local _var="$1"; shift
|
||||
local _val
|
||||
|
||||
config_get _val "$@"
|
||||
|
||||
case "$_val" in
|
||||
[0-9]*[:-][0-9]*)
|
||||
export -n -- "${_var}_start=${_val%%[:-]*}"
|
||||
export -n -- "${_var}_end=${_val##*[:-]}"
|
||||
;;
|
||||
[0-9]*)
|
||||
export -n -- "${_var}_start=$_val"
|
||||
export -n -- "${_var}_end="
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
conf_rule_add() {
|
||||
local cfg="$1"
|
||||
local tmpconf="$2"
|
||||
local action external_port_start external_port_end int_addr
|
||||
local internal_port_start internal_port_end
|
||||
|
||||
config_get action "$cfg" action "deny" # allow or deny
|
||||
upnpd_get_port_range "ext" "$cfg" ext_ports "0-65535" # external ports: x, x-y, x:y
|
||||
config_get int_addr "$cfg" int_addr "0.0.0.0/0" # ip or network and subnet mask (internal)
|
||||
upnpd_get_port_range "int" "$cfg" int_ports "0-65535" # internal ports: x, x-y, x:y or range
|
||||
|
||||
# Make a single IP IP/32 so that miniupnpd.conf can use it.
|
||||
case "$int_addr" in
|
||||
*/*) ;;
|
||||
*) int_addr="$int_addr/32" ;;
|
||||
esac
|
||||
|
||||
echo "${action} ${ext_start}${ext_end:+-}${ext_end} ${int_addr} ${int_start}${int_end:+-}${int_end}" >>$tmpconf
|
||||
}
|
||||
|
||||
upnpd_write_bool() {
|
||||
local opt="$1"
|
||||
local def="${2:-0}"
|
||||
local alt="$3"
|
||||
local val
|
||||
|
||||
config_get_bool val config "$opt" "$def"
|
||||
if [ "$val" -eq 0 ]; then
|
||||
echo "${alt:-$opt}=no" >> $tmpconf
|
||||
else
|
||||
echo "${alt:-$opt}=yes" >> $tmpconf
|
||||
fi
|
||||
}
|
||||
|
||||
boot() {
|
||||
return
|
||||
}
|
||||
|
||||
start() {
|
||||
config_load "upnpd"
|
||||
local extiface intiface upload download logging secure enabled natpmp
|
||||
local extip port usesysuptime conffile serial_number model_number
|
||||
local uuid notify_interval presentation_url enable_upnp
|
||||
local upnp_lease_file clean_ruleset_threshold clean_ruleset_interval
|
||||
local ipv6_listening_ip enabled
|
||||
|
||||
config_get_bool enabled config enabled 1
|
||||
|
||||
[ "$enabled" -gt 0 ] || return 1
|
||||
|
||||
config_get extiface config external_iface
|
||||
config_get extzone config external_zone
|
||||
config_get intiface config internal_iface
|
||||
config_get extip config external_ip
|
||||
config_get port config port 5000
|
||||
config_get upload config upload
|
||||
config_get download config download
|
||||
config_get_bool logging config log_output 0
|
||||
config_get conffile config config_file
|
||||
config_get serial_number config serial_number
|
||||
config_get model_number config model_number
|
||||
config_get uuid config uuid
|
||||
config_get notify_interval config notify_interval
|
||||
config_get presentation_url config presentation_url
|
||||
config_get upnp_lease_file config upnp_lease_file
|
||||
config_get clean_ruleset_threshold config clean_ruleset_threshold
|
||||
config_get clean_ruleset_interval config clean_ruleset_interval
|
||||
config_get ipv6_listening_ip config ipv6_listening_ip
|
||||
|
||||
local args
|
||||
|
||||
. /lib/functions/network.sh
|
||||
|
||||
local ifname
|
||||
|
||||
# manual external interface overrides everything
|
||||
if [ -z "$extiface" ] ; then
|
||||
# manual external zone (if dynamically find interfaces
|
||||
# belonging to it) overrides network_find_wan*
|
||||
if [ -n "$extzone" ] ; then
|
||||
ifname=$(fw3 -q zone $extzone | head -1)
|
||||
fi
|
||||
[ -n "$extiface" ] || network_find_wan extiface
|
||||
[ -n "$extiface" ] || network_find_wan6 extiface
|
||||
fi
|
||||
|
||||
[ -n "$ifname" ] || network_get_device ifname ${extiface}
|
||||
|
||||
if [ -n "$conffile" ]; then
|
||||
args="-f $conffile"
|
||||
else
|
||||
local tmpconf="/var/etc/miniupnpd.conf"
|
||||
args="-f $tmpconf"
|
||||
mkdir -p /var/etc
|
||||
|
||||
echo "ext_ifname=$ifname" >$tmpconf
|
||||
|
||||
[ -n "$extip" ] && \
|
||||
echo "ext_ip=$extip" >>$tmpconf
|
||||
|
||||
local iface
|
||||
for iface in ${intiface:-lan}; do
|
||||
local device
|
||||
network_get_device device "$iface" && {
|
||||
echo "listening_ip=$device" >>$tmpconf
|
||||
}
|
||||
done
|
||||
|
||||
[ "$port" != "auto" ] && \
|
||||
echo "port=$port" >>$tmpconf
|
||||
|
||||
config_load "upnpd"
|
||||
upnpd_write_bool enable_natpmp 1
|
||||
upnpd_write_bool enable_upnp 1
|
||||
upnpd_write_bool secure_mode 1
|
||||
upnpd_write_bool pcp_allow_thirdparty 0
|
||||
upnpd_write_bool system_uptime 1
|
||||
|
||||
[ -n "$upnp_lease_file" ] && \
|
||||
echo "lease_file=$upnp_lease_file" >>$tmpconf
|
||||
|
||||
[ -n "$upload" -a -n "$download" ] && {
|
||||
echo "bitrate_down=$(($download * 1024 * 8))" >>$tmpconf
|
||||
echo "bitrate_up=$(($upload * 1024 * 8))" >>$tmpconf
|
||||
}
|
||||
|
||||
[ -n "${presentation_url}" ] && \
|
||||
echo "presentation_url=${presentation_url}" >>$tmpconf
|
||||
|
||||
[ -n "${notify_interval}" ] && \
|
||||
echo "notify_interval=${notify_interval}" >>$tmpconf
|
||||
|
||||
[ -n "${clean_ruleset_threshold}" ] && \
|
||||
echo "clean_ruleset_threshold=${clean_ruleset_threshold}" >>$tmpconf
|
||||
|
||||
[ -n "${clean_ruleset_interval}" ] && \
|
||||
echo "clean_ruleset_interval=${clean_ruleset_interval}" >>$tmpconf
|
||||
|
||||
[ -n "${ipv6_listening_ip}" ] && \
|
||||
echo "ipv6_listening_ip=${ipv6_listening_ip}" >>$tmpconf
|
||||
|
||||
[ -z "$uuid" ] && {
|
||||
uuid="$(cat /proc/sys/kernel/random/uuid)"
|
||||
uci set upnpd.config.uuid=$uuid
|
||||
uci commit upnpd
|
||||
}
|
||||
|
||||
[ "$uuid" = "nocli" ] || \
|
||||
echo "uuid=$uuid" >>$tmpconf
|
||||
|
||||
[ -n "${serial_number}" ] && \
|
||||
echo "serial=${serial_number}" >>$tmpconf
|
||||
|
||||
[ -n "${model_number}" ] && \
|
||||
echo "model_number=${model_number}" >>$tmpconf
|
||||
|
||||
config_foreach conf_rule_add perm_rule "$tmpconf"
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$ifname" ]; then
|
||||
# start firewall
|
||||
iptables -L MINIUPNPD >/dev/null 2>/dev/null || fw3 reload
|
||||
|
||||
if [ "$logging" = "1" ]; then
|
||||
SERVICE_DAEMONIZE=1 \
|
||||
service_start /usr/sbin/miniupnpd $args -d
|
||||
else
|
||||
SERVICE_DAEMONIZE= \
|
||||
service_start /usr/sbin/miniupnpd $args
|
||||
fi
|
||||
else
|
||||
logger -t "upnp daemon" "external interface not found, not starting"
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
service_stop /usr/sbin/miniupnpd
|
||||
|
||||
iptables -t nat -F MINIUPNPD 2>/dev/null
|
||||
iptables -t filter -F MINIUPNPD 2>/dev/null
|
||||
|
||||
[ -x /usr/sbin/ip6tables ] && {
|
||||
ip6tables -t filter -F MINIUPNPD 2>/dev/null
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user