mirror of https://github.com/OpenIPC/firmware.git
Add FH8833v100 aka FH8633 aka FH8632 ...
parent
d57905d535
commit
25cd04ffa1
|
@ -1,4 +1,4 @@
|
|||
name: "FH8632 "
|
||||
name: "FH8833V100"
|
||||
|
||||
on:
|
||||
push:
|
||||
|
@ -10,7 +10,7 @@ on:
|
|||
|
||||
jobs:
|
||||
build_core:
|
||||
name: OpenIPC firmware for FH8632
|
||||
name: OpenIPC firmware for FH8833V100
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
@ -57,25 +57,25 @@ jobs:
|
|||
cd $GITHUB_WORKSPACE
|
||||
make prepare
|
||||
|
||||
- name: Build FH8632 firmware
|
||||
id: build-fh8632-firmware
|
||||
- name: Build FH8833V100 firmware
|
||||
id: build-fh8833v100-firmware
|
||||
continue-on-error: true
|
||||
run: |
|
||||
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.fh8632-br.tgz"
|
||||
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.fh8833v100-br.tgz"
|
||||
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
|
||||
cd $GITHUB_WORKSPACE
|
||||
make PLATFORM=fullhan BOARD=unknown_unknown_fh8632_openipc all
|
||||
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... FH8632" >> $GITHUB_ENV && exit 1
|
||||
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... FH8632" >> $GITHUB_ENV && exit 1
|
||||
make PLATFORM=fullhan BOARD=unknown_unknown_fh8833v100_openipc all
|
||||
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... FH8833V100" >> $GITHUB_ENV && exit 1
|
||||
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... FH8833V100" >> $GITHUB_ENV && exit 1
|
||||
cd ${GITHUB_WORKSPACE}/output/images
|
||||
mv uImage uImage.fh8632
|
||||
mv rootfs.squashfs rootfs.squashfs.fh8632
|
||||
md5sum rootfs.squashfs.fh8632 > rootfs.squashfs.fh8632.md5sum
|
||||
md5sum uImage.fh8632 > uImage.fh8632.md5sum
|
||||
tar -cvzf $ARCHIVE_FW *fh8632*
|
||||
mv uImage uImage.fh8833v100
|
||||
mv rootfs.squashfs rootfs.squashfs.fh8833v100
|
||||
md5sum rootfs.squashfs.fh8833v100 > rootfs.squashfs.fh8833v100.md5sum
|
||||
md5sum uImage.fh8833v100 > uImage.fh8833v100.md5sum
|
||||
tar -cvzf $ARCHIVE_FW *fh8833v100*
|
||||
|
||||
- name: Build FH8632 SDK
|
||||
id: build-fh8632-sdk
|
||||
- name: Build FH8833V100 SDK
|
||||
id: build-fh8833v100-sdk
|
||||
continue-on-error: true
|
||||
run: |
|
||||
ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
|
||||
|
@ -87,10 +87,10 @@ jobs:
|
|||
env:
|
||||
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
|
||||
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
|
||||
if: steps.build-fh8632-firmware.outcome != 'success' || steps.build-fh8632-sdk.outcome != 'success'
|
||||
if: steps.build-fh8833v100-firmware.outcome != 'success' || steps.build-fh8833v100-sdk.outcome != 'success'
|
||||
run: |
|
||||
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
|
||||
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... FH8632}"
|
||||
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... FH8833V100}"
|
||||
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
|
||||
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
|
||||
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
|
||||
|
@ -112,7 +112,7 @@ jobs:
|
|||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.ARCHIVE_FW }}
|
||||
asset_name: "openipc.fh8632-br.tgz"
|
||||
asset_name: "openipc.fh8833v100-br.tgz"
|
||||
tag: ${{ env.TAG_NAME }}
|
||||
overwrite: true
|
||||
|
||||
|
@ -122,7 +122,7 @@ jobs:
|
|||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.ARCHIVE_SDK }}
|
||||
asset_name: "arm-openipc-fh8632-linux-musleabi_sdk-buildroot.tar.gz"
|
||||
asset_name: "arm-openipc-fh8833v100-linux-musleabi_sdk-buildroot.tar.gz"
|
||||
tag: ${{ env.TAG_NAME }}
|
||||
overwrite: true
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
MEM_START_ADDR=0xa0000000
|
||||
KERNEL_UPLOAD_ADDR=0xa0008000
|
|
@ -25,6 +25,7 @@ CONFIG_VECTORS_BASE=0xffff0000
|
|||
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_HAVE_IRQ_WORK=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
|
@ -243,6 +244,7 @@ CONFIG_ARCH_FULLHAN=y
|
|||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_VT8500 is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_KEYBOARD_GPIO_POLLED is not set
|
||||
CONFIG_CPU_FH8833=y
|
||||
|
||||
#
|
||||
|
@ -252,21 +254,14 @@ CONFIG_CPU_FH8833=y
|
|||
#
|
||||
# FullHan Core Type
|
||||
#
|
||||
# CONFIG_ARCH_FH8810 is not set
|
||||
CONFIG_ARCH_FH8833=y
|
||||
# CONFIG_ARCH_FH8830 is not set
|
||||
# CONFIG_ARCH_FH8856 is not set
|
||||
# CONFIG_ARCH_FH8626V100 is not set
|
||||
# CONFIG_ARCH_WUDANG is not set
|
||||
# CONFIG_ARCH_ZY2 is not set
|
||||
|
||||
#
|
||||
# FullHan Board Type
|
||||
#
|
||||
# CONFIG_USE_PTS_AS_CLOCKSOURCE is not set
|
||||
CONFIG_USE_PTS_AS_CLOCKSOURCE=y
|
||||
# CONFIG_FH_SIMPLE_TIMER is not set
|
||||
CONFIG_MACH_FH8833=y
|
||||
CONFIG_MACH_FH8833_QFN56=y
|
||||
# CONFIG_MACH_FH_NAND is not set
|
||||
# CONFIG_JLINK_DEBUG is not set
|
||||
|
||||
|
@ -312,9 +307,8 @@ CONFIG_ARM_ERRATA_411920=y
|
|||
#
|
||||
# Kernel Features
|
||||
#
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
# CONFIG_NO_HZ is not set
|
||||
# CONFIG_HIGH_RES_TIMERS is not set
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
|
@ -645,9 +639,11 @@ CONFIG_MISC_DEVICES=y
|
|||
# CONFIG_SENSORS_BH1770 is not set
|
||||
# CONFIG_SENSORS_APDS990X is not set
|
||||
# CONFIG_HMC6352 is not set
|
||||
# CONFIG_FH_DW_I2S is not set
|
||||
# CONFIG_FH_I2S_SLAVE is not set
|
||||
# CONFIG_FH_I2S_MASTER is not set
|
||||
CONFIG_FH_PINCTRL=y
|
||||
CONFIG_FH_SADC_V1=y
|
||||
CONFIG_FH_SADC=y
|
||||
# CONFIG_FH_FIRMWARE_LOADER is not set
|
||||
CONFIG_FH_EFUSE=y
|
||||
CONFIG_FH_CLK_MISC=y
|
||||
# CONFIG_DS1682 is not set
|
||||
|
@ -1236,7 +1232,7 @@ CONFIG_RTC_INTF_DEV=y
|
|||
#
|
||||
# on-CPU RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_FH is not set
|
||||
CONFIG_RTC_DRV_FH=y
|
||||
CONFIG_DMADEVICES=y
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
|
||||
|
@ -1261,6 +1257,8 @@ CONFIG_DMA_ENGINE=y
|
|||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_FULLHAN=y
|
||||
CONFIG_FH_PWM_NUM=8
|
||||
CONFIG_PWM_FULLHAN_V20=y
|
||||
|
||||
#
|
||||
# File systems
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* board_config.h
|
||||
*
|
||||
* Created on: Jan 9, 2017
|
||||
* Author: duobao
|
||||
*/
|
||||
|
||||
#ifndef BOARD_CONFIG_H_
|
||||
#define BOARD_CONFIG_H_
|
||||
|
||||
/*
|
||||
* GPIO0 -> IRCUT_ON
|
||||
* GPIO1 -> IRCUT_OFF
|
||||
* GPIO2 -> PHY Reset
|
||||
* GPIO3 -> IR
|
||||
* GPIO13 -> Sensor Reset
|
||||
* GPIO14 -> Sensor Power Down
|
||||
* GPIO55 -> CSN1
|
||||
*/
|
||||
|
||||
#define CONFIG_GPIO_EMACPHY_RESET 2
|
||||
#define CONFIG_GPIO_EMACPHY_RXDV 41
|
||||
#define CONFIG_SD_WP_FIXED
|
||||
|
||||
#define CONFIG_PINCTRL_SELECT \
|
||||
"MIPI", "RMII", "UART0", "USB", "DWI2S", \
|
||||
"I2C0", "SSI0", "SD0_CARD_1BIT", \
|
||||
"GPIO0", "GPIO1", "GPIO2", "GPIO3", \
|
||||
"GPIO13", \
|
||||
\
|
||||
"GPIO4", "GPIO11", "GPIO5", "GPIO6", "GPIO7", \
|
||||
"GPIO8", "GPIO9", "GPIO10", "GPIO14", "GPIO19", \
|
||||
"GPIO20", "GPIO21", "GPIO23", "GPIO28", "GPIO29", \
|
||||
"GPIO30", "GPIO31", "GPIO32", "GPIO33", "GPIO35", \
|
||||
"GPIO36", "GPIO37", "GPIO39", "GPIO40", "GPIO44", \
|
||||
"GPIO45", "GPIO47", "GPIO50", "GPIO51", "GPIO55", \
|
||||
"GPIO61", \
|
||||
|
||||
|
||||
#endif /* BOARD_CONFIG_H_ */
|
|
@ -0,0 +1,65 @@
|
|||
#ifndef __LINUX_COMPILER_H
|
||||
#error "Please don't include <linux/compiler-gcc7.h> directly, include <linux/compiler.h> instead."
|
||||
#endif
|
||||
|
||||
#define __used __attribute__((__used__))
|
||||
#define __must_check __attribute__((warn_unused_result))
|
||||
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
|
||||
|
||||
/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
to them will be unlikely. This means a lot of manual unlikely()s
|
||||
are unnecessary now for any paths leading to the usual suspects
|
||||
like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
older compilers]
|
||||
|
||||
Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
in the preprocessor, but we can live with this because they're unreleased.
|
||||
Maketime probing would be overkill here.
|
||||
|
||||
gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
a special section, but I don't see any sense in this right now in
|
||||
the kernel context */
|
||||
#define __cold __attribute__((__cold__))
|
||||
|
||||
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
|
||||
#ifndef __CHECKER__
|
||||
# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
# define __compiletime_error(message) __attribute__((error(message)))
|
||||
#endif /* __CHECKER__ */
|
||||
|
||||
/*
|
||||
* Mark a position in code as unreachable. This can be used to
|
||||
* suppress control flow warnings after asm blocks that transfer
|
||||
* control elsewhere.
|
||||
*
|
||||
* Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
* this in the preprocessor, but we can live with this because they're
|
||||
* unreleased. Really, we need to have autoconf for the kernel.
|
||||
*/
|
||||
#define unreachable() __builtin_unreachable()
|
||||
|
||||
/* Mark a function definition as prohibited from being cloned. */
|
||||
#define __noclone __attribute__((__noclone__))
|
||||
|
||||
/*
|
||||
* Tell the optimizer that something else uses this function or variable.
|
||||
*/
|
||||
#define __visible __attribute__((externally_visible))
|
||||
|
||||
/*
|
||||
* GCC 'asm goto' miscompiles certain code sequences:
|
||||
*
|
||||
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
*
|
||||
* Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
*
|
||||
* (asm goto is automatically volatile - the naming reflects this.)
|
||||
*/
|
||||
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
|
||||
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
#define __HAVE_BUILTIN_BSWAP32__
|
||||
#define __HAVE_BUILTIN_BSWAP64__
|
||||
#define __HAVE_BUILTIN_BSWAP16__
|
||||
#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,11 @@
|
|||
--- a/scripts/dtc/dtc-lexer.lex.c_shipped 2015-08-07 22:08:04.000000000 +0300
|
||||
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped 2021-11-01 22:15:12.347053553 +0300
|
||||
@@ -637,7 +637,7 @@
|
||||
#include "srcpos.h"
|
||||
#include "dtc-parser.tab.h"
|
||||
|
||||
-YYLTYPE yylloc;
|
||||
+extern YYLTYPE yylloc;
|
||||
|
||||
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
||||
#define YY_USER_ACTION \
|
|
@ -0,0 +1,62 @@
|
|||
--- linux-3.0.101/arch/arm/boot/Makefile 2013-10-22 11:58:59.000000000 +0400
|
||||
+++ linux-3.0.101/arch/arm/boot/Makefile 2021-12-15 10:51:15.956535987 +0300
|
||||
@@ -59,15 +59,19 @@
|
||||
|
||||
endif
|
||||
|
||||
-quiet_cmd_uimage = UIMAGE $@
|
||||
- cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
|
||||
- -C none -a $(LOADADDR) -e $(STARTADDR) \
|
||||
- -n 'Linux-$(KERNELRELEASE)' -d $< $@
|
||||
+#quiet_cmd_uimage = UIMAGE $@
|
||||
+# cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
|
||||
+# -C none -a $(LOADADDR) -e $(STARTADDR) \
|
||||
+# -n 'Linux-$(KERNELRELEASE)' -d $< $@
|
||||
|
||||
-ifeq ($(CONFIG_ZBOOT_ROM),y)
|
||||
-$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
|
||||
+ifneq ($(LOADADDR),)
|
||||
+ UIMAGE_LOADADDR=$(LOADADDR)
|
||||
else
|
||||
-$(obj)/uImage: LOADADDR=$(ZRELADDR)
|
||||
+ ifeq ($(CONFIG_ZBOOT_ROM),y)
|
||||
+ UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
|
||||
+ else
|
||||
+ UIMAGE_LOADADDR=$(ZRELADDR)
|
||||
+ endif
|
||||
endif
|
||||
|
||||
$(obj)/uImage: STARTADDR=$(LOADADDR)
|
||||
--- linux-3.0.101/scripts/Makefile.lib 2013-10-22 11:58:59.000000000 +0400
|
||||
+++ linux-3.0.101/scripts/Makefile.lib 2021-12-15 10:53:24.551357718 +0300
|
||||
@@ -262,6 +262,30 @@
|
||||
lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
|
||||
(rm -f $@ ; false)
|
||||
|
||||
+# U-Boot mkimage
|
||||
+# ---------------------------------------------------------------------------
|
||||
+
|
||||
+MKIMAGE := $(srctree)/scripts/mkuboot.sh
|
||||
+
|
||||
+# SRCARCH just happens to match slightly more than ARCH (on sparc), so reduces
|
||||
+# the number of overrides in arch makefiles
|
||||
+UIMAGE_ARCH ?= $(SRCARCH)
|
||||
+UIMAGE_COMPRESSION ?= $(if $(2),$(2),none)
|
||||
+UIMAGE_OPTS-y ?=
|
||||
+UIMAGE_TYPE ?= kernel
|
||||
+UIMAGE_LOADADDR ?= arch_must_set_this
|
||||
+UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)
|
||||
+UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'
|
||||
+UIMAGE_IN ?= $<
|
||||
+UIMAGE_OUT ?= $@
|
||||
+
|
||||
+quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT)
|
||||
+ cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \
|
||||
+ -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \
|
||||
+ -T $(UIMAGE_TYPE) \
|
||||
+ -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \
|
||||
+ -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT)
|
||||
+
|
||||
# XZ
|
||||
# ---------------------------------------------------------------------------
|
||||
# Use xzkern to compress the kernel image and xzmisc to compress other things.
|
|
@ -0,0 +1,144 @@
|
|||
--- a/drivers/tty/pty.c
|
||||
+++ b/drivers/tty/pty.c
|
||||
@@ -721,7 +721,18 @@ err_file:
|
||||
return retval;
|
||||
}
|
||||
|
||||
-static struct file_operations ptmx_fops;
|
||||
+static const struct file_operations ptmx_fops =
|
||||
+{
|
||||
+ .llseek = no_llseek,
|
||||
+ .read = tty_read,
|
||||
+ .write = tty_write,
|
||||
+ .poll = tty_poll,
|
||||
+ .unlocked_ioctl = tty_ioctl,
|
||||
+ .compat_ioctl = tty_compat_ioctl,
|
||||
+ .open = ptmx_open,
|
||||
+ .release = tty_release,
|
||||
+ .fasync = tty_fasync,
|
||||
+};
|
||||
|
||||
static void __init unix98_pty_init(void)
|
||||
{
|
||||
@@ -775,9 +786,6 @@ static void __init unix98_pty_init(void)
|
||||
register_sysctl_table(pty_root_table);
|
||||
|
||||
/* Now create the /dev/ptmx special device */
|
||||
- tty_default_fops(&ptmx_fops);
|
||||
- ptmx_fops.open = ptmx_open;
|
||||
-
|
||||
cdev_init(&ptmx_cdev, &ptmx_fops);
|
||||
if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
|
||||
register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0)
|
||||
|
||||
--- a/drivers/tty/tty_io.c
|
||||
+++ b/drivers/tty/tty_io.c
|
||||
@@ -137,21 +137,10 @@ EXPORT_SYMBOL(tty_mutex);
|
||||
/* Spinlock to protect the tty->tty_files list */
|
||||
DEFINE_SPINLOCK(tty_files_lock);
|
||||
|
||||
-static ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
|
||||
-static ssize_t tty_write(struct file *, const char __user *, size_t, loff_t *);
|
||||
ssize_t redirected_tty_write(struct file *, const char __user *,
|
||||
size_t, loff_t *);
|
||||
-static unsigned int tty_poll(struct file *, poll_table *);
|
||||
static int tty_open(struct inode *, struct file *);
|
||||
-long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
||||
-#ifdef CONFIG_COMPAT
|
||||
-static long tty_compat_ioctl(struct file *file, unsigned int cmd,
|
||||
- unsigned long arg);
|
||||
-#else
|
||||
-#define tty_compat_ioctl NULL
|
||||
-#endif
|
||||
static int __tty_fasync(int fd, struct file *filp, int on);
|
||||
-static int tty_fasync(int fd, struct file *filp, int on);
|
||||
static void release_tty(struct tty_struct *tty, int idx);
|
||||
static void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty);
|
||||
static void proc_set_tty(struct task_struct *tsk, struct tty_struct *tty);
|
||||
@@ -962,7 +951,7 @@ static void tty_update_time(struct timespec *time)
|
||||
* read calls may be outstanding in parallel.
|
||||
*/
|
||||
|
||||
-static ssize_t tty_read(struct file *file, char __user *buf, size_t count,
|
||||
+ssize_t tty_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
int i;
|
||||
@@ -1141,7 +1130,7 @@ void tty_write_message(struct tty_struct *tty, char *msg)
|
||||
* write method will not be invoked in parallel for each device.
|
||||
*/
|
||||
|
||||
-static ssize_t tty_write(struct file *file, const char __user *buf,
|
||||
+ssize_t tty_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
@@ -2002,7 +1991,7 @@ got_driver:
|
||||
* may be re-entered freely by other callers.
|
||||
*/
|
||||
|
||||
-static unsigned int tty_poll(struct file *filp, poll_table *wait)
|
||||
+unsigned int tty_poll(struct file *filp, poll_table *wait)
|
||||
{
|
||||
struct tty_struct *tty = file_tty(filp);
|
||||
struct tty_ldisc *ld;
|
||||
@@ -2059,7 +2048,7 @@ out:
|
||||
return retval;
|
||||
}
|
||||
|
||||
-static int tty_fasync(int fd, struct file *filp, int on)
|
||||
+int tty_fasync(int fd, struct file *filp, int on)
|
||||
{
|
||||
int retval;
|
||||
tty_lock();
|
||||
@@ -3246,11 +3235,6 @@ struct tty_struct *get_current_tty(void)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_current_tty);
|
||||
|
||||
-void tty_default_fops(struct file_operations *fops)
|
||||
-{
|
||||
- *fops = tty_fops;
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Initialize the console device. This is called *early*, so
|
||||
* we can't necessarily depend on lots of kernel help here.
|
||||
|
||||
--- a/include/linux/tty.h
|
||||
+++ b/include/linux/tty.h
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/tty_driver.h>
|
||||
#include <linux/tty_ldisc.h>
|
||||
#include <linux/mutex.h>
|
||||
+#include <linux/poll.h>
|
||||
|
||||
#include <asm/system.h>
|
||||
|
||||
@@ -470,7 +471,6 @@ extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg);
|
||||
extern dev_t tty_devnum(struct tty_struct *tty);
|
||||
extern void proc_clear_tty(struct task_struct *p);
|
||||
extern struct tty_struct *get_current_tty(void);
|
||||
-extern void tty_default_fops(struct file_operations *fops);
|
||||
extern struct tty_struct *alloc_tty_struct(void);
|
||||
extern int tty_alloc_file(struct file *file);
|
||||
extern void tty_add_file(struct tty_struct *tty, struct file *file);
|
||||
@@ -482,6 +482,19 @@ extern void deinitialize_tty_struct(struct tty_struct *tty);
|
||||
extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx,
|
||||
int first_ok);
|
||||
extern int tty_release(struct inode *inode, struct file *filp);
|
||||
+extern ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
|
||||
+extern ssize_t tty_write(struct file *, const char __user *, size_t, loff_t *);
|
||||
+extern unsigned int tty_poll(struct file *, poll_table *);
|
||||
+
|
||||
+#ifdef CONFIG_COMPAT
|
||||
+extern long tty_compat_ioctl(struct file *file, unsigned int cmd,
|
||||
+ unsigned long arg);
|
||||
+#else
|
||||
+#define tty_compat_ioctl NULL
|
||||
+#endif
|
||||
+extern int tty_fasync(int fd, struct file *filp, int on);
|
||||
+
|
||||
+
|
||||
extern int tty_init_termios(struct tty_struct *tty);
|
||||
|
||||
extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty);
|
|
@ -0,0 +1,28 @@
|
|||
--- a/drivers/net/fh_gmac/fh_gmac_phyt.c
|
||||
+++ b/drivers/net/fh_gmac/fh_gmac_phyt.c
|
||||
@@ -83,6 +83,7 @@
|
||||
if (pGmac->phy_interface == PHY_INTERFACE_MODE_RMII) {
|
||||
switch (pGmac->phydev->phy_id) {
|
||||
case FH_GMAC_PHY_RTL8201:
|
||||
+ case FH_GMAC_PHY_JL1101:
|
||||
fh_mdio_write(bus, phyid,
|
||||
gmac_phyt_rtl8201_page_select, 7);
|
||||
fh_mdio_write(bus, phyid,
|
||||
@@ -116,6 +117,7 @@
|
||||
} else if (pGmac->phy_interface == PHY_INTERFACE_MODE_MII) {
|
||||
switch (pGmac->phydev->phy_id) {
|
||||
case FH_GMAC_PHY_RTL8201:
|
||||
+ case FH_GMAC_PHY_JL1101:
|
||||
fh_mdio_write(bus, phyid,
|
||||
gmac_phyt_rtl8201_page_select, 7);
|
||||
fh_mdio_write(bus, phyid,
|
||||
--- a/drivers/net/fh_gmac/fh_gmac_phyt.h
|
||||
+++ b/drivers/net/fh_gmac/fh_gmac_phyt.h
|
||||
@@ -11,6 +11,7 @@
|
||||
#define FH_GMAC_PHY_IP101G 0x02430C54
|
||||
#define FH_GMAC_PHY_RTL8201 0x001CC816
|
||||
#define FH_GMAC_PHY_TI83848 0xFFFFFFFF
|
||||
+#define FH_GMAC_PHY_JL1101 0x937c4023
|
||||
|
||||
enum
|
||||
{
|
|
@ -4,7 +4,7 @@
|
|||
include/config/auto.conf: ;
|
||||
endif # $(dot-config)
|
||||
|
||||
+export PROJECT_NAME = $(shell grep -e '^CONFIG_MACH_FH.*' .config|sed 's/CONFIG_MACH_\(.*\)=y/\1/'|awk '{print tolower($$0)}')
|
||||
+export PROJECT_NAME = $(shell grep -e '^CONFIG_MACH_FH.*' .config|head -1|sed 's/CONFIG_MACH_\(.*\)=y/\1/'|awk '{print tolower($$0)}')
|
||||
+
|
||||
+PHONY += boardconfig
|
||||
+boardconfig:
|
||||
|
|
Loading…
Reference in New Issue