diff options
| -rw-r--r-- | arch/arm/configs/s3c2410_defconfig | 27 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 49 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/mach-vr1000.c | 77 | ||||
| -rw-r--r-- | arch/arm/nwfpe/softfloat-macros | 22 | ||||
| -rw-r--r-- | arch/arm/nwfpe/softfloat.c | 12 | ||||
| -rw-r--r-- | drivers/serial/s3c2410.c | 4 | ||||
| -rw-r--r-- | drivers/video/pxafb.c | 3 |
7 files changed, 167 insertions, 27 deletions
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig index 2a63fb277196..98b72ff38832 100644 --- a/arch/arm/configs/s3c2410_defconfig +++ b/arch/arm/configs/s3c2410_defconfig | |||
| @@ -1,14 +1,13 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.12-rc1-bk2 | 3 | # Linux kernel version: 2.6.12-git4 |
| 4 | # Sun Mar 27 17:47:45 2005 | 4 | # Wed Jun 22 15:56:42 2005 |
| 5 | # | 5 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_UID16=y | 8 | CONFIG_UID16=y |
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_GENERIC_IOMAP=y | ||
| 12 | 11 | ||
| 13 | # | 12 | # |
| 14 | # Code maturity level options | 13 | # Code maturity level options |
| @@ -17,6 +16,7 @@ CONFIG_EXPERIMENTAL=y | |||
| 17 | # CONFIG_CLEAN_COMPILE is not set | 16 | # CONFIG_CLEAN_COMPILE is not set |
| 18 | CONFIG_BROKEN=y | 17 | CONFIG_BROKEN=y |
| 19 | CONFIG_BROKEN_ON_SMP=y | 18 | CONFIG_BROKEN_ON_SMP=y |
| 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 20 | 20 | ||
| 21 | # | 21 | # |
| 22 | # General setup | 22 | # General setup |
| @@ -35,6 +35,8 @@ CONFIG_KOBJECT_UEVENT=y | |||
| 35 | CONFIG_KALLSYMS=y | 35 | CONFIG_KALLSYMS=y |
| 36 | # CONFIG_KALLSYMS_ALL is not set | 36 | # CONFIG_KALLSYMS_ALL is not set |
| 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 38 | CONFIG_PRINTK=y | ||
| 39 | CONFIG_BUG=y | ||
| 38 | CONFIG_BASE_FULL=y | 40 | CONFIG_BASE_FULL=y |
| 39 | CONFIG_FUTEX=y | 41 | CONFIG_FUTEX=y |
| 40 | CONFIG_EPOLL=y | 42 | CONFIG_EPOLL=y |
| @@ -81,6 +83,7 @@ CONFIG_ARCH_S3C2410=y | |||
| 81 | # CONFIG_ARCH_VERSATILE is not set | 83 | # CONFIG_ARCH_VERSATILE is not set |
| 82 | # CONFIG_ARCH_IMX is not set | 84 | # CONFIG_ARCH_IMX is not set |
| 83 | # CONFIG_ARCH_H720X is not set | 85 | # CONFIG_ARCH_H720X is not set |
| 86 | # CONFIG_ARCH_AAEC2000 is not set | ||
| 84 | 87 | ||
| 85 | # | 88 | # |
| 86 | # S3C24XX Implementations | 89 | # S3C24XX Implementations |
| @@ -134,6 +137,7 @@ CONFIG_CPU_TLB_V4WBI=y | |||
| 134 | # | 137 | # |
| 135 | # Bus support | 138 | # Bus support |
| 136 | # | 139 | # |
| 140 | CONFIG_ISA_DMA_API=y | ||
| 137 | 141 | ||
| 138 | # | 142 | # |
| 139 | # PCCARD (PCMCIA/CardBus) support | 143 | # PCCARD (PCMCIA/CardBus) support |
| @@ -143,7 +147,9 @@ CONFIG_CPU_TLB_V4WBI=y | |||
| 143 | # | 147 | # |
| 144 | # Kernel Features | 148 | # Kernel Features |
| 145 | # | 149 | # |
| 150 | # CONFIG_SMP is not set | ||
| 146 | # CONFIG_PREEMPT is not set | 151 | # CONFIG_PREEMPT is not set |
| 152 | # CONFIG_DISCONTIGMEM is not set | ||
| 147 | CONFIG_ALIGNMENT_TRAP=y | 153 | CONFIG_ALIGNMENT_TRAP=y |
| 148 | 154 | ||
| 149 | # | 155 | # |
| @@ -297,7 +303,6 @@ CONFIG_PARPORT_1284=y | |||
| 297 | # | 303 | # |
| 298 | # Block devices | 304 | # Block devices |
| 299 | # | 305 | # |
| 300 | # CONFIG_BLK_DEV_FD is not set | ||
| 301 | # CONFIG_PARIDE is not set | 306 | # CONFIG_PARIDE is not set |
| 302 | # CONFIG_BLK_DEV_COW_COMMON is not set | 307 | # CONFIG_BLK_DEV_COW_COMMON is not set |
| 303 | CONFIG_BLK_DEV_LOOP=y | 308 | CONFIG_BLK_DEV_LOOP=y |
| @@ -359,6 +364,7 @@ CONFIG_BLK_DEV_IDE_BAST=y | |||
| 359 | # | 364 | # |
| 360 | # Fusion MPT device support | 365 | # Fusion MPT device support |
| 361 | # | 366 | # |
| 367 | # CONFIG_FUSION is not set | ||
| 362 | 368 | ||
| 363 | # | 369 | # |
| 364 | # IEEE 1394 (FireWire) support | 370 | # IEEE 1394 (FireWire) support |
| @@ -378,10 +384,11 @@ CONFIG_NET=y | |||
| 378 | # Networking options | 384 | # Networking options |
| 379 | # | 385 | # |
| 380 | # CONFIG_PACKET is not set | 386 | # CONFIG_PACKET is not set |
| 381 | # CONFIG_NETLINK_DEV is not set | ||
| 382 | CONFIG_UNIX=y | 387 | CONFIG_UNIX=y |
| 383 | # CONFIG_NET_KEY is not set | 388 | # CONFIG_NET_KEY is not set |
| 384 | CONFIG_INET=y | 389 | CONFIG_INET=y |
| 390 | CONFIG_IP_FIB_HASH=y | ||
| 391 | # CONFIG_IP_FIB_TRIE is not set | ||
| 385 | # CONFIG_IP_MULTICAST is not set | 392 | # CONFIG_IP_MULTICAST is not set |
| 386 | # CONFIG_IP_ADVANCED_ROUTER is not set | 393 | # CONFIG_IP_ADVANCED_ROUTER is not set |
| 387 | CONFIG_IP_PNP=y | 394 | CONFIG_IP_PNP=y |
| @@ -443,8 +450,9 @@ CONFIG_NETDEVICES=y | |||
| 443 | # Ethernet (10 or 100Mbit) | 450 | # Ethernet (10 or 100Mbit) |
| 444 | # | 451 | # |
| 445 | CONFIG_NET_ETHERNET=y | 452 | CONFIG_NET_ETHERNET=y |
| 446 | # CONFIG_MII is not set | 453 | CONFIG_MII=m |
| 447 | # CONFIG_SMC91X is not set | 454 | # CONFIG_SMC91X is not set |
| 455 | CONFIG_DM9000=m | ||
| 448 | 456 | ||
| 449 | # | 457 | # |
| 450 | # Ethernet (1000 Mbit) | 458 | # Ethernet (1000 Mbit) |
| @@ -521,7 +529,6 @@ CONFIG_SERIO_SERPORT=y | |||
| 521 | CONFIG_SERIO_LIBPS2=y | 529 | CONFIG_SERIO_LIBPS2=y |
| 522 | # CONFIG_SERIO_RAW is not set | 530 | # CONFIG_SERIO_RAW is not set |
| 523 | # CONFIG_GAMEPORT is not set | 531 | # CONFIG_GAMEPORT is not set |
| 524 | CONFIG_SOUND_GAMEPORT=y | ||
| 525 | 532 | ||
| 526 | # | 533 | # |
| 527 | # Character devices | 534 | # Character devices |
| @@ -605,7 +612,6 @@ CONFIG_S3C2410_RTC=y | |||
| 605 | # | 612 | # |
| 606 | # TPM devices | 613 | # TPM devices |
| 607 | # | 614 | # |
| 608 | # CONFIG_TCG_TPM is not set | ||
| 609 | 615 | ||
| 610 | # | 616 | # |
| 611 | # I2C support | 617 | # I2C support |
| @@ -654,6 +660,7 @@ CONFIG_SENSORS_LM78=m | |||
| 654 | CONFIG_SENSORS_LM85=m | 660 | CONFIG_SENSORS_LM85=m |
| 655 | # CONFIG_SENSORS_LM87 is not set | 661 | # CONFIG_SENSORS_LM87 is not set |
| 656 | # CONFIG_SENSORS_LM90 is not set | 662 | # CONFIG_SENSORS_LM90 is not set |
| 663 | # CONFIG_SENSORS_LM92 is not set | ||
| 657 | # CONFIG_SENSORS_MAX1619 is not set | 664 | # CONFIG_SENSORS_MAX1619 is not set |
| 658 | # CONFIG_SENSORS_PC87360 is not set | 665 | # CONFIG_SENSORS_PC87360 is not set |
| 659 | # CONFIG_SENSORS_SMSC47B397 is not set | 666 | # CONFIG_SENSORS_SMSC47B397 is not set |
| @@ -665,6 +672,7 @@ CONFIG_SENSORS_LM85=m | |||
| 665 | # | 672 | # |
| 666 | # Other I2C Chip support | 673 | # Other I2C Chip support |
| 667 | # | 674 | # |
| 675 | # CONFIG_SENSORS_DS1337 is not set | ||
| 668 | CONFIG_SENSORS_EEPROM=m | 676 | CONFIG_SENSORS_EEPROM=m |
| 669 | # CONFIG_SENSORS_PCF8574 is not set | 677 | # CONFIG_SENSORS_PCF8574 is not set |
| 670 | # CONFIG_SENSORS_PCF8591 is not set | 678 | # CONFIG_SENSORS_PCF8591 is not set |
| @@ -696,8 +704,10 @@ CONFIG_FB=y | |||
| 696 | # CONFIG_FB_CFB_COPYAREA is not set | 704 | # CONFIG_FB_CFB_COPYAREA is not set |
| 697 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 705 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
| 698 | # CONFIG_FB_SOFT_CURSOR is not set | 706 | # CONFIG_FB_SOFT_CURSOR is not set |
| 707 | # CONFIG_FB_MACMODES is not set | ||
| 699 | CONFIG_FB_MODE_HELPERS=y | 708 | CONFIG_FB_MODE_HELPERS=y |
| 700 | # CONFIG_FB_TILEBLITTING is not set | 709 | # CONFIG_FB_TILEBLITTING is not set |
| 710 | # CONFIG_FB_S1D13XXX is not set | ||
| 701 | # CONFIG_FB_VIRTUAL is not set | 711 | # CONFIG_FB_VIRTUAL is not set |
| 702 | 712 | ||
| 703 | # | 713 | # |
| @@ -782,7 +792,6 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 782 | # | 792 | # |
| 783 | CONFIG_PROC_FS=y | 793 | CONFIG_PROC_FS=y |
| 784 | CONFIG_SYSFS=y | 794 | CONFIG_SYSFS=y |
| 785 | # CONFIG_DEVFS_FS is not set | ||
| 786 | # CONFIG_DEVPTS_FS_XATTR is not set | 795 | # CONFIG_DEVPTS_FS_XATTR is not set |
| 787 | # CONFIG_TMPFS is not set | 796 | # CONFIG_TMPFS is not set |
| 788 | # CONFIG_HUGETLBFS is not set | 797 | # CONFIG_HUGETLBFS is not set |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 3bb97eb6e693..f3e970039b65 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | * 03-Mar-2005 BJD Ensured that bast-cpld.h is included | 26 | * 03-Mar-2005 BJD Ensured that bast-cpld.h is included |
| 27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
| 28 | * 14-Mar-2006 BJD Updated for __iomem changes | 28 | * 14-Mar-2006 BJD Updated for __iomem changes |
| 29 | * 22-Jun-2006 BJD Added DM9000 platform information | ||
| 29 | */ | 30 | */ |
| 30 | 31 | ||
| 31 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
| @@ -35,6 +36,7 @@ | |||
| 35 | #include <linux/timer.h> | 36 | #include <linux/timer.h> |
| 36 | #include <linux/init.h> | 37 | #include <linux/init.h> |
| 37 | #include <linux/device.h> | 38 | #include <linux/device.h> |
| 39 | #include <linux/dm9000.h> | ||
| 38 | 40 | ||
| 39 | #include <asm/mach/arch.h> | 41 | #include <asm/mach/arch.h> |
| 40 | #include <asm/mach/map.h> | 42 | #include <asm/mach/map.h> |
| @@ -53,6 +55,7 @@ | |||
| 53 | #include <asm/arch/regs-serial.h> | 55 | #include <asm/arch/regs-serial.h> |
| 54 | #include <asm/arch/regs-gpio.h> | 56 | #include <asm/arch/regs-gpio.h> |
| 55 | #include <asm/arch/regs-mem.h> | 57 | #include <asm/arch/regs-mem.h> |
| 58 | #include <asm/arch/regs-lcd.h> | ||
| 56 | #include <asm/arch/nand.h> | 59 | #include <asm/arch/nand.h> |
| 57 | 60 | ||
| 58 | #include <linux/mtd/mtd.h> | 61 | #include <linux/mtd/mtd.h> |
| @@ -112,7 +115,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
| 112 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 115 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
| 113 | { VA_C2(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 116 | { VA_C2(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
| 114 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 117 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
| 115 | { VA_C2(BAST_VA_DM9000), PA_CS2(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 116 | { VA_C2(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 118 | { VA_C2(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 117 | { VA_C2(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 119 | { VA_C2(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 118 | { VA_C2(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 120 | { VA_C2(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| @@ -123,7 +125,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
| 123 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 125 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
| 124 | { VA_C3(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 126 | { VA_C3(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
| 125 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 127 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
| 126 | { VA_C3(BAST_VA_DM9000), PA_CS3(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 127 | { VA_C3(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 128 | { VA_C3(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 128 | { VA_C3(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 129 | { VA_C3(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 129 | { VA_C3(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 130 | { VA_C3(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| @@ -134,7 +135,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
| 134 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 135 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
| 135 | { VA_C4(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 136 | { VA_C4(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
| 136 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 137 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
| 137 | { VA_C4(BAST_VA_DM9000), PA_CS4(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 138 | { VA_C4(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 138 | { VA_C4(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 139 | { VA_C4(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 139 | { VA_C4(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 140 | { VA_C4(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 140 | { VA_C4(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| @@ -145,7 +145,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
| 145 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 145 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
| 146 | { VA_C5(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 146 | { VA_C5(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
| 147 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 147 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
| 148 | { VA_C5(BAST_VA_DM9000), PA_CS5(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 149 | { VA_C5(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 148 | { VA_C5(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 150 | { VA_C5(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 149 | { VA_C5(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 151 | { VA_C5(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 150 | { VA_C5(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| @@ -313,6 +312,45 @@ static struct s3c2410_platform_nand bast_nand_info = { | |||
| 313 | .select_chip = bast_nand_select, | 312 | .select_chip = bast_nand_select, |
| 314 | }; | 313 | }; |
| 315 | 314 | ||
| 315 | /* DM9000 */ | ||
| 316 | |||
| 317 | static struct resource bast_dm9k_resource[] = { | ||
| 318 | [0] = { | ||
| 319 | .start = S3C2410_CS5 + BAST_PA_DM9000, | ||
| 320 | .end = S3C2410_CS5 + BAST_PA_DM9000 + 3, | ||
| 321 | .flags = IORESOURCE_MEM | ||
| 322 | }, | ||
| 323 | [1] = { | ||
| 324 | .start = S3C2410_CS5 + BAST_PA_DM9000 + 0x40, | ||
| 325 | .end = S3C2410_CS5 + BAST_PA_DM9000 + 0x40 + 0x3f, | ||
| 326 | .flags = IORESOURCE_MEM | ||
| 327 | }, | ||
| 328 | [2] = { | ||
| 329 | .start = IRQ_DM9000, | ||
| 330 | .end = IRQ_DM9000, | ||
| 331 | .flags = IORESOURCE_IRQ | ||
| 332 | } | ||
| 333 | |||
| 334 | }; | ||
| 335 | |||
| 336 | /* for the moment we limit ourselves to 16bit IO until some | ||
| 337 | * better IO routines can be written and tested | ||
| 338 | */ | ||
| 339 | |||
| 340 | struct dm9000_plat_data bast_dm9k_platdata = { | ||
| 341 | .flags = DM9000_PLATF_16BITONLY | ||
| 342 | }; | ||
| 343 | |||
| 344 | static struct platform_device bast_device_dm9k = { | ||
| 345 | .name = "dm9000", | ||
| 346 | .id = 0, | ||
| 347 | .num_resources = ARRAY_SIZE(bast_dm9k_resource), | ||
| 348 | .resource = bast_dm9k_resource, | ||
| 349 | .dev = { | ||
| 350 | .platform_data = &bast_dm9k_platdata, | ||
| 351 | } | ||
| 352 | }; | ||
| 353 | |||
| 316 | 354 | ||
| 317 | /* Standard BAST devices */ | 355 | /* Standard BAST devices */ |
| 318 | 356 | ||
| @@ -324,7 +362,8 @@ static struct platform_device *bast_devices[] __initdata = { | |||
| 324 | &s3c_device_iis, | 362 | &s3c_device_iis, |
| 325 | &s3c_device_rtc, | 363 | &s3c_device_rtc, |
| 326 | &s3c_device_nand, | 364 | &s3c_device_nand, |
| 327 | &bast_device_nor | 365 | &bast_device_nor, |
| 366 | &bast_device_dm9k, | ||
| 328 | }; | 367 | }; |
| 329 | 368 | ||
| 330 | static struct clk *bast_clocks[] = { | 369 | static struct clk *bast_clocks[] = { |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 5512146b1ce4..76be074944a0 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | * 10-Feb-2005 BJD Added power-off capability | 27 | * 10-Feb-2005 BJD Added power-off capability |
| 28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
| 29 | * 14-Mar-2006 BJD void __iomem fixes | 29 | * 14-Mar-2006 BJD void __iomem fixes |
| 30 | * 22-Jun-2006 BJD Added DM9000 platform information | ||
| 30 | */ | 31 | */ |
| 31 | 32 | ||
| 32 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
| @@ -35,6 +36,7 @@ | |||
| 35 | #include <linux/list.h> | 36 | #include <linux/list.h> |
| 36 | #include <linux/timer.h> | 37 | #include <linux/timer.h> |
| 37 | #include <linux/init.h> | 38 | #include <linux/init.h> |
| 39 | #include <linux/dm9000.h> | ||
| 38 | 40 | ||
| 39 | #include <linux/serial.h> | 41 | #include <linux/serial.h> |
| 40 | #include <linux/tty.h> | 42 | #include <linux/tty.h> |
| @@ -98,28 +100,24 @@ static struct map_desc vr1000_iodesc[] __initdata = { | |||
| 98 | * are only 8bit */ | 100 | * are only 8bit */ |
| 99 | 101 | ||
| 100 | /* slow, byte */ | 102 | /* slow, byte */ |
| 101 | { VA_C2(VR1000_VA_DM9000), PA_CS2(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 102 | { VA_C2(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 103 | { VA_C2(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 103 | { VA_C2(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 104 | { VA_C2(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 104 | { VA_C2(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 105 | { VA_C2(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| 105 | { VA_C2(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 106 | { VA_C2(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
| 106 | 107 | ||
| 107 | /* slow, word */ | 108 | /* slow, word */ |
| 108 | { VA_C3(VR1000_VA_DM9000), PA_CS3(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 109 | { VA_C3(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 109 | { VA_C3(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 110 | { VA_C3(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 110 | { VA_C3(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 111 | { VA_C3(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 111 | { VA_C3(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| 112 | { VA_C3(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 112 | { VA_C3(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
| 113 | 113 | ||
| 114 | /* fast, byte */ | 114 | /* fast, byte */ |
| 115 | { VA_C4(VR1000_VA_DM9000), PA_CS4(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 116 | { VA_C4(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 115 | { VA_C4(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 117 | { VA_C4(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 116 | { VA_C4(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 118 | { VA_C4(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 117 | { VA_C4(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| 119 | { VA_C4(VR1000_VA_IDESECAUX), PA_CS5(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 118 | { VA_C4(VR1000_VA_IDESECAUX), PA_CS5(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
| 120 | 119 | ||
| 121 | /* fast, word */ | 120 | /* fast, word */ |
| 122 | { VA_C5(VR1000_VA_DM9000), PA_CS5(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
| 123 | { VA_C5(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 121 | { VA_C5(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
| 124 | { VA_C5(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 122 | { VA_C5(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
| 125 | { VA_C5(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 123 | { VA_C5(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
| @@ -246,6 +244,74 @@ static struct platform_device vr1000_nor = { | |||
| 246 | .resource = vr1000_nor_resource, | 244 | .resource = vr1000_nor_resource, |
| 247 | }; | 245 | }; |
| 248 | 246 | ||
| 247 | /* DM9000 ethernet devices */ | ||
| 248 | |||
| 249 | static struct resource vr1000_dm9k0_resource[] = { | ||
| 250 | [0] = { | ||
| 251 | .start = S3C2410_CS5 + VR1000_PA_DM9000, | ||
| 252 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 3, | ||
| 253 | .flags = IORESOURCE_MEM | ||
| 254 | }, | ||
| 255 | [1] = { | ||
| 256 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0x40, | ||
| 257 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0x7f, | ||
| 258 | .flags = IORESOURCE_MEM | ||
| 259 | }, | ||
| 260 | [2] = { | ||
| 261 | .start = IRQ_VR1000_DM9000A, | ||
| 262 | .end = IRQ_VR1000_DM9000A, | ||
| 263 | .flags = IORESOURCE_IRQ | ||
| 264 | } | ||
| 265 | |||
| 266 | }; | ||
| 267 | |||
| 268 | static struct resource vr1000_dm9k1_resource[] = { | ||
| 269 | [0] = { | ||
| 270 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0x80, | ||
| 271 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0x83, | ||
| 272 | .flags = IORESOURCE_MEM | ||
| 273 | }, | ||
| 274 | [1] = { | ||
| 275 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0xC0, | ||
| 276 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0xFF, | ||
| 277 | .flags = IORESOURCE_MEM | ||
| 278 | }, | ||
| 279 | [2] = { | ||
| 280 | .start = IRQ_VR1000_DM9000N, | ||
| 281 | .end = IRQ_VR1000_DM9000N, | ||
| 282 | .flags = IORESOURCE_IRQ | ||
| 283 | } | ||
| 284 | }; | ||
| 285 | |||
| 286 | /* for the moment we limit ourselves to 16bit IO until some | ||
| 287 | * better IO routines can be written and tested | ||
| 288 | */ | ||
| 289 | |||
| 290 | struct dm9000_plat_data vr1000_dm9k_platdata = { | ||
| 291 | .flags = DM9000_PLATF_16BITONLY, | ||
| 292 | }; | ||
| 293 | |||
| 294 | static struct platform_device vr1000_dm9k0 = { | ||
| 295 | .name = "dm9000", | ||
| 296 | .id = 0, | ||
| 297 | .num_resources = ARRAY_SIZE(vr1000_dm9k0_resource), | ||
| 298 | .resource = vr1000_dm9k0_resource, | ||
| 299 | .dev = { | ||
| 300 | .platform_data = &vr1000_dm9k_platdata, | ||
| 301 | } | ||
| 302 | }; | ||
| 303 | |||
| 304 | static struct platform_device vr1000_dm9k1 = { | ||
| 305 | .name = "dm9000", | ||
| 306 | .id = 1, | ||
| 307 | .num_resources = ARRAY_SIZE(vr1000_dm9k1_resource), | ||
| 308 | .resource = vr1000_dm9k1_resource, | ||
| 309 | .dev = { | ||
| 310 | .platform_data = &vr1000_dm9k_platdata, | ||
| 311 | } | ||
| 312 | }; | ||
| 313 | |||
| 314 | /* devices for this board */ | ||
| 249 | 315 | ||
| 250 | static struct platform_device *vr1000_devices[] __initdata = { | 316 | static struct platform_device *vr1000_devices[] __initdata = { |
| 251 | &s3c_device_usb, | 317 | &s3c_device_usb, |
| @@ -253,8 +319,11 @@ static struct platform_device *vr1000_devices[] __initdata = { | |||
| 253 | &s3c_device_wdt, | 319 | &s3c_device_wdt, |
| 254 | &s3c_device_i2c, | 320 | &s3c_device_i2c, |
| 255 | &s3c_device_iis, | 321 | &s3c_device_iis, |
| 322 | &s3c_device_adc, | ||
| 256 | &serial_device, | 323 | &serial_device, |
| 257 | &vr1000_nor, | 324 | &vr1000_nor, |
| 325 | &vr1000_dm9k0, | ||
| 326 | &vr1000_dm9k1 | ||
| 258 | }; | 327 | }; |
| 259 | 328 | ||
| 260 | static struct clk *vr1000_clocks[] = { | 329 | static struct clk *vr1000_clocks[] = { |
diff --git a/arch/arm/nwfpe/softfloat-macros b/arch/arm/nwfpe/softfloat-macros index 5469989f2c5e..5a060f95a58f 100644 --- a/arch/arm/nwfpe/softfloat-macros +++ b/arch/arm/nwfpe/softfloat-macros | |||
| @@ -563,8 +563,14 @@ static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) | |||
| 563 | bits64 rem0, rem1, term0, term1; | 563 | bits64 rem0, rem1, term0, term1; |
| 564 | bits64 z; | 564 | bits64 z; |
| 565 | if ( b <= a0 ) return LIT64( 0xFFFFFFFFFFFFFFFF ); | 565 | if ( b <= a0 ) return LIT64( 0xFFFFFFFFFFFFFFFF ); |
| 566 | b0 = b>>32; | 566 | b0 = b>>32; /* hence b0 is 32 bits wide now */ |
| 567 | z = ( b0<<32 <= a0 ) ? LIT64( 0xFFFFFFFF00000000 ) : ( a0 / b0 )<<32; | 567 | if ( b0<<32 <= a0 ) { |
| 568 | z = LIT64( 0xFFFFFFFF00000000 ); | ||
| 569 | } else { | ||
| 570 | z = a0; | ||
| 571 | do_div( z, b0 ); | ||
| 572 | z <<= 32; | ||
| 573 | } | ||
| 568 | mul64To128( b, z, &term0, &term1 ); | 574 | mul64To128( b, z, &term0, &term1 ); |
| 569 | sub128( a0, a1, term0, term1, &rem0, &rem1 ); | 575 | sub128( a0, a1, term0, term1, &rem0, &rem1 ); |
| 570 | while ( ( (sbits64) rem0 ) < 0 ) { | 576 | while ( ( (sbits64) rem0 ) < 0 ) { |
| @@ -573,7 +579,12 @@ static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) | |||
| 573 | add128( rem0, rem1, b0, b1, &rem0, &rem1 ); | 579 | add128( rem0, rem1, b0, b1, &rem0, &rem1 ); |
| 574 | } | 580 | } |
| 575 | rem0 = ( rem0<<32 ) | ( rem1>>32 ); | 581 | rem0 = ( rem0<<32 ) | ( rem1>>32 ); |
| 576 | z |= ( b0<<32 <= rem0 ) ? 0xFFFFFFFF : rem0 / b0; | 582 | if ( b0<<32 <= rem0 ) { |
| 583 | z |= 0xFFFFFFFF; | ||
| 584 | } else { | ||
| 585 | do_div( rem0, b0 ); | ||
| 586 | z |= rem0; | ||
| 587 | } | ||
| 577 | return z; | 588 | return z; |
| 578 | 589 | ||
| 579 | } | 590 | } |
| @@ -601,6 +612,7 @@ static bits32 estimateSqrt32( int16 aExp, bits32 a ) | |||
| 601 | }; | 612 | }; |
| 602 | int8 index; | 613 | int8 index; |
| 603 | bits32 z; | 614 | bits32 z; |
| 615 | bits64 A; | ||
| 604 | 616 | ||
| 605 | index = ( a>>27 ) & 15; | 617 | index = ( a>>27 ) & 15; |
| 606 | if ( aExp & 1 ) { | 618 | if ( aExp & 1 ) { |
| @@ -614,7 +626,9 @@ static bits32 estimateSqrt32( int16 aExp, bits32 a ) | |||
| 614 | z = ( 0x20000 <= z ) ? 0xFFFF8000 : ( z<<15 ); | 626 | z = ( 0x20000 <= z ) ? 0xFFFF8000 : ( z<<15 ); |
| 615 | if ( z <= a ) return (bits32) ( ( (sbits32) a )>>1 ); | 627 | if ( z <= a ) return (bits32) ( ( (sbits32) a )>>1 ); |
| 616 | } | 628 | } |
| 617 | return ( (bits32) ( ( ( (bits64) a )<<31 ) / z ) ) + ( z>>1 ); | 629 | A = ( (bits64) a )<<31; |
| 630 | do_div( A, z ); | ||
| 631 | return ( (bits32) A ) + ( z>>1 ); | ||
| 618 | 632 | ||
| 619 | } | 633 | } |
| 620 | 634 | ||
diff --git a/arch/arm/nwfpe/softfloat.c b/arch/arm/nwfpe/softfloat.c index 9d743ae29062..e038dd3be9b3 100644 --- a/arch/arm/nwfpe/softfloat.c +++ b/arch/arm/nwfpe/softfloat.c | |||
| @@ -28,6 +28,8 @@ this code that are retained. | |||
| 28 | =============================================================================== | 28 | =============================================================================== |
| 29 | */ | 29 | */ |
| 30 | 30 | ||
| 31 | #include <asm/div64.h> | ||
| 32 | |||
| 31 | #include "fpa11.h" | 33 | #include "fpa11.h" |
| 32 | //#include "milieu.h" | 34 | //#include "milieu.h" |
| 33 | //#include "softfloat.h" | 35 | //#include "softfloat.h" |
| @@ -1331,7 +1333,11 @@ float32 float32_div( float32 a, float32 b ) | |||
| 1331 | aSig >>= 1; | 1333 | aSig >>= 1; |
| 1332 | ++zExp; | 1334 | ++zExp; |
| 1333 | } | 1335 | } |
| 1334 | zSig = ( ( (bits64) aSig )<<32 ) / bSig; | 1336 | { |
| 1337 | bits64 tmp = ( (bits64) aSig )<<32; | ||
| 1338 | do_div( tmp, bSig ); | ||
| 1339 | zSig = tmp; | ||
| 1340 | } | ||
| 1335 | if ( ( zSig & 0x3F ) == 0 ) { | 1341 | if ( ( zSig & 0x3F ) == 0 ) { |
| 1336 | zSig |= ( ( (bits64) bSig ) * zSig != ( (bits64) aSig )<<32 ); | 1342 | zSig |= ( ( (bits64) bSig ) * zSig != ( (bits64) aSig )<<32 ); |
| 1337 | } | 1343 | } |
| @@ -1397,7 +1403,9 @@ float32 float32_rem( float32 a, float32 b ) | |||
| 1397 | q = ( bSig <= aSig ); | 1403 | q = ( bSig <= aSig ); |
| 1398 | if ( q ) aSig -= bSig; | 1404 | if ( q ) aSig -= bSig; |
| 1399 | if ( 0 < expDiff ) { | 1405 | if ( 0 < expDiff ) { |
| 1400 | q = ( ( (bits64) aSig )<<32 ) / bSig; | 1406 | bits64 tmp = ( (bits64) aSig )<<32; |
| 1407 | do_div( tmp, bSig ); | ||
| 1408 | q = tmp; | ||
| 1401 | q >>= 32 - expDiff; | 1409 | q >>= 32 - expDiff; |
| 1402 | bSig >>= 2; | 1410 | bSig >>= 2; |
| 1403 | aSig = ( ( aSig>>1 )<<( expDiff - 1 ) ) - bSig * q; | 1411 | aSig = ( ( aSig>>1 )<<( expDiff - 1 ) ) - bSig * q; |
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c index 2a9f7ade2c9d..5c4678478b1d 100644 --- a/drivers/serial/s3c2410.c +++ b/drivers/serial/s3c2410.c | |||
| @@ -198,7 +198,7 @@ static inline struct s3c24xx_uart_port *to_ourport(struct uart_port *port) | |||
| 198 | 198 | ||
| 199 | /* translate a port to the device name */ | 199 | /* translate a port to the device name */ |
| 200 | 200 | ||
| 201 | static inline char *s3c24xx_serial_portname(struct uart_port *port) | 201 | static inline const char *s3c24xx_serial_portname(struct uart_port *port) |
| 202 | { | 202 | { |
| 203 | return to_platform_device(port->dev)->name; | 203 | return to_platform_device(port->dev)->name; |
| 204 | } | 204 | } |
| @@ -903,7 +903,7 @@ static void s3c24xx_serial_release_port(struct uart_port *port) | |||
| 903 | 903 | ||
| 904 | static int s3c24xx_serial_request_port(struct uart_port *port) | 904 | static int s3c24xx_serial_request_port(struct uart_port *port) |
| 905 | { | 905 | { |
| 906 | char *name = s3c24xx_serial_portname(port); | 906 | const char *name = s3c24xx_serial_portname(port); |
| 907 | return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY; | 907 | return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY; |
| 908 | } | 908 | } |
| 909 | 909 | ||
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 815fbc8317fc..16e37a535d85 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #include <asm/io.h> | 43 | #include <asm/io.h> |
| 44 | #include <asm/irq.h> | 44 | #include <asm/irq.h> |
| 45 | #include <asm/uaccess.h> | 45 | #include <asm/uaccess.h> |
| 46 | #include <asm/div64.h> | ||
| 46 | #include <asm/arch/pxa-regs.h> | 47 | #include <asm/arch/pxa-regs.h> |
| 47 | #include <asm/arch/bitfield.h> | 48 | #include <asm/arch/bitfield.h> |
| 48 | #include <asm/arch/pxafb.h> | 49 | #include <asm/arch/pxafb.h> |
| @@ -460,7 +461,7 @@ static inline unsigned int get_pcd(unsigned int pixclock) | |||
| 460 | * speeds */ | 461 | * speeds */ |
| 461 | 462 | ||
| 462 | pcd = (unsigned long long)get_lcdclk_frequency_10khz() * pixclock; | 463 | pcd = (unsigned long long)get_lcdclk_frequency_10khz() * pixclock; |
| 463 | pcd /= 100000000 * 2; | 464 | do_div(pcd, 100000000 * 2); |
| 464 | /* no need for this, since we should subtract 1 anyway. they cancel */ | 465 | /* no need for this, since we should subtract 1 anyway. they cancel */ |
| 465 | /* pcd += 1; */ /* make up for integer math truncations */ | 466 | /* pcd += 1; */ /* make up for integer math truncations */ |
| 466 | return (unsigned int)pcd; | 467 | return (unsigned int)pcd; |
