Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel

authored by

Russell King and committed by
Russell King
c613bbba cd434833

+1365 -1236
+1 -1
Documentation/arm/mem_alignment
··· 24 24 space, and might cause programs to fail unexpectedly. 25 25 26 26 To change the alignment trap behavior, simply echo a number into 27 - /proc/sys/debug/alignment. The number is made up from various bits: 27 + /proc/cpu/alignment. The number is made up from various bits: 28 28 29 29 bit behavior when set 30 30 --- -----------------
+11 -4
MAINTAINERS
··· 1527 1527 S: Maintained 1528 1528 1529 1529 ECRYPT FILE SYSTEM 1530 - P: Mike Halcrow, Phillip Hellewell 1531 - M: mhalcrow@us.ibm.com, phillip@hellewell.homeip.net 1532 - L: ecryptfs-devel@lists.sourceforge.net 1533 - W: http://ecryptfs.sourceforge.net/ 1530 + P: Tyler Hicks, Dustin Kirkland 1531 + M: tyhicks@linux.vnet.ibm.com, kirkland@canonical.com 1532 + L: ecryptfs-devel@lists.launchpad.net 1533 + W: https://launchpad.net/ecryptfs 1534 1534 S: Supported 1535 1535 1536 1536 EDAC-CORE ··· 1758 1758 M: jochen@scram.de 1759 1759 L: linuxppc-dev@ozlabs.org 1760 1760 L: linux-i2c@vger.kernel.org 1761 + S: Maintained 1762 + 1763 + FREESCALE IMX / MXC FRAMEBUFFER DRIVER 1764 + P: Sascha Hauer 1765 + M: kernel@pengutronix.de 1766 + L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 1767 + L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 1761 1768 S: Maintained 1762 1769 1763 1770 FREESCALE SOC FS_ENET DRIVER
+1 -1
arch/arm/common/sa1111.c
··· 630 630 return -ENOMEM; 631 631 632 632 sachip->clk = clk_get(me, "SA1111_CLK"); 633 - if (!sachip->clk) { 633 + if (IS_ERR(sachip->clk)) { 634 634 ret = PTR_ERR(sachip->clk); 635 635 goto err_free; 636 636 }
+2 -2
arch/arm/kernel/armksyms.c
··· 116 116 EXPORT_SYMBOL(__strncpy_from_user); 117 117 118 118 #ifdef CONFIG_MMU 119 + EXPORT_SYMBOL(copy_page); 120 + 119 121 EXPORT_SYMBOL(__copy_from_user); 120 122 EXPORT_SYMBOL(__copy_to_user); 121 123 EXPORT_SYMBOL(__clear_user); ··· 183 181 EXPORT_SYMBOL(_find_first_bit_be); 184 182 EXPORT_SYMBOL(_find_next_bit_be); 185 183 #endif 186 - 187 - EXPORT_SYMBOL(copy_page); 188 184 189 185 #ifdef CONFIG_FUNCTION_TRACER 190 186 EXPORT_SYMBOL(mcount);
+1
arch/arm/kernel/traps.c
··· 18 18 #include <linux/personality.h> 19 19 #include <linux/kallsyms.h> 20 20 #include <linux/delay.h> 21 + #include <linux/hardirq.h> 21 22 #include <linux/init.h> 22 23 #include <linux/uaccess.h> 23 24
+48 -2
arch/arm/mach-imx/include/mach/imxfb.h
··· 1 1 /* 2 2 * This structure describes the machine which we are running on. 3 3 */ 4 - struct imxfb_mach_info { 4 + 5 + #define PCR_TFT (1 << 31) 6 + #define PCR_COLOR (1 << 30) 7 + #define PCR_PBSIZ_1 (0 << 28) 8 + #define PCR_PBSIZ_2 (1 << 28) 9 + #define PCR_PBSIZ_4 (2 << 28) 10 + #define PCR_PBSIZ_8 (3 << 28) 11 + #define PCR_BPIX_1 (0 << 25) 12 + #define PCR_BPIX_2 (1 << 25) 13 + #define PCR_BPIX_4 (2 << 25) 14 + #define PCR_BPIX_8 (3 << 25) 15 + #define PCR_BPIX_12 (4 << 25) 16 + #define PCR_BPIX_16 (4 << 25) 17 + #define PCR_PIXPOL (1 << 24) 18 + #define PCR_FLMPOL (1 << 23) 19 + #define PCR_LPPOL (1 << 22) 20 + #define PCR_CLKPOL (1 << 21) 21 + #define PCR_OEPOL (1 << 20) 22 + #define PCR_SCLKIDLE (1 << 19) 23 + #define PCR_END_SEL (1 << 18) 24 + #define PCR_END_BYTE_SWAP (1 << 17) 25 + #define PCR_REV_VS (1 << 16) 26 + #define PCR_ACD_SEL (1 << 15) 27 + #define PCR_ACD(x) (((x) & 0x7f) << 8) 28 + #define PCR_SCLK_SEL (1 << 7) 29 + #define PCR_SHARP (1 << 6) 30 + #define PCR_PCD(x) ((x) & 0x3f) 31 + 32 + #define PWMR_CLS(x) (((x) & 0x1ff) << 16) 33 + #define PWMR_LDMSK (1 << 15) 34 + #define PWMR_SCR1 (1 << 10) 35 + #define PWMR_SCR0 (1 << 9) 36 + #define PWMR_CC_EN (1 << 8) 37 + #define PWMR_PW(x) ((x) & 0xff) 38 + 39 + #define LSCR1_PS_RISE_DELAY(x) (((x) & 0x7f) << 26) 40 + #define LSCR1_CLS_RISE_DELAY(x) (((x) & 0x3f) << 16) 41 + #define LSCR1_REV_TOGGLE_DELAY(x) (((x) & 0xf) << 8) 42 + #define LSCR1_GRAY2(x) (((x) & 0xf) << 4) 43 + #define LSCR1_GRAY1(x) (((x) & 0xf)) 44 + 45 + #define DMACR_BURST (1 << 31) 46 + #define DMACR_HM(x) (((x) & 0xf) << 16) 47 + #define DMACR_TM(x) ((x) & 0xf) 48 + 49 + struct imx_fb_platform_data { 5 50 u_long pixclock; 6 51 7 52 u_short xres; ··· 79 34 void (*lcd_power)(int); 80 35 void (*backlight_power)(int); 81 36 }; 82 - void set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info); 37 + 38 + void set_imx_fb_info(struct imx_fb_platform_data *);
+2 -3
arch/arm/mach-pxa/include/mach/reset.h
··· 12 12 13 13 /** 14 14 * init_gpio_reset() - register GPIO as reset generator 15 - * 16 - * @gpio - gpio nr 17 - * @output - set gpio as out/low instead of input during normal work 15 + * @gpio: gpio nr 16 + * @output: set gpio as out/low instead of input during normal work 18 17 */ 19 18 extern int init_gpio_reset(int gpio, int output); 20 19
+1
arch/arm/mm/fault.c
··· 11 11 #include <linux/module.h> 12 12 #include <linux/signal.h> 13 13 #include <linux/mm.h> 14 + #include <linux/hardirq.h> 14 15 #include <linux/init.h> 15 16 #include <linux/kprobes.h> 16 17 #include <linux/uaccess.h>
+1
arch/ia64/hp/sim/Kconfig
··· 4 4 5 5 config HP_SIMETH 6 6 bool "Simulated Ethernet " 7 + depends on NET 7 8 8 9 config HP_SIMSERIAL 9 10 bool "Simulated serial driver support"
+1 -1
arch/mips/Kconfig.debug
··· 48 48 help 49 49 If you say Y here, some debugging macros will do run-time checking. 50 50 If you say N here, those macros will mostly turn to no-ops. See 51 - include/asm-mips/debug.h for debuging macros. 51 + arch/mips/include/asm/debug.h for debugging macros. 52 52 If unsure, say N. 53 53 54 54 endmenu
+639 -451
arch/mips/configs/ip32_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.20 4 - # Tue Feb 20 21:47:33 2007 3 + # Linux kernel version: 2.6.28-rc7 4 + # Wed Dec 10 14:39:08 2008 5 5 # 6 6 CONFIG_MIPS=y 7 7 8 8 # 9 9 # Machine selection 10 10 # 11 - CONFIG_ZONE_DMA=y 12 - # CONFIG_MIPS_MTX1 is not set 13 - # CONFIG_MIPS_BOSPORUS is not set 14 - # CONFIG_MIPS_PB1000 is not set 15 - # CONFIG_MIPS_PB1100 is not set 16 - # CONFIG_MIPS_PB1500 is not set 17 - # CONFIG_MIPS_PB1550 is not set 18 - # CONFIG_MIPS_PB1200 is not set 19 - # CONFIG_MIPS_DB1000 is not set 20 - # CONFIG_MIPS_DB1100 is not set 21 - # CONFIG_MIPS_DB1500 is not set 22 - # CONFIG_MIPS_DB1550 is not set 23 - # CONFIG_MIPS_DB1200 is not set 24 - # CONFIG_MIPS_MIRAGE is not set 11 + # CONFIG_MACH_ALCHEMY is not set 25 12 # CONFIG_BASLER_EXCITE is not set 13 + # CONFIG_BCM47XX is not set 26 14 # CONFIG_MIPS_COBALT is not set 27 15 # CONFIG_MACH_DECSTATION is not set 28 16 # CONFIG_MACH_JAZZ is not set 17 + # CONFIG_LASAT is not set 18 + # CONFIG_LEMOTE_FULONG is not set 29 19 # CONFIG_MIPS_MALTA is not set 30 - # CONFIG_WR_PPMC is not set 31 20 # CONFIG_MIPS_SIM is not set 32 - # CONFIG_MOMENCO_JAGUAR_ATX is not set 33 - # CONFIG_MIPS_XXS1500 is not set 21 + # CONFIG_MACH_EMMA is not set 22 + # CONFIG_MACH_VR41XX is not set 23 + # CONFIG_NXP_STB220 is not set 24 + # CONFIG_NXP_STB225 is not set 34 25 # CONFIG_PNX8550_JBS is not set 35 26 # CONFIG_PNX8550_STB810 is not set 36 - # CONFIG_MACH_VR41XX is not set 27 + # CONFIG_PMC_MSP is not set 37 28 # CONFIG_PMC_YOSEMITE is not set 38 - # CONFIG_MARKEINS is not set 39 29 # CONFIG_SGI_IP22 is not set 40 30 # CONFIG_SGI_IP27 is not set 31 + # CONFIG_SGI_IP28 is not set 41 32 CONFIG_SGI_IP32=y 42 - # CONFIG_SIBYTE_BIGSUR is not set 43 - # CONFIG_SIBYTE_SWARM is not set 44 - # CONFIG_SIBYTE_SENTOSA is not set 45 - # CONFIG_SIBYTE_RHONE is not set 46 - # CONFIG_SIBYTE_CARMEL is not set 47 - # CONFIG_SIBYTE_LITTLESUR is not set 48 33 # CONFIG_SIBYTE_CRHINE is not set 34 + # CONFIG_SIBYTE_CARMEL is not set 49 35 # CONFIG_SIBYTE_CRHONE is not set 36 + # CONFIG_SIBYTE_RHONE is not set 37 + # CONFIG_SIBYTE_SWARM is not set 38 + # CONFIG_SIBYTE_LITTLESUR is not set 39 + # CONFIG_SIBYTE_SENTOSA is not set 40 + # CONFIG_SIBYTE_BIGSUR is not set 50 41 # CONFIG_SNI_RM is not set 51 - # CONFIG_TOSHIBA_JMR3927 is not set 52 - # CONFIG_TOSHIBA_RBTX4927 is not set 53 - # CONFIG_TOSHIBA_RBTX4938 is not set 42 + # CONFIG_MACH_TX39XX is not set 43 + # CONFIG_MACH_TX49XX is not set 44 + # CONFIG_MIKROTIK_RB532 is not set 45 + # CONFIG_WR_PPMC is not set 54 46 CONFIG_RWSEM_GENERIC_SPINLOCK=y 55 47 # CONFIG_ARCH_HAS_ILOG2_U32 is not set 56 48 # CONFIG_ARCH_HAS_ILOG2_U64 is not set 49 + CONFIG_ARCH_SUPPORTS_OPROFILE=y 57 50 CONFIG_GENERIC_FIND_NEXT_BIT=y 58 51 CONFIG_GENERIC_HWEIGHT=y 59 52 CONFIG_GENERIC_CALIBRATE_DELAY=y 53 + CONFIG_GENERIC_CLOCKEVENTS=y 60 54 CONFIG_GENERIC_TIME=y 55 + CONFIG_GENERIC_CMOS_UPDATE=y 61 56 CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 62 57 # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 63 58 CONFIG_ARC=y 59 + CONFIG_CEVT_R4K=y 60 + CONFIG_CSRC_R4K=y 64 61 CONFIG_DMA_NONCOHERENT=y 65 62 CONFIG_DMA_NEED_PCI_MAP_STATE=y 63 + # CONFIG_HOTPLUG_CPU is not set 64 + # CONFIG_NO_IOPORT is not set 66 65 CONFIG_CPU_BIG_ENDIAN=y 67 66 # CONFIG_CPU_LITTLE_ENDIAN is not set 68 67 CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 68 + CONFIG_IRQ_CPU=y 69 69 CONFIG_ARC32=y 70 70 CONFIG_BOOT_ELF32=y 71 71 CONFIG_MIPS_L1_CACHE_SHIFT=5 ··· 75 75 # 76 76 # CPU selection 77 77 # 78 + # CONFIG_CPU_LOONGSON2 is not set 78 79 # CONFIG_CPU_MIPS32_R1 is not set 79 80 # CONFIG_CPU_MIPS32_R2 is not set 80 81 # CONFIG_CPU_MIPS64_R1 is not set ··· 88 87 # CONFIG_CPU_TX49XX is not set 89 88 CONFIG_CPU_R5000=y 90 89 # CONFIG_CPU_R5432 is not set 90 + # CONFIG_CPU_R5500 is not set 91 91 # CONFIG_CPU_R6000 is not set 92 92 # CONFIG_CPU_NEVADA is not set 93 93 # CONFIG_CPU_R8000 is not set ··· 118 116 CONFIG_MIPS_MT_DISABLED=y 119 117 # CONFIG_MIPS_MT_SMP is not set 120 118 # CONFIG_MIPS_MT_SMTC is not set 121 - # CONFIG_MIPS_VPE_LOADER is not set 122 119 CONFIG_CPU_HAS_LLSC=y 123 120 CONFIG_CPU_HAS_SYNC=y 124 121 CONFIG_GENERIC_HARDIRQS=y 125 122 CONFIG_GENERIC_IRQ_PROBE=y 126 123 CONFIG_ARCH_FLATMEM_ENABLE=y 124 + CONFIG_ARCH_POPULATES_NODE_MAP=y 127 125 CONFIG_SELECT_MEMORY_MODEL=y 128 126 CONFIG_FLATMEM_MANUAL=y 129 127 # CONFIG_DISCONTIGMEM_MANUAL is not set 130 128 # CONFIG_SPARSEMEM_MANUAL is not set 131 129 CONFIG_FLATMEM=y 132 130 CONFIG_FLAT_NODE_MEM_MAP=y 133 - # CONFIG_SPARSEMEM_STATIC is not set 131 + CONFIG_PAGEFLAGS_EXTENDED=y 134 132 CONFIG_SPLIT_PTLOCK_CPUS=4 135 133 CONFIG_RESOURCES_64BIT=y 136 - CONFIG_ZONE_DMA_FLAG=1 134 + CONFIG_PHYS_ADDR_T_64BIT=y 135 + CONFIG_ZONE_DMA_FLAG=0 136 + CONFIG_VIRT_TO_BUS=y 137 + CONFIG_UNEVICTABLE_LRU=y 138 + # CONFIG_NO_HZ is not set 139 + # CONFIG_HIGH_RES_TIMERS is not set 140 + CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 137 141 # CONFIG_HZ_48 is not set 138 142 # CONFIG_HZ_100 is not set 139 143 # CONFIG_HZ_128 is not set 140 - # CONFIG_HZ_250 is not set 144 + CONFIG_HZ_250=y 141 145 # CONFIG_HZ_256 is not set 142 - CONFIG_HZ_1000=y 146 + # CONFIG_HZ_1000 is not set 143 147 # CONFIG_HZ_1024 is not set 144 148 CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 145 - CONFIG_HZ=1000 146 - # CONFIG_PREEMPT_NONE is not set 147 - CONFIG_PREEMPT_VOLUNTARY=y 149 + CONFIG_HZ=250 150 + CONFIG_PREEMPT_NONE=y 151 + # CONFIG_PREEMPT_VOLUNTARY is not set 148 152 # CONFIG_PREEMPT is not set 149 153 # CONFIG_KEXEC is not set 154 + # CONFIG_SECCOMP is not set 150 155 CONFIG_LOCKDEP_SUPPORT=y 151 156 CONFIG_STACKTRACE_SUPPORT=y 152 157 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 153 158 154 159 # 155 - # Code maturity level options 160 + # General setup 156 161 # 157 162 CONFIG_EXPERIMENTAL=y 158 163 CONFIG_BROKEN_ON_SMP=y 159 164 CONFIG_INIT_ENV_ARG_LIMIT=32 160 - 161 - # 162 - # General setup 163 - # 164 165 CONFIG_LOCALVERSION="" 165 166 CONFIG_LOCALVERSION_AUTO=y 166 167 CONFIG_SWAP=y 167 168 CONFIG_SYSVIPC=y 168 - # CONFIG_IPC_NS is not set 169 169 CONFIG_SYSVIPC_SYSCTL=y 170 - # CONFIG_POSIX_MQUEUE is not set 170 + CONFIG_POSIX_MQUEUE=y 171 171 CONFIG_BSD_PROCESS_ACCT=y 172 172 # CONFIG_BSD_PROCESS_ACCT_V3 is not set 173 173 # CONFIG_TASKSTATS is not set 174 - # CONFIG_UTS_NS is not set 175 - # CONFIG_AUDIT is not set 176 - # CONFIG_IKCONFIG is not set 174 + CONFIG_AUDIT=y 175 + CONFIG_IKCONFIG=y 176 + CONFIG_IKCONFIG_PROC=y 177 + CONFIG_LOG_BUF_SHIFT=14 178 + # CONFIG_CGROUPS is not set 179 + # CONFIG_GROUP_SCHED is not set 177 180 CONFIG_SYSFS_DEPRECATED=y 181 + CONFIG_SYSFS_DEPRECATED_V2=y 178 182 CONFIG_RELAY=y 179 - # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 183 + # CONFIG_NAMESPACES is not set 184 + # CONFIG_BLK_DEV_INITRD is not set 185 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 180 186 CONFIG_SYSCTL=y 181 187 CONFIG_EMBEDDED=y 182 188 CONFIG_SYSCTL_SYSCALL=y ··· 194 184 CONFIG_PRINTK=y 195 185 CONFIG_BUG=y 196 186 CONFIG_ELF_CORE=y 187 + CONFIG_PCSPKR_PLATFORM=y 188 + CONFIG_COMPAT_BRK=y 197 189 CONFIG_BASE_FULL=y 198 190 CONFIG_FUTEX=y 191 + CONFIG_ANON_INODES=y 199 192 CONFIG_EPOLL=y 193 + CONFIG_SIGNALFD=y 194 + CONFIG_TIMERFD=y 195 + CONFIG_EVENTFD=y 200 196 CONFIG_SHMEM=y 201 - CONFIG_SLAB=y 197 + CONFIG_AIO=y 202 198 CONFIG_VM_EVENT_COUNTERS=y 199 + CONFIG_PCI_QUIRKS=y 200 + CONFIG_SLAB=y 201 + # CONFIG_SLUB is not set 202 + # CONFIG_SLOB is not set 203 + CONFIG_PROFILING=y 204 + # CONFIG_MARKERS is not set 205 + CONFIG_OPROFILE=m 206 + CONFIG_HAVE_OPROFILE=y 207 + # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 208 + CONFIG_SLABINFO=y 203 209 CONFIG_RT_MUTEXES=y 204 210 # CONFIG_TINY_SHMEM is not set 205 211 CONFIG_BASE_SMALL=0 206 - # CONFIG_SLOB is not set 207 - 208 - # 209 - # Loadable module support 210 - # 211 - # CONFIG_MODULES is not set 212 - 213 - # 214 - # Block layer 215 - # 212 + CONFIG_MODULES=y 213 + # CONFIG_MODULE_FORCE_LOAD is not set 214 + CONFIG_MODULE_UNLOAD=y 215 + # CONFIG_MODULE_FORCE_UNLOAD is not set 216 + # CONFIG_MODVERSIONS is not set 217 + # CONFIG_MODULE_SRCVERSION_ALL is not set 218 + CONFIG_KMOD=y 216 219 CONFIG_BLOCK=y 217 220 # CONFIG_BLK_DEV_IO_TRACE is not set 221 + # CONFIG_BLK_DEV_BSG is not set 222 + # CONFIG_BLK_DEV_INTEGRITY is not set 223 + CONFIG_BLOCK_COMPAT=y 218 224 219 225 # 220 226 # IO Schedulers ··· 239 213 CONFIG_IOSCHED_AS=y 240 214 CONFIG_IOSCHED_DEADLINE=y 241 215 CONFIG_IOSCHED_CFQ=y 242 - CONFIG_DEFAULT_AS=y 216 + # CONFIG_DEFAULT_AS is not set 243 217 # CONFIG_DEFAULT_DEADLINE is not set 244 - # CONFIG_DEFAULT_CFQ is not set 218 + CONFIG_DEFAULT_CFQ=y 245 219 # CONFIG_DEFAULT_NOOP is not set 246 - CONFIG_DEFAULT_IOSCHED="anticipatory" 220 + CONFIG_DEFAULT_IOSCHED="cfq" 221 + CONFIG_CLASSIC_RCU=y 222 + # CONFIG_FREEZER is not set 247 223 248 224 # 249 225 # Bus options (PCI, PCMCIA, EISA, ISA, TC) 250 226 # 251 227 CONFIG_HW_HAS_PCI=y 252 228 CONFIG_PCI=y 229 + CONFIG_PCI_DOMAINS=y 230 + # CONFIG_ARCH_SUPPORTS_MSI is not set 231 + # CONFIG_PCI_LEGACY is not set 253 232 CONFIG_MMU=y 254 - 255 - # 256 - # PCCARD (PCMCIA/CardBus) support 257 - # 258 233 # CONFIG_PCCARD is not set 259 - 260 - # 261 - # PCI Hotplug Support 262 - # 263 234 # CONFIG_HOTPLUG_PCI is not set 264 235 265 236 # 266 237 # Executable file formats 267 238 # 268 239 CONFIG_BINFMT_ELF=y 240 + # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 241 + # CONFIG_HAVE_AOUT is not set 269 242 CONFIG_BINFMT_MISC=y 270 - # CONFIG_BUILD_ELF64 is not set 271 243 CONFIG_MIPS32_COMPAT=y 272 244 CONFIG_COMPAT=y 273 245 CONFIG_SYSVIPC_COMPAT=y 274 246 CONFIG_MIPS32_O32=y 275 - # CONFIG_MIPS32_N32 is not set 247 + CONFIG_MIPS32_N32=y 276 248 CONFIG_BINFMT_ELF32=y 277 249 278 250 # 279 251 # Power management options 280 252 # 281 - CONFIG_PM=y 282 - # CONFIG_PM_LEGACY is not set 283 - # CONFIG_PM_DEBUG is not set 284 - # CONFIG_PM_SYSFS_DEPRECATED is not set 285 - 286 - # 287 - # Networking 288 - # 253 + CONFIG_ARCH_SUSPEND_POSSIBLE=y 254 + # CONFIG_PM is not set 289 255 CONFIG_NET=y 290 256 291 257 # 292 258 # Networking options 293 259 # 294 - # CONFIG_NETDEBUG is not set 295 260 CONFIG_PACKET=y 296 261 CONFIG_PACKET_MMAP=y 297 262 CONFIG_UNIX=y ··· 290 273 CONFIG_XFRM_USER=y 291 274 # CONFIG_XFRM_SUB_POLICY is not set 292 275 CONFIG_XFRM_MIGRATE=y 276 + # CONFIG_XFRM_STATISTICS is not set 277 + CONFIG_XFRM_IPCOMP=m 293 278 CONFIG_NET_KEY=y 294 279 CONFIG_NET_KEY_MIGRATE=y 295 280 CONFIG_INET=y 296 - # CONFIG_IP_MULTICAST is not set 281 + CONFIG_IP_MULTICAST=y 297 282 # CONFIG_IP_ADVANCED_ROUTER is not set 298 283 CONFIG_IP_FIB_HASH=y 299 284 CONFIG_IP_PNP=y 300 - # CONFIG_IP_PNP_DHCP is not set 285 + CONFIG_IP_PNP_DHCP=y 301 286 CONFIG_IP_PNP_BOOTP=y 302 287 # CONFIG_IP_PNP_RARP is not set 303 - # CONFIG_NET_IPIP is not set 304 - # CONFIG_NET_IPGRE is not set 288 + CONFIG_NET_IPIP=m 289 + CONFIG_NET_IPGRE=m 290 + # CONFIG_NET_IPGRE_BROADCAST is not set 291 + # CONFIG_IP_MROUTE is not set 305 292 # CONFIG_ARPD is not set 306 293 # CONFIG_SYN_COOKIES is not set 307 - # CONFIG_INET_AH is not set 308 - # CONFIG_INET_ESP is not set 309 - # CONFIG_INET_IPCOMP is not set 310 - # CONFIG_INET_XFRM_TUNNEL is not set 311 - # CONFIG_INET_TUNNEL is not set 294 + CONFIG_INET_AH=m 295 + CONFIG_INET_ESP=m 296 + CONFIG_INET_IPCOMP=m 297 + CONFIG_INET_XFRM_TUNNEL=m 298 + CONFIG_INET_TUNNEL=m 312 299 CONFIG_INET_XFRM_MODE_TRANSPORT=y 313 300 CONFIG_INET_XFRM_MODE_TUNNEL=y 314 301 CONFIG_INET_XFRM_MODE_BEET=y 302 + # CONFIG_INET_LRO is not set 315 303 CONFIG_INET_DIAG=y 316 304 CONFIG_INET_TCP_DIAG=y 317 - # CONFIG_TCP_CONG_ADVANCED is not set 305 + CONFIG_TCP_CONG_ADVANCED=y 306 + CONFIG_TCP_CONG_BIC=m 318 307 CONFIG_TCP_CONG_CUBIC=y 308 + CONFIG_TCP_CONG_WESTWOOD=m 309 + CONFIG_TCP_CONG_HTCP=m 310 + # CONFIG_TCP_CONG_HSTCP is not set 311 + # CONFIG_TCP_CONG_HYBLA is not set 312 + # CONFIG_TCP_CONG_VEGAS is not set 313 + # CONFIG_TCP_CONG_SCALABLE is not set 314 + # CONFIG_TCP_CONG_LP is not set 315 + # CONFIG_TCP_CONG_VENO is not set 316 + # CONFIG_TCP_CONG_YEAH is not set 317 + # CONFIG_TCP_CONG_ILLINOIS is not set 318 + # CONFIG_DEFAULT_BIC is not set 319 + CONFIG_DEFAULT_CUBIC=y 320 + # CONFIG_DEFAULT_HTCP is not set 321 + # CONFIG_DEFAULT_VEGAS is not set 322 + # CONFIG_DEFAULT_WESTWOOD is not set 323 + # CONFIG_DEFAULT_RENO is not set 319 324 CONFIG_DEFAULT_TCP_CONG="cubic" 320 325 CONFIG_TCP_MD5SIG=y 321 - # CONFIG_IPV6 is not set 322 - # CONFIG_INET6_XFRM_TUNNEL is not set 323 - # CONFIG_INET6_TUNNEL is not set 326 + CONFIG_IPV6=m 327 + # CONFIG_IPV6_PRIVACY is not set 328 + # CONFIG_IPV6_ROUTER_PREF is not set 329 + # CONFIG_IPV6_OPTIMISTIC_DAD is not set 330 + CONFIG_INET6_AH=m 331 + CONFIG_INET6_ESP=m 332 + CONFIG_INET6_IPCOMP=m 333 + # CONFIG_IPV6_MIP6 is not set 334 + CONFIG_INET6_XFRM_TUNNEL=m 335 + CONFIG_INET6_TUNNEL=m 336 + CONFIG_INET6_XFRM_MODE_TRANSPORT=m 337 + CONFIG_INET6_XFRM_MODE_TUNNEL=m 338 + CONFIG_INET6_XFRM_MODE_BEET=m 339 + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 340 + CONFIG_IPV6_SIT=m 341 + CONFIG_IPV6_NDISC_NODETYPE=y 342 + CONFIG_IPV6_TUNNEL=m 343 + # CONFIG_IPV6_MULTIPLE_TABLES is not set 344 + # CONFIG_IPV6_MROUTE is not set 324 345 CONFIG_NETWORK_SECMARK=y 325 346 # CONFIG_NETFILTER is not set 326 - 327 - # 328 - # DCCP Configuration (EXPERIMENTAL) 329 - # 330 347 # CONFIG_IP_DCCP is not set 331 - 332 - # 333 - # SCTP Configuration (EXPERIMENTAL) 334 - # 335 348 # CONFIG_IP_SCTP is not set 336 - 337 - # 338 - # TIPC Configuration (EXPERIMENTAL) 339 - # 340 349 # CONFIG_TIPC is not set 341 350 # CONFIG_ATM is not set 342 351 # CONFIG_BRIDGE is not set 352 + # CONFIG_NET_DSA is not set 343 353 # CONFIG_VLAN_8021Q is not set 344 354 # CONFIG_DECNET is not set 345 355 # CONFIG_LLC2 is not set ··· 376 332 # CONFIG_LAPB is not set 377 333 # CONFIG_ECONET is not set 378 334 # CONFIG_WAN_ROUTER is not set 379 - 380 - # 381 - # QoS and/or fair queueing 382 - # 383 335 # CONFIG_NET_SCHED is not set 384 336 385 337 # ··· 383 343 # 384 344 # CONFIG_NET_PKTGEN is not set 385 345 # CONFIG_HAMRADIO is not set 346 + # CONFIG_CAN is not set 386 347 # CONFIG_IRDA is not set 387 348 # CONFIG_BT is not set 388 - CONFIG_IEEE80211=y 389 - # CONFIG_IEEE80211_DEBUG is not set 390 - CONFIG_IEEE80211_CRYPT_WEP=y 391 - CONFIG_IEEE80211_CRYPT_CCMP=y 392 - CONFIG_IEEE80211_SOFTMAC=y 393 - # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 394 - CONFIG_WIRELESS_EXT=y 349 + # CONFIG_AF_RXRPC is not set 350 + # CONFIG_PHONET is not set 351 + # CONFIG_WIRELESS is not set 352 + # CONFIG_RFKILL is not set 353 + # CONFIG_NET_9P is not set 395 354 396 355 # 397 356 # Device Drivers ··· 399 360 # 400 361 # Generic Driver Options 401 362 # 363 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 402 364 CONFIG_STANDALONE=y 403 365 CONFIG_PREVENT_FIRMWARE_BUILD=y 404 366 CONFIG_FW_LOADER=y 367 + CONFIG_FIRMWARE_IN_KERNEL=y 368 + CONFIG_EXTRA_FIRMWARE="" 405 369 # CONFIG_SYS_HYPERVISOR is not set 406 - 407 - # 408 - # Connector - unified userspace <-> kernelspace linker 409 - # 410 370 CONFIG_CONNECTOR=y 411 371 CONFIG_PROC_EVENTS=y 412 - 413 - # 414 - # Memory Technology Devices (MTD) 415 - # 416 372 # CONFIG_MTD is not set 417 - 418 - # 419 - # Parallel port support 420 - # 421 373 # CONFIG_PARPORT is not set 422 - 423 - # 424 - # Plug and Play support 425 - # 426 - # CONFIG_PNPACPI is not set 427 - 428 - # 429 - # Block devices 430 - # 374 + CONFIG_BLK_DEV=y 431 375 # CONFIG_BLK_CPQ_DA is not set 432 376 # CONFIG_BLK_CPQ_CISS_DA is not set 433 377 # CONFIG_BLK_DEV_DAC960 is not set 434 378 # CONFIG_BLK_DEV_UMEM is not set 435 379 # CONFIG_BLK_DEV_COW_COMMON is not set 436 - CONFIG_BLK_DEV_LOOP=y 437 - # CONFIG_BLK_DEV_CRYPTOLOOP is not set 438 - # CONFIG_BLK_DEV_NBD is not set 380 + CONFIG_BLK_DEV_LOOP=m 381 + CONFIG_BLK_DEV_CRYPTOLOOP=m 382 + CONFIG_BLK_DEV_NBD=m 439 383 # CONFIG_BLK_DEV_SX8 is not set 440 384 # CONFIG_BLK_DEV_RAM is not set 441 - # CONFIG_BLK_DEV_INITRD is not set 442 - CONFIG_CDROM_PKTCDVD=y 443 - CONFIG_CDROM_PKTCDVD_BUFFERS=8 444 - # CONFIG_CDROM_PKTCDVD_WCACHE is not set 445 - CONFIG_ATA_OVER_ETH=y 446 - 447 - # 448 - # Misc devices 449 - # 385 + # CONFIG_CDROM_PKTCDVD is not set 386 + # CONFIG_ATA_OVER_ETH is not set 387 + # CONFIG_BLK_DEV_HD is not set 388 + CONFIG_MISC_DEVICES=y 389 + # CONFIG_PHANTOM is not set 390 + # CONFIG_EEPROM_93CX6 is not set 450 391 CONFIG_SGI_IOC4=y 451 392 # CONFIG_TIFM_CORE is not set 452 - 453 - # 454 - # ATA/ATAPI/MFM/RLL support 455 - # 393 + # CONFIG_ENCLOSURE_SERVICES is not set 394 + # CONFIG_HP_ILO is not set 395 + # CONFIG_C2PORT is not set 396 + CONFIG_HAVE_IDE=y 456 397 # CONFIG_IDE is not set 457 398 458 399 # ··· 440 421 # 441 422 CONFIG_RAID_ATTRS=y 442 423 CONFIG_SCSI=y 424 + CONFIG_SCSI_DMA=y 443 425 CONFIG_SCSI_TGT=y 444 - CONFIG_SCSI_NETLINK=y 426 + # CONFIG_SCSI_NETLINK is not set 445 427 CONFIG_SCSI_PROC_FS=y 446 428 447 429 # 448 430 # SCSI support type (disk, tape, CD-ROM) 449 431 # 450 432 CONFIG_BLK_DEV_SD=y 451 - CONFIG_CHR_DEV_ST=y 452 - CONFIG_CHR_DEV_OSST=y 433 + # CONFIG_CHR_DEV_ST is not set 434 + # CONFIG_CHR_DEV_OSST is not set 453 435 CONFIG_BLK_DEV_SR=y 454 436 CONFIG_BLK_DEV_SR_VENDOR=y 455 - CONFIG_CHR_DEV_SG=y 437 + CONFIG_CHR_DEV_SG=m 456 438 # CONFIG_CHR_DEV_SCH is not set 457 439 458 440 # ··· 463 443 CONFIG_SCSI_CONSTANTS=y 464 444 CONFIG_SCSI_LOGGING=y 465 445 CONFIG_SCSI_SCAN_ASYNC=y 446 + CONFIG_SCSI_WAIT_SCAN=m 466 447 467 448 # 468 449 # SCSI Transports 469 450 # 470 451 CONFIG_SCSI_SPI_ATTRS=y 471 - CONFIG_SCSI_FC_ATTRS=y 452 + # CONFIG_SCSI_FC_ATTRS is not set 472 453 # CONFIG_SCSI_ISCSI_ATTRS is not set 473 454 CONFIG_SCSI_SAS_ATTRS=y 474 455 CONFIG_SCSI_SAS_LIBSAS=y 456 + CONFIG_SCSI_SAS_HOST_SMP=y 475 457 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 476 - 477 - # 478 - # SCSI low-level drivers 479 - # 458 + # CONFIG_SCSI_SRP_ATTRS is not set 459 + CONFIG_SCSI_LOWLEVEL=y 480 460 # CONFIG_ISCSI_TCP is not set 481 461 # CONFIG_BLK_DEV_3W_XXXX_RAID is not set 482 462 # CONFIG_SCSI_3W_9XXX is not set 483 463 # CONFIG_SCSI_ACARD is not set 484 464 # CONFIG_SCSI_AACRAID is not set 485 465 CONFIG_SCSI_AIC7XXX=y 486 - CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 466 + CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 487 467 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 488 468 CONFIG_AIC7XXX_DEBUG_ENABLE=y 489 469 CONFIG_AIC7XXX_DEBUG_MASK=0 490 470 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y 491 471 # CONFIG_SCSI_AIC7XXX_OLD is not set 492 472 # CONFIG_SCSI_AIC79XX is not set 493 - CONFIG_SCSI_AIC94XX=y 494 - # CONFIG_AIC94XX_DEBUG is not set 473 + # CONFIG_SCSI_AIC94XX is not set 474 + # CONFIG_SCSI_DPT_I2O is not set 475 + # CONFIG_SCSI_ADVANSYS is not set 495 476 # CONFIG_SCSI_ARCMSR is not set 496 477 # CONFIG_MEGARAID_NEWGEN is not set 497 478 # CONFIG_MEGARAID_LEGACY is not set ··· 503 482 # CONFIG_SCSI_IPS is not set 504 483 # CONFIG_SCSI_INITIO is not set 505 484 # CONFIG_SCSI_INIA100 is not set 485 + # CONFIG_SCSI_MVSAS is not set 506 486 # CONFIG_SCSI_STEX is not set 507 487 # CONFIG_SCSI_SYM53C8XX_2 is not set 508 488 # CONFIG_SCSI_QLOGIC_1280 is not set ··· 514 492 # CONFIG_SCSI_DC390T is not set 515 493 # CONFIG_SCSI_DEBUG is not set 516 494 # CONFIG_SCSI_SRP is not set 517 - 518 - # 519 - # Serial ATA (prod) and Parallel ATA (experimental) drivers 520 - # 495 + # CONFIG_SCSI_DH is not set 521 496 # CONFIG_ATA is not set 522 - 523 - # 524 - # Multi-device support (RAID and LVM) 525 - # 526 497 # CONFIG_MD is not set 527 - 528 - # 529 - # Fusion MPT device support 530 - # 531 498 # CONFIG_FUSION is not set 532 - # CONFIG_FUSION_SPI is not set 533 - # CONFIG_FUSION_FC is not set 534 - # CONFIG_FUSION_SAS is not set 535 499 536 500 # 537 501 # IEEE 1394 (FireWire) support 538 502 # 503 + 504 + # 505 + # Enable only one of the two stacks, unless you know what you are doing 506 + # 507 + # CONFIG_FIREWIRE is not set 539 508 # CONFIG_IEEE1394 is not set 540 - 541 - # 542 - # I2O device support 543 - # 544 509 # CONFIG_I2O is not set 545 - 546 - # 547 - # Network device support 548 - # 549 510 CONFIG_NETDEVICES=y 550 - # CONFIG_DUMMY is not set 551 - # CONFIG_BONDING is not set 511 + CONFIG_DUMMY=m 512 + CONFIG_BONDING=m 513 + # CONFIG_MACVLAN is not set 552 514 # CONFIG_EQUALIZER is not set 553 515 # CONFIG_TUN is not set 554 - 555 - # 556 - # ARCnet devices 557 - # 516 + # CONFIG_VETH is not set 558 517 # CONFIG_ARCNET is not set 559 - 560 - # 561 - # PHY device support 562 - # 563 - CONFIG_PHYLIB=y 564 - 565 - # 566 - # MII PHY device drivers 567 - # 568 - CONFIG_MARVELL_PHY=y 569 - CONFIG_DAVICOM_PHY=y 570 - CONFIG_QSEMI_PHY=y 571 - CONFIG_LXT_PHY=y 572 - CONFIG_CICADA_PHY=y 573 - CONFIG_VITESSE_PHY=y 574 - CONFIG_SMSC_PHY=y 575 - # CONFIG_BROADCOM_PHY is not set 576 - # CONFIG_FIXED_PHY is not set 577 - 578 - # 579 - # Ethernet (10 or 100Mbit) 580 - # 518 + # CONFIG_PHYLIB is not set 581 519 CONFIG_NET_ETHERNET=y 582 - # CONFIG_MII is not set 520 + CONFIG_MII=y 521 + # CONFIG_AX88796 is not set 583 522 CONFIG_SGI_O2MACE_ETH=y 584 523 # CONFIG_HAPPYMEAL is not set 585 524 # CONFIG_SUNGEM is not set 586 525 # CONFIG_CASSINI is not set 587 526 # CONFIG_NET_VENDOR_3COM is not set 527 + # CONFIG_SMC91X is not set 588 528 # CONFIG_DM9000 is not set 589 - 590 - # 591 - # Tulip family network device support 592 - # 593 - # CONFIG_NET_TULIP is not set 529 + CONFIG_NET_TULIP=y 530 + CONFIG_DE2104X=m 531 + CONFIG_TULIP=m 532 + # CONFIG_TULIP_MWI is not set 533 + CONFIG_TULIP_MMIO=y 534 + # CONFIG_TULIP_NAPI is not set 535 + # CONFIG_DE4X5 is not set 536 + # CONFIG_WINBOND_840 is not set 537 + # CONFIG_DM9102 is not set 538 + # CONFIG_ULI526X is not set 594 539 # CONFIG_HP100 is not set 540 + # CONFIG_IBM_NEW_EMAC_ZMII is not set 541 + # CONFIG_IBM_NEW_EMAC_RGMII is not set 542 + # CONFIG_IBM_NEW_EMAC_TAH is not set 543 + # CONFIG_IBM_NEW_EMAC_EMAC4 is not set 544 + # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set 545 + # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 546 + # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 595 547 # CONFIG_NET_PCI is not set 596 - 597 - # 598 - # Ethernet (1000 Mbit) 599 - # 600 - # CONFIG_ACENIC is not set 601 - # CONFIG_DL2K is not set 602 - # CONFIG_E1000 is not set 603 - # CONFIG_NS83820 is not set 604 - # CONFIG_HAMACHI is not set 605 - # CONFIG_YELLOWFIN is not set 606 - # CONFIG_R8169 is not set 607 - # CONFIG_SIS190 is not set 608 - # CONFIG_SKGE is not set 609 - # CONFIG_SKY2 is not set 610 - # CONFIG_SK98LIN is not set 611 - # CONFIG_TIGON3 is not set 612 - # CONFIG_BNX2 is not set 613 - CONFIG_QLA3XXX=y 614 - # CONFIG_ATL1 is not set 615 - 616 - # 617 - # Ethernet (10000 Mbit) 618 - # 619 - # CONFIG_CHELSIO_T1 is not set 620 - CONFIG_CHELSIO_T3=y 621 - # CONFIG_IXGB is not set 622 - # CONFIG_S2IO is not set 623 - # CONFIG_MYRI10GE is not set 624 - CONFIG_NETXEN_NIC=y 625 - 626 - # 627 - # Token Ring devices 628 - # 548 + # CONFIG_B44 is not set 549 + # CONFIG_ATL2 is not set 550 + # CONFIG_NETDEV_1000 is not set 551 + # CONFIG_NETDEV_10000 is not set 629 552 # CONFIG_TR is not set 630 553 631 554 # 632 - # Wireless LAN (non-hamradio) 555 + # Wireless LAN 633 556 # 634 - # CONFIG_NET_RADIO is not set 635 - 636 - # 637 - # Wan interfaces 638 - # 557 + # CONFIG_WLAN_PRE80211 is not set 558 + # CONFIG_WLAN_80211 is not set 559 + # CONFIG_IWLWIFI_LEDS is not set 639 560 # CONFIG_WAN is not set 640 561 # CONFIG_FDDI is not set 641 562 # CONFIG_HIPPI is not set 642 563 # CONFIG_PPP is not set 643 564 # CONFIG_SLIP is not set 644 565 # CONFIG_NET_FC is not set 645 - # CONFIG_SHAPER is not set 646 566 # CONFIG_NETCONSOLE is not set 647 567 # CONFIG_NETPOLL is not set 648 568 # CONFIG_NET_POLL_CONTROLLER is not set 649 - 650 - # 651 - # ISDN subsystem 652 - # 653 569 # CONFIG_ISDN is not set 654 - 655 - # 656 - # Telephony Support 657 - # 658 570 # CONFIG_PHONE is not set 659 571 660 572 # ··· 596 640 # 597 641 CONFIG_INPUT=y 598 642 # CONFIG_INPUT_FF_MEMLESS is not set 643 + # CONFIG_INPUT_POLLDEV is not set 599 644 600 645 # 601 646 # Userland interfaces ··· 606 649 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 607 650 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 608 651 # CONFIG_INPUT_JOYDEV is not set 609 - # CONFIG_INPUT_TSDEV is not set 610 - # CONFIG_INPUT_EVDEV is not set 652 + CONFIG_INPUT_EVDEV=m 611 653 # CONFIG_INPUT_EVBUG is not set 612 654 613 655 # 614 656 # Input Device Drivers 615 657 # 616 - # CONFIG_INPUT_KEYBOARD is not set 617 - # CONFIG_INPUT_MOUSE is not set 658 + CONFIG_INPUT_KEYBOARD=y 659 + CONFIG_KEYBOARD_ATKBD=y 660 + # CONFIG_KEYBOARD_SUNKBD is not set 661 + # CONFIG_KEYBOARD_LKKBD is not set 662 + # CONFIG_KEYBOARD_XTKBD is not set 663 + # CONFIG_KEYBOARD_NEWTON is not set 664 + # CONFIG_KEYBOARD_STOWAWAY is not set 665 + CONFIG_INPUT_MOUSE=y 666 + CONFIG_MOUSE_PS2=y 667 + CONFIG_MOUSE_PS2_ALPS=y 668 + CONFIG_MOUSE_PS2_LOGIPS2PP=y 669 + CONFIG_MOUSE_PS2_SYNAPTICS=y 670 + CONFIG_MOUSE_PS2_LIFEBOOK=y 671 + CONFIG_MOUSE_PS2_TRACKPOINT=y 672 + # CONFIG_MOUSE_PS2_ELANTECH is not set 673 + # CONFIG_MOUSE_PS2_TOUCHKIT is not set 674 + # CONFIG_MOUSE_SERIAL is not set 675 + # CONFIG_MOUSE_VSXXXAA is not set 618 676 # CONFIG_INPUT_JOYSTICK is not set 677 + # CONFIG_INPUT_TABLET is not set 619 678 # CONFIG_INPUT_TOUCHSCREEN is not set 620 679 # CONFIG_INPUT_MISC is not set 621 680 ··· 642 669 # CONFIG_SERIO_I8042 is not set 643 670 CONFIG_SERIO_SERPORT=y 644 671 # CONFIG_SERIO_PCIPS2 is not set 645 - # CONFIG_SERIO_MACEPS2 is not set 646 - # CONFIG_SERIO_LIBPS2 is not set 672 + CONFIG_SERIO_MACEPS2=y 673 + CONFIG_SERIO_LIBPS2=y 647 674 CONFIG_SERIO_RAW=y 648 675 # CONFIG_GAMEPORT is not set 649 676 ··· 651 678 # Character devices 652 679 # 653 680 CONFIG_VT=y 681 + # CONFIG_CONSOLE_TRANSLATIONS is not set 654 682 CONFIG_VT_CONSOLE=y 655 683 CONFIG_HW_CONSOLE=y 656 - CONFIG_VT_HW_CONSOLE_BINDING=y 684 + # CONFIG_VT_HW_CONSOLE_BINDING is not set 685 + CONFIG_DEVKMEM=y 657 686 # CONFIG_SERIAL_NONSTANDARD is not set 687 + # CONFIG_NOZOMI is not set 658 688 659 689 # 660 690 # Serial drivers ··· 678 702 CONFIG_UNIX98_PTYS=y 679 703 CONFIG_LEGACY_PTYS=y 680 704 CONFIG_LEGACY_PTY_COUNT=256 681 - 682 - # 683 - # IPMI 684 - # 685 705 # CONFIG_IPMI_HANDLER is not set 686 - 687 - # 688 - # Watchdog Cards 689 - # 690 - # CONFIG_WATCHDOG is not set 691 - # CONFIG_HW_RANDOM is not set 692 - # CONFIG_RTC is not set 693 - # CONFIG_GEN_RTC is not set 694 - # CONFIG_DTLK is not set 706 + CONFIG_HW_RANDOM=y 695 707 # CONFIG_R3964 is not set 696 708 # CONFIG_APPLICOM is not set 697 - # CONFIG_DRM is not set 698 709 # CONFIG_RAW_DRIVER is not set 699 - 700 - # 701 - # TPM devices 702 - # 703 710 # CONFIG_TCG_TPM is not set 704 - 705 - # 706 - # I2C support 707 - # 711 + CONFIG_DEVPORT=y 708 712 # CONFIG_I2C is not set 709 - 710 - # 711 - # SPI support 712 - # 713 713 # CONFIG_SPI is not set 714 - # CONFIG_SPI_MASTER is not set 715 - 716 - # 717 - # Dallas's 1-wire bus 718 - # 719 714 # CONFIG_W1 is not set 715 + # CONFIG_POWER_SUPPLY is not set 716 + CONFIG_HWMON=y 717 + # CONFIG_HWMON_VID is not set 718 + # CONFIG_SENSORS_I5K_AMB is not set 719 + # CONFIG_SENSORS_F71805F is not set 720 + # CONFIG_SENSORS_F71882FG is not set 721 + # CONFIG_SENSORS_IT87 is not set 722 + # CONFIG_SENSORS_PC87360 is not set 723 + # CONFIG_SENSORS_PC87427 is not set 724 + # CONFIG_SENSORS_SIS5595 is not set 725 + # CONFIG_SENSORS_SMSC47M1 is not set 726 + # CONFIG_SENSORS_SMSC47B397 is not set 727 + # CONFIG_SENSORS_VIA686A is not set 728 + # CONFIG_SENSORS_VT1211 is not set 729 + # CONFIG_SENSORS_VT8231 is not set 730 + # CONFIG_SENSORS_W83627HF is not set 731 + # CONFIG_SENSORS_W83627EHF is not set 732 + # CONFIG_HWMON_DEBUG_CHIP is not set 733 + # CONFIG_THERMAL is not set 734 + # CONFIG_THERMAL_HWMON is not set 735 + CONFIG_WATCHDOG=y 736 + # CONFIG_WATCHDOG_NOWAYOUT is not set 720 737 721 738 # 722 - # Hardware Monitoring support 739 + # Watchdog Device Drivers 723 740 # 724 - # CONFIG_HWMON is not set 725 - # CONFIG_HWMON_VID is not set 741 + # CONFIG_SOFT_WATCHDOG is not set 742 + # CONFIG_ALIM7101_WDT is not set 743 + 744 + # 745 + # PCI-based Watchdog Cards 746 + # 747 + # CONFIG_PCIPCWATCHDOG is not set 748 + # CONFIG_WDTPCI is not set 749 + CONFIG_SSB_POSSIBLE=y 750 + 751 + # 752 + # Sonics Silicon Backplane 753 + # 754 + # CONFIG_SSB is not set 755 + 756 + # 757 + # Multifunction device drivers 758 + # 759 + # CONFIG_MFD_CORE is not set 760 + # CONFIG_MFD_SM501 is not set 761 + # CONFIG_HTC_PASIC3 is not set 762 + # CONFIG_MFD_TMIO is not set 763 + # CONFIG_REGULATOR is not set 726 764 727 765 # 728 766 # Multimedia devices 729 767 # 730 - # CONFIG_VIDEO_DEV is not set 731 768 732 769 # 733 - # Digital Video Broadcasting Devices 770 + # Multimedia core support 734 771 # 735 - # CONFIG_DVB is not set 772 + CONFIG_VIDEO_DEV=m 773 + CONFIG_VIDEO_V4L2_COMMON=m 774 + CONFIG_VIDEO_ALLOW_V4L1=y 775 + CONFIG_VIDEO_V4L1_COMPAT=y 776 + # CONFIG_DVB_CORE is not set 777 + CONFIG_VIDEO_MEDIA=m 778 + 779 + # 780 + # Multimedia drivers 781 + # 782 + # CONFIG_MEDIA_ATTACH is not set 783 + CONFIG_VIDEO_V4L2=m 784 + CONFIG_VIDEO_V4L1=m 785 + CONFIG_VIDEOBUF_GEN=m 786 + CONFIG_VIDEOBUF_VMALLOC=m 787 + CONFIG_VIDEO_CAPTURE_DRIVERS=y 788 + # CONFIG_VIDEO_ADV_DEBUG is not set 789 + # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 790 + CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 791 + CONFIG_VIDEO_VIVI=m 792 + # CONFIG_VIDEO_CPIA is not set 793 + # CONFIG_VIDEO_STRADIS is not set 794 + # CONFIG_SOC_CAMERA is not set 795 + CONFIG_RADIO_ADAPTERS=y 796 + # CONFIG_RADIO_GEMTEK_PCI is not set 797 + # CONFIG_RADIO_MAXIRADIO is not set 798 + # CONFIG_RADIO_MAESTRO is not set 799 + CONFIG_DAB=y 736 800 737 801 # 738 802 # Graphics support 739 803 # 740 - # CONFIG_FIRMWARE_EDID is not set 741 - # CONFIG_FB is not set 804 + # CONFIG_DRM is not set 805 + # CONFIG_VGASTATE is not set 806 + CONFIG_VIDEO_OUTPUT_CONTROL=y 807 + CONFIG_FB=y 808 + CONFIG_FIRMWARE_EDID=y 809 + # CONFIG_FB_DDC is not set 810 + # CONFIG_FB_BOOT_VESA_SUPPORT is not set 811 + CONFIG_FB_CFB_FILLRECT=y 812 + CONFIG_FB_CFB_COPYAREA=y 813 + CONFIG_FB_CFB_IMAGEBLIT=y 814 + # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 815 + # CONFIG_FB_SYS_FILLRECT is not set 816 + # CONFIG_FB_SYS_COPYAREA is not set 817 + # CONFIG_FB_SYS_IMAGEBLIT is not set 818 + # CONFIG_FB_FOREIGN_ENDIAN is not set 819 + # CONFIG_FB_SYS_FOPS is not set 820 + # CONFIG_FB_SVGALIB is not set 821 + # CONFIG_FB_MACMODES is not set 822 + # CONFIG_FB_BACKLIGHT is not set 823 + # CONFIG_FB_MODE_HELPERS is not set 824 + # CONFIG_FB_TILEBLITTING is not set 825 + 826 + # 827 + # Frame buffer hardware drivers 828 + # 829 + # CONFIG_FB_CIRRUS is not set 830 + # CONFIG_FB_PM2 is not set 831 + # CONFIG_FB_CYBER2000 is not set 832 + # CONFIG_FB_ASILIANT is not set 833 + # CONFIG_FB_IMSTT is not set 834 + # CONFIG_FB_UVESA is not set 835 + CONFIG_FB_GBE=y 836 + CONFIG_FB_GBE_MEM=4 837 + # CONFIG_FB_S1D13XXX is not set 838 + # CONFIG_FB_NVIDIA is not set 839 + # CONFIG_FB_RIVA is not set 840 + # CONFIG_FB_MATROX is not set 841 + # CONFIG_FB_RADEON is not set 842 + # CONFIG_FB_ATY128 is not set 843 + # CONFIG_FB_ATY is not set 844 + # CONFIG_FB_S3 is not set 845 + # CONFIG_FB_SAVAGE is not set 846 + # CONFIG_FB_SIS is not set 847 + # CONFIG_FB_VIA is not set 848 + # CONFIG_FB_NEOMAGIC is not set 849 + # CONFIG_FB_KYRO is not set 850 + # CONFIG_FB_3DFX is not set 851 + # CONFIG_FB_VOODOO1 is not set 852 + # CONFIG_FB_VT8623 is not set 853 + # CONFIG_FB_TRIDENT is not set 854 + # CONFIG_FB_ARK is not set 855 + # CONFIG_FB_PM3 is not set 856 + # CONFIG_FB_CARMINE is not set 857 + # CONFIG_FB_VIRTUAL is not set 858 + # CONFIG_FB_METRONOME is not set 859 + # CONFIG_FB_MB862XX is not set 860 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 861 + 862 + # 863 + # Display device support 864 + # 865 + # CONFIG_DISPLAY_SUPPORT is not set 742 866 743 867 # 744 868 # Console display driver support 745 869 # 746 870 # CONFIG_VGA_CONSOLE is not set 747 871 CONFIG_DUMMY_CONSOLE=y 748 - # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 749 - 750 - # 751 - # Sound 752 - # 872 + CONFIG_FRAMEBUFFER_CONSOLE=y 873 + # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 874 + # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 875 + CONFIG_FONTS=y 876 + CONFIG_FONT_8x8=y 877 + CONFIG_FONT_8x16=y 878 + # CONFIG_FONT_6x11 is not set 879 + # CONFIG_FONT_7x14 is not set 880 + # CONFIG_FONT_PEARL_8x8 is not set 881 + # CONFIG_FONT_ACORN_8x8 is not set 882 + # CONFIG_FONT_MINI_4x6 is not set 883 + # CONFIG_FONT_SUN8x16 is not set 884 + # CONFIG_FONT_SUN12x22 is not set 885 + # CONFIG_FONT_10x18 is not set 886 + CONFIG_LOGO=y 887 + # CONFIG_LOGO_LINUX_MONO is not set 888 + # CONFIG_LOGO_LINUX_VGA16 is not set 889 + # CONFIG_LOGO_LINUX_CLUT224 is not set 890 + CONFIG_LOGO_SGI_CLUT224=y 753 891 # CONFIG_SOUND is not set 754 - 755 - # 756 - # HID Devices 757 - # 892 + CONFIG_HID_SUPPORT=y 758 893 CONFIG_HID=y 759 894 # CONFIG_HID_DEBUG is not set 895 + # CONFIG_HIDRAW is not set 896 + # CONFIG_HID_PID is not set 760 897 761 898 # 762 - # USB support 899 + # Special HID drivers 763 900 # 764 - CONFIG_USB_ARCH_HAS_HCD=y 765 - CONFIG_USB_ARCH_HAS_OHCI=y 766 - CONFIG_USB_ARCH_HAS_EHCI=y 767 - # CONFIG_USB is not set 768 - 769 - # 770 - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 771 - # 772 - 773 - # 774 - # USB Gadget Support 775 - # 776 - # CONFIG_USB_GADGET is not set 777 - 778 - # 779 - # MMC/SD Card support 780 - # 901 + CONFIG_HID_COMPAT=y 902 + # CONFIG_USB_SUPPORT is not set 903 + # CONFIG_UWB is not set 781 904 # CONFIG_MMC is not set 782 - 783 - # 784 - # LED devices 785 - # 905 + # CONFIG_MEMSTICK is not set 786 906 # CONFIG_NEW_LEDS is not set 787 - 788 - # 789 - # LED drivers 790 - # 791 - 792 - # 793 - # LED Triggers 794 - # 795 - 796 - # 797 - # InfiniBand support 798 - # 907 + # CONFIG_ACCESSIBILITY is not set 799 908 # CONFIG_INFINIBAND is not set 909 + CONFIG_RTC_LIB=y 910 + CONFIG_RTC_CLASS=y 911 + # CONFIG_RTC_HCTOSYS is not set 912 + # CONFIG_RTC_DEBUG is not set 800 913 801 914 # 802 - # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 915 + # RTC interfaces 803 916 # 917 + # CONFIG_RTC_INTF_SYSFS is not set 918 + # CONFIG_RTC_INTF_PROC is not set 919 + CONFIG_RTC_INTF_DEV=y 920 + # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set 921 + # CONFIG_RTC_DRV_TEST is not set 804 922 805 923 # 806 - # Real Time Clock 807 - # 808 - # CONFIG_RTC_CLASS is not set 809 - 810 - # 811 - # DMA Engine support 812 - # 813 - # CONFIG_DMA_ENGINE is not set 814 - 815 - # 816 - # DMA Clients 817 - # 818 - 819 - # 820 - # DMA Devices 924 + # SPI RTC drivers 821 925 # 822 926 823 927 # 824 - # Auxiliary Display support 928 + # Platform RTC drivers 825 929 # 930 + CONFIG_RTC_DRV_CMOS=y 931 + # CONFIG_RTC_DRV_DS1286 is not set 932 + # CONFIG_RTC_DRV_DS1511 is not set 933 + # CONFIG_RTC_DRV_DS1553 is not set 934 + # CONFIG_RTC_DRV_DS1742 is not set 935 + # CONFIG_RTC_DRV_STK17TA8 is not set 936 + # CONFIG_RTC_DRV_M48T86 is not set 937 + # CONFIG_RTC_DRV_M48T35 is not set 938 + # CONFIG_RTC_DRV_M48T59 is not set 939 + # CONFIG_RTC_DRV_BQ4802 is not set 940 + # CONFIG_RTC_DRV_V3020 is not set 826 941 827 942 # 828 - # Virtualization 943 + # on-CPU RTC drivers 829 944 # 945 + # CONFIG_DMADEVICES is not set 946 + # CONFIG_UIO is not set 947 + # CONFIG_STAGING is not set 948 + CONFIG_STAGING_EXCLUDE_BUILD=y 830 949 831 950 # 832 951 # File systems 833 952 # 834 953 CONFIG_EXT2_FS=y 835 - # CONFIG_EXT2_FS_XATTR is not set 954 + CONFIG_EXT2_FS_XATTR=y 955 + CONFIG_EXT2_FS_POSIX_ACL=y 956 + CONFIG_EXT2_FS_SECURITY=y 836 957 # CONFIG_EXT2_FS_XIP is not set 837 - # CONFIG_EXT3_FS is not set 838 - # CONFIG_EXT4DEV_FS is not set 958 + CONFIG_EXT3_FS=y 959 + CONFIG_EXT3_FS_XATTR=y 960 + CONFIG_EXT3_FS_POSIX_ACL=y 961 + CONFIG_EXT3_FS_SECURITY=y 962 + # CONFIG_EXT4_FS is not set 963 + CONFIG_JBD=y 964 + CONFIG_FS_MBCACHE=y 839 965 # CONFIG_REISERFS_FS is not set 840 966 # CONFIG_JFS_FS is not set 841 967 CONFIG_FS_POSIX_ACL=y 968 + CONFIG_FILE_LOCKING=y 842 969 # CONFIG_XFS_FS is not set 843 970 # CONFIG_GFS2_FS is not set 844 971 # CONFIG_OCFS2_FS is not set 845 - # CONFIG_MINIX_FS is not set 846 - # CONFIG_ROMFS_FS is not set 972 + CONFIG_DNOTIFY=y 847 973 CONFIG_INOTIFY=y 848 974 CONFIG_INOTIFY_USER=y 849 - # CONFIG_QUOTA is not set 850 - CONFIG_DNOTIFY=y 851 - # CONFIG_AUTOFS_FS is not set 852 - # CONFIG_AUTOFS4_FS is not set 853 - CONFIG_FUSE_FS=y 975 + CONFIG_QUOTA=y 976 + # CONFIG_QUOTA_NETLINK_INTERFACE is not set 977 + CONFIG_PRINT_QUOTA_WARNING=y 978 + CONFIG_QFMT_V1=m 979 + CONFIG_QFMT_V2=m 980 + CONFIG_QUOTACTL=y 981 + CONFIG_AUTOFS_FS=m 982 + CONFIG_AUTOFS4_FS=m 983 + CONFIG_FUSE_FS=m 854 984 CONFIG_GENERIC_ACL=y 855 985 856 986 # 857 987 # CD-ROM/DVD Filesystems 858 988 # 859 - # CONFIG_ISO9660_FS is not set 860 - # CONFIG_UDF_FS is not set 989 + CONFIG_ISO9660_FS=m 990 + CONFIG_JOLIET=y 991 + CONFIG_ZISOFS=y 992 + CONFIG_UDF_FS=m 993 + CONFIG_UDF_NLS=y 861 994 862 995 # 863 996 # DOS/FAT/NT Filesystems 864 997 # 865 - # CONFIG_MSDOS_FS is not set 866 - # CONFIG_VFAT_FS is not set 998 + CONFIG_FAT_FS=m 999 + CONFIG_MSDOS_FS=m 1000 + CONFIG_VFAT_FS=m 1001 + CONFIG_FAT_DEFAULT_CODEPAGE=437 1002 + CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 867 1003 # CONFIG_NTFS_FS is not set 868 1004 869 1005 # ··· 984 896 CONFIG_PROC_FS=y 985 897 CONFIG_PROC_KCORE=y 986 898 CONFIG_PROC_SYSCTL=y 899 + CONFIG_PROC_PAGE_MONITOR=y 987 900 CONFIG_SYSFS=y 988 901 CONFIG_TMPFS=y 989 902 CONFIG_TMPFS_POSIX_ACL=y 990 903 # CONFIG_HUGETLB_PAGE is not set 991 - CONFIG_RAMFS=y 992 904 CONFIG_CONFIGFS_FS=y 993 905 994 906 # ··· 1004 916 # CONFIG_EFS_FS is not set 1005 917 # CONFIG_CRAMFS is not set 1006 918 # CONFIG_VXFS_FS is not set 919 + # CONFIG_MINIX_FS is not set 920 + # CONFIG_OMFS_FS is not set 1007 921 # CONFIG_HPFS_FS is not set 1008 922 # CONFIG_QNX4FS_FS is not set 923 + # CONFIG_ROMFS_FS is not set 1009 924 # CONFIG_SYSV_FS is not set 1010 925 # CONFIG_UFS_FS is not set 1011 - 1012 - # 1013 - # Network File Systems 1014 - # 926 + CONFIG_NETWORK_FILESYSTEMS=y 1015 927 CONFIG_NFS_FS=y 1016 928 CONFIG_NFS_V3=y 1017 929 # CONFIG_NFS_V3_ACL is not set 1018 930 # CONFIG_NFS_V4 is not set 1019 - # CONFIG_NFS_DIRECTIO is not set 1020 - # CONFIG_NFSD is not set 1021 931 CONFIG_ROOT_NFS=y 932 + CONFIG_NFSD=m 933 + CONFIG_NFSD_V3=y 934 + # CONFIG_NFSD_V3_ACL is not set 935 + # CONFIG_NFSD_V4 is not set 1022 936 CONFIG_LOCKD=y 1023 937 CONFIG_LOCKD_V4=y 938 + CONFIG_EXPORTFS=m 1024 939 CONFIG_NFS_COMMON=y 1025 940 CONFIG_SUNRPC=y 941 + # CONFIG_SUNRPC_REGISTER_V4 is not set 1026 942 # CONFIG_RPCSEC_GSS_KRB5 is not set 1027 943 # CONFIG_RPCSEC_GSS_SPKM3 is not set 1028 944 # CONFIG_SMB_FS is not set 1029 - # CONFIG_CIFS is not set 945 + CONFIG_CIFS=m 946 + # CONFIG_CIFS_STATS is not set 947 + # CONFIG_CIFS_WEAK_PW_HASH is not set 948 + # CONFIG_CIFS_UPCALL is not set 949 + # CONFIG_CIFS_XATTR is not set 950 + # CONFIG_CIFS_DEBUG2 is not set 951 + # CONFIG_CIFS_EXPERIMENTAL is not set 1030 952 # CONFIG_NCP_FS is not set 1031 953 # CONFIG_CODA_FS is not set 1032 954 # CONFIG_AFS_FS is not set 1033 - # CONFIG_9P_FS is not set 1034 955 1035 956 # 1036 957 # Partition Types ··· 1050 953 # CONFIG_AMIGA_PARTITION is not set 1051 954 # CONFIG_ATARI_PARTITION is not set 1052 955 # CONFIG_MAC_PARTITION is not set 1053 - # CONFIG_MSDOS_PARTITION is not set 956 + CONFIG_MSDOS_PARTITION=y 957 + # CONFIG_BSD_DISKLABEL is not set 958 + # CONFIG_MINIX_SUBPARTITION is not set 959 + # CONFIG_SOLARIS_X86_PARTITION is not set 960 + # CONFIG_UNIXWARE_DISKLABEL is not set 1054 961 # CONFIG_LDM_PARTITION is not set 1055 962 CONFIG_SGI_PARTITION=y 1056 963 # CONFIG_ULTRIX_PARTITION is not set 1057 964 # CONFIG_SUN_PARTITION is not set 1058 965 # CONFIG_KARMA_PARTITION is not set 1059 966 # CONFIG_EFI_PARTITION is not set 1060 - 1061 - # 1062 - # Native Language Support 1063 - # 1064 - # CONFIG_NLS is not set 1065 - 1066 - # 1067 - # Distributed Lock Manager 1068 - # 1069 - CONFIG_DLM=y 1070 - CONFIG_DLM_TCP=y 1071 - # CONFIG_DLM_SCTP is not set 1072 - # CONFIG_DLM_DEBUG is not set 1073 - 1074 - # 1075 - # Profiling support 1076 - # 1077 - # CONFIG_PROFILING is not set 967 + # CONFIG_SYSV68_PARTITION is not set 968 + CONFIG_NLS=y 969 + CONFIG_NLS_DEFAULT="iso8859-1" 970 + CONFIG_NLS_CODEPAGE_437=m 971 + CONFIG_NLS_CODEPAGE_737=m 972 + CONFIG_NLS_CODEPAGE_775=m 973 + CONFIG_NLS_CODEPAGE_850=m 974 + CONFIG_NLS_CODEPAGE_852=m 975 + CONFIG_NLS_CODEPAGE_855=m 976 + CONFIG_NLS_CODEPAGE_857=m 977 + CONFIG_NLS_CODEPAGE_860=m 978 + CONFIG_NLS_CODEPAGE_861=m 979 + CONFIG_NLS_CODEPAGE_862=m 980 + CONFIG_NLS_CODEPAGE_863=m 981 + CONFIG_NLS_CODEPAGE_864=m 982 + CONFIG_NLS_CODEPAGE_865=m 983 + CONFIG_NLS_CODEPAGE_866=m 984 + CONFIG_NLS_CODEPAGE_869=m 985 + CONFIG_NLS_CODEPAGE_936=m 986 + CONFIG_NLS_CODEPAGE_950=m 987 + CONFIG_NLS_CODEPAGE_932=m 988 + CONFIG_NLS_CODEPAGE_949=m 989 + CONFIG_NLS_CODEPAGE_874=m 990 + CONFIG_NLS_ISO8859_8=m 991 + CONFIG_NLS_CODEPAGE_1250=m 992 + CONFIG_NLS_CODEPAGE_1251=m 993 + CONFIG_NLS_ASCII=m 994 + CONFIG_NLS_ISO8859_1=m 995 + CONFIG_NLS_ISO8859_2=m 996 + CONFIG_NLS_ISO8859_3=m 997 + CONFIG_NLS_ISO8859_4=m 998 + CONFIG_NLS_ISO8859_5=m 999 + CONFIG_NLS_ISO8859_6=m 1000 + CONFIG_NLS_ISO8859_7=m 1001 + CONFIG_NLS_ISO8859_9=m 1002 + CONFIG_NLS_ISO8859_13=m 1003 + CONFIG_NLS_ISO8859_14=m 1004 + CONFIG_NLS_ISO8859_15=m 1005 + CONFIG_NLS_KOI8_R=m 1006 + CONFIG_NLS_KOI8_U=m 1007 + CONFIG_NLS_UTF8=m 1008 + # CONFIG_DLM is not set 1078 1009 1079 1010 # 1080 1011 # Kernel hacking 1081 1012 # 1082 1013 CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1083 1014 # CONFIG_PRINTK_TIME is not set 1015 + CONFIG_ENABLE_WARN_DEPRECATED=y 1084 1016 CONFIG_ENABLE_MUST_CHECK=y 1085 - # CONFIG_MAGIC_SYSRQ is not set 1017 + CONFIG_FRAME_WARN=2048 1018 + CONFIG_MAGIC_SYSRQ=y 1086 1019 # CONFIG_UNUSED_SYMBOLS is not set 1087 1020 # CONFIG_DEBUG_FS is not set 1088 1021 # CONFIG_HEADERS_CHECK is not set 1089 1022 # CONFIG_DEBUG_KERNEL is not set 1090 - CONFIG_LOG_BUF_SHIFT=14 1091 - CONFIG_CROSSCOMPILE=y 1023 + # CONFIG_DEBUG_MEMORY_INIT is not set 1024 + # CONFIG_RCU_CPU_STALL_DETECTOR is not set 1025 + CONFIG_SYSCTL_SYSCALL_CHECK=y 1026 + 1027 + # 1028 + # Tracers 1029 + # 1030 + # CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1031 + # CONFIG_SAMPLES is not set 1032 + CONFIG_HAVE_ARCH_KGDB=y 1092 1033 CONFIG_CMDLINE="" 1093 1034 1094 1035 # ··· 1135 1000 CONFIG_KEYS=y 1136 1001 CONFIG_KEYS_DEBUG_PROC_KEYS=y 1137 1002 # CONFIG_SECURITY is not set 1003 + # CONFIG_SECURITYFS is not set 1004 + # CONFIG_SECURITY_FILE_CAPABILITIES is not set 1005 + CONFIG_CRYPTO=y 1138 1006 1139 1007 # 1140 - # Cryptographic options 1008 + # Crypto core or helper 1141 1009 # 1142 - CONFIG_CRYPTO=y 1010 + # CONFIG_CRYPTO_FIPS is not set 1143 1011 CONFIG_CRYPTO_ALGAPI=y 1012 + CONFIG_CRYPTO_AEAD=y 1144 1013 CONFIG_CRYPTO_BLKCIPHER=y 1145 1014 CONFIG_CRYPTO_HASH=y 1015 + CONFIG_CRYPTO_RNG=y 1146 1016 CONFIG_CRYPTO_MANAGER=y 1017 + CONFIG_CRYPTO_GF128MUL=y 1018 + CONFIG_CRYPTO_NULL=y 1019 + # CONFIG_CRYPTO_CRYPTD is not set 1020 + CONFIG_CRYPTO_AUTHENC=m 1021 + # CONFIG_CRYPTO_TEST is not set 1022 + 1023 + # 1024 + # Authenticated Encryption with Associated Data 1025 + # 1026 + # CONFIG_CRYPTO_CCM is not set 1027 + # CONFIG_CRYPTO_GCM is not set 1028 + # CONFIG_CRYPTO_SEQIV is not set 1029 + 1030 + # 1031 + # Block modes 1032 + # 1033 + CONFIG_CRYPTO_CBC=y 1034 + # CONFIG_CRYPTO_CTR is not set 1035 + # CONFIG_CRYPTO_CTS is not set 1036 + CONFIG_CRYPTO_ECB=y 1037 + CONFIG_CRYPTO_LRW=y 1038 + CONFIG_CRYPTO_PCBC=y 1039 + # CONFIG_CRYPTO_XTS is not set 1040 + 1041 + # 1042 + # Hash modes 1043 + # 1147 1044 CONFIG_CRYPTO_HMAC=y 1148 1045 CONFIG_CRYPTO_XCBC=y 1149 - CONFIG_CRYPTO_NULL=y 1046 + 1047 + # 1048 + # Digest 1049 + # 1050 + CONFIG_CRYPTO_CRC32C=y 1150 1051 CONFIG_CRYPTO_MD4=y 1151 1052 CONFIG_CRYPTO_MD5=y 1053 + CONFIG_CRYPTO_MICHAEL_MIC=y 1054 + # CONFIG_CRYPTO_RMD128 is not set 1055 + # CONFIG_CRYPTO_RMD160 is not set 1056 + # CONFIG_CRYPTO_RMD256 is not set 1057 + # CONFIG_CRYPTO_RMD320 is not set 1152 1058 CONFIG_CRYPTO_SHA1=y 1153 1059 CONFIG_CRYPTO_SHA256=y 1154 1060 CONFIG_CRYPTO_SHA512=y 1155 - CONFIG_CRYPTO_WP512=y 1156 1061 CONFIG_CRYPTO_TGR192=y 1157 - CONFIG_CRYPTO_GF128MUL=y 1158 - CONFIG_CRYPTO_ECB=y 1159 - CONFIG_CRYPTO_CBC=y 1160 - CONFIG_CRYPTO_PCBC=y 1161 - CONFIG_CRYPTO_LRW=y 1162 - CONFIG_CRYPTO_DES=y 1163 - CONFIG_CRYPTO_FCRYPT=y 1164 - CONFIG_CRYPTO_BLOWFISH=y 1165 - CONFIG_CRYPTO_TWOFISH=y 1166 - CONFIG_CRYPTO_TWOFISH_COMMON=y 1167 - CONFIG_CRYPTO_SERPENT=y 1168 - CONFIG_CRYPTO_AES=y 1169 - CONFIG_CRYPTO_CAST5=y 1170 - CONFIG_CRYPTO_CAST6=y 1171 - CONFIG_CRYPTO_TEA=y 1172 - CONFIG_CRYPTO_ARC4=y 1173 - CONFIG_CRYPTO_KHAZAD=y 1174 - CONFIG_CRYPTO_ANUBIS=y 1175 - CONFIG_CRYPTO_DEFLATE=y 1176 - CONFIG_CRYPTO_MICHAEL_MIC=y 1177 - CONFIG_CRYPTO_CRC32C=y 1178 - CONFIG_CRYPTO_CAMELLIA=y 1062 + CONFIG_CRYPTO_WP512=y 1179 1063 1180 1064 # 1181 - # Hardware crypto devices 1065 + # Ciphers 1182 1066 # 1067 + CONFIG_CRYPTO_AES=y 1068 + CONFIG_CRYPTO_ANUBIS=y 1069 + CONFIG_CRYPTO_ARC4=y 1070 + CONFIG_CRYPTO_BLOWFISH=y 1071 + CONFIG_CRYPTO_CAMELLIA=y 1072 + CONFIG_CRYPTO_CAST5=y 1073 + CONFIG_CRYPTO_CAST6=y 1074 + CONFIG_CRYPTO_DES=y 1075 + CONFIG_CRYPTO_FCRYPT=y 1076 + CONFIG_CRYPTO_KHAZAD=y 1077 + # CONFIG_CRYPTO_SALSA20 is not set 1078 + # CONFIG_CRYPTO_SEED is not set 1079 + CONFIG_CRYPTO_SERPENT=y 1080 + CONFIG_CRYPTO_TEA=y 1081 + CONFIG_CRYPTO_TWOFISH=y 1082 + CONFIG_CRYPTO_TWOFISH_COMMON=y 1083 + 1084 + # 1085 + # Compression 1086 + # 1087 + CONFIG_CRYPTO_DEFLATE=y 1088 + # CONFIG_CRYPTO_LZO is not set 1089 + 1090 + # 1091 + # Random Number Generation 1092 + # 1093 + # CONFIG_CRYPTO_ANSI_CPRNG is not set 1094 + CONFIG_CRYPTO_HW=y 1095 + # CONFIG_CRYPTO_DEV_HIFN_795X is not set 1183 1096 1184 1097 # 1185 1098 # Library routines ··· 1235 1052 CONFIG_BITREVERSE=y 1236 1053 # CONFIG_CRC_CCITT is not set 1237 1054 CONFIG_CRC16=y 1055 + CONFIG_CRC_T10DIF=y 1056 + CONFIG_CRC_ITU_T=m 1238 1057 CONFIG_CRC32=y 1058 + # CONFIG_CRC7 is not set 1239 1059 CONFIG_LIBCRC32C=y 1060 + CONFIG_AUDIT_GENERIC=y 1240 1061 CONFIG_ZLIB_INFLATE=y 1241 1062 CONFIG_ZLIB_DEFLATE=y 1242 1063 CONFIG_PLIST=y 1243 1064 CONFIG_HAS_IOMEM=y 1244 1065 CONFIG_HAS_IOPORT=y 1066 + CONFIG_HAS_DMA=y
+10
arch/mips/include/asm/asmmacro.h
··· 35 35 mtc0 \reg, CP0_TCSTATUS 36 36 _ehb 37 37 .endm 38 + #elif defined(CONFIG_CPU_MIPSR2) 39 + .macro local_irq_enable reg=t0 40 + ei 41 + irq_enable_hazard 42 + .endm 43 + 44 + .macro local_irq_disable reg=t0 45 + di 46 + irq_disable_hazard 47 + .endm 38 48 #else 39 49 .macro local_irq_enable reg=t0 40 50 mfc0 \reg, CP0_STATUS
+3
arch/mips/mm/dma-default.c
··· 111 111 void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr, 112 112 dma_addr_t dma_handle) 113 113 { 114 + plat_unmap_dma_mem(dma_handle); 114 115 free_pages((unsigned long) vaddr, get_order(size)); 115 116 } 116 117 ··· 121 120 dma_addr_t dma_handle) 122 121 { 123 122 unsigned long addr = (unsigned long) vaddr; 123 + 124 + plat_unmap_dma_mem(dma_handle); 124 125 125 126 if (!plat_device_is_coherent(dev)) 126 127 addr = CAC_ADDR(addr);
+1
arch/powerpc/boot/Makefile
··· 41 41 $(obj)/ebony.o: BOOTCFLAGS += -mcpu=405 42 42 $(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405 43 43 $(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405 44 + $(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405 44 45 $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 45 46 $(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 46 47
+3
arch/powerpc/kernel/misc_32.S
··· 479 479 * (no broadcast) 480 480 */ 481 481 _GLOBAL(_tlbil_va) 482 + mfmsr r10 483 + wrteei 0 482 484 slwi r4,r4,16 483 485 mtspr SPRN_MAS6,r4 /* assume AS=0 for now */ 484 486 tlbsx 0,r3 ··· 492 490 tlbwe 493 491 msync 494 492 isync 493 + wrtee r10 495 494 blr 496 495 #endif /* CONFIG_FSL_BOOKE */ 497 496
+7 -1
arch/x86/include/asm/vmi.h
··· 223 223 } __attribute__((packed)); 224 224 225 225 /* Function prototypes for bootstrapping */ 226 + #ifdef CONFIG_VMI 226 227 extern void vmi_init(void); 228 + extern void vmi_activate(void); 227 229 extern void vmi_bringup(void); 228 - extern void vmi_apply_boot_page_allocations(void); 230 + #else 231 + static inline void vmi_init(void) {} 232 + static inline void vmi_activate(void) {} 233 + static inline void vmi_bringup(void) {} 234 + #endif 229 235 230 236 /* State needed to start an application processor in an SMP system. */ 231 237 struct vmi_ap_state {
+5 -7
arch/x86/kernel/setup.c
··· 794 794 printk(KERN_INFO "Command line: %s\n", boot_command_line); 795 795 #endif 796 796 797 + /* VMI may relocate the fixmap; do this before touching ioremap area */ 798 + vmi_init(); 799 + 797 800 early_cpu_init(); 798 801 early_ioremap_init(); 799 802 ··· 883 880 check_efer(); 884 881 #endif 885 882 886 - #if defined(CONFIG_VMI) && defined(CONFIG_X86_32) 887 - /* 888 - * Must be before kernel pagetables are setup 889 - * or fixmap area is touched. 890 - */ 891 - vmi_init(); 892 - #endif 883 + /* Must be before kernel pagetables are setup */ 884 + vmi_activate(); 893 885 894 886 /* after early param, so could get panic from serial */ 895 887 reserve_early_setup_data();
-2
arch/x86/kernel/smpboot.c
··· 294 294 * fragile that we want to limit the things done here to the 295 295 * most necessary things. 296 296 */ 297 - #ifdef CONFIG_VMI 298 297 vmi_bringup(); 299 - #endif 300 298 cpu_init(); 301 299 preempt_disable(); 302 300 smp_callin();
+11 -5
arch/x86/kernel/vmi_32.c
··· 960 960 961 961 void __init vmi_init(void) 962 962 { 963 - unsigned long flags; 964 - 965 963 if (!vmi_rom) 966 964 probe_vmi_rom(); 967 965 else ··· 971 973 972 974 reserve_top_address(-vmi_rom->virtual_top); 973 975 974 - local_irq_save(flags); 975 - activate_vmi(); 976 - 977 976 #ifdef CONFIG_X86_IO_APIC 978 977 /* This is virtual hardware; timer routing is wired correctly */ 979 978 no_timer_check = 1; 980 979 #endif 980 + } 981 + 982 + void vmi_activate(void) 983 + { 984 + unsigned long flags; 985 + 986 + if (!vmi_rom) 987 + return; 988 + 989 + local_irq_save(flags); 990 + activate_vmi(); 981 991 local_irq_restore(flags & X86_EFLAGS_IF); 982 992 } 983 993
+27 -23
drivers/acpi/toshiba_acpi.c
··· 824 824 toshiba_acpi_exit(); 825 825 return -ENOMEM; 826 826 } 827 - } 828 827 829 - /* Register input device for kill switch */ 830 - toshiba_acpi.poll_dev = input_allocate_polled_device(); 831 - if (!toshiba_acpi.poll_dev) { 832 - printk(MY_ERR "unable to allocate kill-switch input device\n"); 833 - toshiba_acpi_exit(); 834 - return -ENOMEM; 835 - } 836 - toshiba_acpi.poll_dev->private = &toshiba_acpi; 837 - toshiba_acpi.poll_dev->poll = bt_poll_rfkill; 838 - toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */ 828 + /* Register input device for kill switch */ 829 + toshiba_acpi.poll_dev = input_allocate_polled_device(); 830 + if (!toshiba_acpi.poll_dev) { 831 + printk(MY_ERR 832 + "unable to allocate kill-switch input device\n"); 833 + toshiba_acpi_exit(); 834 + return -ENOMEM; 835 + } 836 + toshiba_acpi.poll_dev->private = &toshiba_acpi; 837 + toshiba_acpi.poll_dev->poll = bt_poll_rfkill; 838 + toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */ 839 839 840 - toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name; 841 - toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST; 842 - toshiba_acpi.poll_dev->input->id.vendor = 0x0930; /* Toshiba USB ID */ 843 - set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit); 844 - set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit); 845 - input_report_switch(toshiba_acpi.poll_dev->input, SW_RFKILL_ALL, TRUE); 846 - input_sync(toshiba_acpi.poll_dev->input); 840 + toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name; 841 + toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST; 842 + /* Toshiba USB ID */ 843 + toshiba_acpi.poll_dev->input->id.vendor = 0x0930; 844 + set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit); 845 + set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit); 846 + input_report_switch(toshiba_acpi.poll_dev->input, 847 + SW_RFKILL_ALL, TRUE); 848 + input_sync(toshiba_acpi.poll_dev->input); 847 849 848 - ret = input_register_polled_device(toshiba_acpi.poll_dev); 849 - if (ret) { 850 - printk(MY_ERR "unable to register kill-switch input device\n"); 851 - toshiba_acpi_exit(); 852 - return ret; 850 + ret = input_register_polled_device(toshiba_acpi.poll_dev); 851 + if (ret) { 852 + printk(MY_ERR 853 + "unable to register kill-switch input device\n"); 854 + toshiba_acpi_exit(); 855 + return ret; 856 + } 853 857 } 854 858 855 859 return 0;
+11 -7
drivers/cdrom/cdrom.c
··· 2081 2081 if (!q) 2082 2082 return -ENXIO; 2083 2083 2084 - rq = blk_get_request(q, READ, GFP_KERNEL); 2085 - if (!rq) 2086 - return -ENOMEM; 2087 - 2088 2084 cdi->last_sense = 0; 2089 2085 2090 2086 while (nframes) { ··· 2092 2096 2093 2097 len = nr * CD_FRAMESIZE_RAW; 2094 2098 2095 - ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL); 2096 - if (ret) 2099 + rq = blk_get_request(q, READ, GFP_KERNEL); 2100 + if (!rq) { 2101 + ret = -ENOMEM; 2097 2102 break; 2103 + } 2104 + 2105 + ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL); 2106 + if (ret) { 2107 + blk_put_request(rq); 2108 + break; 2109 + } 2098 2110 2099 2111 rq->cmd[0] = GPCMD_READ_CD; 2100 2112 rq->cmd[1] = 1 << 2; ··· 2128 2124 2129 2125 if (blk_rq_unmap_user(bio)) 2130 2126 ret = -EFAULT; 2127 + blk_put_request(rq); 2131 2128 2132 2129 if (ret) 2133 2130 break; ··· 2138 2133 ubuf += len; 2139 2134 } 2140 2135 2141 - blk_put_request(rq); 2142 2136 return ret; 2143 2137 } 2144 2138
+6 -6
drivers/char/cp437.uni
··· 27 27 0x0c U+2640 28 28 0x0d U+266a 29 29 0x0e U+266b 30 - 0x0f U+263c 30 + 0x0f U+263c U+00a4 31 31 0x10 U+25b6 U+25ba 32 32 0x11 U+25c0 U+25c4 33 33 0x12 U+2195 ··· 55 55 0x24 U+0024 56 56 0x25 U+0025 57 57 0x26 U+0026 58 - 0x27 U+0027 58 + 0x27 U+0027 U+00b4 59 59 0x28 U+0028 60 60 0x29 U+0029 61 61 0x2a U+002a ··· 84 84 0x41 U+0041 U+00c0 U+00c1 U+00c2 U+00c3 85 85 0x42 U+0042 86 86 0x43 U+0043 U+00a9 87 - 0x44 U+0044 87 + 0x44 U+0044 U+00d0 88 88 0x45 U+0045 U+00c8 U+00ca U+00cb 89 89 0x46 U+0046 90 90 0x47 U+0047 ··· 140 140 0x79 U+0079 U+00fd 141 141 0x7a U+007a 142 142 0x7b U+007b 143 - 0x7c U+007c U+00a5 143 + 0x7c U+007c U+00a6 144 144 0x7d U+007d 145 145 0x7e U+007e 146 146 # ··· 263 263 0xe8 U+03a6 U+00d8 264 264 0xe9 U+0398 265 265 0xea U+03a9 U+2126 266 - 0xeb U+03b4 266 + 0xeb U+03b4 U+00f0 267 267 0xec U+221e 268 268 0xed U+03c6 U+00f8 269 - 0xee U+03b5 269 + 0xee U+03b5 U+2208 270 270 0xef U+2229 271 271 0xf0 U+2261 272 272 0xf1 U+00b1
+1 -1
drivers/char/vt.c
··· 2274 2274 continue; /* nothing to display */ 2275 2275 } 2276 2276 /* Glyph not found */ 2277 - if ((!(vc->vc_utf && !vc->vc_disp_ctrl) || c < 128) && !(c & ~charmask)) { 2277 + if ((!(vc->vc_utf && !vc->vc_disp_ctrl) && c < 128) && !(c & ~charmask)) { 2278 2278 /* In legacy mode use the glyph we get by a 1:1 mapping. 2279 2279 This would make absolutely no sense with Unicode in mind, 2280 2280 but do this for ASCII characters since a font may lack
+2 -2
drivers/i2c/busses/i2c-highlander.c
··· 92 92 static void smbus_write_data(u8 *src, u16 *dst, int len) 93 93 { 94 94 for (; len > 1; len -= 2) { 95 - *dst++ = be16_to_cpup((u16 *)src); 95 + *dst++ = be16_to_cpup((__be16 *)src); 96 96 src += 2; 97 97 } 98 98 ··· 103 103 static void smbus_read_data(u16 *src, u8 *dst, int len) 104 104 { 105 105 for (; len > 1; len -= 2) { 106 - *(u16 *)dst = cpu_to_be16p(src++); 106 + *(__be16 *)dst = cpu_to_be16p(src++); 107 107 dst += 2; 108 108 } 109 109
+1 -1
drivers/i2c/busses/i2c-pmcmsp.c
··· 486 486 487 487 if (cmd->type == MSP_TWI_CMD_WRITE || 488 488 cmd->type == MSP_TWI_CMD_WRITE_READ) { 489 - __be64 tmp = cpu_to_be64p((u64 *)cmd->write_data); 489 + u64 tmp = be64_to_cpup((__be64 *)cmd->write_data); 490 490 tmp >>= (MSP_MAX_BYTES_PER_RW - cmd->write_len) * 8; 491 491 dev_dbg(&pmcmsptwi_adapter.dev, "Writing 0x%016llx\n", tmp); 492 492 pmcmsptwi_writel(tmp & 0x00000000ffffffffLL,
+7 -2
drivers/net/e1000e/ich8lan.c
··· 1893 1893 ctrl |= E1000_CTRL_PHY_RST; 1894 1894 } 1895 1895 ret_val = e1000_acquire_swflag_ich8lan(hw); 1896 + /* Whether or not the swflag was acquired, we need to reset the part */ 1896 1897 hw_dbg(hw, "Issuing a global reset to ich8lan"); 1897 1898 ew32(CTRL, (ctrl | E1000_CTRL_RST)); 1898 1899 msleep(20); 1899 1900 1900 - /* release the swflag because it is not reset by hardware reset */ 1901 - e1000_release_swflag_ich8lan(hw); 1901 + if (!ret_val) { 1902 + /* release the swflag because it is not reset by 1903 + * hardware reset 1904 + */ 1905 + e1000_release_swflag_ich8lan(hw); 1906 + } 1902 1907 1903 1908 ret_val = e1000e_get_auto_rd_done(hw); 1904 1909 if (ret_val) {
+88 -56
drivers/net/sungem.c
··· 1142 1142 return NETDEV_TX_OK; 1143 1143 } 1144 1144 1145 + static void gem_pcs_reset(struct gem *gp) 1146 + { 1147 + int limit; 1148 + u32 val; 1149 + 1150 + /* Reset PCS unit. */ 1151 + val = readl(gp->regs + PCS_MIICTRL); 1152 + val |= PCS_MIICTRL_RST; 1153 + writel(val, gp->regs + PCS_MIICTRL); 1154 + 1155 + limit = 32; 1156 + while (readl(gp->regs + PCS_MIICTRL) & PCS_MIICTRL_RST) { 1157 + udelay(100); 1158 + if (limit-- <= 0) 1159 + break; 1160 + } 1161 + if (limit <= 0) 1162 + printk(KERN_WARNING "%s: PCS reset bit would not clear.\n", 1163 + gp->dev->name); 1164 + } 1165 + 1166 + static void gem_pcs_reinit_adv(struct gem *gp) 1167 + { 1168 + u32 val; 1169 + 1170 + /* Make sure PCS is disabled while changing advertisement 1171 + * configuration. 1172 + */ 1173 + val = readl(gp->regs + PCS_CFG); 1174 + val &= ~(PCS_CFG_ENABLE | PCS_CFG_TO); 1175 + writel(val, gp->regs + PCS_CFG); 1176 + 1177 + /* Advertise all capabilities except assymetric 1178 + * pause. 1179 + */ 1180 + val = readl(gp->regs + PCS_MIIADV); 1181 + val |= (PCS_MIIADV_FD | PCS_MIIADV_HD | 1182 + PCS_MIIADV_SP | PCS_MIIADV_AP); 1183 + writel(val, gp->regs + PCS_MIIADV); 1184 + 1185 + /* Enable and restart auto-negotiation, disable wrapback/loopback, 1186 + * and re-enable PCS. 1187 + */ 1188 + val = readl(gp->regs + PCS_MIICTRL); 1189 + val |= (PCS_MIICTRL_RAN | PCS_MIICTRL_ANE); 1190 + val &= ~PCS_MIICTRL_WB; 1191 + writel(val, gp->regs + PCS_MIICTRL); 1192 + 1193 + val = readl(gp->regs + PCS_CFG); 1194 + val |= PCS_CFG_ENABLE; 1195 + writel(val, gp->regs + PCS_CFG); 1196 + 1197 + /* Make sure serialink loopback is off. The meaning 1198 + * of this bit is logically inverted based upon whether 1199 + * you are in Serialink or SERDES mode. 1200 + */ 1201 + val = readl(gp->regs + PCS_SCTRL); 1202 + if (gp->phy_type == phy_serialink) 1203 + val &= ~PCS_SCTRL_LOOP; 1204 + else 1205 + val |= PCS_SCTRL_LOOP; 1206 + writel(val, gp->regs + PCS_SCTRL); 1207 + } 1208 + 1145 1209 #define STOP_TRIES 32 1146 1210 1147 1211 /* Must be invoked under gp->lock and gp->tx_lock. */ ··· 1232 1168 1233 1169 if (limit <= 0) 1234 1170 printk(KERN_ERR "%s: SW reset is ghetto.\n", gp->dev->name); 1171 + 1172 + if (gp->phy_type == phy_serialink || gp->phy_type == phy_serdes) 1173 + gem_pcs_reinit_adv(gp); 1235 1174 } 1236 1175 1237 1176 /* Must be invoked under gp->lock and gp->tx_lock. */ ··· 1391 1324 gp->phy_type == phy_serdes) { 1392 1325 u32 pcs_lpa = readl(gp->regs + PCS_MIILP); 1393 1326 1394 - if (pcs_lpa & PCS_MIIADV_FD) 1327 + if ((pcs_lpa & PCS_MIIADV_FD) || gp->phy_type == phy_serdes) 1395 1328 full_duplex = 1; 1396 1329 speed = SPEED_1000; 1397 1330 } ··· 1555 1488 val = readl(gp->regs + PCS_MIISTAT); 1556 1489 1557 1490 if ((val & PCS_MIISTAT_LS) != 0) { 1491 + if (gp->lstate == link_up) 1492 + goto restart; 1493 + 1558 1494 gp->lstate = link_up; 1559 1495 netif_carrier_on(gp->dev); 1560 1496 (void)gem_set_link_modes(gp); ··· 1778 1708 if (gp->phy_mii.def && gp->phy_mii.def->ops->init) 1779 1709 gp->phy_mii.def->ops->init(&gp->phy_mii); 1780 1710 } else { 1781 - u32 val; 1782 - int limit; 1783 - 1784 - /* Reset PCS unit. */ 1785 - val = readl(gp->regs + PCS_MIICTRL); 1786 - val |= PCS_MIICTRL_RST; 1787 - writel(val, gp->regs + PCS_MIICTRL); 1788 - 1789 - limit = 32; 1790 - while (readl(gp->regs + PCS_MIICTRL) & PCS_MIICTRL_RST) { 1791 - udelay(100); 1792 - if (limit-- <= 0) 1793 - break; 1794 - } 1795 - if (limit <= 0) 1796 - printk(KERN_WARNING "%s: PCS reset bit would not clear.\n", 1797 - gp->dev->name); 1798 - 1799 - /* Make sure PCS is disabled while changing advertisement 1800 - * configuration. 1801 - */ 1802 - val = readl(gp->regs + PCS_CFG); 1803 - val &= ~(PCS_CFG_ENABLE | PCS_CFG_TO); 1804 - writel(val, gp->regs + PCS_CFG); 1805 - 1806 - /* Advertise all capabilities except assymetric 1807 - * pause. 1808 - */ 1809 - val = readl(gp->regs + PCS_MIIADV); 1810 - val |= (PCS_MIIADV_FD | PCS_MIIADV_HD | 1811 - PCS_MIIADV_SP | PCS_MIIADV_AP); 1812 - writel(val, gp->regs + PCS_MIIADV); 1813 - 1814 - /* Enable and restart auto-negotiation, disable wrapback/loopback, 1815 - * and re-enable PCS. 1816 - */ 1817 - val = readl(gp->regs + PCS_MIICTRL); 1818 - val |= (PCS_MIICTRL_RAN | PCS_MIICTRL_ANE); 1819 - val &= ~PCS_MIICTRL_WB; 1820 - writel(val, gp->regs + PCS_MIICTRL); 1821 - 1822 - val = readl(gp->regs + PCS_CFG); 1823 - val |= PCS_CFG_ENABLE; 1824 - writel(val, gp->regs + PCS_CFG); 1825 - 1826 - /* Make sure serialink loopback is off. The meaning 1827 - * of this bit is logically inverted based upon whether 1828 - * you are in Serialink or SERDES mode. 1829 - */ 1830 - val = readl(gp->regs + PCS_SCTRL); 1831 - if (gp->phy_type == phy_serialink) 1832 - val &= ~PCS_SCTRL_LOOP; 1833 - else 1834 - val |= PCS_SCTRL_LOOP; 1835 - writel(val, gp->regs + PCS_SCTRL); 1711 + gem_pcs_reset(gp); 1712 + gem_pcs_reinit_adv(gp); 1836 1713 } 1837 1714 1838 1715 /* Default aneg parameters */ ··· 2697 2680 cmd->speed = 0; 2698 2681 cmd->duplex = cmd->port = cmd->phy_address = 2699 2682 cmd->transceiver = cmd->autoneg = 0; 2683 + 2684 + /* serdes means usually a Fibre connector, with most fixed */ 2685 + if (gp->phy_type == phy_serdes) { 2686 + cmd->port = PORT_FIBRE; 2687 + cmd->supported = (SUPPORTED_1000baseT_Half | 2688 + SUPPORTED_1000baseT_Full | 2689 + SUPPORTED_FIBRE | SUPPORTED_Autoneg | 2690 + SUPPORTED_Pause | SUPPORTED_Asym_Pause); 2691 + cmd->advertising = cmd->supported; 2692 + cmd->transceiver = XCVR_INTERNAL; 2693 + if (gp->lstate == link_up) 2694 + cmd->speed = SPEED_1000; 2695 + cmd->duplex = DUPLEX_FULL; 2696 + cmd->autoneg = 1; 2697 + } 2700 2698 } 2701 2699 cmd->maxtxpkt = cmd->maxrxpkt = 0; 2702 2700
+1 -1
drivers/pcmcia/bfin_cf_pcmcia.c
··· 334 334 module_init(bfin_cf_init); 335 335 module_exit(bfin_cf_exit); 336 336 337 - MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>") 337 + MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); 338 338 MODULE_DESCRIPTION("BFIN CF/PCMCIA Driver"); 339 339 MODULE_LICENSE("GPL");
+8 -4
drivers/scsi/device_handler/scsi_dh_hp_sw.c
··· 107 107 struct request *req; 108 108 int ret; 109 109 110 + retry: 110 111 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); 111 112 if (!req) 112 113 return SCSI_DH_RES_TEMP_UNAVAIL; ··· 122 121 memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE); 123 122 req->sense_len = 0; 124 123 125 - retry: 126 124 ret = blk_execute_rq(req->q, NULL, req, 1); 127 125 if (ret == -EIO) { 128 126 if (req->sense_len > 0) { ··· 136 136 h->path_state = HP_SW_PATH_ACTIVE; 137 137 ret = SCSI_DH_OK; 138 138 } 139 - if (ret == SCSI_DH_IMM_RETRY) 139 + if (ret == SCSI_DH_IMM_RETRY) { 140 + blk_put_request(req); 140 141 goto retry; 142 + } 141 143 if (ret == SCSI_DH_DEV_OFFLINED) { 142 144 h->path_state = HP_SW_PATH_PASSIVE; 143 145 ret = SCSI_DH_OK; ··· 202 200 struct request *req; 203 201 int ret, retry; 204 202 203 + retry: 205 204 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); 206 205 if (!req) 207 206 return SCSI_DH_RES_TEMP_UNAVAIL; ··· 219 216 req->sense_len = 0; 220 217 retry = h->retries; 221 218 222 - retry: 223 219 ret = blk_execute_rq(req->q, NULL, req, 1); 224 220 if (ret == -EIO) { 225 221 if (req->sense_len > 0) { ··· 233 231 ret = SCSI_DH_OK; 234 232 235 233 if (ret == SCSI_DH_RETRY) { 236 - if (--retry) 234 + if (--retry) { 235 + blk_put_request(req); 237 236 goto retry; 237 + } 238 238 ret = SCSI_DH_IO; 239 239 } 240 240
+83 -206
drivers/video/aty/radeon_accel.c
··· 5 5 * --dte 6 6 */ 7 7 8 - #define FLUSH_CACHE_WORKAROUND 1 9 - 10 - void radeon_fifo_update_and_wait(struct radeonfb_info *rinfo, int entries) 8 + static void radeon_fixup_offset(struct radeonfb_info *rinfo) 11 9 { 12 - int i; 10 + u32 local_base; 13 11 14 - for (i=0; i<2000000; i++) { 15 - rinfo->fifo_free = INREG(RBBM_STATUS) & 0x7f; 16 - if (rinfo->fifo_free >= entries) 17 - return; 18 - udelay(10); 19 - } 20 - printk(KERN_ERR "radeonfb: FIFO Timeout !\n"); 21 - /* XXX Todo: attempt to reset the engine */ 22 - } 12 + /* *** Ugly workaround *** */ 13 + /* 14 + * On some platforms, the video memory is mapped at 0 in radeon chip space 15 + * (like PPCs) by the firmware. X will always move it up so that it's seen 16 + * by the chip to be at the same address as the PCI BAR. 17 + * That means that when switching back from X, there is a mismatch between 18 + * the offsets programmed into the engine. This means that potentially, 19 + * accel operations done before radeonfb has a chance to re-init the engine 20 + * will have incorrect offsets, and potentially trash system memory ! 21 + * 22 + * The correct fix is for fbcon to never call any accel op before the engine 23 + * has properly been re-initialized (by a call to set_var), but this is a 24 + * complex fix. This workaround in the meantime, called before every accel 25 + * operation, makes sure the offsets are in sync. 26 + */ 23 27 24 - static inline void radeon_fifo_wait(struct radeonfb_info *rinfo, int entries) 25 - { 26 - if (entries <= rinfo->fifo_free) 27 - rinfo->fifo_free -= entries; 28 - else 29 - radeon_fifo_update_and_wait(rinfo, entries); 30 - } 31 - 32 - static inline void radeonfb_set_creg(struct radeonfb_info *rinfo, u32 reg, 33 - u32 *cache, u32 new_val) 34 - { 35 - if (new_val == *cache) 28 + radeon_fifo_wait (1); 29 + local_base = INREG(MC_FB_LOCATION) << 16; 30 + if (local_base == rinfo->fb_local_base) 36 31 return; 37 - *cache = new_val; 38 - radeon_fifo_wait(rinfo, 1); 39 - OUTREG(reg, new_val); 32 + 33 + rinfo->fb_local_base = local_base; 34 + 35 + radeon_fifo_wait (3); 36 + OUTREG(DEFAULT_PITCH_OFFSET, (rinfo->pitch << 0x16) | 37 + (rinfo->fb_local_base >> 10)); 38 + OUTREG(DST_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 39 + OUTREG(SRC_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 40 40 } 41 41 42 42 static void radeonfb_prim_fillrect(struct radeonfb_info *rinfo, 43 43 const struct fb_fillrect *region) 44 44 { 45 - radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, 46 - rinfo->dp_gui_mc_base | GMC_BRUSH_SOLID_COLOR | ROP3_P); 47 - radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache, 48 - DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM); 49 - radeonfb_set_creg(rinfo, DP_BRUSH_FRGD_CLR, &rinfo->dp_brush_fg_cache, 50 - region->color); 45 + radeon_fifo_wait(4); 46 + 47 + OUTREG(DP_GUI_MASTER_CNTL, 48 + rinfo->dp_gui_master_cntl /* contains, like GMC_DST_32BPP */ 49 + | GMC_BRUSH_SOLID_COLOR 50 + | ROP3_P); 51 + if (radeon_get_dstbpp(rinfo->depth) != DST_8BPP) 52 + OUTREG(DP_BRUSH_FRGD_CLR, rinfo->pseudo_palette[region->color]); 53 + else 54 + OUTREG(DP_BRUSH_FRGD_CLR, region->color); 55 + OUTREG(DP_WRITE_MSK, 0xffffffff); 56 + OUTREG(DP_CNTL, (DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM)); 51 57 52 - /* Ensure the dst cache is flushed and the engine idle before 53 - * issuing the operation. 54 - * 55 - * This works around engine lockups on some cards 56 - */ 57 - #if FLUSH_CACHE_WORKAROUND 58 - radeon_fifo_wait(rinfo, 2); 58 + radeon_fifo_wait(2); 59 59 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL); 60 60 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE)); 61 - #endif 62 - radeon_fifo_wait(rinfo, 2); 61 + 62 + radeon_fifo_wait(2); 63 63 OUTREG(DST_Y_X, (region->dy << 16) | region->dx); 64 64 OUTREG(DST_WIDTH_HEIGHT, (region->width << 16) | region->height); 65 65 } ··· 70 70 struct fb_fillrect modded; 71 71 int vxres, vyres; 72 72 73 - WARN_ON(rinfo->gfx_mode); 74 - if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode) 73 + if (info->state != FBINFO_STATE_RUNNING) 75 74 return; 76 75 if (info->flags & FBINFO_HWACCEL_DISABLED) { 77 76 cfb_fillrect(info, region); 78 77 return; 79 78 } 79 + 80 + radeon_fixup_offset(rinfo); 80 81 81 82 vxres = info->var.xres_virtual; 82 83 vyres = info->var.yres_virtual; ··· 90 89 91 90 if(modded.dx + modded.width > vxres) modded.width = vxres - modded.dx; 92 91 if(modded.dy + modded.height > vyres) modded.height = vyres - modded.dy; 93 - 94 - if (info->fix.visual == FB_VISUAL_TRUECOLOR || 95 - info->fix.visual == FB_VISUAL_DIRECTCOLOR ) 96 - modded.color = ((u32 *) (info->pseudo_palette))[region->color]; 97 92 98 93 radeonfb_prim_fillrect(rinfo, &modded); 99 94 } ··· 109 112 if ( xdir < 0 ) { sx += w-1; dx += w-1; } 110 113 if ( ydir < 0 ) { sy += h-1; dy += h-1; } 111 114 112 - radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, 113 - rinfo->dp_gui_mc_base | 114 - GMC_BRUSH_NONE | 115 - GMC_SRC_DATATYPE_COLOR | 116 - ROP3_S | 117 - DP_SRC_SOURCE_MEMORY); 118 - radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache, 119 - (xdir>=0 ? DST_X_LEFT_TO_RIGHT : 0) | 120 - (ydir>=0 ? DST_Y_TOP_TO_BOTTOM : 0)); 115 + radeon_fifo_wait(3); 116 + OUTREG(DP_GUI_MASTER_CNTL, 117 + rinfo->dp_gui_master_cntl /* i.e. GMC_DST_32BPP */ 118 + | GMC_BRUSH_NONE 119 + | GMC_SRC_DSTCOLOR 120 + | ROP3_S 121 + | DP_SRC_SOURCE_MEMORY ); 122 + OUTREG(DP_WRITE_MSK, 0xffffffff); 123 + OUTREG(DP_CNTL, (xdir>=0 ? DST_X_LEFT_TO_RIGHT : 0) 124 + | (ydir>=0 ? DST_Y_TOP_TO_BOTTOM : 0)); 121 125 122 - #if FLUSH_CACHE_WORKAROUND 123 - radeon_fifo_wait(rinfo, 2); 126 + radeon_fifo_wait(2); 124 127 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL); 125 128 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE)); 126 - #endif 127 - radeon_fifo_wait(rinfo, 3); 129 + 130 + radeon_fifo_wait(3); 128 131 OUTREG(SRC_Y_X, (sy << 16) | sx); 129 132 OUTREG(DST_Y_X, (dy << 16) | dx); 130 133 OUTREG(DST_HEIGHT_WIDTH, (h << 16) | w); ··· 143 146 modded.width = area->width; 144 147 modded.height = area->height; 145 148 146 - WARN_ON(rinfo->gfx_mode); 147 - if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode) 149 + if (info->state != FBINFO_STATE_RUNNING) 148 150 return; 149 151 if (info->flags & FBINFO_HWACCEL_DISABLED) { 150 152 cfb_copyarea(info, area); 151 153 return; 152 154 } 155 + 156 + radeon_fixup_offset(rinfo); 153 157 154 158 vxres = info->var.xres_virtual; 155 159 vyres = info->var.yres_virtual; ··· 168 170 radeonfb_prim_copyarea(rinfo, &modded); 169 171 } 170 172 171 - static void radeonfb_prim_imageblit(struct radeonfb_info *rinfo, 172 - const struct fb_image *image, 173 - u32 fg, u32 bg) 174 - { 175 - unsigned int dwords; 176 - u32 *bits; 177 - 178 - radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, 179 - rinfo->dp_gui_mc_base | 180 - GMC_BRUSH_NONE | GMC_DST_CLIP_LEAVE | 181 - GMC_SRC_DATATYPE_MONO_FG_BG | 182 - ROP3_S | 183 - GMC_BYTE_ORDER_MSB_TO_LSB | 184 - DP_SRC_SOURCE_HOST_DATA); 185 - radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache, 186 - DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM); 187 - radeonfb_set_creg(rinfo, DP_SRC_FRGD_CLR, &rinfo->dp_src_fg_cache, fg); 188 - radeonfb_set_creg(rinfo, DP_SRC_BKGD_CLR, &rinfo->dp_src_bg_cache, bg); 189 - 190 - /* Ensure the dst cache is flushed and the engine idle before 191 - * issuing the operation. 192 - * 193 - * This works around engine lockups on some cards 194 - */ 195 - #if FLUSH_CACHE_WORKAROUND 196 - radeon_fifo_wait(rinfo, 2); 197 - OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL); 198 - OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE)); 199 - #endif 200 - 201 - /* X here pads width to a multiple of 32 and uses the clipper to 202 - * adjust the result. Is that really necessary ? Things seem to 203 - * work ok for me without that and the doco doesn't seem to imply] 204 - * there is such a restriction. 205 - */ 206 - radeon_fifo_wait(rinfo, 4); 207 - OUTREG(SC_TOP_LEFT, (image->dy << 16) | image->dx); 208 - OUTREG(SC_BOTTOM_RIGHT, ((image->dy + image->height) << 16) | 209 - (image->dx + image->width)); 210 - OUTREG(DST_Y_X, (image->dy << 16) | image->dx); 211 - 212 - OUTREG(DST_HEIGHT_WIDTH, (image->height << 16) | ((image->width + 31) & ~31)); 213 - 214 - dwords = (image->width + 31) >> 5; 215 - dwords *= image->height; 216 - bits = (u32*)(image->data); 217 - 218 - while(dwords >= 8) { 219 - radeon_fifo_wait(rinfo, 8); 220 - #if BITS_PER_LONG == 64 221 - __raw_writeq(*((u64 *)(bits)), rinfo->mmio_base + HOST_DATA0); 222 - __raw_writeq(*((u64 *)(bits+2)), rinfo->mmio_base + HOST_DATA2); 223 - __raw_writeq(*((u64 *)(bits+4)), rinfo->mmio_base + HOST_DATA4); 224 - __raw_writeq(*((u64 *)(bits+6)), rinfo->mmio_base + HOST_DATA6); 225 - bits += 8; 226 - #else 227 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA0); 228 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA1); 229 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA2); 230 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA3); 231 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA4); 232 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA5); 233 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA6); 234 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA7); 235 - #endif 236 - dwords -= 8; 237 - } 238 - while(dwords--) { 239 - radeon_fifo_wait(rinfo, 1); 240 - __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA0); 241 - } 242 - } 243 - 244 173 void radeonfb_imageblit(struct fb_info *info, const struct fb_image *image) 245 174 { 246 175 struct radeonfb_info *rinfo = info->par; 247 - u32 fg, bg; 248 176 249 - WARN_ON(rinfo->gfx_mode); 250 - if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode) 177 + if (info->state != FBINFO_STATE_RUNNING) 251 178 return; 252 - 253 - if (!image->width || !image->height) 254 - return; 255 - 256 - /* We only do 1 bpp color expansion for now */ 257 - if (!accel_cexp || 258 - (info->flags & FBINFO_HWACCEL_DISABLED) || image->depth != 1) 259 - goto fallback; 260 - 261 - /* Fallback if running out of the screen. We may do clipping 262 - * in the future */ 263 - if ((image->dx + image->width) > info->var.xres_virtual || 264 - (image->dy + image->height) > info->var.yres_virtual) 265 - goto fallback; 266 - 267 - if (info->fix.visual == FB_VISUAL_TRUECOLOR || 268 - info->fix.visual == FB_VISUAL_DIRECTCOLOR) { 269 - fg = ((u32*)(info->pseudo_palette))[image->fg_color]; 270 - bg = ((u32*)(info->pseudo_palette))[image->bg_color]; 271 - } else { 272 - fg = image->fg_color; 273 - bg = image->bg_color; 274 - } 275 - 276 - radeonfb_prim_imageblit(rinfo, image, fg, bg); 277 - return; 278 - 279 - fallback: 280 - radeon_engine_idle(rinfo); 179 + radeon_engine_idle(); 281 180 282 181 cfb_imageblit(info, image); 283 182 } ··· 185 290 186 291 if (info->state != FBINFO_STATE_RUNNING) 187 292 return 0; 188 - 189 - radeon_engine_idle(rinfo); 293 + radeon_engine_idle(); 190 294 191 295 return 0; 192 296 } ··· 261 367 /* disable 3D engine */ 262 368 OUTREG(RB3D_CNTL, 0); 263 369 264 - rinfo->fifo_free = 0; 265 370 radeonfb_engine_reset(rinfo); 266 371 267 - radeon_fifo_wait(rinfo, 1); 372 + radeon_fifo_wait (1); 268 373 if (IS_R300_VARIANT(rinfo)) { 269 374 OUTREG(RB2D_DSTCACHE_MODE, INREG(RB2D_DSTCACHE_MODE) | 270 375 RB2D_DC_AUTOFLUSH_ENABLE | ··· 277 384 OUTREG(RB2D_DSTCACHE_MODE, 0); 278 385 } 279 386 280 - radeon_fifo_wait(rinfo, 3); 387 + radeon_fifo_wait (3); 281 388 /* We re-read MC_FB_LOCATION from card as it can have been 282 389 * modified by XFree drivers (ouch !) 283 390 */ ··· 288 395 OUTREG(DST_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 289 396 OUTREG(SRC_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 290 397 291 - radeon_fifo_wait(rinfo, 1); 292 - #ifdef __BIG_ENDIAN 398 + radeon_fifo_wait (1); 399 + #if defined(__BIG_ENDIAN) 293 400 OUTREGP(DP_DATATYPE, HOST_BIG_ENDIAN_EN, ~HOST_BIG_ENDIAN_EN); 294 401 #else 295 402 OUTREGP(DP_DATATYPE, 0, ~HOST_BIG_ENDIAN_EN); 296 403 #endif 297 - radeon_fifo_wait(rinfo, 2); 404 + radeon_fifo_wait (2); 298 405 OUTREG(DEFAULT_SC_TOP_LEFT, 0); 299 406 OUTREG(DEFAULT_SC_BOTTOM_RIGHT, (DEFAULT_SC_RIGHT_MAX | 300 407 DEFAULT_SC_BOTTOM_MAX)); 301 408 302 - /* set default DP_GUI_MASTER_CNTL */ 303 409 temp = radeon_get_dstbpp(rinfo->depth); 304 - rinfo->dp_gui_mc_base = ((temp << 8) | GMC_CLR_CMP_CNTL_DIS); 410 + rinfo->dp_gui_master_cntl = ((temp << 8) | GMC_CLR_CMP_CNTL_DIS); 305 411 306 - rinfo->dp_gui_mc_cache = rinfo->dp_gui_mc_base | 307 - GMC_BRUSH_SOLID_COLOR | 308 - GMC_SRC_DATATYPE_COLOR; 309 - radeon_fifo_wait(rinfo, 1); 310 - OUTREG(DP_GUI_MASTER_CNTL, rinfo->dp_gui_mc_cache); 412 + radeon_fifo_wait (1); 413 + OUTREG(DP_GUI_MASTER_CNTL, (rinfo->dp_gui_master_cntl | 414 + GMC_BRUSH_SOLID_COLOR | 415 + GMC_SRC_DATATYPE_COLOR)); 311 416 417 + radeon_fifo_wait (7); 312 418 313 419 /* clear line drawing regs */ 314 - radeon_fifo_wait(rinfo, 2); 315 420 OUTREG(DST_LINE_START, 0); 316 421 OUTREG(DST_LINE_END, 0); 317 422 318 - /* set brush and source color regs */ 319 - rinfo->dp_brush_fg_cache = 0xffffffff; 320 - rinfo->dp_brush_bg_cache = 0x00000000; 321 - rinfo->dp_src_fg_cache = 0xffffffff; 322 - rinfo->dp_src_bg_cache = 0x00000000; 323 - radeon_fifo_wait(rinfo, 4); 324 - OUTREG(DP_BRUSH_FRGD_CLR, rinfo->dp_brush_fg_cache); 325 - OUTREG(DP_BRUSH_BKGD_CLR, rinfo->dp_brush_bg_cache); 326 - OUTREG(DP_SRC_FRGD_CLR, rinfo->dp_src_fg_cache); 327 - OUTREG(DP_SRC_BKGD_CLR, rinfo->dp_src_bg_cache); 423 + /* set brush color regs */ 424 + OUTREG(DP_BRUSH_FRGD_CLR, 0xffffffff); 425 + OUTREG(DP_BRUSH_BKGD_CLR, 0x00000000); 328 426 329 - /* Default direction */ 330 - rinfo->dp_cntl_cache = DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM; 331 - radeon_fifo_wait(rinfo, 1); 332 - OUTREG(DP_CNTL, rinfo->dp_cntl_cache); 427 + /* set source color regs */ 428 + OUTREG(DP_SRC_FRGD_CLR, 0xffffffff); 429 + OUTREG(DP_SRC_BKGD_CLR, 0x00000000); 333 430 334 431 /* default write mask */ 335 - radeon_fifo_wait(rinfo, 1); 336 432 OUTREG(DP_WRITE_MSK, 0xffffffff); 337 433 338 - /* Default to no swapping of host data */ 339 - radeon_fifo_wait(rinfo, 1); 340 - OUTREG(RBBM_GUICNTL, RBBM_GUICNTL_HOST_DATA_SWAP_NONE); 341 - 342 - /* Make sure it's settled */ 343 - radeon_engine_idle(rinfo); 434 + radeon_engine_idle (); 344 435 }
+1 -1
drivers/video/aty/radeon_backlight.c
··· 66 66 level = bd->props.brightness; 67 67 68 68 del_timer_sync(&rinfo->lvds_timer); 69 - radeon_engine_idle(rinfo); 69 + radeon_engine_idle(); 70 70 71 71 lvds_gen_cntl = INREG(LVDS_GEN_CNTL); 72 72 if (level > 0) {
+15 -31
drivers/video/aty/radeon_base.c
··· 282 282 static int backlight = 0; 283 283 #endif 284 284 285 - int accel_cexp = 0; 286 - 287 285 /* 288 286 * prototypes 289 287 */ ··· 852 854 if (rinfo->asleep) 853 855 return 0; 854 856 857 + radeon_fifo_wait(2); 855 858 OUTREG(CRTC_OFFSET, ((var->yoffset * var->xres_virtual + var->xoffset) 856 859 * var->bits_per_pixel / 8) & ~7); 857 860 return 0; ··· 882 883 if (rc) 883 884 return rc; 884 885 886 + radeon_fifo_wait(2); 885 887 if (value & 0x01) { 886 888 tmp = INREG(LVDS_GEN_CNTL); 887 889 ··· 940 940 if (rinfo->lock_blank) 941 941 return 0; 942 942 943 - radeon_engine_idle(rinfo); 943 + radeon_engine_idle(); 944 944 945 945 val = INREG(CRTC_EXT_CNTL); 946 946 val &= ~(CRTC_DISPLAY_DIS | CRTC_HSYNC_DIS | ··· 1048 1048 1049 1049 if (rinfo->asleep) 1050 1050 return 0; 1051 - 1051 + 1052 1052 return radeon_screen_blank(rinfo, blank, 0); 1053 1053 } 1054 1054 ··· 1074 1074 pindex = regno; 1075 1075 1076 1076 if (!rinfo->asleep) { 1077 + radeon_fifo_wait(9); 1078 + 1077 1079 if (rinfo->bpp == 16) { 1078 1080 pindex = regno * 8; 1079 1081 ··· 1244 1242 { 1245 1243 int i; 1246 1244 1245 + radeon_fifo_wait(20); 1246 + 1247 1247 /* Workaround from XFree */ 1248 1248 if (rinfo->is_mobility) { 1249 1249 /* A temporal workaround for the occational blanking on certain laptop ··· 1341 1337 { 1342 1338 struct radeonfb_info *rinfo = (struct radeonfb_info *)data; 1343 1339 1344 - radeon_engine_idle(rinfo); 1340 + radeon_engine_idle(); 1345 1341 1346 1342 OUTREG(LVDS_GEN_CNTL, rinfo->pending_lvds_gen_cntl); 1347 1343 } ··· 1359 1355 if (nomodeset) 1360 1356 return; 1361 1357 1362 - radeon_engine_idle(rinfo); 1363 - 1364 1358 if (!regs_only) 1365 1359 radeon_screen_blank(rinfo, FB_BLANK_NORMAL, 0); 1366 1360 1361 + radeon_fifo_wait(31); 1367 1362 for (i=0; i<10; i++) 1368 1363 OUTREG(common_regs[i].reg, common_regs[i].val); 1369 1364 ··· 1390 1387 radeon_write_pll_regs(rinfo, mode); 1391 1388 1392 1389 if ((primary_mon == MT_DFP) || (primary_mon == MT_LCD)) { 1390 + radeon_fifo_wait(10); 1393 1391 OUTREG(FP_CRTC_H_TOTAL_DISP, mode->fp_crtc_h_total_disp); 1394 1392 OUTREG(FP_CRTC_V_TOTAL_DISP, mode->fp_crtc_v_total_disp); 1395 1393 OUTREG(FP_H_SYNC_STRT_WID, mode->fp_h_sync_strt_wid); ··· 1405 1401 if (!regs_only) 1406 1402 radeon_screen_blank(rinfo, FB_BLANK_UNBLANK, 0); 1407 1403 1404 + radeon_fifo_wait(2); 1408 1405 OUTPLL(VCLK_ECP_CNTL, mode->vclk_ecp_cntl); 1409 1406 1410 1407 return; ··· 1556 1551 /* We always want engine to be idle on a mode switch, even 1557 1552 * if we won't actually change the mode 1558 1553 */ 1559 - radeon_engine_idle(rinfo); 1554 + radeon_engine_idle(); 1560 1555 1561 1556 hSyncStart = mode->xres + mode->right_margin; 1562 1557 hSyncEnd = hSyncStart + mode->hsync_len; ··· 1851 1846 return 0; 1852 1847 } 1853 1848 1849 + 1854 1850 static struct fb_ops radeonfb_ops = { 1855 1851 .owner = THIS_MODULE, 1856 1852 .fb_check_var = radeonfb_check_var, ··· 1875 1869 info->par = rinfo; 1876 1870 info->pseudo_palette = rinfo->pseudo_palette; 1877 1871 info->flags = FBINFO_DEFAULT 1878 - | FBINFO_HWACCEL_IMAGEBLIT 1879 1872 | FBINFO_HWACCEL_COPYAREA 1880 1873 | FBINFO_HWACCEL_FILLRECT 1881 1874 | FBINFO_HWACCEL_XPAN ··· 1882 1877 info->fbops = &radeonfb_ops; 1883 1878 info->screen_base = rinfo->fb_base; 1884 1879 info->screen_size = rinfo->mapped_vram; 1885 - 1886 1880 /* Fill fix common fields */ 1887 1881 strlcpy(info->fix.id, rinfo->name, sizeof(info->fix.id)); 1888 1882 info->fix.smem_start = rinfo->fb_base_phys; ··· 1896 1892 info->fix.mmio_len = RADEON_REGSIZE; 1897 1893 info->fix.accel = FB_ACCEL_ATI_RADEON; 1898 1894 1899 - /* Allocate colormap */ 1900 1895 fb_alloc_cmap(&info->cmap, 256, 0); 1901 1896 1902 - /* Setup pixmap used for acceleration */ 1903 - #define PIXMAP_SIZE (2048 * 4) 1904 - 1905 - info->pixmap.addr = kmalloc(PIXMAP_SIZE, GFP_KERNEL); 1906 - if (!info->pixmap.addr) { 1907 - printk(KERN_ERR "radeonfb: Failed to allocate pixmap !\n"); 1908 - noaccel = 1; 1909 - goto bail; 1910 - } 1911 - info->pixmap.size = PIXMAP_SIZE; 1912 - info->pixmap.flags = FB_PIXMAP_SYSTEM; 1913 - info->pixmap.scan_align = 4; 1914 - info->pixmap.buf_align = 4; 1915 - info->pixmap.access_align = 32; 1916 - 1917 - bail: 1918 1897 if (noaccel) 1919 1898 info->flags |= FBINFO_HWACCEL_DISABLED; 1920 1899 ··· 2006 2019 u32 tom = INREG(NB_TOM); 2007 2020 tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024); 2008 2021 2022 + radeon_fifo_wait(6); 2009 2023 OUTREG(MC_FB_LOCATION, tom); 2010 2024 OUTREG(DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); 2011 2025 OUTREG(CRTC2_DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); ··· 2510 2522 } else if (!strncmp(this_opt, "ignore_devlist", 14)) { 2511 2523 ignore_devlist = 1; 2512 2524 #endif 2513 - } else if (!strncmp(this_opt, "accel_cexp", 12)) { 2514 - accel_cexp = 1; 2515 2525 } else 2516 2526 mode_option = this_opt; 2517 2527 } ··· 2557 2571 MODULE_PARM_DESC(monitor_layout, "Specify monitor mapping (like XFree86)"); 2558 2572 module_param(force_measure_pll, bool, 0); 2559 2573 MODULE_PARM_DESC(force_measure_pll, "Force measurement of PLL (debug)"); 2560 - module_param(accel_cexp, bool, 0); 2561 - MODULE_PARM_DESC(accel_cexp, "Use acceleration engine for color expansion"); 2562 2574 #ifdef CONFIG_MTRR 2563 2575 module_param(nomtrr, bool, 0); 2564 2576 MODULE_PARM_DESC(nomtrr, "bool: disable use of MTRR registers");
+3 -3
drivers/video/aty/radeon_pm.c
··· 2653 2653 2654 2654 if (!(info->flags & FBINFO_HWACCEL_DISABLED)) { 2655 2655 /* Make sure engine is reset */ 2656 - radeon_engine_idle(rinfo); 2656 + radeon_engine_idle(); 2657 2657 radeonfb_engine_reset(rinfo); 2658 - radeon_engine_idle(rinfo); 2658 + radeon_engine_idle(); 2659 2659 } 2660 2660 2661 2661 /* Blank display and LCD */ ··· 2767 2767 2768 2768 rinfo->asleep = 0; 2769 2769 } else 2770 - radeon_engine_idle(rinfo); 2770 + radeon_engine_idle(); 2771 2771 2772 2772 /* Restore display & engine */ 2773 2773 radeon_write_mode (rinfo, &rinfo->state, 1);
+17 -23
drivers/video/aty/radeonfb.h
··· 336 336 int mon2_type; 337 337 u8 *mon2_EDID; 338 338 339 - /* accel bits */ 340 - u32 dp_gui_mc_base; 341 - u32 dp_gui_mc_cache; 342 - u32 dp_cntl_cache; 343 - u32 dp_brush_fg_cache; 344 - u32 dp_brush_bg_cache; 345 - u32 dp_src_fg_cache; 346 - u32 dp_src_bg_cache; 347 - u32 fifo_free; 339 + u32 dp_gui_master_cntl; 348 340 349 341 struct pll_info pll; 350 342 ··· 348 356 int lock_blank; 349 357 int dynclk; 350 358 int no_schedule; 351 - int gfx_mode; 352 359 enum radeon_pm_mode pm_mode; 353 360 reinit_function_ptr reinit_func; 354 361 ··· 392 401 #define OUTREG8(addr,val) writeb(val, (rinfo->mmio_base)+addr) 393 402 #define INREG16(addr) readw((rinfo->mmio_base)+addr) 394 403 #define OUTREG16(addr,val) writew(val, (rinfo->mmio_base)+addr) 395 - 396 - #ifdef CONFIG_PPC 397 - #define INREG(addr) ({ eieio(); ld_le32(rinfo->mmio_base+(addr)); }) 398 - #define OUTREG(addr,val) do { eieio(); st_le32(rinfo->mmio_base+(addr),(val)); } while(0) 399 - #else 400 404 #define INREG(addr) readl((rinfo->mmio_base)+addr) 401 405 #define OUTREG(addr,val) writel(val, (rinfo->mmio_base)+addr) 402 - #endif 403 406 404 407 static inline void _OUTREGP(struct radeonfb_info *rinfo, u32 addr, 405 408 u32 val, u32 mask) ··· 535 550 * 2D Engine helper routines 536 551 */ 537 552 538 - extern void radeon_fifo_update_and_wait(struct radeonfb_info *rinfo, int entries); 553 + static inline void _radeon_fifo_wait(struct radeonfb_info *rinfo, int entries) 554 + { 555 + int i; 556 + 557 + for (i=0; i<2000000; i++) { 558 + if ((INREG(RBBM_STATUS) & 0x7f) >= entries) 559 + return; 560 + udelay(1); 561 + } 562 + printk(KERN_ERR "radeonfb: FIFO Timeout !\n"); 563 + } 539 564 540 565 static inline void radeon_engine_flush (struct radeonfb_info *rinfo) 541 566 { ··· 558 563 /* Ensure FIFO is empty, ie, make sure the flush commands 559 564 * has reached the cache 560 565 */ 561 - radeon_fifo_update_and_wait(rinfo, 64); 566 + _radeon_fifo_wait (rinfo, 64); 562 567 563 568 /* Wait for the flush to complete */ 564 569 for (i=0; i < 2000000; i++) { ··· 570 575 } 571 576 572 577 573 - static inline void radeon_engine_idle(struct radeonfb_info *rinfo) 578 + static inline void _radeon_engine_idle(struct radeonfb_info *rinfo) 574 579 { 575 580 int i; 576 581 577 582 /* ensure FIFO is empty before waiting for idle */ 578 - radeon_fifo_update_and_wait (rinfo, 64); 583 + _radeon_fifo_wait (rinfo, 64); 579 584 580 585 for (i=0; i<2000000; i++) { 581 586 if (((INREG(RBBM_STATUS) & GUI_ACTIVE)) == 0) { ··· 588 593 } 589 594 590 595 596 + #define radeon_engine_idle() _radeon_engine_idle(rinfo) 597 + #define radeon_fifo_wait(entries) _radeon_fifo_wait(rinfo,entries) 591 598 #define radeon_msleep(ms) _radeon_msleep(rinfo,ms) 592 599 593 600 ··· 619 622 extern int radeonfb_sync(struct fb_info *info); 620 623 extern void radeonfb_engine_init (struct radeonfb_info *rinfo); 621 624 extern void radeonfb_engine_reset(struct radeonfb_info *rinfo); 622 - extern void radeon_fixup_mem_offset(struct radeonfb_info *rinfo); 623 625 624 626 /* Other functions */ 625 627 extern int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch); ··· 633 637 static inline void radeonfb_bl_init(struct radeonfb_info *rinfo) {} 634 638 static inline void radeonfb_bl_exit(struct radeonfb_info *rinfo) {} 635 639 #endif 636 - 637 - extern int accel_cexp; 638 640 639 641 #endif /* __RADEONFB_H__ */
+266 -200
drivers/video/imxfb.c
··· 1 1 /* 2 - * linux/drivers/video/imxfb.c 3 - * 4 2 * Freescale i.MX Frame Buffer device driver 5 3 * 6 4 * Copyright (C) 2004 Sascha Hauer, Pengutronix ··· 14 16 * linux-arm-kernel@lists.arm.linux.org.uk 15 17 */ 16 18 17 - //#define DEBUG 1 18 19 19 20 #include <linux/module.h> 20 21 #include <linux/kernel.h> ··· 29 32 #include <linux/cpufreq.h> 30 33 #include <linux/platform_device.h> 31 34 #include <linux/dma-mapping.h> 35 + #include <linux/io.h> 32 36 33 - #include <mach/hardware.h> 34 - #include <asm/io.h> 35 37 #include <mach/imxfb.h> 36 38 37 39 /* ··· 38 42 */ 39 43 #define DEBUG_VAR 1 40 44 41 - #include "imxfb.h" 45 + #define DRIVER_NAME "imx-fb" 42 46 43 - static struct imxfb_rgb def_rgb_16 = { 44 - .red = { .offset = 8, .length = 4, }, 45 - .green = { .offset = 4, .length = 4, }, 46 - .blue = { .offset = 0, .length = 4, }, 47 - .transp = { .offset = 0, .length = 0, }, 47 + #define LCDC_SSA 0x00 48 + 49 + #define LCDC_SIZE 0x04 50 + #define SIZE_XMAX(x) ((((x) >> 4) & 0x3f) << 20) 51 + #define SIZE_YMAX(y) ((y) & 0x1ff) 52 + 53 + #define LCDC_VPW 0x08 54 + #define VPW_VPW(x) ((x) & 0x3ff) 55 + 56 + #define LCDC_CPOS 0x0C 57 + #define CPOS_CC1 (1<<31) 58 + #define CPOS_CC0 (1<<30) 59 + #define CPOS_OP (1<<28) 60 + #define CPOS_CXP(x) (((x) & 3ff) << 16) 61 + #define CPOS_CYP(y) ((y) & 0x1ff) 62 + 63 + #define LCDC_LCWHB 0x10 64 + #define LCWHB_BK_EN (1<<31) 65 + #define LCWHB_CW(w) (((w) & 0x1f) << 24) 66 + #define LCWHB_CH(h) (((h) & 0x1f) << 16) 67 + #define LCWHB_BD(x) ((x) & 0xff) 68 + 69 + #define LCDC_LCHCC 0x14 70 + #define LCHCC_CUR_COL_R(r) (((r) & 0x1f) << 11) 71 + #define LCHCC_CUR_COL_G(g) (((g) & 0x3f) << 5) 72 + #define LCHCC_CUR_COL_B(b) ((b) & 0x1f) 73 + 74 + #define LCDC_PCR 0x18 75 + 76 + #define LCDC_HCR 0x1C 77 + #define HCR_H_WIDTH(x) (((x) & 0x3f) << 26) 78 + #define HCR_H_WAIT_1(x) (((x) & 0xff) << 8) 79 + #define HCR_H_WAIT_2(x) ((x) & 0xff) 80 + 81 + #define LCDC_VCR 0x20 82 + #define VCR_V_WIDTH(x) (((x) & 0x3f) << 26) 83 + #define VCR_V_WAIT_1(x) (((x) & 0xff) << 8) 84 + #define VCR_V_WAIT_2(x) ((x) & 0xff) 85 + 86 + #define LCDC_POS 0x24 87 + #define POS_POS(x) ((x) & 1f) 88 + 89 + #define LCDC_LSCR1 0x28 90 + /* bit fields in imxfb.h */ 91 + 92 + #define LCDC_PWMR 0x2C 93 + /* bit fields in imxfb.h */ 94 + 95 + #define LCDC_DMACR 0x30 96 + /* bit fields in imxfb.h */ 97 + 98 + #define LCDC_RMCR 0x34 99 + #define RMCR_LCDC_EN (1<<1) 100 + #define RMCR_SELF_REF (1<<0) 101 + 102 + #define LCDC_LCDICR 0x38 103 + #define LCDICR_INT_SYN (1<<2) 104 + #define LCDICR_INT_CON (1) 105 + 106 + #define LCDC_LCDISR 0x40 107 + #define LCDISR_UDR_ERR (1<<3) 108 + #define LCDISR_ERR_RES (1<<2) 109 + #define LCDISR_EOF (1<<1) 110 + #define LCDISR_BOF (1<<0) 111 + 112 + /* 113 + * These are the bitfields for each 114 + * display depth that we support. 115 + */ 116 + struct imxfb_rgb { 117 + struct fb_bitfield red; 118 + struct fb_bitfield green; 119 + struct fb_bitfield blue; 120 + struct fb_bitfield transp; 121 + }; 122 + 123 + struct imxfb_info { 124 + struct platform_device *pdev; 125 + void __iomem *regs; 126 + 127 + u_int max_bpp; 128 + u_int max_xres; 129 + u_int max_yres; 130 + 131 + /* 132 + * These are the addresses we mapped 133 + * the framebuffer memory region to. 134 + */ 135 + dma_addr_t map_dma; 136 + u_char *map_cpu; 137 + u_int map_size; 138 + 139 + u_char *screen_cpu; 140 + dma_addr_t screen_dma; 141 + u_int palette_size; 142 + 143 + dma_addr_t dbar1; 144 + dma_addr_t dbar2; 145 + 146 + u_int pcr; 147 + u_int pwmr; 148 + u_int lscr1; 149 + u_int dmacr; 150 + u_int cmap_inverse:1, 151 + cmap_static:1, 152 + unused:30; 153 + 154 + void (*lcd_power)(int); 155 + void (*backlight_power)(int); 156 + }; 157 + 158 + #define IMX_NAME "IMX" 159 + 160 + /* 161 + * Minimum X and Y resolutions 162 + */ 163 + #define MIN_XRES 64 164 + #define MIN_YRES 64 165 + 166 + static struct imxfb_rgb def_rgb_16_tft = { 167 + .red = {.offset = 11, .length = 5,}, 168 + .green = {.offset = 5, .length = 6,}, 169 + .blue = {.offset = 0, .length = 5,}, 170 + .transp = {.offset = 0, .length = 0,}, 171 + }; 172 + 173 + static struct imxfb_rgb def_rgb_16_stn = { 174 + .red = {.offset = 8, .length = 4,}, 175 + .green = {.offset = 4, .length = 4,}, 176 + .blue = {.offset = 0, .length = 4,}, 177 + .transp = {.offset = 0, .length = 0,}, 48 178 }; 49 179 50 180 static struct imxfb_rgb def_rgb_8 = { 51 - .red = { .offset = 0, .length = 8, }, 52 - .green = { .offset = 0, .length = 8, }, 53 - .blue = { .offset = 0, .length = 8, }, 54 - .transp = { .offset = 0, .length = 0, }, 181 + .red = {.offset = 0, .length = 8,}, 182 + .green = {.offset = 0, .length = 8,}, 183 + .blue = {.offset = 0, .length = 8,}, 184 + .transp = {.offset = 0, .length = 0,}, 55 185 }; 56 186 57 - static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *info); 187 + static int imxfb_activate_var(struct fb_var_screeninfo *var, 188 + struct fb_info *info); 58 189 59 190 static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf) 60 191 { ··· 190 67 return chan << bf->offset; 191 68 } 192 69 193 - #define LCDC_PALETTE(x) __REG2(IMX_LCDC_BASE+0x800, (x)<<2) 194 - static int 195 - imxfb_setpalettereg(u_int regno, u_int red, u_int green, u_int blue, 196 - u_int trans, struct fb_info *info) 70 + static int imxfb_setpalettereg(u_int regno, u_int red, u_int green, u_int blue, 71 + u_int trans, struct fb_info *info) 197 72 { 198 73 struct imxfb_info *fbi = info->par; 199 74 u_int val, ret = 1; ··· 202 81 (CNVT_TOHW(green,4) << 4) | 203 82 CNVT_TOHW(blue, 4); 204 83 205 - LCDC_PALETTE(regno) = val; 84 + writel(val, fbi->regs + 0x800 + (regno << 2)); 206 85 ret = 0; 207 86 } 208 87 return ret; 209 88 } 210 89 211 - static int 212 - imxfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, 90 + static int imxfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, 213 91 u_int trans, struct fb_info *info) 214 92 { 215 93 struct imxfb_info *fbi = info->par; ··· 268 148 * yres, xres_virtual, yres_virtual, xoffset, yoffset, grayscale, 269 149 * bitfields, horizontal timing, vertical timing. 270 150 */ 271 - static int 272 - imxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) 151 + static int imxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) 273 152 { 274 153 struct imxfb_info *fbi = info->par; 275 - int rgbidx; 154 + struct imxfb_rgb *rgb; 276 155 277 156 if (var->xres < MIN_XRES) 278 157 var->xres = MIN_XRES; ··· 287 168 pr_debug("var->bits_per_pixel=%d\n", var->bits_per_pixel); 288 169 switch (var->bits_per_pixel) { 289 170 case 16: 290 - rgbidx = RGB_16; 171 + default: 172 + if (readl(fbi->regs + LCDC_PCR) & PCR_TFT) 173 + rgb = &def_rgb_16_tft; 174 + else 175 + rgb = &def_rgb_16_stn; 291 176 break; 292 177 case 8: 293 - rgbidx = RGB_8; 178 + rgb = &def_rgb_8; 294 179 break; 295 - default: 296 - rgbidx = RGB_16; 297 180 } 298 181 299 182 /* 300 183 * Copy the RGB parameters for this display 301 184 * from the machine specific parameters. 302 185 */ 303 - var->red = fbi->rgb[rgbidx]->red; 304 - var->green = fbi->rgb[rgbidx]->green; 305 - var->blue = fbi->rgb[rgbidx]->blue; 306 - var->transp = fbi->rgb[rgbidx]->transp; 186 + var->red = rgb->red; 187 + var->green = rgb->green; 188 + var->blue = rgb->blue; 189 + var->transp = rgb->transp; 307 190 308 191 pr_debug("RGBT length = %d:%d:%d:%d\n", 309 192 var->red.length, var->green.length, var->blue.length, ··· 342 221 info->fix.visual = FB_VISUAL_STATIC_PSEUDOCOLOR; 343 222 } 344 223 345 - info->fix.line_length = var->xres_virtual * 346 - var->bits_per_pixel / 8; 224 + info->fix.line_length = var->xres_virtual * var->bits_per_pixel / 8; 347 225 fbi->palette_size = var->bits_per_pixel == 8 ? 256 : 16; 348 226 349 227 imxfb_activate_var(var, info); ··· 355 235 pr_debug("Enabling LCD controller\n"); 356 236 357 237 /* initialize LCDC */ 358 - LCDC_RMCR &= ~RMCR_LCDC_EN; /* just to be safe... */ 238 + writel(readl(fbi->regs + LCDC_RMCR) & ~RMCR_LCDC_EN, 239 + fbi->regs + LCDC_RMCR); /* just to be safe... */ 359 240 360 - LCDC_SSA = fbi->screen_dma; 241 + writel(fbi->screen_dma, fbi->regs + LCDC_SSA); 242 + 361 243 /* physical screen start address */ 362 - LCDC_VPW = VPW_VPW(fbi->max_xres * fbi->max_bpp / 8 / 4); 244 + writel(VPW_VPW(fbi->max_xres * fbi->max_bpp / 8 / 4), 245 + fbi->regs + LCDC_VPW); 363 246 364 - LCDC_POS = 0x00000000; /* panning offset 0 (0 pixel offset) */ 247 + /* panning offset 0 (0 pixel offset) */ 248 + writel(0x00000000, fbi->regs + LCDC_POS); 365 249 366 250 /* disable hardware cursor */ 367 - LCDC_CPOS &= ~(CPOS_CC0 | CPOS_CC1); 251 + writel(readl(fbi->regs + LCDC_CPOS) & ~(CPOS_CC0 | CPOS_CC1), 252 + fbi->regs + LCDC_CPOS); 368 253 369 - LCDC_RMCR = RMCR_LCDC_EN; 254 + writel(RMCR_LCDC_EN, fbi->regs + LCDC_RMCR); 370 255 371 - if(fbi->backlight_power) 256 + if (fbi->backlight_power) 372 257 fbi->backlight_power(1); 373 - if(fbi->lcd_power) 258 + if (fbi->lcd_power) 374 259 fbi->lcd_power(1); 375 260 } 376 261 ··· 383 258 { 384 259 pr_debug("Disabling LCD controller\n"); 385 260 386 - if(fbi->backlight_power) 261 + if (fbi->backlight_power) 387 262 fbi->backlight_power(0); 388 - if(fbi->lcd_power) 263 + if (fbi->lcd_power) 389 264 fbi->lcd_power(0); 390 265 391 - LCDC_RMCR = 0; 266 + writel(0, fbi->regs + LCDC_RMCR); 392 267 } 393 268 394 269 static int imxfb_blank(int blank, struct fb_info *info) ··· 465 340 info->fix.id, var->lower_margin); 466 341 #endif 467 342 468 - LCDC_HCR = HCR_H_WIDTH(var->hsync_len) | 469 - HCR_H_WAIT_1(var->left_margin) | 470 - HCR_H_WAIT_2(var->right_margin); 343 + writel(HCR_H_WIDTH(var->hsync_len) | 344 + HCR_H_WAIT_1(var->right_margin) | 345 + HCR_H_WAIT_2(var->left_margin), 346 + fbi->regs + LCDC_HCR); 471 347 472 - LCDC_VCR = VCR_V_WIDTH(var->vsync_len) | 473 - VCR_V_WAIT_1(var->upper_margin) | 474 - VCR_V_WAIT_2(var->lower_margin); 348 + writel(VCR_V_WIDTH(var->vsync_len) | 349 + VCR_V_WAIT_1(var->lower_margin) | 350 + VCR_V_WAIT_2(var->upper_margin), 351 + fbi->regs + LCDC_VCR); 475 352 476 - LCDC_SIZE = SIZE_XMAX(var->xres) | SIZE_YMAX(var->yres); 477 - LCDC_PCR = fbi->pcr; 478 - LCDC_PWMR = fbi->pwmr; 479 - LCDC_LSCR1 = fbi->lscr1; 480 - LCDC_DMACR = fbi->dmacr; 353 + writel(SIZE_XMAX(var->xres) | SIZE_YMAX(var->yres), 354 + fbi->regs + LCDC_SIZE); 355 + writel(fbi->pcr, fbi->regs + LCDC_PCR); 356 + writel(fbi->pwmr, fbi->regs + LCDC_PWMR); 357 + writel(fbi->lscr1, fbi->regs + LCDC_LSCR1); 358 + writel(fbi->dmacr, fbi->regs + LCDC_DMACR); 481 359 482 360 return 0; 483 - } 484 - 485 - static void imxfb_setup_gpio(struct imxfb_info *fbi) 486 - { 487 - int width; 488 - 489 - LCDC_RMCR &= ~(RMCR_LCDC_EN | RMCR_SELF_REF); 490 - 491 - if( fbi->pcr & PCR_TFT ) 492 - width = 16; 493 - else 494 - width = 1 << ((fbi->pcr >> 28) & 0x3); 495 - 496 - switch(width) { 497 - case 16: 498 - imx_gpio_mode(PD30_PF_LD15); 499 - imx_gpio_mode(PD29_PF_LD14); 500 - imx_gpio_mode(PD28_PF_LD13); 501 - imx_gpio_mode(PD27_PF_LD12); 502 - imx_gpio_mode(PD26_PF_LD11); 503 - imx_gpio_mode(PD25_PF_LD10); 504 - imx_gpio_mode(PD24_PF_LD9); 505 - imx_gpio_mode(PD23_PF_LD8); 506 - case 8: 507 - imx_gpio_mode(PD22_PF_LD7); 508 - imx_gpio_mode(PD21_PF_LD6); 509 - imx_gpio_mode(PD20_PF_LD5); 510 - imx_gpio_mode(PD19_PF_LD4); 511 - case 4: 512 - imx_gpio_mode(PD18_PF_LD3); 513 - imx_gpio_mode(PD17_PF_LD2); 514 - case 2: 515 - imx_gpio_mode(PD16_PF_LD1); 516 - case 1: 517 - imx_gpio_mode(PD15_PF_LD0); 518 - } 519 - 520 - /* initialize GPIOs */ 521 - imx_gpio_mode(PD6_PF_LSCLK); 522 - imx_gpio_mode(PD11_PF_CONTRAST); 523 - imx_gpio_mode(PD14_PF_FLM_VSYNC); 524 - imx_gpio_mode(PD13_PF_LP_HSYNC); 525 - imx_gpio_mode(PD12_PF_ACD_OE); 526 - 527 - /* These are only needed for Sharp HR TFT displays */ 528 - if (fbi->pcr & PCR_SHARP) { 529 - imx_gpio_mode(PD7_PF_REV); 530 - imx_gpio_mode(PD8_PF_CLS); 531 - imx_gpio_mode(PD9_PF_PS); 532 - imx_gpio_mode(PD10_PF_SPL_SPR); 533 - } 534 361 } 535 362 536 363 #ifdef CONFIG_PM ··· 493 416 static int imxfb_suspend(struct platform_device *dev, pm_message_t state) 494 417 { 495 418 struct imxfb_info *fbi = platform_get_drvdata(dev); 496 - pr_debug("%s\n",__func__); 419 + 420 + pr_debug("%s\n", __func__); 497 421 498 422 imxfb_disable_controller(fbi); 499 423 return 0; ··· 503 425 static int imxfb_resume(struct platform_device *dev) 504 426 { 505 427 struct imxfb_info *fbi = platform_get_drvdata(dev); 506 - pr_debug("%s\n",__func__); 428 + 429 + pr_debug("%s\n", __func__); 507 430 508 431 imxfb_enable_controller(fbi); 509 432 return 0; ··· 514 435 #define imxfb_resume NULL 515 436 #endif 516 437 517 - static int __init imxfb_init_fbinfo(struct device *dev) 438 + static int __init imxfb_init_fbinfo(struct platform_device *pdev) 518 439 { 519 - struct imxfb_mach_info *inf = dev->platform_data; 520 - struct fb_info *info = dev_get_drvdata(dev); 440 + struct imx_fb_platform_data *pdata = pdev->dev.platform_data; 441 + struct fb_info *info = dev_get_drvdata(&pdev->dev); 521 442 struct imxfb_info *fbi = info->par; 522 443 523 444 pr_debug("%s\n",__func__); 524 445 525 - info->pseudo_palette = kmalloc( sizeof(u32) * 16, GFP_KERNEL); 446 + info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); 526 447 if (!info->pseudo_palette) 527 448 return -ENOMEM; 528 449 529 450 memset(fbi, 0, sizeof(struct imxfb_info)); 530 - fbi->dev = dev; 531 451 532 452 strlcpy(info->fix.id, IMX_NAME, sizeof(info->fix.id)); 533 453 534 - info->fix.type = FB_TYPE_PACKED_PIXELS; 454 + info->fix.type = FB_TYPE_PACKED_PIXELS; 535 455 info->fix.type_aux = 0; 536 456 info->fix.xpanstep = 0; 537 457 info->fix.ypanstep = 0; 538 458 info->fix.ywrapstep = 0; 539 - info->fix.accel = FB_ACCEL_NONE; 459 + info->fix.accel = FB_ACCEL_NONE; 540 460 541 461 info->var.nonstd = 0; 542 462 info->var.activate = FB_ACTIVATE_NOW; 543 463 info->var.height = -1; 544 464 info->var.width = -1; 545 465 info->var.accel_flags = 0; 546 - info->var.vmode = FB_VMODE_NONINTERLACED; 466 + info->var.vmode = FB_VMODE_NONINTERLACED; 547 467 548 468 info->fbops = &imxfb_ops; 549 - info->flags = FBINFO_FLAG_DEFAULT | FBINFO_READS_FAST; 469 + info->flags = FBINFO_FLAG_DEFAULT | 470 + FBINFO_READS_FAST; 550 471 551 - fbi->rgb[RGB_16] = &def_rgb_16; 552 - fbi->rgb[RGB_8] = &def_rgb_8; 553 - 554 - fbi->max_xres = inf->xres; 555 - info->var.xres = inf->xres; 556 - info->var.xres_virtual = inf->xres; 557 - fbi->max_yres = inf->yres; 558 - info->var.yres = inf->yres; 559 - info->var.yres_virtual = inf->yres; 560 - fbi->max_bpp = inf->bpp; 561 - info->var.bits_per_pixel = inf->bpp; 562 - info->var.nonstd = inf->nonstd; 563 - info->var.pixclock = inf->pixclock; 564 - info->var.hsync_len = inf->hsync_len; 565 - info->var.left_margin = inf->left_margin; 566 - info->var.right_margin = inf->right_margin; 567 - info->var.vsync_len = inf->vsync_len; 568 - info->var.upper_margin = inf->upper_margin; 569 - info->var.lower_margin = inf->lower_margin; 570 - info->var.sync = inf->sync; 571 - info->var.grayscale = inf->cmap_greyscale; 572 - fbi->cmap_inverse = inf->cmap_inverse; 573 - fbi->cmap_static = inf->cmap_static; 574 - fbi->pcr = inf->pcr; 575 - fbi->lscr1 = inf->lscr1; 576 - fbi->dmacr = inf->dmacr; 577 - fbi->pwmr = inf->pwmr; 578 - fbi->lcd_power = inf->lcd_power; 579 - fbi->backlight_power = inf->backlight_power; 472 + fbi->max_xres = pdata->xres; 473 + info->var.xres = pdata->xres; 474 + info->var.xres_virtual = pdata->xres; 475 + fbi->max_yres = pdata->yres; 476 + info->var.yres = pdata->yres; 477 + info->var.yres_virtual = pdata->yres; 478 + fbi->max_bpp = pdata->bpp; 479 + info->var.bits_per_pixel = pdata->bpp; 480 + info->var.nonstd = pdata->nonstd; 481 + info->var.pixclock = pdata->pixclock; 482 + info->var.hsync_len = pdata->hsync_len; 483 + info->var.left_margin = pdata->left_margin; 484 + info->var.right_margin = pdata->right_margin; 485 + info->var.vsync_len = pdata->vsync_len; 486 + info->var.upper_margin = pdata->upper_margin; 487 + info->var.lower_margin = pdata->lower_margin; 488 + info->var.sync = pdata->sync; 489 + info->var.grayscale = pdata->cmap_greyscale; 490 + fbi->cmap_inverse = pdata->cmap_inverse; 491 + fbi->cmap_static = pdata->cmap_static; 492 + fbi->pcr = pdata->pcr; 493 + fbi->lscr1 = pdata->lscr1; 494 + fbi->dmacr = pdata->dmacr; 495 + fbi->pwmr = pdata->pwmr; 496 + fbi->lcd_power = pdata->lcd_power; 497 + fbi->backlight_power = pdata->backlight_power; 580 498 info->fix.smem_len = fbi->max_xres * fbi->max_yres * 581 499 fbi->max_bpp / 8; 582 500 583 501 return 0; 584 502 } 585 503 586 - /* 587 - * Allocates the DRAM memory for the frame buffer. This buffer is 588 - * remapped into a non-cached, non-buffered, memory region to 589 - * allow pixel writes to occur without flushing the cache. 590 - * Once this area is remapped, all virtual memory access to the 591 - * video memory should occur at the new region. 592 - */ 593 - static int __init imxfb_map_video_memory(struct fb_info *info) 594 - { 595 - struct imxfb_info *fbi = info->par; 596 - 597 - fbi->map_size = PAGE_ALIGN(info->fix.smem_len); 598 - fbi->map_cpu = dma_alloc_writecombine(fbi->dev, fbi->map_size, 599 - &fbi->map_dma,GFP_KERNEL); 600 - 601 - if (fbi->map_cpu) { 602 - info->screen_base = fbi->map_cpu; 603 - fbi->screen_cpu = fbi->map_cpu; 604 - fbi->screen_dma = fbi->map_dma; 605 - info->fix.smem_start = fbi->screen_dma; 606 - } 607 - 608 - return fbi->map_cpu ? 0 : -ENOMEM; 609 - } 610 - 611 504 static int __init imxfb_probe(struct platform_device *pdev) 612 505 { 613 506 struct imxfb_info *fbi; 614 507 struct fb_info *info; 615 - struct imxfb_mach_info *inf; 508 + struct imx_fb_platform_data *pdata; 616 509 struct resource *res; 617 510 int ret; 618 511 619 512 printk("i.MX Framebuffer driver\n"); 620 513 621 514 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 622 - if(!res) 515 + if (!res) 623 516 return -ENODEV; 624 517 625 - inf = pdev->dev.platform_data; 626 - if(!inf) { 518 + pdata = pdev->dev.platform_data; 519 + if (!pdata) { 627 520 dev_err(&pdev->dev,"No platform_data available\n"); 628 521 return -ENOMEM; 629 522 } 630 523 631 524 info = framebuffer_alloc(sizeof(struct imxfb_info), &pdev->dev); 632 - if(!info) 525 + if (!info) 633 526 return -ENOMEM; 634 527 635 528 fbi = info->par; 636 529 637 530 platform_set_drvdata(pdev, info); 638 531 639 - ret = imxfb_init_fbinfo(&pdev->dev); 640 - if( ret < 0 ) 532 + ret = imxfb_init_fbinfo(pdev); 533 + if (ret < 0) 641 534 goto failed_init; 642 535 643 - res = request_mem_region(res->start, res->end - res->start + 1, "IMXFB"); 536 + res = request_mem_region(res->start, resource_size(res), 537 + DRIVER_NAME); 644 538 if (!res) { 645 539 ret = -EBUSY; 646 - goto failed_regs; 540 + goto failed_req; 647 541 } 648 542 649 - if (!inf->fixed_screen_cpu) { 650 - ret = imxfb_map_video_memory(info); 651 - if (ret) { 543 + fbi->regs = ioremap(res->start, resource_size(res)); 544 + if (fbi->regs == NULL) { 545 + printk(KERN_ERR"Cannot map frame buffer registers\n"); 546 + goto failed_ioremap; 547 + } 548 + 549 + if (!pdata->fixed_screen_cpu) { 550 + fbi->map_size = PAGE_ALIGN(info->fix.smem_len); 551 + fbi->map_cpu = dma_alloc_writecombine(&pdev->dev, 552 + fbi->map_size, &fbi->map_dma, GFP_KERNEL); 553 + 554 + if (!fbi->map_cpu) { 652 555 dev_err(&pdev->dev, "Failed to allocate video RAM: %d\n", ret); 653 556 ret = -ENOMEM; 654 557 goto failed_map; 655 558 } 559 + 560 + info->screen_base = fbi->map_cpu; 561 + fbi->screen_cpu = fbi->map_cpu; 562 + fbi->screen_dma = fbi->map_dma; 563 + info->fix.smem_start = fbi->screen_dma; 656 564 } else { 657 565 /* Fixed framebuffer mapping enables location of the screen in eSRAM */ 658 - fbi->map_cpu = inf->fixed_screen_cpu; 659 - fbi->map_dma = inf->fixed_screen_dma; 566 + fbi->map_cpu = pdata->fixed_screen_cpu; 567 + fbi->map_dma = pdata->fixed_screen_dma; 660 568 info->screen_base = fbi->map_cpu; 661 569 fbi->screen_cpu = fbi->map_cpu; 662 570 fbi->screen_dma = fbi->map_dma; ··· 656 590 */ 657 591 imxfb_check_var(&info->var, info); 658 592 659 - ret = fb_alloc_cmap(&info->cmap, 1<<info->var.bits_per_pixel, 0); 593 + ret = fb_alloc_cmap(&info->cmap, 1 << info->var.bits_per_pixel, 0); 660 594 if (ret < 0) 661 595 goto failed_cmap; 662 - 663 - imxfb_setup_gpio(fbi); 664 596 665 597 imxfb_set_par(info); 666 598 ret = register_framebuffer(info); ··· 674 610 failed_register: 675 611 fb_dealloc_cmap(&info->cmap); 676 612 failed_cmap: 677 - if (!inf->fixed_screen_cpu) 613 + if (!pdata->fixed_screen_cpu) 678 614 dma_free_writecombine(&pdev->dev,fbi->map_size,fbi->map_cpu, 679 - fbi->map_dma); 615 + fbi->map_dma); 680 616 failed_map: 681 - kfree(info->pseudo_palette); 682 - failed_regs: 617 + iounmap(fbi->regs); 618 + failed_ioremap: 683 619 release_mem_region(res->start, res->end - res->start); 620 + failed_req: 621 + kfree(info->pseudo_palette); 684 622 failed_init: 685 623 platform_set_drvdata(pdev, NULL); 686 624 framebuffer_release(info); 687 625 return ret; 688 626 } 689 627 690 - static int imxfb_remove(struct platform_device *pdev) 628 + static int __devexit imxfb_remove(struct platform_device *pdev) 691 629 { 692 630 struct fb_info *info = platform_get_drvdata(pdev); 693 631 struct imxfb_info *fbi = info->par; ··· 705 639 kfree(info->pseudo_palette); 706 640 framebuffer_release(info); 707 641 642 + iounmap(fbi->regs); 708 643 release_mem_region(res->start, res->end - res->start + 1); 709 644 platform_set_drvdata(pdev, NULL); 710 645 ··· 720 653 } 721 654 722 655 static struct platform_driver imxfb_driver = { 723 - .probe = imxfb_probe, 724 656 .suspend = imxfb_suspend, 725 657 .resume = imxfb_resume, 726 - .remove = imxfb_remove, 658 + .remove = __devexit_p(imxfb_remove), 727 659 .shutdown = imxfb_shutdown, 728 660 .driver = { 729 - .name = "imx-fb", 661 + .name = DRIVER_NAME, 730 662 }, 731 663 }; 732 664 733 665 int __init imxfb_init(void) 734 666 { 735 - return platform_driver_register(&imxfb_driver); 667 + return platform_driver_probe(&imxfb_driver, imxfb_probe); 736 668 } 737 669 738 670 static void __exit imxfb_cleanup(void)
-73
drivers/video/imxfb.h
··· 1 - /* 2 - * linux/drivers/video/imxfb.h 3 - * 4 - * Freescale i.MX Frame Buffer device driver 5 - * 6 - * Copyright (C) 2004 S.Hauer, Pengutronix 7 - * 8 - * Copyright (C) 1999 Eric A. Thomas 9 - * Based on acornfb.c Copyright (C) Russell King. 10 - * 11 - * This file is subject to the terms and conditions of the GNU General Public 12 - * License. See the file COPYING in the main directory of this archive 13 - * for more details. 14 - */ 15 - 16 - /* 17 - * These are the bitfields for each 18 - * display depth that we support. 19 - */ 20 - struct imxfb_rgb { 21 - struct fb_bitfield red; 22 - struct fb_bitfield green; 23 - struct fb_bitfield blue; 24 - struct fb_bitfield transp; 25 - }; 26 - 27 - #define RGB_16 (0) 28 - #define RGB_8 (1) 29 - #define NR_RGB 2 30 - 31 - struct imxfb_info { 32 - struct device *dev; 33 - struct imxfb_rgb *rgb[NR_RGB]; 34 - 35 - u_int max_bpp; 36 - u_int max_xres; 37 - u_int max_yres; 38 - 39 - /* 40 - * These are the addresses we mapped 41 - * the framebuffer memory region to. 42 - */ 43 - dma_addr_t map_dma; 44 - u_char * map_cpu; 45 - u_int map_size; 46 - 47 - u_char * screen_cpu; 48 - dma_addr_t screen_dma; 49 - u_int palette_size; 50 - 51 - dma_addr_t dbar1; 52 - dma_addr_t dbar2; 53 - 54 - u_int pcr; 55 - u_int pwmr; 56 - u_int lscr1; 57 - u_int dmacr; 58 - u_int cmap_inverse:1, 59 - cmap_static:1, 60 - unused:30; 61 - 62 - void (*lcd_power)(int); 63 - void (*backlight_power)(int); 64 - }; 65 - 66 - #define IMX_NAME "IMX" 67 - 68 - /* 69 - * Minimum X and Y resolutions 70 - */ 71 - #define MIN_XRES 64 72 - #define MIN_YRES 64 73 -
+7
include/linux/netdevice.h
··· 319 319 { 320 320 NAPI_STATE_SCHED, /* Poll is scheduled */ 321 321 NAPI_STATE_DISABLE, /* Disable pending */ 322 + NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */ 322 323 }; 323 324 324 325 extern void __napi_schedule(struct napi_struct *n); ··· 1498 1497 { 1499 1498 unsigned long flags; 1500 1499 1500 + /* 1501 + * don't let napi dequeue from the cpu poll list 1502 + * just in case its running on a different cpu 1503 + */ 1504 + if (unlikely(test_bit(NAPI_STATE_NPSVC, &napi->state))) 1505 + return; 1501 1506 local_irq_save(flags); 1502 1507 __netif_rx_complete(dev, napi); 1503 1508 local_irq_restore(flags);
+2
include/linux/smp.h
··· 146 146 }) 147 147 #define smp_call_function_mask(mask, func, info, wait) \ 148 148 (up_smp_call_function(func, info)) 149 + #define smp_call_function_many(mask, func, info, wait) \ 150 + (up_smp_call_function(func, info)) 149 151 static inline void init_call_single_data(void) 150 152 { 151 153 }
+5 -13
include/video/radeon.h
··· 525 525 #define CRTC_DISPLAY_DIS (1 << 10) 526 526 #define CRTC_CRT_ON (1 << 15) 527 527 528 - /* DSTCACHE_MODE bits constants */ 529 - #define RB2D_DC_AUTOFLUSH_ENABLE (1 << 8) 530 - #define RB2D_DC_DC_DISABLE_IGNORE_PE (1 << 17) 531 528 532 529 /* DSTCACHE_CTLSTAT bit constants */ 533 530 #define RB2D_DC_FLUSH_2D (1 << 0) ··· 866 869 #define GMC_DST_16BPP_YVYU422 0x00000c00 867 870 #define GMC_DST_32BPP_AYUV444 0x00000e00 868 871 #define GMC_DST_16BPP_ARGB4444 0x00000f00 872 + #define GMC_SRC_MONO 0x00000000 873 + #define GMC_SRC_MONO_LBKGD 0x00001000 874 + #define GMC_SRC_DSTCOLOR 0x00003000 869 875 #define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000 870 876 #define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000 871 877 #define GMC_DP_CONVERSION_TEMP_9300 0x00008000 872 878 #define GMC_DP_CONVERSION_TEMP_6500 0x00000000 879 + #define GMC_DP_SRC_RECT 0x02000000 880 + #define GMC_DP_SRC_HOST 0x03000000 873 881 #define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000 874 882 #define GMC_3D_FCN_EN_CLR 0x00000000 875 883 #define GMC_3D_FCN_EN_SET 0x08000000 ··· 885 883 #define GMC_WRITE_MASK_LEAVE 0x00000000 886 884 #define GMC_WRITE_MASK_SET 0x40000000 887 885 #define GMC_CLR_CMP_CNTL_DIS (1 << 28) 888 - #define GMC_SRC_DATATYPE_MASK (3 << 12) 889 - #define GMC_SRC_DATATYPE_MONO_FG_BG (0 << 12) 890 - #define GMC_SRC_DATATYPE_MONO_FG_LA (1 << 12) 891 886 #define GMC_SRC_DATATYPE_COLOR (3 << 12) 892 887 #define ROP3_S 0x00cc0000 893 888 #define ROP3_SRCCOPY 0x00cc0000 ··· 893 894 #define DP_SRC_SOURCE_MASK (7 << 24) 894 895 #define GMC_BRUSH_NONE (15 << 4) 895 896 #define DP_SRC_SOURCE_MEMORY (2 << 24) 896 - #define DP_SRC_SOURCE_HOST_DATA (3 << 24) 897 897 #define GMC_BRUSH_SOLIDCOLOR 0x000000d0 898 898 899 899 /* DP_MIX bit constants */ ··· 977 979 #define DISP_PWR_MAN_DIG_TMDS_ENABLE_RST (1 << 24) 978 980 #define DISP_PWR_MAN_TV_ENABLE_RST (1 << 25) 979 981 #define DISP_PWR_MAN_AUTO_PWRUP_EN (1 << 26) 980 - 981 - /* RBBM_GUICNTL constants */ 982 - #define RBBM_GUICNTL_HOST_DATA_SWAP_NONE (0 << 0) 983 - #define RBBM_GUICNTL_HOST_DATA_SWAP_16BIT (1 << 0) 984 - #define RBBM_GUICNTL_HOST_DATA_SWAP_32BIT (2 << 0) 985 - #define RBBM_GUICNTL_HOST_DATA_SWAP_HDW (3 << 0) 986 982 987 983 /* masks */ 988 984
+1 -1
kernel/cgroup.c
··· 702 702 * any child cgroups exist. This is theoretically supportable 703 703 * but involves complex error handling, so it's being left until 704 704 * later */ 705 - if (!list_empty(&cgrp->children)) 705 + if (root->number_of_cgroups > 1) 706 706 return -EBUSY; 707 707 708 708 /* Process each subsystem */
+3 -3
kernel/sched_clock.c
··· 118 118 119 119 /* 120 120 * scd->clock = clamp(scd->tick_gtod + delta, 121 - * max(scd->tick_gtod, scd->clock), 122 - * max(scd->clock, scd->tick_gtod + TICK_NSEC)); 121 + * max(scd->tick_gtod, scd->clock), 122 + * scd->tick_gtod + TICK_NSEC); 123 123 */ 124 124 125 125 clock = scd->tick_gtod + delta; 126 126 min_clock = wrap_max(scd->tick_gtod, scd->clock); 127 - max_clock = wrap_max(scd->clock, scd->tick_gtod + TICK_NSEC); 127 + max_clock = scd->tick_gtod + TICK_NSEC; 128 128 129 129 clock = wrap_max(clock, min_clock); 130 130 clock = wrap_min(clock, max_clock);
+1 -1
mm/slob.c
··· 535 535 struct kmem_cache *c; 536 536 537 537 c = slob_alloc(sizeof(struct kmem_cache), 538 - flags, ARCH_KMALLOC_MINALIGN, -1); 538 + GFP_KERNEL, ARCH_KMALLOC_MINALIGN, -1); 539 539 540 540 if (c) { 541 541 c->name = name;
+2
net/core/netpoll.c
··· 133 133 134 134 npinfo->rx_flags |= NETPOLL_RX_DROP; 135 135 atomic_inc(&trapped); 136 + set_bit(NAPI_STATE_NPSVC, &napi->state); 136 137 137 138 work = napi->poll(napi, budget); 138 139 140 + clear_bit(NAPI_STATE_NPSVC, &napi->state); 139 141 atomic_dec(&trapped); 140 142 npinfo->rx_flags &= ~NETPOLL_RX_DROP; 141 143
+1 -1
net/ipv4/netfilter/nf_nat_rule.c
··· 61 61 static struct xt_table nat_table = { 62 62 .name = "nat", 63 63 .valid_hooks = NAT_VALID_HOOKS, 64 - .lock = __RW_LOCK_UNLOCKED(__nat_table.lock), 64 + .lock = __RW_LOCK_UNLOCKED(nat_table.lock), 65 65 .me = THIS_MODULE, 66 66 .af = AF_INET, 67 67 };
+10 -70
net/ipv4/tcp_vegas.c
··· 40 40 41 41 #include "tcp_vegas.h" 42 42 43 - /* Default values of the Vegas variables, in fixed-point representation 44 - * with V_PARAM_SHIFT bits to the right of the binary point. 45 - */ 46 - #define V_PARAM_SHIFT 1 47 - static int alpha = 2<<V_PARAM_SHIFT; 48 - static int beta = 4<<V_PARAM_SHIFT; 49 - static int gamma = 1<<V_PARAM_SHIFT; 43 + static int alpha = 2; 44 + static int beta = 4; 45 + static int gamma = 1; 50 46 51 47 module_param(alpha, int, 0644); 52 - MODULE_PARM_DESC(alpha, "lower bound of packets in network (scale by 2)"); 48 + MODULE_PARM_DESC(alpha, "lower bound of packets in network"); 53 49 module_param(beta, int, 0644); 54 - MODULE_PARM_DESC(beta, "upper bound of packets in network (scale by 2)"); 50 + MODULE_PARM_DESC(beta, "upper bound of packets in network"); 55 51 module_param(gamma, int, 0644); 56 52 MODULE_PARM_DESC(gamma, "limit on increase (scale by 2)"); 57 53 ··· 168 172 return; 169 173 } 170 174 171 - /* The key players are v_beg_snd_una and v_beg_snd_nxt. 172 - * 173 - * These are so named because they represent the approximate values 174 - * of snd_una and snd_nxt at the beginning of the current RTT. More 175 - * precisely, they represent the amount of data sent during the RTT. 176 - * At the end of the RTT, when we receive an ACK for v_beg_snd_nxt, 177 - * we will calculate that (v_beg_snd_nxt - v_beg_snd_una) outstanding 178 - * bytes of data have been ACKed during the course of the RTT, giving 179 - * an "actual" rate of: 180 - * 181 - * (v_beg_snd_nxt - v_beg_snd_una) / (rtt duration) 182 - * 183 - * Unfortunately, v_beg_snd_una is not exactly equal to snd_una, 184 - * because delayed ACKs can cover more than one segment, so they 185 - * don't line up nicely with the boundaries of RTTs. 186 - * 187 - * Another unfortunate fact of life is that delayed ACKs delay the 188 - * advance of the left edge of our send window, so that the number 189 - * of bytes we send in an RTT is often less than our cwnd will allow. 190 - * So we keep track of our cwnd separately, in v_beg_snd_cwnd. 191 - */ 192 - 193 175 if (after(ack, vegas->beg_snd_nxt)) { 194 176 /* Do the Vegas once-per-RTT cwnd adjustment. */ 195 - u32 old_wnd, old_snd_cwnd; 196 - 197 - 198 - /* Here old_wnd is essentially the window of data that was 199 - * sent during the previous RTT, and has all 200 - * been acknowledged in the course of the RTT that ended 201 - * with the ACK we just received. Likewise, old_snd_cwnd 202 - * is the cwnd during the previous RTT. 203 - */ 204 - old_wnd = (vegas->beg_snd_nxt - vegas->beg_snd_una) / 205 - tp->mss_cache; 206 - old_snd_cwnd = vegas->beg_snd_cwnd; 207 177 208 178 /* Save the extent of the current window so we can use this 209 179 * at the end of the next RTT. 210 180 */ 211 - vegas->beg_snd_una = vegas->beg_snd_nxt; 212 181 vegas->beg_snd_nxt = tp->snd_nxt; 213 - vegas->beg_snd_cwnd = tp->snd_cwnd; 214 182 215 183 /* We do the Vegas calculations only if we got enough RTT 216 184 * samples that we can be reasonably sure that we got ··· 212 252 * 213 253 * This is: 214 254 * (actual rate in segments) * baseRTT 215 - * We keep it as a fixed point number with 216 - * V_PARAM_SHIFT bits to the right of the binary point. 217 255 */ 218 - target_cwnd = ((u64)old_wnd * vegas->baseRTT); 219 - target_cwnd <<= V_PARAM_SHIFT; 220 - do_div(target_cwnd, rtt); 256 + target_cwnd = tp->snd_cwnd * vegas->baseRTT / rtt; 221 257 222 258 /* Calculate the difference between the window we had, 223 259 * and the window we would like to have. This quantity 224 260 * is the "Diff" from the Arizona Vegas papers. 225 - * 226 - * Again, this is a fixed point number with 227 - * V_PARAM_SHIFT bits to the right of the binary 228 - * point. 229 261 */ 230 - diff = (old_wnd << V_PARAM_SHIFT) - target_cwnd; 262 + diff = tp->snd_cwnd * (rtt-vegas->baseRTT) / vegas->baseRTT; 231 263 232 264 if (diff > gamma && tp->snd_ssthresh > 2 ) { 233 265 /* Going too fast. Time to slow down ··· 234 282 * truncation robs us of full link 235 283 * utilization. 236 284 */ 237 - tp->snd_cwnd = min(tp->snd_cwnd, 238 - ((u32)target_cwnd >> 239 - V_PARAM_SHIFT)+1); 285 + tp->snd_cwnd = min(tp->snd_cwnd, (u32)target_cwnd+1); 240 286 241 287 } else if (tp->snd_cwnd <= tp->snd_ssthresh) { 242 288 /* Slow start. */ 243 289 tcp_slow_start(tp); 244 290 } else { 245 291 /* Congestion avoidance. */ 246 - u32 next_snd_cwnd; 247 292 248 293 /* Figure out where we would like cwnd 249 294 * to be. ··· 249 300 /* The old window was too fast, so 250 301 * we slow down. 251 302 */ 252 - next_snd_cwnd = old_snd_cwnd - 1; 303 + tp->snd_cwnd--; 253 304 } else if (diff < alpha) { 254 305 /* We don't have enough extra packets 255 306 * in the network, so speed up. 256 307 */ 257 - next_snd_cwnd = old_snd_cwnd + 1; 308 + tp->snd_cwnd++; 258 309 } else { 259 310 /* Sending just as fast as we 260 311 * should be. 261 312 */ 262 - next_snd_cwnd = old_snd_cwnd; 263 313 } 264 - 265 - /* Adjust cwnd upward or downward, toward the 266 - * desired value. 267 - */ 268 - if (next_snd_cwnd > tp->snd_cwnd) 269 - tp->snd_cwnd++; 270 - else if (next_snd_cwnd < tp->snd_cwnd) 271 - tp->snd_cwnd--; 272 314 } 273 315 274 316 if (tp->snd_cwnd < 2)
+6 -1
net/ipv6/ndisc.c
··· 912 912 is invalid, but ndisc specs say nothing 913 913 about it. It could be misconfiguration, or 914 914 an smart proxy agent tries to help us :-) 915 + 916 + We should not print the error if NA has been 917 + received from loopback - it is just our own 918 + unsolicited advertisement. 915 919 */ 916 - ND_PRINTK1(KERN_WARNING 920 + if (skb->pkt_type != PACKET_LOOPBACK) 921 + ND_PRINTK1(KERN_WARNING 917 922 "ICMPv6 NA: someone advertises our address on %s!\n", 918 923 ifp->idev->dev->name); 919 924 in6_ifa_put(ifp);
+20 -18
net/netlabel/netlabel_unlabeled.c
··· 562 562 const struct in_addr *mask, 563 563 struct netlbl_audit *audit_info) 564 564 { 565 - int ret_val = 0; 566 565 struct netlbl_af4list *list_entry; 567 566 struct netlbl_unlhsh_addr4 *entry; 568 567 struct audit_buffer *audit_buf; ··· 576 577 if (list_entry != NULL) 577 578 entry = netlbl_unlhsh_addr4_entry(list_entry); 578 579 else 579 - ret_val = -ENOENT; 580 + entry = NULL; 580 581 581 582 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 582 583 audit_info); ··· 587 588 addr->s_addr, mask->s_addr); 588 589 if (dev != NULL) 589 590 dev_put(dev); 590 - if (entry && security_secid_to_secctx(entry->secid, 591 - &secctx, 592 - &secctx_len) == 0) { 591 + if (entry != NULL && 592 + security_secid_to_secctx(entry->secid, 593 + &secctx, &secctx_len) == 0) { 593 594 audit_log_format(audit_buf, " sec_obj=%s", secctx); 594 595 security_release_secctx(secctx, secctx_len); 595 596 } 596 - audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0); 597 + audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0); 597 598 audit_log_end(audit_buf); 598 599 } 599 600 600 - if (ret_val == 0) 601 - call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4); 602 - return ret_val; 601 + if (entry == NULL) 602 + return -ENOENT; 603 + 604 + call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4); 605 + return 0; 603 606 } 604 607 605 608 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ··· 625 624 const struct in6_addr *mask, 626 625 struct netlbl_audit *audit_info) 627 626 { 628 - int ret_val = 0; 629 627 struct netlbl_af6list *list_entry; 630 628 struct netlbl_unlhsh_addr6 *entry; 631 629 struct audit_buffer *audit_buf; ··· 638 638 if (list_entry != NULL) 639 639 entry = netlbl_unlhsh_addr6_entry(list_entry); 640 640 else 641 - ret_val = -ENOENT; 641 + entry = NULL; 642 642 643 643 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 644 644 audit_info); ··· 649 649 addr, mask); 650 650 if (dev != NULL) 651 651 dev_put(dev); 652 - if (entry && security_secid_to_secctx(entry->secid, 653 - &secctx, 654 - &secctx_len) == 0) { 652 + if (entry != NULL && 653 + security_secid_to_secctx(entry->secid, 654 + &secctx, &secctx_len) == 0) { 655 655 audit_log_format(audit_buf, " sec_obj=%s", secctx); 656 656 security_release_secctx(secctx, secctx_len); 657 657 } 658 - audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0); 658 + audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0); 659 659 audit_log_end(audit_buf); 660 660 } 661 661 662 - if (ret_val == 0) 663 - call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6); 664 - return ret_val; 662 + if (entry == NULL) 663 + return -ENOENT; 664 + 665 + call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6); 666 + return 0; 665 667 } 666 668 #endif /* IPv6 */ 667 669
+22 -5
net/phonet/pep-gprs.c
··· 155 155 static void gprs_write_space(struct sock *sk) 156 156 { 157 157 struct gprs_dev *dev = sk->sk_user_data; 158 + struct net_device *net = dev->net; 158 159 unsigned credits = pep_writeable(sk); 159 160 160 161 spin_lock_bh(&dev->tx_lock); 161 162 dev->tx_max = credits; 162 - if (credits > skb_queue_len(&dev->tx_queue)) 163 - netif_wake_queue(dev->net); 163 + if (credits > skb_queue_len(&dev->tx_queue) && netif_running(net)) 164 + netif_wake_queue(net); 164 165 spin_unlock_bh(&dev->tx_lock); 165 166 } 166 167 167 168 /* 168 169 * Network device callbacks 169 170 */ 171 + 172 + static int gprs_open(struct net_device *dev) 173 + { 174 + struct gprs_dev *gp = netdev_priv(dev); 175 + 176 + gprs_write_space(gp->sk); 177 + return 0; 178 + } 179 + 180 + static int gprs_close(struct net_device *dev) 181 + { 182 + struct gprs_dev *gp = netdev_priv(dev); 183 + 184 + netif_stop_queue(dev); 185 + flush_work(&gp->tx_work); 186 + return 0; 187 + } 170 188 171 189 static int gprs_xmit(struct sk_buff *skb, struct net_device *net) 172 190 { ··· 272 254 net->tx_queue_len = 10; 273 255 274 256 net->destructor = free_netdev; 257 + net->open = gprs_open; 258 + net->stop = gprs_close; 275 259 net->hard_start_xmit = gprs_xmit; /* mandatory */ 276 260 net->change_mtu = gprs_set_mtu; 277 261 net->get_stats = gprs_get_stats; ··· 338 318 dev->sk = sk; 339 319 340 320 printk(KERN_DEBUG"%s: attached\n", net->name); 341 - gprs_write_space(sk); /* kick off TX */ 342 321 return net->ifindex; 343 322 344 323 out_rel: ··· 360 341 361 342 printk(KERN_DEBUG"%s: detached\n", net->name); 362 343 unregister_netdev(net); 363 - flush_scheduled_work(); 364 344 sock_put(sk); 365 - skb_queue_purge(&dev->tx_queue); 366 345 }
-3
net/sched/sch_netem.c
··· 46 46 layering other disciplines. It does not need to do bandwidth 47 47 control either since that can be handled by using token 48 48 bucket or other rate control. 49 - 50 - The simulator is limited by the Linux timer resolution 51 - and will create packet bursts on the HZ boundary (1ms). 52 49 */ 53 50 54 51 struct netem_sched_data {