📄 1009.fip.patch
字号:
+}++#ifdef __KERNEL__ +static +#endif /* __KERNEL__ */+int fip_exit(void)+{+ fip_clear();++ /* Disable FIP and interrupt */+ fip_write_reg(FIP_CONFIG, 0);+ fip_wait_ready();+ return(0);+}++#ifndef __KERNEL__ +unsigned long fip_readkey(void)+{+ unsigned long key = 0L;++ fip_wait_ready();+ fip_write_reg(FIP_COMMAND, FIP_CMD_DATA_SET_RW_MODE_READ_KEYS);+ key = fip_read_reg(FIP_KEY_DATA1); + return(key);+}+#endif /* __KERNEL__ */++#ifdef __KERNEL__+int __init fip_init_module(void)+{+ int status = 0;++ if (tangox_fip_enabled() == 0)+ return(0);++ /* Initialize private data structure */+ memset(&fip_priv, 0, sizeof(struct fip_private)); +#ifdef ENABLE_WRITE_INTR+ fip_priv.cmdq_empty = 1;+#endif+ spin_lock_init(&fip_priv.lock);++ if (buffer_size < 1) {+ printk(KERN_ERR "%s: buffer size (%d) error\n", fip_devname,+ buffer_size); + return(-EIO);+ } + if ((fip_priv.buffer = kmalloc(buffer_size * sizeof(unsigned long), GFP_KERNEL)) == NULL) {+ printk(KERN_ERR "%s: out of memory for buffer\n", fip_devname); + return(-ENOMEM);+ }++ /* Register device, and may be allocating major# */+ status = register_chrdev(major_num, fip_devname, &fip_fops);+ if (status < 0) {+ printk(KERN_ERR "%s: cannot get major number\n", fip_devname); + if (fip_priv.buffer != NULL)+ kfree(fip_priv.buffer);+ return(status);+ } else if (major_num == 0)+ major_num = status; /* Dynamic major# allocation */++ /* Hook up ISR */+ if (request_irq(fip_irq, fip_isr, SA_SHIRQ, fip_devname, &fip_priv) != 0) {+ printk(KERN_ERR "%s: cannot register IRQ (%d)\n", fip_devname,+ fip_irq);+ unregister_chrdev(major_num, fip_devname); + if (fip_priv.buffer != NULL)+ kfree(fip_priv.buffer);+ return(-EIO);+ }++ fip_init();+ init_timer(&fip_timer);++ printk("SMP863x %s (%d:0): driver loaded (buffer_size = %d)\n", + fip_devname, major_num, buffer_size);+ return(0);+}++void __exit fip_cleanup_module(void)+{+ if (tangox_fip_enabled() == 0)+ return;++ unregister_chrdev(major_num, fip_devname);+ free_irq(fip_irq, &fip_priv);++ if (fip_priv.buffer != NULL)+ kfree(fip_priv.buffer);++ fip_exit();++ printk(KERN_DEBUG "%s: driver unloaded\n", fip_devname);+}++module_init(fip_init_module);+module_exit(fip_cleanup_module);++#endif /* __KERNEL__ */+diff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/drivers/char/Kconfig linux-2.6.15/drivers/char/Kconfig--- linux-2.6.15.ref/drivers/char/Kconfig 2006-08-09 09:31:00.000000000 -0700+++ linux-2.6.15/drivers/char/Kconfig 2006-08-09 11:12:37.000000000 -0700@@ -470,6 +470,29 @@ help Support Infra-Red remote controller interface for SMP863x/SMP865x. +config TANGOX_FIP+ tristate "SMP863x/SMP865x Front Panel support" if TANGOX+ default m+ help+ Support Front Panel interface for SMP863x/SMP865x.++choice+ prompt "SMP863x/SMP865x reference platform"+ depends on TANGOX_FIP+ default TANGOX_FIP_REF1++config TANGOX_FIP_REF1+ bool "Ref1"+ help+ For reference platform 1.++config TANGOX_FIP_REF2+ bool "Ref2"+ help+ For reference platform 2.++endchoice+ config UNIX98_PTYS bool "Unix98 PTY support" if EMBEDDED default ydiff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/drivers/char/Makefile linux-2.6.15/drivers/char/Makefile--- linux-2.6.15.ref/drivers/char/Makefile 2006-08-09 09:31:10.000000000 -0700+++ linux-2.6.15/drivers/char/Makefile 2006-08-09 11:13:12.000000000 -0700@@ -90,6 +90,7 @@ obj-$(CONFIG_TANBAC_TB0219) += tb0219.o obj-$(CONFIG_TELCLOCK) += tlclk.o obj-$(CONFIG_TANGOX_IR) += irkernel.o+obj-$(CONFIG_TANGOX_FIP) += fipkernel.o obj-$(CONFIG_WATCHDOG) += watchdog/ obj-$(CONFIG_MWAVE) += mwave/diff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/include/asm-mips/tango2/fip.h linux-2.6.15/include/asm-mips/tango2/fip.h--- linux-2.6.15.ref/include/asm-mips/tango2/fip.h 1969-12-31 16:00:00.000000000 -0800+++ linux-2.6.15/include/asm-mips/tango2/fip.h 2006-08-09 11:10:29.000000000 -0700@@ -0,0 +1,117 @@+/*****************************************+ * Copyright 漏 2001-2007+ * Sigma Designs, Inc. All Rights Reserved+ * Proprietary and Confidential+ ******************************************/++/*+ * FIP related definitions, and function prototypes.+ */+#ifndef _FIP_H_+#define _FIP_H_++#ifdef __KERNEL__+#include <linux/kernel.h>+#include <linux/module.h>+#include <asm/ioctl.h>+#endif /* __KERNEL__ */++/* Valid symbols */+#if defined(CONFIG_TANGOX_FIP_REF1)+#define DVD_FIP_ON 0+#define PLAY_FIP_ON 1+#define DTS_FIP_ON 2+#define MP3_FIP_ON 3+#define DOLBYDIGITAL_FIP_ON 4+#define MPEG4_FIP_ON 5+#define PAUSE_FIP_ON 6+#define DVI_FIP_ON 7+#define TWIRL_1_FIP_ON 8+#define TWIRL_2_FIP_ON 9+#define TWIRL_3_FIP_ON 10+#define TWIRL_4_FIP_ON 11+#define TWIRL_5_FIP_ON 12+#define TWIRL_6_FIP_ON 13+#define ALL_FIP_ON 14+#define REPEAT_FIP_ON 15+#define COLON_MIN_SEC_FIP_ON 16+#define R1080_FIP_ON 17+#define R720_FIP_ON 18+#define COLON_HOUR_MIN_FIP_ON 19+#define R480_FIP_ON 20+#define PAL_FIP_ON 21+#define NTSC_FIP_ON 22+#elif defined(CONFIG_TANGOX_FIP_REF2)+#define DVD_FIP 201+#define VCD_FIP 202+#define MP3_FIP 203+#define CD_FIP 204+#define TITLE_FIP 205+#define TRACK_CHAPTER_FIP 206+#else+#error Unsupport front panel.+#endif++/* Alignment */+#define FIP_LEFT 0x0000 /* flags for fip_write_text() */+#define FIP_CENTER 0x0001+#define FIP_RIGHT 0x0002++/* FIP Keys */+#if defined(CONFIG_TANGOX_FIP_REF1)+#define FIP_KEY_EJECT 0x00000004+#define FIP_KEY_PREV 0x00000800+#define FIP_KEY_NEXT 0x00008000+#define FIP_KEY_FBWD 0x00000008+#define FIP_KEY_FFWD 0x00000080+#define FIP_KEY_PLAYPAUSE 0x00000040+#elif defined(CONFIG_TANGOX_FIP_REF2)+#define FIP_KEY_EJECT 0x00000001+#define FIP_KEY_PLAYPAUSE 0x00000002+#define FIP_KEY_STOP 0x00000004+#define FIP_KEY_PREV 0x00000008+#define FIP_KEY_NEXT 0x00000010+#define FIP_KEY_FBWD 0x00000020+#define FIP_KEY_FFWD 0x00000040+#define FIP_KEY_MENU 0x00000080+#else+#error Unsupport front panel.+#endif++#if defined(__KERNEL__) || !defined(BOOTLOADER)+/* ioctl commands for user level applications*/+#define FIP_IOC_MAGIC 'F'+#define FIP_IOCSHOWSYMBOL _IO(FIP_IOC_MAGIC, 0)+#define FIP_IOCSHOWHMS _IO(FIP_IOC_MAGIC, 1)+#define FIP_IOCDISPCHAR _IO(FIP_IOC_MAGIC, 2)+#define FIP_IOCDISPRAW _IO(FIP_IOC_MAGIC, 3)+#define FIP_IOCDISPTEXT _IO(FIP_IOC_MAGIC, 4)+#define FIP_IOCCLEAR _IO(FIP_IOC_MAGIC, 5)+#define FIP_IOCGETFPTYPE _IO(FIP_IOC_MAGIC, 6)+#endif /* __KERNEL__ || !BOOTLOADER */++#ifdef __KERNEL__+static void fip_write_text(const int position, const char *text, const int flags);+static int fip_show_hms(int hour, int minute, int second);+static void fip_display_symbol(const int symbol, const int on);+static int fip_display_character(const int position, const char character);+static void fip_display_raw(const int byte, const int bit, const int on); +static int is_fip_busy(void);+static void fip_wait_ready(void);+static void fip_clear(void);+#elif defined(BOOTLOADER)+void fip_write_text(const int position, const char *text, const int flags);+int fip_show_hms(int hour, int minute, int second);+void fip_display_symbol(const int symbol, const int on);+int fip_display_character(const int position, const char character);+void fip_display_raw(const int byte, const int bit, const int on); +int is_fip_busy(void);+void fip_wait_ready(void);+void fip_clear(void);+int fip_init(void);+int fip_exit(void);+unsigned long fip_readkey(void);+#endif /* __KERNEL__ */++#endif+diff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/include/asm-mips/tango3/fip.h linux-2.6.15/include/asm-mips/tango3/fip.h--- linux-2.6.15.ref/include/asm-mips/tango3/fip.h 1969-12-31 16:00:00.000000000 -0800+++ linux-2.6.15/include/asm-mips/tango3/fip.h 2006-08-09 11:10:36.000000000 -0700@@ -0,0 +1,117 @@+/*****************************************+ * Copyright 漏 2001-2004+ * Sigma Designs, Inc. All Rights Reserved+ * Proprietary and Confidential+ ******************************************/++/*+ * FIP related definitions, and function prototypes.+ */+#ifndef _FIP_H_+#define _FIP_H_++#ifdef __KERNEL__+#include <linux/kernel.h>+#include <linux/module.h>+#include <asm/ioctl.h>+#endif /* __KERNEL__ */++/* Valid symbols */+#if defined(CONFIG_TANGOX_FIP_REF1)+#define DVD_FIP_ON 0+#define PLAY_FIP_ON 1+#define DTS_FIP_ON 2+#define MP3_FIP_ON 3+#define DOLBYDIGITAL_FIP_ON 4+#define MPEG4_FIP_ON 5+#define PAUSE_FIP_ON 6+#define DVI_FIP_ON 7+#define TWIRL_1_FIP_ON 8+#define TWIRL_2_FIP_ON 9+#define TWIRL_3_FIP_ON 10+#define TWIRL_4_FIP_ON 11+#define TWIRL_5_FIP_ON 12+#define TWIRL_6_FIP_ON 13+#define ALL_FIP_ON 14+#define REPEAT_FIP_ON 15+#define COLON_MIN_SEC_FIP_ON 16+#define R1080_FIP_ON 17+#define R720_FIP_ON 18+#define COLON_HOUR_MIN_FIP_ON 19+#define R480_FIP_ON 20+#define PAL_FIP_ON 21+#define NTSC_FIP_ON 22+#elif defined(CONFIG_TANGOX_FIP_REF2)+#define DVD_FIP 201+#define VCD_FIP 202+#define MP3_FIP 203+#define CD_FIP 204+#define TITLE_FIP 205+#define TRACK_CHAPTER_FIP 206+#else+#error Unsupport front panel.+#endif++/* Alignment */+#define FIP_LEFT 0x0000 /* flags for fip_write_text() */+#define FIP_CENTER 0x0001+#define FIP_RIGHT 0x0002++/* FIP Keys */+#if defined(CONFIG_TANGOX_FIP_REF1)+#define FIP_KEY_EJECT 0x00000004+#define FIP_KEY_PREV 0x00000800+#define FIP_KEY_NEXT 0x00008000+#define FIP_KEY_FBWD 0x00000008+#define FIP_KEY_FFWD 0x00000080+#define FIP_KEY_PLAYPAUSE 0x00000040+#elif defined(CONFIG_TANGOX_FIP_REF2)+#define FIP_KEY_EJECT 0x00000001+#define FIP_KEY_PLAYPAUSE 0x00000002+#define FIP_KEY_STOP 0x00000004+#define FIP_KEY_PREV 0x00000008+#define FIP_KEY_NEXT 0x00000010+#define FIP_KEY_FBWD 0x00000020+#define FIP_KEY_FFWD 0x00000040+#define FIP_KEY_MENU 0x00000080+#else+#error Unsupport front panel.+#endif++#if defined(__KERNEL__) || !defined(BOOTLOADER)+/* ioctl commands for user level applications*/+#define FIP_IOC_MAGIC 'F'+#define FIP_IOCSHOWSYMBOL _IO(FIP_IOC_MAGIC, 0)+#define FIP_IOCSHOWHMS _IO(FIP_IOC_MAGIC, 1)+#define FIP_IOCDISPCHAR _IO(FIP_IOC_MAGIC, 2)+#define FIP_IOCDISPRAW _IO(FIP_IOC_MAGIC, 3)+#define FIP_IOCDISPTEXT _IO(FIP_IOC_MAGIC, 4)+#define FIP_IOCCLEAR _IO(FIP_IOC_MAGIC, 5)+#define FIP_IOCGETFPTYPE _IO(FIP_IOC_MAGIC, 6)+#endif /* __KERNEL__ || !BOOTLOADER */++#ifdef __KERNEL__+static void fip_write_text(const int position, const char *text, const int flags);+static int fip_show_hms(int hour, int minute, int second);+static void fip_display_symbol(const int symbol, const int on);+static int fip_display_character(const int position, const char character);+static void fip_display_raw(const int byte, const int bit, const int on); +static int is_fip_busy(void);+static void fip_wait_ready(void);+static void fip_clear(void);+#elif defined(BOOTLOADER)+void fip_write_text(const int position, const char *text, const int flags);+int fip_show_hms(int hour, int minute, int second);+void fip_display_symbol(const int symbol, const int on);+int fip_display_character(const int position, const char character);+void fip_display_raw(const int byte, const int bit, const int on); +int is_fip_busy(void);+void fip_wait_ready(void);+void fip_clear(void);+int fip_init(void);+int fip_exit(void);+unsigned long fip_readkey(void);+#endif /* __KERNEL__ */++#endif+diff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/README.1009.fip.patch linux-2.6.15/README.1009.fip.patch--- linux-2.6.15.ref/README.1009.fip.patch 1969-12-31 16:00:00.000000000 -0800+++ linux-2.6.15/README.1009.fip.patch 2006-08-09 11:19:06.000000000 -0700@@ -0,0 +1,19 @@+Feature:+--------+Front Panel Interface support for SMP863x/SMP865x++Prerequisite patch numbers:+---------------------------+0000+1000++Primary author:+---------------+YH Lin++Related to which chip version SMP86xx xx=?+------------------------------------------+Tango2 ES6/RevA or above, or Tango3 ES1 or above++(linux patches) which CONFIG_... are provided:+----------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -