fix fb soft rending, ts
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33
|
# Linux kernel version: 2.6.33
|
||||||
# Mon Aug 23 14:03:45 2010
|
# Sat Sep 11 04:31:01 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_HAVE_PWM=y
|
CONFIG_HAVE_PWM=y
|
||||||
@@ -64,7 +64,7 @@ CONFIG_IKCONFIG_PROC=y
|
|||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
CONFIG_GROUP_SCHED=y
|
CONFIG_GROUP_SCHED=y
|
||||||
CONFIG_FAIR_GROUP_SCHED=y
|
CONFIG_FAIR_GROUP_SCHED=y
|
||||||
# CONFIG_RT_GROUP_SCHED is not set
|
CONFIG_RT_GROUP_SCHED=y
|
||||||
CONFIG_USER_SCHED=y
|
CONFIG_USER_SCHED=y
|
||||||
# CONFIG_CGROUP_SCHED is not set
|
# CONFIG_CGROUP_SCHED is not set
|
||||||
CONFIG_CGROUPS=y
|
CONFIG_CGROUPS=y
|
||||||
@@ -85,17 +85,17 @@ CONFIG_USER_NS=y
|
|||||||
CONFIG_PID_NS=y
|
CONFIG_PID_NS=y
|
||||||
CONFIG_NET_NS=y
|
CONFIG_NET_NS=y
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE="../ramfs-android"
|
CONFIG_INITRAMFS_SOURCE="../ramfs-android/"
|
||||||
CONFIG_INITRAMFS_ROOT_UID=0
|
CONFIG_INITRAMFS_ROOT_UID=0
|
||||||
CONFIG_INITRAMFS_ROOT_GID=0
|
CONFIG_INITRAMFS_ROOT_GID=0
|
||||||
CONFIG_RD_GZIP=y
|
CONFIG_RD_GZIP=y
|
||||||
# CONFIG_RD_BZIP2 is not set
|
# CONFIG_RD_BZIP2 is not set
|
||||||
CONFIG_RD_LZMA=y
|
# CONFIG_RD_LZMA is not set
|
||||||
# CONFIG_RD_LZO is not set
|
# CONFIG_RD_LZO is not set
|
||||||
# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
|
# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
|
||||||
# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set
|
CONFIG_INITRAMFS_COMPRESSION_GZIP=y
|
||||||
# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
|
# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
|
||||||
CONFIG_INITRAMFS_COMPRESSION_LZMA=y
|
# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
|
||||||
# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
|
# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
|
||||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
@@ -104,7 +104,6 @@ CONFIG_EMBEDDED=y
|
|||||||
CONFIG_UID16=y
|
CONFIG_UID16=y
|
||||||
CONFIG_SYSCTL_SYSCALL=y
|
CONFIG_SYSCTL_SYSCALL=y
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
CONFIG_KALLSYMS_ALL=y
|
|
||||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||||
CONFIG_HOTPLUG=y
|
CONFIG_HOTPLUG=y
|
||||||
CONFIG_PRINTK=y
|
CONFIG_PRINTK=y
|
||||||
@@ -138,7 +137,6 @@ CONFIG_HAVE_CLK=y
|
|||||||
#
|
#
|
||||||
# GCOV-based kernel profiling
|
# GCOV-based kernel profiling
|
||||||
#
|
#
|
||||||
# CONFIG_GCOV_KERNEL is not set
|
|
||||||
# CONFIG_SLOW_WORK is not set
|
# CONFIG_SLOW_WORK is not set
|
||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||||
CONFIG_SLABINFO=y
|
CONFIG_SLABINFO=y
|
||||||
@@ -305,6 +303,8 @@ CONFIG_G900_KBR=y
|
|||||||
CONFIG_G900_BUTTON=y
|
CONFIG_G900_BUTTON=y
|
||||||
CONFIG_G900_LEDS=y
|
CONFIG_G900_LEDS=y
|
||||||
CONFIG_G900_PHONE=y
|
CONFIG_G900_PHONE=y
|
||||||
|
CONFIG_G900_POWER_BUTTON=y
|
||||||
|
CONFIG_G900_FLASH=y
|
||||||
CONFIG_PXA27x=y
|
CONFIG_PXA27x=y
|
||||||
CONFIG_PXA_SSP=y
|
CONFIG_PXA_SSP=y
|
||||||
CONFIG_PLAT_PXA=y
|
CONFIG_PLAT_PXA=y
|
||||||
@@ -389,7 +389,7 @@ CONFIG_KEXEC=y
|
|||||||
#
|
#
|
||||||
CONFIG_CPU_FREQ=y
|
CONFIG_CPU_FREQ=y
|
||||||
CONFIG_CPU_FREQ_TABLE=y
|
CONFIG_CPU_FREQ_TABLE=y
|
||||||
CONFIG_CPU_FREQ_DEBUG=y
|
# CONFIG_CPU_FREQ_DEBUG is not set
|
||||||
CONFIG_CPU_FREQ_STAT=y
|
CONFIG_CPU_FREQ_STAT=y
|
||||||
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||||
@@ -427,8 +427,7 @@ CONFIG_HAVE_AOUT=y
|
|||||||
# Power management options
|
# Power management options
|
||||||
#
|
#
|
||||||
CONFIG_PM=y
|
CONFIG_PM=y
|
||||||
CONFIG_PM_DEBUG=y
|
# CONFIG_PM_DEBUG is not set
|
||||||
CONFIG_PM_VERBOSE=y
|
|
||||||
# CONFIG_SUSPEND is not set
|
# CONFIG_SUSPEND is not set
|
||||||
CONFIG_HAS_WAKELOCK=y
|
CONFIG_HAS_WAKELOCK=y
|
||||||
CONFIG_HAS_EARLYSUSPEND=y
|
CONFIG_HAS_EARLYSUSPEND=y
|
||||||
@@ -539,14 +538,13 @@ CONFIG_WEXT_SPY=y
|
|||||||
CONFIG_CFG80211=y
|
CONFIG_CFG80211=y
|
||||||
CONFIG_NL80211_TESTMODE=y
|
CONFIG_NL80211_TESTMODE=y
|
||||||
CONFIG_CFG80211_DEVELOPER_WARNINGS=y
|
CONFIG_CFG80211_DEVELOPER_WARNINGS=y
|
||||||
CONFIG_CFG80211_REG_DEBUG=y
|
# CONFIG_CFG80211_REG_DEBUG is not set
|
||||||
CONFIG_CFG80211_DEFAULT_PS=y
|
CONFIG_CFG80211_DEFAULT_PS=y
|
||||||
CONFIG_CFG80211_DEBUGFS=y
|
|
||||||
CONFIG_WIRELESS_OLD_REGULATORY=y
|
CONFIG_WIRELESS_OLD_REGULATORY=y
|
||||||
CONFIG_CFG80211_WEXT=y
|
CONFIG_CFG80211_WEXT=y
|
||||||
CONFIG_WIRELESS_EXT_SYSFS=y
|
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||||
CONFIG_LIB80211=y
|
CONFIG_LIB80211=y
|
||||||
CONFIG_LIB80211_DEBUG=y
|
# CONFIG_LIB80211_DEBUG is not set
|
||||||
CONFIG_MAC80211=y
|
CONFIG_MAC80211=y
|
||||||
# CONFIG_MAC80211_RC_PID is not set
|
# CONFIG_MAC80211_RC_PID is not set
|
||||||
# CONFIG_MAC80211_RC_MINSTREL is not set
|
# CONFIG_MAC80211_RC_MINSTREL is not set
|
||||||
@@ -555,7 +553,6 @@ CONFIG_MAC80211=y
|
|||||||
CONFIG_MAC80211_RC_DEFAULT=""
|
CONFIG_MAC80211_RC_DEFAULT=""
|
||||||
CONFIG_MAC80211_MESH=y
|
CONFIG_MAC80211_MESH=y
|
||||||
# CONFIG_MAC80211_LEDS is not set
|
# CONFIG_MAC80211_LEDS is not set
|
||||||
# CONFIG_MAC80211_DEBUGFS is not set
|
|
||||||
# CONFIG_MAC80211_DEBUG_MENU is not set
|
# CONFIG_MAC80211_DEBUG_MENU is not set
|
||||||
# CONFIG_WIMAX is not set
|
# CONFIG_WIMAX is not set
|
||||||
CONFIG_RFKILL=y
|
CONFIG_RFKILL=y
|
||||||
@@ -578,11 +575,96 @@ CONFIG_FW_LOADER=y
|
|||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
||||||
CONFIG_EXTRA_FIRMWARE="libertas/gspi8385_hlp.bin libertas/gspi8385.bin"
|
CONFIG_EXTRA_FIRMWARE="libertas/gspi8385_hlp.bin libertas/gspi8385.bin"
|
||||||
CONFIG_EXTRA_FIRMWARE_DIR="../FW"
|
CONFIG_EXTRA_FIRMWARE_DIR="../FW"
|
||||||
CONFIG_DEBUG_DRIVER=y
|
|
||||||
CONFIG_DEBUG_DEVRES=y
|
|
||||||
# CONFIG_SYS_HYPERVISOR is not set
|
# CONFIG_SYS_HYPERVISOR is not set
|
||||||
# CONFIG_CONNECTOR is not set
|
# CONFIG_CONNECTOR is not set
|
||||||
# CONFIG_MTD is not set
|
CONFIG_MTD=y
|
||||||
|
# CONFIG_MTD_DEBUG is not set
|
||||||
|
# CONFIG_MTD_TESTS is not set
|
||||||
|
# CONFIG_MTD_CONCAT is not set
|
||||||
|
# CONFIG_MTD_PARTITIONS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# User Modules And Translation Layers
|
||||||
|
#
|
||||||
|
CONFIG_MTD_CHAR=y
|
||||||
|
# CONFIG_MTD_BLKDEVS is not set
|
||||||
|
# CONFIG_MTD_BLOCK is not set
|
||||||
|
# CONFIG_MTD_BLOCK_RO is not set
|
||||||
|
# CONFIG_FTL is not set
|
||||||
|
# CONFIG_NFTL is not set
|
||||||
|
# CONFIG_INFTL is not set
|
||||||
|
# CONFIG_RFD_FTL is not set
|
||||||
|
# CONFIG_SSFDC is not set
|
||||||
|
# CONFIG_MTD_OOPS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# RAM/ROM/Flash chip drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_CFI is not set
|
||||||
|
# CONFIG_MTD_JEDECPROBE is not set
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||||
|
CONFIG_MTD_CFI_I1=y
|
||||||
|
CONFIG_MTD_CFI_I2=y
|
||||||
|
# CONFIG_MTD_CFI_I4 is not set
|
||||||
|
# CONFIG_MTD_CFI_I8 is not set
|
||||||
|
# CONFIG_MTD_RAM is not set
|
||||||
|
CONFIG_MTD_ROM=y
|
||||||
|
# CONFIG_MTD_ABSENT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Mapping drivers for chip access
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||||
|
CONFIG_MTD_PHYSMAP=y
|
||||||
|
# CONFIG_MTD_PHYSMAP_COMPAT is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Self-contained MTD device drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_DATAFLASH is not set
|
||||||
|
# CONFIG_MTD_M25P80 is not set
|
||||||
|
# CONFIG_MTD_SST25L is not set
|
||||||
|
# CONFIG_MTD_SLRAM is not set
|
||||||
|
# CONFIG_MTD_PHRAM is not set
|
||||||
|
# CONFIG_MTD_MTDRAM is not set
|
||||||
|
# CONFIG_MTD_BLOCK2MTD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disk-On-Chip Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
|
# CONFIG_MTD_DOC2001 is not set
|
||||||
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
|
CONFIG_MTD_NAND=y
|
||||||
|
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||||
|
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||||
|
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||||
|
# CONFIG_MTD_NAND_GPIO is not set
|
||||||
|
CONFIG_MTD_NAND_IDS=y
|
||||||
|
CONFIG_MTD_NAND_DISKONCHIP=m
|
||||||
|
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
|
||||||
|
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
|
||||||
|
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
|
||||||
|
# CONFIG_MTD_NAND_SHARPSL is not set
|
||||||
|
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||||
|
# CONFIG_MTD_ALAUDA is not set
|
||||||
|
# CONFIG_MTD_ONENAND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# LPDDR flash memory drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_LPDDR is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# UBI - Unsorted block images
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_UBI is not set
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
CONFIG_BLK_DEV=y
|
CONFIG_BLK_DEV=y
|
||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
@@ -689,7 +771,7 @@ CONFIG_LIBERTAS=y
|
|||||||
# CONFIG_LIBERTAS_USB is not set
|
# CONFIG_LIBERTAS_USB is not set
|
||||||
# CONFIG_LIBERTAS_SDIO is not set
|
# CONFIG_LIBERTAS_SDIO is not set
|
||||||
CONFIG_LIBERTAS_SPI=m
|
CONFIG_LIBERTAS_SPI=m
|
||||||
CONFIG_LIBERTAS_DEBUG=y
|
# CONFIG_LIBERTAS_DEBUG is not set
|
||||||
# CONFIG_P54_COMMON is not set
|
# CONFIG_P54_COMMON is not set
|
||||||
# CONFIG_RT2X00 is not set
|
# CONFIG_RT2X00 is not set
|
||||||
# CONFIG_WL12XX is not set
|
# CONFIG_WL12XX is not set
|
||||||
@@ -874,7 +956,6 @@ CONFIG_I2C_PXA=y
|
|||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_SPI_DEBUG=y
|
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -898,7 +979,6 @@ CONFIG_SPI_SPIDEV=y
|
|||||||
# CONFIG_PPS is not set
|
# CONFIG_PPS is not set
|
||||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||||
CONFIG_GPIOLIB=y
|
CONFIG_GPIOLIB=y
|
||||||
CONFIG_DEBUG_GPIO=y
|
|
||||||
CONFIG_GPIO_SYSFS=y
|
CONFIG_GPIO_SYSFS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -929,7 +1009,7 @@ CONFIG_GPIO_SYSFS=y
|
|||||||
#
|
#
|
||||||
# CONFIG_W1 is not set
|
# CONFIG_W1 is not set
|
||||||
CONFIG_POWER_SUPPLY=y
|
CONFIG_POWER_SUPPLY=y
|
||||||
CONFIG_POWER_SUPPLY_DEBUG=y
|
# CONFIG_POWER_SUPPLY_DEBUG is not set
|
||||||
CONFIG_PDA_POWER=y
|
CONFIG_PDA_POWER=y
|
||||||
CONFIG_APM_POWER=y
|
CONFIG_APM_POWER=y
|
||||||
# CONFIG_BATTERY_DS2760 is not set
|
# CONFIG_BATTERY_DS2760 is not set
|
||||||
@@ -1074,9 +1154,7 @@ CONFIG_SND_JACK=y
|
|||||||
CONFIG_SND_SUPPORT_OLD_API=y
|
CONFIG_SND_SUPPORT_OLD_API=y
|
||||||
CONFIG_SND_VERBOSE_PROCFS=y
|
CONFIG_SND_VERBOSE_PROCFS=y
|
||||||
CONFIG_SND_VERBOSE_PRINTK=y
|
CONFIG_SND_VERBOSE_PRINTK=y
|
||||||
CONFIG_SND_DEBUG=y
|
# CONFIG_SND_DEBUG is not set
|
||||||
CONFIG_SND_DEBUG_VERBOSE=y
|
|
||||||
CONFIG_SND_PCM_XRUN_DEBUG=y
|
|
||||||
CONFIG_SND_VMASTER=y
|
CONFIG_SND_VMASTER=y
|
||||||
# CONFIG_SND_RAWMIDI_SEQ is not set
|
# CONFIG_SND_RAWMIDI_SEQ is not set
|
||||||
# CONFIG_SND_OPL3_LIB_SEQ is not set
|
# CONFIG_SND_OPL3_LIB_SEQ is not set
|
||||||
@@ -1159,7 +1237,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
|
|||||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||||
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_USB_DEBUG=y
|
# CONFIG_USB_DEBUG is not set
|
||||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1210,7 +1288,7 @@ CONFIG_USB_ACM=m
|
|||||||
# also be needed; see USB_STORAGE Help for more info
|
# also be needed; see USB_STORAGE Help for more info
|
||||||
#
|
#
|
||||||
CONFIG_USB_STORAGE=m
|
CONFIG_USB_STORAGE=m
|
||||||
CONFIG_USB_STORAGE_DEBUG=y
|
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||||
CONFIG_USB_STORAGE_DATAFAB=m
|
CONFIG_USB_STORAGE_DATAFAB=m
|
||||||
CONFIG_USB_STORAGE_FREECOM=m
|
CONFIG_USB_STORAGE_FREECOM=m
|
||||||
CONFIG_USB_STORAGE_ISD200=m
|
CONFIG_USB_STORAGE_ISD200=m
|
||||||
@@ -1266,7 +1344,7 @@ CONFIG_USB_SERIAL_GENERIC=y
|
|||||||
# CONFIG_USB_SERIAL_NAVMAN is not set
|
# CONFIG_USB_SERIAL_NAVMAN is not set
|
||||||
# CONFIG_USB_SERIAL_PL2303 is not set
|
# CONFIG_USB_SERIAL_PL2303 is not set
|
||||||
# CONFIG_USB_SERIAL_OTI6858 is not set
|
# CONFIG_USB_SERIAL_OTI6858 is not set
|
||||||
CONFIG_USB_SERIAL_QUALCOMM=m
|
# CONFIG_USB_SERIAL_QUALCOMM is not set
|
||||||
# CONFIG_USB_SERIAL_SPCP8X5 is not set
|
# CONFIG_USB_SERIAL_SPCP8X5 is not set
|
||||||
# CONFIG_USB_SERIAL_HP4X is not set
|
# CONFIG_USB_SERIAL_HP4X is not set
|
||||||
# CONFIG_USB_SERIAL_SAFE is not set
|
# CONFIG_USB_SERIAL_SAFE is not set
|
||||||
@@ -1305,9 +1383,7 @@ CONFIG_USB_SERIAL_QUALCOMM=m
|
|||||||
# CONFIG_USB_ISIGHTFW is not set
|
# CONFIG_USB_ISIGHTFW is not set
|
||||||
# CONFIG_USB_VST is not set
|
# CONFIG_USB_VST is not set
|
||||||
CONFIG_USB_GADGET=y
|
CONFIG_USB_GADGET=y
|
||||||
# CONFIG_USB_GADGET_DEBUG is not set
|
|
||||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
|
||||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||||
CONFIG_USB_GADGET_SELECTED=y
|
CONFIG_USB_GADGET_SELECTED=y
|
||||||
# CONFIG_USB_GADGET_AT91 is not set
|
# CONFIG_USB_GADGET_AT91 is not set
|
||||||
@@ -1658,64 +1734,14 @@ CONFIG_FRAME_WARN=1024
|
|||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_STRIP_ASM_SYMS is not set
|
# CONFIG_STRIP_ASM_SYMS is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
CONFIG_DEBUG_FS=y
|
# CONFIG_DEBUG_FS is not set
|
||||||
# CONFIG_HEADERS_CHECK is not set
|
# CONFIG_HEADERS_CHECK is not set
|
||||||
CONFIG_DEBUG_KERNEL=y
|
# CONFIG_DEBUG_KERNEL is not set
|
||||||
CONFIG_DEBUG_SHIRQ=y
|
|
||||||
CONFIG_DETECT_SOFTLOCKUP=y
|
|
||||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
|
||||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
|
||||||
CONFIG_SCHED_DEBUG=y
|
|
||||||
CONFIG_SCHEDSTATS=y
|
|
||||||
CONFIG_TIMER_STATS=y
|
|
||||||
CONFIG_DEBUG_OBJECTS=y
|
|
||||||
CONFIG_DEBUG_OBJECTS_SELFTEST=y
|
|
||||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
|
||||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
|
||||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
|
||||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
|
||||||
CONFIG_DEBUG_SLAB=y
|
|
||||||
CONFIG_DEBUG_SLAB_LEAK=y
|
|
||||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
|
||||||
CONFIG_DEBUG_PREEMPT=y
|
|
||||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
|
||||||
# CONFIG_RT_MUTEX_TESTER is not set
|
|
||||||
CONFIG_DEBUG_SPINLOCK=y
|
|
||||||
CONFIG_DEBUG_MUTEXES=y
|
|
||||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
|
||||||
CONFIG_PROVE_LOCKING=y
|
|
||||||
CONFIG_LOCKDEP=y
|
|
||||||
CONFIG_LOCK_STAT=y
|
|
||||||
CONFIG_DEBUG_LOCKDEP=y
|
|
||||||
CONFIG_TRACE_IRQFLAGS=y
|
|
||||||
CONFIG_DEBUG_SPINLOCK_SLEEP=y
|
|
||||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
|
||||||
CONFIG_STACKTRACE=y
|
|
||||||
# CONFIG_DEBUG_KOBJECT is not set
|
|
||||||
CONFIG_DEBUG_BUGVERBOSE=y
|
CONFIG_DEBUG_BUGVERBOSE=y
|
||||||
CONFIG_DEBUG_INFO=y
|
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||||
# CONFIG_DEBUG_VM is not set
|
|
||||||
CONFIG_DEBUG_WRITECOUNT=y
|
|
||||||
CONFIG_DEBUG_MEMORY_INIT=y
|
|
||||||
CONFIG_DEBUG_LIST=y
|
|
||||||
CONFIG_DEBUG_SG=y
|
|
||||||
CONFIG_DEBUG_NOTIFIERS=y
|
|
||||||
CONFIG_DEBUG_CREDENTIALS=y
|
|
||||||
CONFIG_BOOT_PRINTK_DELAY=y
|
|
||||||
# CONFIG_RCU_TORTURE_TEST is not set
|
|
||||||
CONFIG_RCU_CPU_STALL_DETECTOR=y
|
CONFIG_RCU_CPU_STALL_DETECTOR=y
|
||||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
|
||||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
|
||||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
|
||||||
# CONFIG_FAULT_INJECTION is not set
|
|
||||||
# CONFIG_LATENCYTOP is not set
|
# CONFIG_LATENCYTOP is not set
|
||||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||||
CONFIG_DEBUG_PAGEALLOC=y
|
|
||||||
CONFIG_WANT_PAGE_DEBUG_FLAGS=y
|
|
||||||
CONFIG_PAGE_POISONING=y
|
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
@@ -1732,17 +1758,10 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
CONFIG_DYNAMIC_DEBUG=y
|
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
|
||||||
CONFIG_ARM_UNWIND=y
|
CONFIG_ARM_UNWIND=y
|
||||||
CONFIG_DEBUG_USER=y
|
# CONFIG_DEBUG_USER is not set
|
||||||
CONFIG_DEBUG_ERRORS=y
|
|
||||||
CONFIG_DEBUG_STACK_USAGE=y
|
|
||||||
CONFIG_DEBUG_LL=y
|
|
||||||
CONFIG_EARLY_PRINTK=y
|
|
||||||
# CONFIG_DEBUG_ICEDCC is not set
|
|
||||||
# CONFIG_OC_ETM is not set
|
# CONFIG_OC_ETM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1872,7 +1891,8 @@ CONFIG_ZLIB_INFLATE=y
|
|||||||
CONFIG_LZO_COMPRESS=y
|
CONFIG_LZO_COMPRESS=y
|
||||||
CONFIG_LZO_DECOMPRESS=y
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_DECOMPRESS_GZIP=y
|
CONFIG_DECOMPRESS_GZIP=y
|
||||||
CONFIG_DECOMPRESS_LZMA=y
|
CONFIG_REED_SOLOMON=m
|
||||||
|
CONFIG_REED_SOLOMON_DEC16=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
|||||||
@@ -43,3 +43,9 @@ config G900_POWER_BUTTON
|
|||||||
depends on MACH_G900
|
depends on MACH_G900
|
||||||
---help---
|
---help---
|
||||||
This is a POWER Buttons driver for G900
|
This is a POWER Buttons driver for G900
|
||||||
|
|
||||||
|
config G900_FLASH
|
||||||
|
tristate "G900 mDOC G4 flash Experemental"
|
||||||
|
depends on MACH_G900
|
||||||
|
---help---
|
||||||
|
This is a mDOC flash driver for G900
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ obj-$(CONFIG_G900_BUTTON) += g900_buttons.o
|
|||||||
obj-$(CONFIG_G900_POWER_BUTTON) += g900_pwr_btn.o
|
obj-$(CONFIG_G900_POWER_BUTTON) += g900_pwr_btn.o
|
||||||
obj-$(CONFIG_G900_LEDS) += g900_leds.o
|
obj-$(CONFIG_G900_LEDS) += g900_leds.o
|
||||||
obj-$(CONFIG_G900_PHONE) += g900_msm6280.o
|
obj-$(CONFIG_G900_PHONE) += g900_msm6280.o
|
||||||
|
#obj-$(CONFIG_G900_FLASH) += ttfs/
|
||||||
|
obj-m += ttfs/
|
||||||
|
|||||||
@@ -28,10 +28,6 @@
|
|||||||
|
|
||||||
#include <linux/gpio_keys.h>
|
#include <linux/gpio_keys.h>
|
||||||
#include <linux/pda_power.h>
|
#include <linux/pda_power.h>
|
||||||
//#include <linux/mtd/mtd.h>
|
|
||||||
//#include <linux/mtd/map.h>
|
|
||||||
//#include <linux/mtd/partitions.h>
|
|
||||||
//#include <linux/mtd/physmap.h>
|
|
||||||
|
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
@@ -153,12 +149,6 @@ d- = USBC_N(C 20)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Leds
|
|
||||||
G900_CFG_OUT(GPIO16_LED_nVibra, AF0, DRIVE_HIGH), // or should be GPIO16_PWM0_OUT ?
|
|
||||||
G900_CFG_OUT(GPIO37_LED_nFlash, AF0, DRIVE_HIGH), // it can't be GPIO37_USB_P2_8 ?
|
|
||||||
G900_CFG_OUT(GPIO85_LED_nKeyboard, AF0, DRIVE_HIGH),
|
|
||||||
G900_CFG_OUT(GPIO86_LED_nKeypad, AF0, DRIVE_HIGH),
|
|
||||||
*/
|
|
||||||
/* Lcd backlight */
|
/* Lcd backlight */
|
||||||
GPIO17_PWM1_OUT,
|
GPIO17_PWM1_OUT,
|
||||||
|
|
||||||
@@ -497,7 +487,7 @@ static void __init spi_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* DEBUG */
|
/* +++++++++++++++++++++++++++++++++++++++++DEBUG ++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
static void __init debuging(void)
|
static void __init debuging(void)
|
||||||
{
|
{
|
||||||
@@ -505,6 +495,18 @@ static void __init debuging(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NOR flash
|
||||||
|
*/
|
||||||
|
#include <linux/mtd/mtd.h>
|
||||||
|
#include <linux/mtd/map.h>
|
||||||
|
#include <linux/mtd/partitions.h>
|
||||||
|
#include <linux/mtd/physmap.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!DEBUG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -582,6 +584,8 @@ static struct platform_device g900_pwr_button = {
|
|||||||
.name = "g900-power-button",
|
.name = "g900-power-button",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static struct platform_device g900_sound = {
|
static struct platform_device g900_sound = {
|
||||||
.name = "g900-wm9714",
|
.name = "g900-wm9714",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
@@ -617,6 +621,7 @@ static struct platform_device *g900_devices[] __initdata = {
|
|||||||
&g900_ts,
|
&g900_ts,
|
||||||
&pxa2xx_pcm,
|
&pxa2xx_pcm,
|
||||||
&g900_sound,
|
&g900_sound,
|
||||||
|
//&g900_flash,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init g900_map_io(void)
|
static void __init g900_map_io(void)
|
||||||
@@ -637,12 +642,27 @@ static void fix_msc(void)
|
|||||||
* Localbus setup:
|
* Localbus setup:
|
||||||
* CS0: ;
|
* CS0: ;
|
||||||
* CS1: ;
|
* CS1: ;
|
||||||
|
* CS2: ;
|
||||||
|
* CS3: -;
|
||||||
|
* CS4: ???.
|
||||||
* CS5: gsm.
|
* CS5: gsm.
|
||||||
*/
|
*/
|
||||||
MSC0 = 0x7ff09888;
|
MSC0 = 0x7ff09888;
|
||||||
MSC1 = 0x000089c4;
|
MSC1 = 0x000089c4;
|
||||||
MSC2 = 0x5ff95ff9;
|
MSC2 = 0x5ff95ff9;
|
||||||
MDREFR = 0x2013a01e;
|
MDREFR = 0x2013a01e;
|
||||||
|
|
||||||
|
/*WinCe
|
||||||
|
MDCNFG : 0xa80009d7 = 10101000 00000000 00001001 11010111
|
||||||
|
MDREFR : 0x2013a01e = 00100000 00010011 10100000 00011110
|
||||||
|
MSC0 : 0x7ff09888 = 01111111 11110000 10011000 10001000
|
||||||
|
MSC1 : 0x000089c4 = 00000000 00000000 10001001 11000100
|
||||||
|
MSC2 : 0x5ff95ff9 = 01011111 11111001 01011111 11111001
|
||||||
|
MECR : 0x00000001 = 00000000 00000000 00000000 00000001
|
||||||
|
33222222 22221111 11111100 00000000
|
||||||
|
10987654 32109876 54321098 76543210
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -68,13 +68,13 @@ static struct gpio_led gpio_leds[] = {
|
|||||||
.gpio = GPIO16_LED_nVibra,
|
.gpio = GPIO16_LED_nVibra,
|
||||||
.name = "vibrator",
|
.name = "vibrator",
|
||||||
.active_low = 0,
|
.active_low = 0,
|
||||||
.max_timeout = 4000,
|
.max_timeout = 15000,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.gpio = GPIO37_LED_nFlash,
|
.gpio = GPIO37_LED_nFlash,
|
||||||
.name = "flash",
|
.name = "flash",
|
||||||
.active_low = 0,
|
.active_low = 0,
|
||||||
.max_timeout = 4000,
|
.max_timeout = 15000,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
static struct timed_gpio_platform_data g900_timed_gpio_data = {
|
static struct timed_gpio_platform_data g900_timed_gpio_data = {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* drivers/input/touchscreen/ak4183.c
|
* drivers/input/touchscreen/ak4183.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2010 Angell
|
* Copyright (c) 2010 SashaG <...>
|
||||||
* Angell Fear <angell@angellfear.ru>
|
* Copyright (c) 2010 Fear <angell@angellfear.ru>
|
||||||
*
|
*
|
||||||
* Using code from:
|
* Using code from:
|
||||||
* tsc2007.c
|
* tsc2007.c
|
||||||
@@ -28,13 +28,12 @@
|
|||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/i2c.h>
|
#include <linux/i2c.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
#include <linux/i2c/ak4183.h>
|
#include <linux/i2c/ak4183.h>
|
||||||
|
|
||||||
#define TS_POLL_DELAY 10 /* us delay between samples */
|
#define TS_POLL_DELAY 10 /* us delay between samples */
|
||||||
#define TS_POLL_PERIOD 100 /* us delay between samples */
|
#define TS_POLL_PERIOD 1000 /* us delay between samples */
|
||||||
#define AK4183_12BIT 1 /* 12 bit mode */
|
#define AK4183_12BIT 1 /*12 bit resolution*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define devdbg(x...) printk(x)
|
#define devdbg(x...) printk(x)
|
||||||
|
|
||||||
@@ -44,7 +43,7 @@
|
|||||||
#define AK4183_BIT_A1 (0x1 << 5)
|
#define AK4183_BIT_A1 (0x1 << 5)
|
||||||
#define AK4183_BIT_A0 (0x1 << 4)
|
#define AK4183_BIT_A0 (0x1 << 4)
|
||||||
#define AK4183_BIT_PD0 (0x1 << 2)
|
#define AK4183_BIT_PD0 (0x1 << 2)
|
||||||
#define AK4183_BIT_MODE (0x1 << 1)
|
#define AK4183_BIT_R8BIT (0x1 << 1)
|
||||||
|
|
||||||
|
|
||||||
#define MAX_12BIT ((1 << 12) - 1)
|
#define MAX_12BIT ((1 << 12) - 1)
|
||||||
@@ -52,10 +51,21 @@
|
|||||||
#if AK4183_12BIT
|
#if AK4183_12BIT
|
||||||
#define ADC_ON_12BIT 0
|
#define ADC_ON_12BIT 0
|
||||||
#else
|
#else
|
||||||
#define ADC_ON_12BIT AK4183_BIT_MODE
|
#define ADC_ON_12BIT AK4183_BIT_R8BIT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
BIT Name Function
|
||||||
|
7 S Start Bit. “1” Accelerate and Axis Command, “0”: Sleep mode Command
|
||||||
|
6-4 A2-A0 Channel Selection Bits. Analog inputs to the A/D converter and the activated driver switches are
|
||||||
|
selected. Please see the following table for the detail.
|
||||||
|
3 X1 Don’t care
|
||||||
|
2 PD0 Power down bit (refer to power-down control)
|
||||||
|
1 MODE Resolution of A/D converter. “0”: 12 bit output “1”: 8 bit output
|
||||||
|
0 X2 Don’t care
|
||||||
|
*/
|
||||||
|
|
||||||
#define READ_X ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A2 )
|
#define READ_X ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A2 )
|
||||||
#define READ_Y ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A0 | AK4183_BIT_A2 )
|
#define READ_Y ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A0 | AK4183_BIT_A2 )
|
||||||
#define READ_Z1 ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A1 | AK4183_BIT_A2 )
|
#define READ_Z1 ( ADC_ON_12BIT | AK4183_BIT_S | AK4183_BIT_A1 | AK4183_BIT_A2 )
|
||||||
@@ -68,25 +78,38 @@
|
|||||||
#define PWRDOWN ( AK4183_BIT_S | AK4183_BIT_PD0 )
|
#define PWRDOWN ( AK4183_BIT_S | AK4183_BIT_PD0 )
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
BIT Name Function
|
|
||||||
7 S Start Bit. <20>1<EFBFBD> Accelerate and Axis Command, <20>0<EFBFBD>: Sleep mode Command
|
|
||||||
6-4 A2-A0 Channel Selection Bits. Analog inputs to the A/D converter and the activated driver switches are
|
|
||||||
selected. Please see the following table for the detail.
|
|
||||||
3 X1 Don<6F>t care
|
|
||||||
2 PD0 Power down bit (refer to power-down control)
|
|
||||||
1 MODE Resolution of A/D converter. <20>0<EFBFBD>: 12 bit output <20>1<EFBFBD>: 8 bit output
|
|
||||||
0 X2 Don<6F>t care
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
#define samples 200
|
||||||
|
////touch calib test data
|
||||||
|
#define tmc_ax -11
|
||||||
|
//-0,05705; *200
|
||||||
|
#define tmc_bx 566382
|
||||||
|
//2831,91107; *200
|
||||||
|
#define tmc_x0 450
|
||||||
|
//450;
|
||||||
|
#define tmc_x10 476382
|
||||||
|
//bx-x0
|
||||||
|
#define tmc_ax_m_x0 -5135
|
||||||
|
//ax*x0
|
||||||
|
#define tmc_ay -11
|
||||||
|
//-0,05579;
|
||||||
|
#define tmc_by 593736
|
||||||
|
//2968,68213 *200
|
||||||
|
#define tmc_y0 440
|
||||||
|
//440;
|
||||||
|
#define tmc_y10 505736
|
||||||
|
//bx-x0
|
||||||
|
#define tmc_ay_m_y0 -4910
|
||||||
|
//ay*y0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct ts_event {
|
struct ts_event {
|
||||||
u16 x;
|
u16 x;
|
||||||
u16 y;
|
u16 y;
|
||||||
u16 z1, z2;
|
u16 z1, z2;
|
||||||
u32 prs;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ak4183 {
|
struct ak4183 {
|
||||||
@@ -98,7 +121,6 @@ struct ak4183 {
|
|||||||
|
|
||||||
u16 model;
|
u16 model;
|
||||||
u16 x_plate_ohms;
|
u16 x_plate_ohms;
|
||||||
u16 y_plate_ohms;
|
|
||||||
|
|
||||||
bool pendown;
|
bool pendown;
|
||||||
int irq;
|
int irq;
|
||||||
@@ -108,29 +130,28 @@ struct ak4183 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
0 4000 left 32 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 419
|
0 4000 left 32 право 419
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> X=0x0150 Y=0x0ee0 P=0x0106
|
верх лево X=0x0150 Y=0x0ee0 P=0x0106
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> X=0x0e50 Y=0x0ee0 P=0x0104
|
верх право X=0x0e50 Y=0x0ee0 P=0x0104
|
||||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> X=0x0110 Y=0x0090 P=0x00ea
|
низ лево X=0x0110 Y=0x0090 P=0x00ea
|
||||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> X=0x0dc0 Y=0x0080 P=0x00ec
|
низ право X=0x0dc0 Y=0x0080 P=0x00ec
|
||||||
|
|
||||||
wince
|
wince
|
||||||
CalibrationData 2174,1990 563,3553 700,465 3463,506 3440,3547
|
CalibrationData 2174,1990 563,3553 700,465 3463,506 3440,3547
|
||||||
wince hex
|
wince hex
|
||||||
CalibrationData 0x87E,0x7C6 0x233,0xDE1 0x2BC,0x1D1 0xD87,0x1FA 0xD70,0xDDB
|
CalibrationData 0x87E,0x7C6 0x233,0xDE1 0x2BC,0x1D1 0xD87,0x1FA 0xD70,0xDDB
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
середина, верх лево,низ лево,низ право, верх право
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int abs_x[3] = {0x0110, 0x0dc0, 1};
|
static int abs_x[3] = {0x0110, 0x0dc0, 20};
|
||||||
module_param_array(abs_x, int, NULL, 0);
|
module_param_array(abs_x, int, NULL, 0);
|
||||||
MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz");
|
MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz");
|
||||||
|
|
||||||
static int abs_y[3] = {0x0ee0, 0x0080, 1};
|
static int abs_y[3] = {0x0ee0, 0x0080, 20};
|
||||||
module_param_array(abs_y, int, NULL, 0);
|
module_param_array(abs_y, int, NULL, 0);
|
||||||
MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz");
|
MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz");
|
||||||
|
|
||||||
|
static int abs_p[3] = {0, 0xfff, 2};
|
||||||
static int abs_p[3] = {0, MAX_12BIT, 0};
|
|
||||||
module_param_array(abs_p, int, NULL, 0);
|
module_param_array(abs_p, int, NULL, 0);
|
||||||
MODULE_PARM_DESC(abs_p, "Touchscreen absolute Pressure min, max, fuzz");
|
MODULE_PARM_DESC(abs_p, "Touchscreen absolute Pressure min, max, fuzz");
|
||||||
|
|
||||||
@@ -151,79 +172,48 @@ static inline int ak4183_xfer(struct ak4183 *tsc, u8 cmd)
|
|||||||
* Where DataLow has [D11-D4], DataHigh has [D3-D0 << 4 | Dummy 4bit].
|
* Where DataLow has [D11-D4], DataHigh has [D3-D0 << 4 | Dummy 4bit].
|
||||||
*/
|
*/
|
||||||
val = swab16(data) >> 4;
|
val = swab16(data) >> 4;
|
||||||
|
//dev_dbg(&tsc->client->dev, "data: 0x%x, val: 0x%x\n", data, val);
|
||||||
devdbg("data: 0x%x, val: 0x%x\n", data, val);
|
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ak4183_read_values(struct ak4183 *tsc, struct ts_event *tc)
|
static u32 ak4183_read_values(struct ak4183 *tsc, struct ts_event *tc)
|
||||||
{
|
{
|
||||||
|
u32 rt = 0;
|
||||||
|
s32 rtt = 0;
|
||||||
/* y- still on; turn on only y+ (and ADC) */
|
//s32 x,y;
|
||||||
tc->y = ak4183_xfer(tsc, READ_Y);
|
tc->x = ak4183_xfer(tsc, READ_X);//x
|
||||||
/* turn y- off, x+ on, then leave in lowpower */
|
tc->y = ak4183_xfer(tsc, READ_Y);//y
|
||||||
tc->x = ak4183_xfer(tsc, READ_X);
|
//printk(KERN_INFO "AK4183: %5i;%5i;",
|
||||||
|
// tc->x,tc->y);
|
||||||
/* turn y+ off, x- on; we'll use formula #1 */
|
tc->z1 = ak4183_xfer(tsc,READ_Z1);//z1
|
||||||
tc->z1 = ak4183_xfer(tsc, READ_Z1);
|
tc->z2 = ak4183_xfer(tsc,READ_Z2);//z2
|
||||||
tc->z2 = ak4183_xfer(tsc, READ_Z2);
|
|
||||||
|
|
||||||
/** calcilate pressure resistance **/
|
|
||||||
|
|
||||||
tc->prs = 0;
|
|
||||||
|
|
||||||
/* range filtering */
|
|
||||||
if (tc->x == MAX_12BIT)
|
|
||||||
tc->x = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* compute touch pressure resistance using equation #1 */
|
|
||||||
#if 1
|
|
||||||
if (likely(tc->x && tc->z1)) {
|
if (likely(tc->x && tc->z1)) {
|
||||||
|
/* compute touch pressure resistance using equation #1 */
|
||||||
|
rt = tc->x*(tc->z2-tc->z1)/(tc->z1);
|
||||||
//tc->prs = tc->z2 - tc->z1;
|
if (rt<6350){ // min toch
|
||||||
tc->prs = (tc->z2 / tc->z1 - 1);
|
rtt=rt-5000;//for func ; 0-max touch
|
||||||
tc->prs *= (tc->x/256);
|
if (rt<5000){rt=5000;} // max
|
||||||
tc->prs *= tsc->x_plate_ohms;
|
rt=(6350-rt)*3;//0xFFF max
|
||||||
tc->prs /= tc->z1;
|
if (rt>=0xFFF) {rt=0xFFE;}//max
|
||||||
//tc->prs = (tc->prs + 2047) >> 12;
|
// printk(KERN_INFO "AK4183: %5u;%5u;%5u;%5u;%5u;",
|
||||||
|
// tc->x,tc->y,tc->z1,tc->z2,rtt);
|
||||||
}else
|
}else{
|
||||||
tc->prs = 0;
|
rt=0;//no touch
|
||||||
#else
|
}
|
||||||
if(likely(tc->x && tc->z1)) {
|
|
||||||
//tc->prs = (tsc->x_plate_ohms * tc->x * (tc->z2 - tc->z1) ) / (4096 * tc->z1); // 12 <20><><EFBFBD>
|
|
||||||
tc->prs = tsc->x_plate_ohms;
|
|
||||||
tc->prs *= tc->x;
|
|
||||||
tc->prs /= 4096;
|
|
||||||
tc->prs *= ((4096/tc->z1) - 1);
|
|
||||||
tc->prs -= tsc->y_plate_ohms * (1 - (tc->y / 4096));
|
|
||||||
}
|
}
|
||||||
#endif
|
//todo : need pwrdown
|
||||||
|
if (rt){//*200
|
||||||
/*
|
tc->x=(u32)(((s32)(tc->x)*tmc_x10+rtt*tmc_ax_m_x0)/(tmc_x10+tmc_ax*rtt));
|
||||||
Rtouch = (Rxplate) * (Xposition/4096) * [(Z2/Z1) <20> 1]
|
tc->y=(u32)(((s32)(tc->y)*tmc_y10+rtt*tmc_ay_m_y0)/(tmc_y10+tmc_ay*rtt));
|
||||||
Rtouch = (Rxplate*Xposition/4096)*[(4096/Z1) <20> 1] <20> Ryplate*[1 <20> (Yposition/4096)]
|
}
|
||||||
*/
|
return rt;
|
||||||
|
|
||||||
|
|
||||||
printk(KERN_INFO "ts: calc X = 0x%04x Y = 0x%04x Z1 = 0x%04x, Z2 = 0x%04x, PRS = 0x%04x\n", tc->x, tc->y, tc->z1, tc->z2, tc->prs);
|
|
||||||
|
|
||||||
|
|
||||||
/* Prepare for next touch reading - power down ADC, enable PENIRQ */
|
|
||||||
//ak4183_xfer(tsc, PWRDOWN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void ak4183_send_up_event(struct ak4183 *tsc)
|
static void ak4183_send_up_event(struct ak4183 *tsc)
|
||||||
{
|
{
|
||||||
struct input_dev *input = tsc->input;
|
struct input_dev *input = tsc->input;
|
||||||
|
|
||||||
devdbg("ak4183: send_up_event\n");
|
dev_dbg(&tsc->client->dev, "UP\n");
|
||||||
|
|
||||||
input_report_key(input, BTN_TOUCH, 0);
|
input_report_key(input, BTN_TOUCH, 0);
|
||||||
input_report_abs(input, ABS_PRESSURE, 0);
|
input_report_abs(input, ABS_PRESSURE, 0);
|
||||||
@@ -232,8 +222,11 @@ static void ak4183_send_up_event(struct ak4183 *tsc)
|
|||||||
|
|
||||||
static void ak4183_work(struct work_struct *work)
|
static void ak4183_work(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct ak4183 *ts = container_of(to_delayed_work(work), struct ak4183, work);
|
struct ak4183 *ts =
|
||||||
|
container_of(to_delayed_work(work), struct ak4183, work);
|
||||||
struct ts_event tc;
|
struct ts_event tc;
|
||||||
|
u32 rt;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NOTE: We can't rely on the pressure to determine the pen down
|
* NOTE: We can't rely on the pressure to determine the pen down
|
||||||
* state, even though this controller has a pressure sensor.
|
* state, even though this controller has a pressure sensor.
|
||||||
@@ -242,52 +235,47 @@ static void ak4183_work(struct work_struct *work)
|
|||||||
* expected value.
|
* expected value.
|
||||||
*
|
*
|
||||||
* The only safe way to check for the pen up condition is in the
|
* The only safe way to check for the pen up condition is in the
|
||||||
* work function by reading the pen signal state (it's a GPIO
|
* work function by reading he pen signal state (it's a GPIO
|
||||||
* and IRQ). Unfortunately such callback is not always available,
|
* and IRQ). Unfortunately such callback is not always available,
|
||||||
* in that case we have rely on the pressure anyway.
|
* in that case we have rely on the pressure anyway.
|
||||||
*/
|
*/
|
||||||
if (ts->get_pendown_state) {
|
if (ts->get_pendown_state) {
|
||||||
if (unlikely(!ts->get_pendown_state())) {
|
if (unlikely(!ts->get_pendown_state())) {
|
||||||
devdbg("ak4183: pendown_state = UP\n");
|
|
||||||
ak4183_send_up_event(ts);
|
ak4183_send_up_event(ts);
|
||||||
ts->pendown = false;
|
ts->pendown = false;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
devdbg("ak4183: pen is still down\n");
|
//dev_dbg(&ts->client->dev, "pen is still down\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
ak4183_read_values(ts, &tc);
|
rt = ak4183_read_values(ts, &tc);
|
||||||
|
|
||||||
if (tc.prs > MAX_12BIT) {
|
if (rt > MAX_12BIT) {
|
||||||
/*
|
/*
|
||||||
* Sample found inconsistent by debouncing or pressure is
|
* Sample found inconsistent by debouncing or pressure is
|
||||||
* beyond the maximum. Don't report it to user space,
|
* beyond the maximum. Don't report it to user space,
|
||||||
* repeat at least once more the measurement.
|
* repeat at least once more the measurement.
|
||||||
*/
|
*/
|
||||||
devdbg("ak4183: ignored pressure %d\n", tc.prs);
|
dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt);
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tc.prs) {
|
if (rt) {
|
||||||
struct input_dev *input = ts->input;
|
struct input_dev *input = ts->input;
|
||||||
|
|
||||||
if (!ts->pendown) {
|
if (!ts->pendown) {
|
||||||
devdbg("ak4183: DOWN\n");
|
dev_dbg(&ts->client->dev, "DOWN\n");
|
||||||
|
|
||||||
input_report_key(input, BTN_TOUCH, 1);
|
input_report_key(input, BTN_TOUCH, 1);
|
||||||
ts->pendown = true;
|
ts->pendown = true;
|
||||||
}
|
}
|
||||||
|
devdbg("ak4183 x = 0x%4x,y = 0x%4x,rt = 0x%4x", tc.x, tc.y, rt);
|
||||||
input_report_abs(input, ABS_X, tc.x);
|
input_report_abs(input, ABS_X, tc.x);
|
||||||
input_report_abs(input, ABS_Y, tc.y);
|
input_report_abs(input, ABS_Y, tc.y);
|
||||||
input_report_abs(input, ABS_PRESSURE, tc.prs);
|
input_report_abs(input, ABS_PRESSURE, rt);
|
||||||
|
|
||||||
input_sync(input);
|
input_sync(input);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else if (!ts->get_pendown_state && ts->pendown) {
|
} else if (!ts->get_pendown_state && ts->pendown) {
|
||||||
/*
|
/*
|
||||||
* We don't have callback to check pendown state, so we
|
* We don't have callback to check pendown state, so we
|
||||||
@@ -390,12 +378,9 @@ static int __devinit ak4183_probe(struct i2c_client *client,
|
|||||||
input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
|
input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
|
||||||
input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
|
input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
|
||||||
|
|
||||||
// input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0);
|
|
||||||
input_set_abs_params(input_dev, ABS_X, abs_x[0], abs_x[1], abs_x[2], 0);
|
input_set_abs_params(input_dev, ABS_X, abs_x[0], abs_x[1], abs_x[2], 0);
|
||||||
// input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0);
|
|
||||||
input_set_abs_params(input_dev, ABS_Y, abs_y[0], abs_y[1], abs_y[2], 0);
|
input_set_abs_params(input_dev, ABS_Y, abs_y[0], abs_y[1], abs_y[2], 0);
|
||||||
input_set_abs_params(input_dev, ABS_PRESSURE, abs_p[0], abs_p[1], abs_p[2], 0);
|
input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0);
|
||||||
// input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0);
|
|
||||||
|
|
||||||
if (pdata->init_platform_hw)
|
if (pdata->init_platform_hw)
|
||||||
pdata->init_platform_hw();
|
pdata->init_platform_hw();
|
||||||
|
|||||||
@@ -37,15 +37,24 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/fb.h>
|
#include <asm/fb.h>
|
||||||
|
|
||||||
|
#define VIDEOMEMPAGE (1 << PAGE_SHIFT)
|
||||||
|
|
||||||
#define FB_WIDTH 480
|
#define FB_WIDTH 480
|
||||||
#define FB_HEIGHT 800
|
#define FB_HEIGHT 800
|
||||||
#define VIDEOMEMSTART 0x0a000020 /* vram variable value from HaRET */
|
#define VIDEOMEMSTART 0x0a000020 /* vram variable value from HaRET */
|
||||||
#define FB_NUMBER_OF_BUFFERS 2
|
#define FB_NUMBER_OF_BUFFERS 3
|
||||||
#define FB_BYTES_PER_PIXEL 2
|
#define FB_BYTES_PER_PIXEL 2
|
||||||
#define VIDEOMEMSIZE FB_WIDTH * FB_HEIGHT * FB_BYTES_PER_PIXEL * FB_NUMBER_OF_BUFFERS
|
#define VIDEOMEMBUFSIZE FB_WIDTH * FB_HEIGHT * FB_BYTES_PER_PIXEL
|
||||||
|
#define VIDEOMEMSIZE VIDEOMEMBUFSIZE * FB_NUMBER_OF_BUFFERS + VIDEOMEMPAGE
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
FB_WIDTH * FB_HEIGHT * FB_BYTES_PER_PIXEL= 0xBB800
|
||||||
|
*2 = 0x177000
|
||||||
|
|
||||||
|
*/
|
||||||
|
int mmap_flag = 0;
|
||||||
|
|
||||||
static void *videomemory;
|
static void *videomemory;
|
||||||
static u_long videomemorysize = VIDEOMEMSIZE * FB_NUMBER_OF_BUFFERS;
|
static u_long videomemorysize = VIDEOMEMSIZE * FB_NUMBER_OF_BUFFERS;
|
||||||
module_param(videomemorysize, ulong, 0);
|
module_param(videomemorysize, ulong, 0);
|
||||||
@@ -61,7 +70,7 @@ static struct fb_var_screeninfo g900fb_default __initdata = {
|
|||||||
.xres = FB_WIDTH,
|
.xres = FB_WIDTH,
|
||||||
.yres = FB_HEIGHT,
|
.yres = FB_HEIGHT,
|
||||||
.xres_virtual = FB_WIDTH,
|
.xres_virtual = FB_WIDTH,
|
||||||
.yres_virtual = FB_HEIGHT * FB_NUMBER_OF_BUFFERS,
|
.yres_virtual = FB_HEIGHT * FB_NUMBER_OF_BUFFERS+100,
|
||||||
.bits_per_pixel = 16,
|
.bits_per_pixel = 16,
|
||||||
.red = { 11, 5, 0 },
|
.red = { 11, 5, 0 },
|
||||||
.green = { 5, 6, 0 },
|
.green = { 5, 6, 0 },
|
||||||
@@ -100,92 +109,89 @@ static void g900fb_imageblit(struct fb_info *info, const struct fb_image *image)
|
|||||||
|
|
||||||
static void g900fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
|
static void g900fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
|
||||||
{
|
{
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* Метод ускорения для заполнения прямоугольника линиями пикселей */
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* похоже вообще не используеться */
|
||||||
cfb_fillrect(info,rect);
|
cfb_fillrect(info,rect);
|
||||||
|
|
||||||
};
|
};
|
||||||
static void g900fb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
|
static void g900fb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
|
||||||
{
|
{
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* Метод ускорения копирования одной прямоугольной области в другую */
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* похоже вообще не используеться */
|
||||||
cfb_copyarea(info,region);
|
cfb_copyarea(info,region);
|
||||||
};
|
};
|
||||||
static void g900fb_imageblit(struct fb_info *info, const struct fb_image *image)
|
static void g900fb_imageblit(struct fb_info *info, const struct fb_image *image)
|
||||||
{
|
{
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* Метод ускорения рисования на экране картинки */
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> !!! */
|
/* Без этого даже не отображаеться консоль !!! */
|
||||||
cfb_imageblit(info,image);
|
cfb_imageblit(info,image);
|
||||||
/*
|
|
||||||
printk("FB: g900fb_imageblit\n");
|
|
||||||
printk("FB: smem_start 0x%08x,screen_base 0x%08x\n",info->fix.smem_start, info->screen_base);
|
|
||||||
printk("FB: offset x:0x%08x, y:0x%08x\n",info->var.xoffset,info->var.yoffset);
|
|
||||||
printk("FB: xres x:0x%08x, y:0x%08x\n",info->var.xres, info->var.yres);
|
|
||||||
|
|
||||||
printk("FB: image dx:0x%08x, dy:0x%08x, w:0x%08x, h:0x%08x\n",
|
|
||||||
image->dx, image->dy,image->width, image->height);
|
|
||||||
//*/
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
static int g900fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
static int g900fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
||||||
{
|
{
|
||||||
|
|
||||||
//vma->vm_mm->mmap_base = 0x0a000020;
|
|
||||||
//vma->vm_start = 0x0a000020;
|
|
||||||
|
|
||||||
|
|
||||||
unsigned long off;
|
unsigned long off;
|
||||||
unsigned long start;
|
unsigned long start;
|
||||||
u32 len;
|
u32 len;
|
||||||
|
|
||||||
|
mmap_flag = 1;
|
||||||
|
|
||||||
|
off = vma->vm_pgoff << PAGE_SHIFT;
|
||||||
|
|
||||||
|
//printk("FB: +g900fb_mmap: 0x%08x\n",off);
|
||||||
|
|
||||||
|
/*
|
||||||
start = info->fix.smem_start;
|
start = info->fix.smem_start;
|
||||||
len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.smem_len);
|
len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.smem_len);
|
||||||
if (off >= len) {
|
*/
|
||||||
//memory mapped io
|
#define fix_video_mem_page (VIDEOMEMBUFSIZE + VIDEOMEMPAGE - 0x20)
|
||||||
off -= len;
|
|
||||||
if (info->var.accel_flags) {
|
start = info->fix.smem_start + fix_video_mem_page;
|
||||||
mutex_unlock(&info->mm_lock);
|
|
||||||
return -EINVAL;
|
len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.smem_len + VIDEOMEMPAGE);
|
||||||
}
|
|
||||||
start = info->fix.mmio_start;
|
|
||||||
len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.mmio_len);
|
|
||||||
}
|
|
||||||
|
|
||||||
start &= PAGE_MASK;
|
start &= PAGE_MASK;
|
||||||
if ((vma->vm_end - vma->vm_start + off) > len)
|
if ((vma->vm_end - vma->vm_start + off) > len)
|
||||||
|
{
|
||||||
|
//printk("FB: -g900fb_mmap: offset > len");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
off += start;
|
off += start;
|
||||||
vma->vm_pgoff = off >> PAGE_SHIFT;
|
vma->vm_pgoff = off >> PAGE_SHIFT;
|
||||||
vma->vm_flags |= VM_IO | VM_RESERVED;
|
vma->vm_flags |= VM_IO | VM_RESERVED;
|
||||||
vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
|
vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
|
||||||
if (remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT,
|
|
||||||
|
//printk("FB: -g900fb_mmap: start = 0x%08x, len = 0x%08x, pgoff = 0x%08x, prot = 0x%08x, vm_start = 0x%08x, vm_end = 0x%08x\n", start, len, vma->vm_pgoff, vma->vm_page_prot, vma->vm_start, vma->vm_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
FB: fb->fb.screen_base=0xd5000020
|
||||||
|
FB: -g900fb_mmap: start = 0x0a0bc000, len = 0x00179000, pgoff = 0x0000a0bc, prot = 0x00000387, vm_start = 0x44ea4000, vm_end = 0x4501b000
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
|
||||||
vma->vm_end - vma->vm_start, vma->vm_page_prot))
|
vma->vm_end - vma->vm_start, vma->vm_page_prot))
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
|
|
||||||
//return 0;
|
|
||||||
printk("FB: +vma mmap_base: 0x%08x,vm_start: 0x%08x,vm_end: 0x%08x, vm_pgoff: 0x%08x\n",
|
|
||||||
vma->vm_mm->mmap_base,vma->vm_start,vma->vm_end,vma->vm_pgoff);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
|
|
||||||
static struct fb_ops g900fb_ops = {
|
static struct fb_ops g900fb_ops = {
|
||||||
|
|
||||||
.fb_check_var = g900fb_check_var, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
.fb_check_var = g900fb_check_var, /* Проверка параметров */
|
||||||
//.fb_set_par = g900fb_set_par, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
//.fb_set_par = g900fb_set_par, /* Программирование регистров контроллера */
|
||||||
.fb_setcolreg = g900fb_setcolreg, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
.fb_setcolreg = g900fb_setcolreg, /* Установка карты цветов */
|
||||||
.fb_pan_display = g900fb_pan_display, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
.fb_pan_display = g900fb_pan_display, /* переключение страниц буферов */
|
||||||
.fb_fillrect = g900fb_fillrect,
|
.fb_fillrect = g900fb_fillrect,
|
||||||
.fb_copyarea = g900fb_copyarea,
|
.fb_copyarea = g900fb_copyarea,
|
||||||
.fb_imageblit = g900fb_imageblit,
|
.fb_imageblit = g900fb_imageblit,
|
||||||
//.fb_ioctl = g900fb_ioctl, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ioctl */
|
//.fb_ioctl = g900fb_ioctl, /* Зависимая от устройства ioctl */
|
||||||
//.fb_blank = g900fb_blank, /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
//.fb_blank = g900fb_blank, /* Включение/выключение экрана */
|
||||||
//.fb_mmap = g900fb_mmap,
|
.fb_mmap = g900fb_mmap,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -275,25 +281,27 @@ static int g900fb_pan_display(struct fb_var_screeninfo *var,
|
|||||||
{
|
{
|
||||||
struct fb_copyarea fbca;
|
struct fb_copyarea fbca;
|
||||||
|
|
||||||
/*
|
/* TODO find hardware flip page or copyarea*/
|
||||||
printk("FB: g900fb_pan_display\n");
|
memset(&fbca, 0, sizeof(fbca));
|
||||||
printk("FB: smem_start 0x%08x,screen_base 0x%08x\n",info->fix.smem_start, info->screen_base);
|
|
||||||
printk("FB: xoffset 0x%08x,0x%08x\n",info->var.xoffset, var->xoffset);
|
if(info->var.yoffset == 0 && mmap_flag > 0){
|
||||||
printk("FB: yoffset 0x%08x,0x%08x\n",info->var.yoffset, var->yoffset);
|
fbca.sx=info->var.xoffset + 0x30;
|
||||||
*/
|
fbca.sy=info->var.yoffset + FB_HEIGHT + 0x03;
|
||||||
if(info->var.yoffset >=FB_HEIGHT)
|
fbca.dx=info->var.xoffset;
|
||||||
|
fbca.dy=info->var.yoffset;
|
||||||
|
}
|
||||||
|
else if(info->var.yoffset >= FB_HEIGHT)
|
||||||
{
|
{
|
||||||
/* TODO find hardware flip page*/
|
fbca.sx=info->var.xoffset + 0x30;
|
||||||
memset(&fbca, 0, sizeof(fbca));
|
fbca.sy=info->var.yoffset + FB_HEIGHT + 0x03;
|
||||||
fbca.dx=info->var.xoffset;
|
fbca.dx=info->var.xoffset;
|
||||||
fbca.dy=info->var.yoffset - FB_HEIGHT;
|
fbca.dy=info->var.yoffset - FB_HEIGHT;
|
||||||
fbca.width=FB_WIDTH;
|
|
||||||
fbca.height=FB_HEIGHT;
|
|
||||||
fbca.sx=info->var.xoffset;
|
|
||||||
fbca.sy=info->var.yoffset;
|
|
||||||
cfb_copyarea(info,&fbca);
|
|
||||||
}
|
}
|
||||||
|
fbca.width=FB_WIDTH;
|
||||||
|
fbca.height=FB_HEIGHT;
|
||||||
|
cfb_copyarea(info,&fbca);
|
||||||
|
|
||||||
|
//printk("FB: g900fb_pan_display x=%d,y=%d\n",info->var.xoffset,info->var.yoffset);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,9 +342,9 @@ static int __init g900fb_probe(struct platform_device *dev)
|
|||||||
|
|
||||||
platform_set_drvdata(dev, &fb->fb);
|
platform_set_drvdata(dev, &fb->fb);
|
||||||
|
|
||||||
printk(KERN_INFO"fb%d: g900 frame buffer device, using %ldK of video memory\n",
|
printk(KERN_INFO "fb%d: g900 frame buffer device, using %ldK of video memory\n",
|
||||||
fb->fb.node, videomemorysize >> 10);
|
fb->fb.node, videomemorysize >> 10);
|
||||||
printk(KERN_INFO"FB: fb->fb.screen_base=0x%08x\n", fb->fb.screen_base);
|
//printk(KERN_INFO "FB: fb->fb.screen_base=0x%08x\n", fb->fb.screen_base);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
36
ramfs-android/bin/MAKEDEVS
Executable file
36
ramfs-android/bin/MAKEDEVS
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mkdir -m 0777 /dev/block
|
||||||
|
mknod -m 0666 /dev/block/loop0 b 7 0
|
||||||
|
mknod -m 0666 /dev/block/loop1 b 7 1
|
||||||
|
mknod -m 0666 /dev/block/loop2 b 7 2
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0 b 179 0
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0p1 b 179 1
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0p2 b 179 2
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0p3 b 179 3
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0p4 b 179 4
|
||||||
|
mknod -m 0666 /dev/block/mmcblk0p5 b 179 5
|
||||||
|
|
||||||
|
mkdir -m 0777 /dev/input
|
||||||
|
mknod -m 0644 /dev/input/event0 c 13 64
|
||||||
|
mknod -m 0644 /dev/input/event1 c 13 65
|
||||||
|
mknod -m 0644 /dev/input/event2 c 13 66
|
||||||
|
mknod -m 0644 /dev/input/event3 c 13 67
|
||||||
|
|
||||||
|
mknod -m 0666 /dev/null c 1 3
|
||||||
|
mknod -m 0444 /dev/zero c 1 5
|
||||||
|
#mknod -m 0666 /dev/console c 5 1
|
||||||
|
mknod -m 0666 /dev/tty c 5 0
|
||||||
|
mknod -m 0666 /dev/tty0 c 4 0
|
||||||
|
mknod -m 0666 /dev/tty1 c 4 1
|
||||||
|
mknod -m 0666 /dev/tty2 c 4 2
|
||||||
|
mknod -m 0666 /dev/tty3 c 4 3
|
||||||
|
mknod -m 0666 /dev/tty4 c 4 4
|
||||||
|
|
||||||
|
mknod -m 0644 /dev/ppp0 c 108 0
|
||||||
|
mknod -m 0644 /dev/smd0 c 253 0
|
||||||
|
mknod -m 0644 /dev/smd1 c 253 1
|
||||||
|
mknod -m 0644 /dev/initrd b 1 250
|
||||||
|
|
||||||
|
mkdir -m 0777 /dev/graphics
|
||||||
|
mknod -m 0666 /dev/graphics/fb0 c 29 0
|
||||||
@@ -43,7 +43,7 @@ sleep 1
|
|||||||
mount -t proc proc /proc
|
mount -t proc proc /proc
|
||||||
mount -t sysfs sys /sys
|
mount -t sysfs sys /sys
|
||||||
|
|
||||||
#exec /bin/sh
|
/bin/MAKEDEVS
|
||||||
|
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
@@ -108,7 +108,15 @@ if [ -e /sdcard/ANDROID/userscript.sh ] ; then
|
|||||||
/data/userscript.sh
|
/data/userscript.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#ls /sys/class/timed_output/
|
export LD_PRELOAD=/system/lib/libts.so:/system/lib/ts/pthres.so
|
||||||
|
|
||||||
|
if [ -f /sdcard/ts ] ; then
|
||||||
|
echo "EXECUTE CALIBRATE TOUCHSCREEN!!!"
|
||||||
|
/bin/mkdir -m 0777 /data/system/tslib
|
||||||
|
/system/bin/ts_calibrate
|
||||||
|
/bin/rm /sdcard/ts
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#exec /bin/sh
|
#exec /bin/sh
|
||||||
exec /init_1
|
exec /init_1
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ sysclktz 0
|
|||||||
loglevel 3
|
loglevel 3
|
||||||
|
|
||||||
# setup the global environment
|
# setup the global environment
|
||||||
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
|
export PATH /sbin:/system/sbin:/system/bin:/system/xbin:/bin
|
||||||
export LD_LIBRARY_PATH /system/lib
|
export LD_LIBRARY_PATH /system/lib
|
||||||
export ANDROID_BOOTLOGO 1
|
export ANDROID_BOOTLOGO 1
|
||||||
export ANDROID_ROOT /system
|
export ANDROID_ROOT /system
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user