/[linux-patches]/genpatches-2.6/historical/2.6.10/1351_sparc32-wli.patch
Gentoo

Contents of /genpatches-2.6/historical/2.6.10/1351_sparc32-wli.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations) (download) (as text)
Sat Jun 11 23:16:54 2005 UTC (15 years, 1 month ago) by dsd
File MIME type: text/x-diff
File size: 45471 byte(s)
Import historical releases
1 dsd 2 diff -Naur linux-2.6.10-vanilla/arch/sparc/defconfig linux-2.6.10/arch/sparc/defconfig
2     --- linux-2.6.10-vanilla/arch/sparc/defconfig 2004-12-24 13:35:23.000000000 -0800
3     +++ linux-2.6.10/arch/sparc/defconfig 2004-12-25 03:00:03.733775113 -0800
4     @@ -11,12 +11,12 @@
5     #
6     CONFIG_EXPERIMENTAL=y
7     CONFIG_CLEAN_COMPILE=y
8     -CONFIG_STANDALONE=y
9     CONFIG_BROKEN_ON_SMP=y
10    
11     #
12     # General setup
13     #
14     +CONFIG_LOCALVERSION=""
15     CONFIG_SWAP=y
16     CONFIG_SYSVIPC=y
17     CONFIG_POSIX_MQUEUE=y
18     @@ -25,17 +25,21 @@
19     # CONFIG_AUDIT is not set
20     CONFIG_LOG_BUF_SHIFT=14
21     # CONFIG_HOTPLUG is not set
22     +CONFIG_KOBJECT_UEVENT=y
23     # CONFIG_IKCONFIG is not set
24     # CONFIG_EMBEDDED is not set
25     CONFIG_KALLSYMS=y
26     # CONFIG_KALLSYMS_ALL is not set
27     +# CONFIG_KALLSYMS_EXTRA_PASS is not set
28     CONFIG_FUTEX=y
29     CONFIG_EPOLL=y
30     -CONFIG_IOSCHED_NOOP=y
31     -CONFIG_IOSCHED_AS=y
32     -CONFIG_IOSCHED_DEADLINE=y
33     -CONFIG_IOSCHED_CFQ=y
34     # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
35     +CONFIG_SHMEM=y
36     +CONFIG_CC_ALIGN_FUNCTIONS=0
37     +CONFIG_CC_ALIGN_LABELS=0
38     +CONFIG_CC_ALIGN_LOOPS=0
39     +CONFIG_CC_ALIGN_JUMPS=0
40     +# CONFIG_TINY_SHMEM is not set
41    
42     #
43     # Loadable module support
44     @@ -45,15 +49,15 @@
45     # CONFIG_MODULE_FORCE_UNLOAD is not set
46     CONFIG_OBSOLETE_MODPARM=y
47     # CONFIG_MODVERSIONS is not set
48     +# CONFIG_MODULE_SRCVERSION_ALL is not set
49     CONFIG_KMOD=y
50    
51     #
52     -# General setup
53     +# General machine setup
54     #
55     CONFIG_VT=y
56     CONFIG_VT_CONSOLE=y
57     CONFIG_HW_CONSOLE=y
58     -# CONFIG_SMP is not set
59     CONFIG_SPARC32=y
60     CONFIG_SBUS=y
61     CONFIG_SBUSCHAR=y
62     @@ -66,10 +70,10 @@
63     CONFIG_PCI=y
64     # CONFIG_PCI_LEGACY_PROC is not set
65     # CONFIG_PCI_NAMES is not set
66     -CONFIG_SUN_OPENPROMFS=m
67     +CONFIG_SUN_OPENPROMFS=y
68     CONFIG_BINFMT_ELF=y
69     CONFIG_BINFMT_AOUT=y
70     -CONFIG_BINFMT_MISC=m
71     +CONFIG_BINFMT_MISC=y
72     CONFIG_SUNOS_EMUL=y
73    
74     #
75     @@ -80,6 +84,8 @@
76     #
77     # Generic Driver Options
78     #
79     +CONFIG_STANDALONE=y
80     +CONFIG_PREVENT_FIRMWARE_BUILD=y
81     # CONFIG_DEBUG_DRIVER is not set
82    
83     #
84     @@ -90,7 +96,6 @@
85     #
86     # Console display driver support
87     #
88     -# CONFIG_MDA_CONSOLE is not set
89     # CONFIG_PROM_CONSOLE is not set
90     CONFIG_DUMMY_CONSOLE=y
91    
92     @@ -102,7 +107,6 @@
93     #
94     # Serial drivers
95     #
96     -# CONFIG_SERIAL_8250 is not set
97    
98     #
99     # Non-8250 serial port support
100     @@ -119,15 +123,14 @@
101     #
102     # Misc Linux/SPARC drivers
103     #
104     -CONFIG_SUN_OPENPROMIO=m
105     -CONFIG_SUN_MOSTEK_RTC=m
106     +CONFIG_SUN_OPENPROMIO=y
107     +CONFIG_SUN_MOSTEK_RTC=y
108     # CONFIG_SUN_BPP is not set
109     # CONFIG_SUN_VIDEOPIX is not set
110     -# CONFIG_SUN_AURORA is not set
111     # CONFIG_TADPOLE_TS102_UCTRL is not set
112     # CONFIG_SUN_JSFLASH is not set
113     CONFIG_APM_RTC_IS_GMT=y
114     -CONFIG_RTC=m
115     +CONFIG_RTC=y
116    
117     #
118     # Block devices
119     @@ -137,13 +140,22 @@
120     # CONFIG_BLK_CPQ_CISS_DA is not set
121     # CONFIG_BLK_DEV_DAC960 is not set
122     # CONFIG_BLK_DEV_UMEM is not set
123     -CONFIG_BLK_DEV_LOOP=m
124     -CONFIG_BLK_DEV_CRYPTOLOOP=m
125     +CONFIG_BLK_DEV_LOOP=y
126     +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
127     # CONFIG_BLK_DEV_NBD is not set
128     -# CONFIG_BLK_DEV_CARMEL is not set
129     -CONFIG_BLK_DEV_RAM=y
130     -CONFIG_BLK_DEV_RAM_SIZE=4096
131     -CONFIG_BLK_DEV_INITRD=y
132     +# CONFIG_BLK_DEV_SX8 is not set
133     +# CONFIG_BLK_DEV_RAM is not set
134     +CONFIG_BLK_DEV_RAM_COUNT=16
135     +CONFIG_INITRAMFS_SOURCE=""
136     +# CONFIG_CDROM_PKTCDVD is not set
137     +
138     +#
139     +# IO Schedulers
140     +#
141     +CONFIG_IOSCHED_NOOP=y
142     +# CONFIG_IOSCHED_AS is not set
143     +# CONFIG_IOSCHED_DEADLINE is not set
144     +CONFIG_IOSCHED_CFQ=y
145    
146     #
147     # ATA/ATAPI/MFM/RLL support
148     @@ -167,9 +179,9 @@
149     CONFIG_BLK_DEV_SD=y
150     # CONFIG_CHR_DEV_ST is not set
151     # CONFIG_CHR_DEV_OSST is not set
152     -CONFIG_BLK_DEV_SR=m
153     +CONFIG_BLK_DEV_SR=y
154     # CONFIG_BLK_DEV_SR_VENDOR is not set
155     -CONFIG_CHR_DEV_SG=m
156     +CONFIG_CHR_DEV_SG=y
157    
158     #
159     # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
160     @@ -181,21 +193,22 @@
161     #
162     # SCSI Transport Attributes
163     #
164     -CONFIG_SCSI_SPI_ATTRS=m
165     +CONFIG_SCSI_SPI_ATTRS=y
166     # CONFIG_SCSI_FC_ATTRS is not set
167    
168     #
169     # SCSI low-level drivers
170     #
171     # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
172     +# CONFIG_SCSI_3W_9XXX is not set
173     # CONFIG_SCSI_ACARD is not set
174     # CONFIG_SCSI_AACRAID is not set
175     # CONFIG_SCSI_AIC7XXX is not set
176     # CONFIG_SCSI_AIC7XXX_OLD is not set
177     # CONFIG_SCSI_AIC79XX is not set
178     # CONFIG_SCSI_DPT_I2O is not set
179     -# CONFIG_SCSI_ADVANSYS is not set
180     -# CONFIG_SCSI_MEGARAID is not set
181     +# CONFIG_MEGARAID_NEWGEN is not set
182     +# CONFIG_MEGARAID_LEGACY is not set
183     # CONFIG_SCSI_SATA is not set
184     # CONFIG_SCSI_BUSLOGIC is not set
185     # CONFIG_SCSI_DMX3191D is not set
186     @@ -204,13 +217,14 @@
187     # CONFIG_SCSI_FUTURE_DOMAIN is not set
188     # CONFIG_SCSI_GDTH is not set
189     # CONFIG_SCSI_IPS is not set
190     +# CONFIG_SCSI_INITIO is not set
191     # CONFIG_SCSI_INIA100 is not set
192     # CONFIG_SCSI_SYM53C8XX_2 is not set
193     # CONFIG_SCSI_IPR is not set
194     # CONFIG_SCSI_QLOGIC_ISP is not set
195     # CONFIG_SCSI_QLOGIC_FC is not set
196     # CONFIG_SCSI_QLOGIC_1280 is not set
197     -CONFIG_SCSI_QLOGICPTI=m
198     +# CONFIG_SCSI_QLOGICPTI is not set
199     CONFIG_SCSI_QLA2XXX=y
200     # CONFIG_SCSI_QLA21XX is not set
201     # CONFIG_SCSI_QLA22XX is not set
202     @@ -246,7 +260,7 @@
203     # CONFIG_PACKET_MMAP is not set
204     CONFIG_NETLINK_DEV=y
205     CONFIG_UNIX=y
206     -CONFIG_NET_KEY=m
207     +CONFIG_NET_KEY=y
208     CONFIG_INET=y
209     # CONFIG_IP_MULTICAST is not set
210     # CONFIG_IP_ADVANCED_ROUTER is not set
211     @@ -258,28 +272,21 @@
212     # CONFIG_NET_IPGRE is not set
213     # CONFIG_ARPD is not set
214     # CONFIG_SYN_COOKIES is not set
215     -CONFIG_INET_AH=y
216     -CONFIG_INET_ESP=y
217     -CONFIG_INET_IPCOMP=y
218     -CONFIG_IPV6=m
219     -CONFIG_IPV6_PRIVACY=y
220     -CONFIG_INET6_AH=m
221     -CONFIG_INET6_ESP=m
222     -CONFIG_INET6_IPCOMP=m
223     -CONFIG_IPV6_TUNNEL=m
224     +# CONFIG_INET_AH is not set
225     +# CONFIG_INET_ESP is not set
226     +# CONFIG_INET_IPCOMP is not set
227     +# CONFIG_INET_TUNNEL is not set
228     +# CONFIG_IP_TCPDIAG is not set
229     +# CONFIG_IP_TCPDIAG_IPV6 is not set
230     +# CONFIG_IPV6 is not set
231     # CONFIG_NETFILTER is not set
232     CONFIG_XFRM=y
233     -CONFIG_XFRM_USER=m
234     +# CONFIG_XFRM_USER is not set
235    
236     #
237     # SCTP Configuration (EXPERIMENTAL)
238     #
239     -CONFIG_IP_SCTP=m
240     -# CONFIG_SCTP_DBG_MSG is not set
241     -CONFIG_SCTP_DBG_OBJCNT=y
242     -# CONFIG_SCTP_HMAC_NONE is not set
243     -# CONFIG_SCTP_HMAC_SHA1 is not set
244     -CONFIG_SCTP_HMAC_MD5=y
245     +# CONFIG_IP_SCTP is not set
246     # CONFIG_ATM is not set
247     # CONFIG_BRIDGE is not set
248     # CONFIG_VLAN_8021Q is not set
249     @@ -292,27 +299,27 @@
250     # CONFIG_NET_DIVERT is not set
251     # CONFIG_ECONET is not set
252     # CONFIG_WAN_ROUTER is not set
253     -# CONFIG_NET_HW_FLOWCONTROL is not set
254    
255     #
256     # QoS and/or fair queueing
257     #
258     # CONFIG_NET_SCHED is not set
259     +# CONFIG_NET_CLS_ROUTE is not set
260    
261     #
262     # Network testing
263     #
264     -CONFIG_NET_PKTGEN=m
265     +# CONFIG_NET_PKTGEN is not set
266     # CONFIG_NETPOLL is not set
267     # CONFIG_NET_POLL_CONTROLLER is not set
268     # CONFIG_HAMRADIO is not set
269     # CONFIG_IRDA is not set
270     # CONFIG_BT is not set
271     CONFIG_NETDEVICES=y
272     -CONFIG_DUMMY=m
273     +CONFIG_DUMMY=y
274     # CONFIG_BONDING is not set
275     # CONFIG_EQUALIZER is not set
276     -CONFIG_TUN=m
277     +CONFIG_TUN=y
278     # CONFIG_ETHERTAP is not set
279    
280     #
281     @@ -324,11 +331,11 @@
282     # Ethernet (10 or 100Mbit)
283     #
284     CONFIG_NET_ETHERNET=y
285     -CONFIG_MII=m
286     +CONFIG_MII=y
287     CONFIG_SUNLANCE=y
288     -CONFIG_HAPPYMEAL=m
289     -CONFIG_SUNBMAC=m
290     -CONFIG_SUNQE=m
291     +CONFIG_HAPPYMEAL=y
292     +CONFIG_SUNBMAC=y
293     +CONFIG_SUNQE=y
294     # CONFIG_SUNGEM is not set
295     # CONFIG_NET_VENDOR_3COM is not set
296    
297     @@ -399,34 +406,26 @@
298     CONFIG_INPUT_MOUSEDEV_PSAUX=y
299     CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
300     CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
301     -CONFIG_INPUT_JOYDEV=m
302     +CONFIG_INPUT_JOYDEV=y
303     # CONFIG_INPUT_TSDEV is not set
304     -CONFIG_INPUT_EVDEV=m
305     -CONFIG_INPUT_EVBUG=m
306     +CONFIG_INPUT_EVDEV=y
307     +CONFIG_INPUT_EVBUG=y
308    
309     #
310     # Input I/O drivers
311     #
312     # CONFIG_GAMEPORT is not set
313     CONFIG_SOUND_GAMEPORT=y
314     -CONFIG_SERIO=m
315     +# CONFIG_SERIO is not set
316     # CONFIG_SERIO_I8042 is not set
317     -CONFIG_SERIO_SERPORT=m
318     -# CONFIG_SERIO_CT82C710 is not set
319     -# CONFIG_SERIO_PCIPS2 is not set
320    
321     #
322     # Input Device Drivers
323     #
324     -CONFIG_INPUT_KEYBOARD=y
325     -CONFIG_KEYBOARD_ATKBD=m
326     -CONFIG_KEYBOARD_SUNKBD=m
327     -# CONFIG_KEYBOARD_LKKBD is not set
328     -# CONFIG_KEYBOARD_XTKBD is not set
329     -# CONFIG_KEYBOARD_NEWTON is not set
330     +# CONFIG_INPUT_KEYBOARD is not set
331     CONFIG_INPUT_MOUSE=y
332     -CONFIG_MOUSE_PS2=m
333     -CONFIG_MOUSE_SERIAL=m
334     +# CONFIG_MOUSE_PS2 is not set
335     +# CONFIG_MOUSE_SERIAL is not set
336     # CONFIG_MOUSE_VSXXXAA is not set
337     # CONFIG_INPUT_JOYSTICK is not set
338     # CONFIG_INPUT_TOUCHSCREEN is not set
339     @@ -436,31 +435,23 @@
340     # File systems
341     #
342     CONFIG_EXT2_FS=y
343     -CONFIG_EXT2_FS_XATTR=y
344     -CONFIG_EXT2_FS_POSIX_ACL=y
345     -CONFIG_EXT2_FS_SECURITY=y
346     +# CONFIG_EXT2_FS_XATTR is not set
347     # CONFIG_EXT3_FS is not set
348     # CONFIG_JBD is not set
349     -CONFIG_FS_MBCACHE=y
350     # CONFIG_REISERFS_FS is not set
351     # CONFIG_JFS_FS is not set
352     -CONFIG_FS_POSIX_ACL=y
353     -CONFIG_XFS_FS=m
354     -CONFIG_XFS_RT=y
355     -CONFIG_XFS_QUOTA=y
356     -CONFIG_XFS_SECURITY=y
357     -CONFIG_XFS_POSIX_ACL=y
358     +# CONFIG_XFS_FS is not set
359     # CONFIG_MINIX_FS is not set
360     -CONFIG_ROMFS_FS=m
361     +# CONFIG_ROMFS_FS is not set
362     # CONFIG_QUOTA is not set
363     -CONFIG_QUOTACTL=y
364     -CONFIG_AUTOFS_FS=m
365     -CONFIG_AUTOFS4_FS=m
366     +CONFIG_DNOTIFY=y
367     +# CONFIG_AUTOFS_FS is not set
368     +# CONFIG_AUTOFS4_FS is not set
369    
370     #
371     # CD-ROM/DVD Filesystems
372     #
373     -CONFIG_ISO9660_FS=m
374     +CONFIG_ISO9660_FS=y
375     # CONFIG_JOLIET is not set
376     # CONFIG_ZISOFS is not set
377     # CONFIG_UDF_FS is not set
378     @@ -468,7 +459,8 @@
379     #
380     # DOS/FAT/NT Filesystems
381     #
382     -# CONFIG_FAT_FS is not set
383     +# CONFIG_MSDOS_FS is not set
384     +# CONFIG_VFAT_FS is not set
385     # CONFIG_NTFS_FS is not set
386    
387     #
388     @@ -478,9 +470,9 @@
389     CONFIG_PROC_KCORE=y
390     CONFIG_SYSFS=y
391     # CONFIG_DEVFS_FS is not set
392     -CONFIG_DEVPTS_FS_XATTR=y
393     -# CONFIG_DEVPTS_FS_SECURITY is not set
394     -# CONFIG_TMPFS is not set
395     +# CONFIG_DEVPTS_FS_XATTR is not set
396     +CONFIG_TMPFS=y
397     +# CONFIG_TMPFS_XATTR is not set
398     # CONFIG_HUGETLB_PAGE is not set
399     CONFIG_RAMFS=y
400    
401     @@ -491,8 +483,7 @@
402     # CONFIG_AFFS_FS is not set
403     # CONFIG_HFS_FS is not set
404     # CONFIG_HFSPLUS_FS is not set
405     -CONFIG_BEFS_FS=m
406     -# CONFIG_BEFS_DEBUG is not set
407     +# CONFIG_BEFS_FS is not set
408     # CONFIG_BFS_FS is not set
409     # CONFIG_EFS_FS is not set
410     # CONFIG_CRAMFS is not set
411     @@ -506,23 +497,22 @@
412     # Network File Systems
413     #
414     CONFIG_NFS_FS=y
415     -# CONFIG_NFS_V3 is not set
416     +CONFIG_NFS_V3=y
417     # CONFIG_NFS_V4 is not set
418     -# CONFIG_NFS_DIRECTIO is not set
419     +CONFIG_NFS_DIRECTIO=y
420     # CONFIG_NFSD is not set
421     -CONFIG_ROOT_NFS=y
422     +# CONFIG_ROOT_NFS is not set
423     CONFIG_LOCKD=y
424     +CONFIG_LOCKD_V4=y
425     # CONFIG_EXPORTFS is not set
426     CONFIG_SUNRPC=y
427     -CONFIG_SUNRPC_GSS=m
428     -CONFIG_RPCSEC_GSS_KRB5=m
429     +# CONFIG_RPCSEC_GSS_KRB5 is not set
430     +# CONFIG_RPCSEC_GSS_SPKM3 is not set
431     # CONFIG_SMB_FS is not set
432     -CONFIG_CIFS=m
433     -# CONFIG_CIFS_STATS is not set
434     +# CONFIG_CIFS is not set
435     # CONFIG_NCP_FS is not set
436     # CONFIG_CODA_FS is not set
437     -CONFIG_AFS_FS=m
438     -CONFIG_RXRPC=m
439     +# CONFIG_AFS_FS is not set
440    
441     #
442     # Partition Types
443     @@ -559,6 +549,7 @@
444     # CONFIG_NLS_ISO8859_8 is not set
445     # CONFIG_NLS_CODEPAGE_1250 is not set
446     # CONFIG_NLS_CODEPAGE_1251 is not set
447     +# CONFIG_NLS_ASCII is not set
448     # CONFIG_NLS_ISO8859_1 is not set
449     # CONFIG_NLS_ISO8859_2 is not set
450     # CONFIG_NLS_ISO8859_3 is not set
451     @@ -572,7 +563,7 @@
452     # CONFIG_NLS_ISO8859_15 is not set
453     # CONFIG_NLS_KOI8_R is not set
454     # CONFIG_NLS_KOI8_U is not set
455     -# CONFIG_NLS_UTF8 is not set
456     +CONFIG_NLS_UTF8=y
457    
458     #
459     # Sound
460     @@ -583,6 +574,12 @@
461     # USB support
462     #
463     # CONFIG_USB is not set
464     +CONFIG_USB_ARCH_HAS_HCD=y
465     +CONFIG_USB_ARCH_HAS_OHCI=y
466     +
467     +#
468     +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
469     +#
470    
471     #
472     # USB Gadget Support
473     @@ -598,47 +595,30 @@
474     # Kernel hacking
475     #
476     CONFIG_DEBUG_KERNEL=y
477     -# CONFIG_DEBUG_STACK_USAGE is not set
478     -# CONFIG_DEBUG_SLAB is not set
479     CONFIG_MAGIC_SYSRQ=y
480     +# CONFIG_SCHEDSTATS is not set
481     +# CONFIG_DEBUG_SLAB is not set
482     # CONFIG_DEBUG_SPINLOCK is not set
483     -# CONFIG_DEBUG_HIGHMEM is not set
484     # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
485     +# CONFIG_DEBUG_KOBJECT is not set
486     +# CONFIG_DEBUG_HIGHMEM is not set
487     # CONFIG_DEBUG_BUGVERBOSE is not set
488     +# CONFIG_DEBUG_STACK_USAGE is not set
489    
490     #
491     # Security options
492     #
493     +# CONFIG_KEYS is not set
494     # CONFIG_SECURITY is not set
495    
496     #
497     # Cryptographic options
498     #
499     -CONFIG_CRYPTO=y
500     -CONFIG_CRYPTO_HMAC=y
501     -CONFIG_CRYPTO_NULL=m
502     -CONFIG_CRYPTO_MD4=y
503     -CONFIG_CRYPTO_MD5=y
504     -CONFIG_CRYPTO_SHA1=y
505     -CONFIG_CRYPTO_SHA256=m
506     -CONFIG_CRYPTO_SHA512=m
507     -CONFIG_CRYPTO_DES=y
508     -CONFIG_CRYPTO_BLOWFISH=m
509     -CONFIG_CRYPTO_TWOFISH=m
510     -CONFIG_CRYPTO_SERPENT=m
511     -CONFIG_CRYPTO_AES=m
512     -CONFIG_CRYPTO_CAST5=m
513     -CONFIG_CRYPTO_CAST6=m
514     -CONFIG_CRYPTO_ARC4=m
515     -CONFIG_CRYPTO_DEFLATE=y
516     -CONFIG_CRYPTO_MICHAEL_MIC=m
517     -CONFIG_CRYPTO_CRC32C=m
518     -# CONFIG_CRYPTO_TEST is not set
519     +# CONFIG_CRYPTO is not set
520    
521     #
522     # Library routines
523     #
524     +# CONFIG_CRC_CCITT is not set
525     CONFIG_CRC32=y
526     -CONFIG_LIBCRC32C=m
527     -CONFIG_ZLIB_INFLATE=y
528     -CONFIG_ZLIB_DEFLATE=y
529     +CONFIG_LIBCRC32C=y
530     diff -Naur linux-2.6.10-vanilla/arch/sparc/kernel/pcic.c linux-2.6.10/arch/sparc/kernel/pcic.c
531     --- linux-2.6.10-vanilla/arch/sparc/kernel/pcic.c 2004-12-24 13:34:57.000000000 -0800
532     +++ linux-2.6.10/arch/sparc/kernel/pcic.c 2004-12-25 03:00:03.663786699 -0800
533     @@ -161,7 +161,7 @@
534     static int pcic0_up;
535     static struct linux_pcic pcic0;
536    
537     -unsigned int pcic_regs;
538     +void * __iomem pcic_regs;
539     volatile int pcic_speculative;
540     volatile int pcic_trapped;
541    
542     @@ -313,8 +313,7 @@
543     pcic0_up = 1;
544    
545     pcic->pcic_res_regs.name = "pcic_registers";
546     - pcic->pcic_regs = (unsigned long)
547     - ioremap(regs[0].phys_addr, regs[0].reg_size);
548     + pcic->pcic_regs = ioremap(regs[0].phys_addr, regs[0].reg_size);
549     if (!pcic->pcic_regs) {
550     prom_printf("PCIC: Error, cannot map PCIC registers.\n");
551     prom_halt();
552     @@ -328,7 +327,7 @@
553     }
554    
555     pcic->pcic_res_cfg_addr.name = "pcic_cfg_addr";
556     - if ((pcic->pcic_config_space_addr = (unsigned long)
557     + if ((pcic->pcic_config_space_addr =
558     ioremap(regs[2].phys_addr, regs[2].reg_size * 2)) == 0) {
559     prom_printf("PCIC: Error, cannot map"
560     "PCI Configuration Space Address.\n");
561     @@ -340,7 +339,7 @@
562     * must be the same. Thus, we need adjust size of data.
563     */
564     pcic->pcic_res_cfg_data.name = "pcic_cfg_data";
565     - if ((pcic->pcic_config_space_data = (unsigned long)
566     + if ((pcic->pcic_config_space_data =
567     ioremap(regs[3].phys_addr, regs[3].reg_size * 2)) == 0) {
568     prom_printf("PCIC: Error, cannot map"
569     "PCI Configuration Space Data.\n");
570     @@ -976,7 +975,7 @@
571     * We do not use horroble macroses here because we want to
572     * advance pointer by sizeof(size).
573     */
574     -void outsb(unsigned long addr, const void *src, unsigned long count) {
575     +void outsb(void * __iomem addr, const void *src, unsigned long count) {
576     while (count) {
577     count -= 1;
578     writeb(*(const char *)src, addr);
579     @@ -985,7 +984,7 @@
580     }
581     }
582    
583     -void outsw(unsigned long addr, const void *src, unsigned long count) {
584     +void outsw(void * __iomem addr, const void *src, unsigned long count) {
585     while (count) {
586     count -= 2;
587     writew(*(const short *)src, addr);
588     @@ -994,7 +993,7 @@
589     }
590     }
591    
592     -void outsl(unsigned long addr, const void *src, unsigned long count) {
593     +void outsl(void * __iomem addr, const void *src, unsigned long count) {
594     while (count) {
595     count -= 4;
596     writel(*(const long *)src, addr);
597     @@ -1003,7 +1002,7 @@
598     }
599     }
600    
601     -void insb(unsigned long addr, void *dst, unsigned long count) {
602     +void insb(void * __iomem addr, void *dst, unsigned long count) {
603     while (count) {
604     count -= 1;
605     *(unsigned char *)dst = readb(addr);
606     @@ -1012,7 +1011,7 @@
607     }
608     }
609    
610     -void insw(unsigned long addr, void *dst, unsigned long count) {
611     +void insw(void * __iomem addr, void *dst, unsigned long count) {
612     while (count) {
613     count -= 2;
614     *(unsigned short *)dst = readw(addr);
615     @@ -1021,7 +1020,7 @@
616     }
617     }
618    
619     -void insl(unsigned long addr, void *dst, unsigned long count) {
620     +void insl(void * __iomem addr, void *dst, unsigned long count) {
621     while (count) {
622     count -= 4;
623     /*
624     diff -Naur linux-2.6.10-vanilla/arch/sparc/kernel/signal.c linux-2.6.10/arch/sparc/kernel/signal.c
625     --- linux-2.6.10-vanilla/arch/sparc/kernel/signal.c 2004-12-24 13:35:23.000000000 -0800
626     +++ linux-2.6.10/arch/sparc/kernel/signal.c 2004-12-25 03:00:03.656787857 -0800
627     @@ -1016,6 +1016,7 @@
628    
629     sigsegv_and_return:
630     force_sig(SIGSEGV, current);
631     + return -EFAULT;
632     }
633    
634     static inline void
635     diff -Naur linux-2.6.10-vanilla/arch/sparc/kernel/sun4d_smp.c linux-2.6.10/arch/sparc/kernel/sun4d_smp.c
636     --- linux-2.6.10-vanilla/arch/sparc/kernel/sun4d_smp.c 2004-12-24 13:33:59.000000000 -0800
637     +++ linux-2.6.10/arch/sparc/kernel/sun4d_smp.c 2004-12-25 03:00:03.506812683 -0800
638     @@ -122,8 +122,7 @@
639    
640     /* Fix idle thread fields. */
641     __asm__ __volatile__("ld [%0], %%g6\n\t"
642     - "sta %%g6, [%%g0] %1\n\t"
643     - : : "r" (&current_set[cpuid]), "i" (ASI_M_VIKING_TMP2)
644     + : : "r" (&current_set[cpuid])
645     : "memory" /* paranoid */);
646    
647     cpu_leds[cpuid] = 0x9;
648     @@ -460,25 +459,18 @@
649    
650     void __init smp4d_blackbox_current(unsigned *addr)
651     {
652     - /* We have a nice Linux current register :) */
653     - int rd = addr[1] & 0x3e000000;
654     + int rd = *addr & 0x3e000000;
655    
656     - addr[0] = 0x10800006; /* b .+24 */
657     - addr[1] = 0xc0800820 | rd; /* lda [%g0] ASI_M_VIKING_TMP2, reg */
658     + addr[0] = 0xc0800800 | rd; /* lda [%g0] ASI_M_VIKING_TMP1, reg */
659     + addr[2] = 0x81282002 | rd | (rd >> 11); /* sll reg, 2, reg */
660     + addr[4] = 0x01000000; /* nop */
661     }
662    
663     void __init sun4d_init_smp(void)
664     {
665     int i;
666     - extern unsigned int patchme_store_new_current[];
667     extern unsigned int t_nmi[], linux_trap_ipi15_sun4d[], linux_trap_ipi15_sun4m[];
668    
669     - /* Store current into Linux current register :) */
670     - __asm__ __volatile__("sta %%g6, [%%g0] %0" : : "i"(ASI_M_VIKING_TMP2));
671     -
672     - /* Patch switch_to */
673     - patchme_store_new_current[0] = (patchme_store_new_current[0] & 0x3e000000) | 0xc0a00820;
674     -
675     /* Patch ipi15 trap table */
676     t_nmi[1] = t_nmi[1] + (linux_trap_ipi15_sun4d - linux_trap_ipi15_sun4m);
677    
678     diff -Naur linux-2.6.10-vanilla/arch/sparc/lib/bitext.c linux-2.6.10/arch/sparc/lib/bitext.c
679     --- linux-2.6.10-vanilla/arch/sparc/lib/bitext.c 2004-12-24 13:34:44.000000000 -0800
680     +++ linux-2.6.10/arch/sparc/lib/bitext.c 2004-12-25 03:00:03.444822944 -0800
681     @@ -29,10 +29,17 @@
682     int offset, count; /* siamese twins */
683     int off_new;
684     int align1;
685     - int i;
686     + int i, color;
687    
688     - if (align == 0)
689     - align = 1;
690     + if (t->num_colors) {
691     + /* align is overloaded to be the page color */
692     + color = align;
693     + align = t->num_colors;
694     + } else {
695     + color = 0;
696     + if (align == 0)
697     + align = 1;
698     + }
699     align1 = align - 1;
700     if ((align & align1) != 0)
701     BUG();
702     @@ -40,6 +47,7 @@
703     BUG();
704     if (len <= 0 || len > t->size)
705     BUG();
706     + color &= align1;
707    
708     spin_lock(&t->lock);
709     if (len < t->last_size)
710     @@ -49,7 +57,7 @@
711     count = 0;
712     for (;;) {
713     off_new = find_next_zero_bit(t->map, t->size, offset);
714     - off_new = (off_new + align1) & ~align1;
715     + off_new = ((off_new + align1) & ~align1) + color;
716     count += off_new - offset;
717     offset = off_new;
718     if (offset >= t->size)
719     @@ -121,6 +129,4 @@
720     spin_lock_init(&t->lock);
721     t->map = map;
722     t->size = size;
723     - t->last_size = 0;
724     - t->first_free = 0;
725     }
726     diff -Naur linux-2.6.10-vanilla/arch/sparc/mm/fault.c linux-2.6.10/arch/sparc/mm/fault.c
727     --- linux-2.6.10-vanilla/arch/sparc/mm/fault.c 2004-12-24 13:35:50.000000000 -0800
728     +++ linux-2.6.10/arch/sparc/mm/fault.c 2004-12-25 03:00:03.695781403 -0800
729     @@ -294,16 +294,17 @@
730     * the fault.
731     */
732     switch (handle_mm_fault(mm, vma, address, write)) {
733     - case 1:
734     - current->min_flt++;
735     - break;
736     - case 2:
737     + case VM_FAULT_SIGBUS:
738     + goto do_sigbus;
739     + case VM_FAULT_OOM:
740     + goto out_of_memory;
741     + case VM_FAULT_MAJOR:
742     current->maj_flt++;
743     break;
744     - case 0:
745     - goto do_sigbus;
746     + case VM_FAULT_MINOR:
747     default:
748     - goto out_of_memory;
749     + current->min_flt++;
750     + break;
751     }
752     up_read(&mm->mmap_sem);
753     return;
754     @@ -535,8 +536,11 @@
755     if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
756     goto bad_area;
757     }
758     - if (!handle_mm_fault(mm, vma, address, write))
759     + switch (handle_mm_fault(mm, vma, address, write)) {
760     + case VM_FAULT_SIGBUS:
761     + case VM_FAULT_OOM:
762     goto do_sigbus;
763     + }
764     up_read(&mm->mmap_sem);
765     return;
766     bad_area:
767     diff -Naur linux-2.6.10-vanilla/arch/sparc/mm/iommu.c linux-2.6.10/arch/sparc/mm/iommu.c
768     --- linux-2.6.10-vanilla/arch/sparc/mm/iommu.c 2004-12-24 13:35:39.000000000 -0800
769     +++ linux-2.6.10/arch/sparc/mm/iommu.c 2004-12-25 03:00:03.469818806 -0800
770     @@ -119,6 +119,13 @@
771     prom_halt();
772     }
773     bit_map_init(&iommu->usemap, bitmap, IOMMU_NPTES);
774     + /* To be coherent on HyperSparc, the page color of DVMA
775     + * and physical addresses must match.
776     + */
777     + if (srmmu_modtype == HyperSparc)
778     + iommu->usemap.num_colors = vac_cache_size >> PAGE_SHIFT;
779     + else
780     + iommu->usemap.num_colors = 1;
781    
782     printk("IOMMU: impl %d vers %d table 0x%p[%d B] map [%d b]\n",
783     impl, vers, iommu->page_table,
784     @@ -128,7 +135,9 @@
785     }
786    
787     /* This begs to be btfixup-ed by srmmu. */
788     -static void iommu_viking_flush_iotlb(iopte_t *iopte, unsigned int niopte)
789     +/* Flush the iotlb entries to ram. */
790     +/* This could be better if we didn't have to flush whole pages. */
791     +static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte)
792     {
793     unsigned long start;
794     unsigned long end;
795     @@ -145,6 +154,11 @@
796     viking_flush_page(start);
797     start += PAGE_SIZE;
798     }
799     + } else {
800     + while(start < end) {
801     + __flush_page_to_ram(start);
802     + start += PAGE_SIZE;
803     + }
804     }
805     }
806    
807     @@ -156,7 +170,8 @@
808     unsigned int busa, busa0;
809     int i;
810    
811     - ioptex = bit_map_string_get(&iommu->usemap, npages, 1);
812     + /* page color = pfn of page */
813     + ioptex = bit_map_string_get(&iommu->usemap, npages, page_to_pfn(page));
814     if (ioptex < 0)
815     panic("iommu out");
816     busa0 = iommu->start + (ioptex << PAGE_SHIFT);
817     @@ -172,8 +187,7 @@
818     page++;
819     }
820    
821     - iommu_viking_flush_iotlb(iopte0, npages);
822     - flush_cache_all(); // hack to fix dma errors with hypersparc
823     + iommu_flush_iotlb(iopte0, npages);
824    
825     return busa0;
826     }
827     @@ -328,7 +342,9 @@
828     if ((addr & ~PAGE_MASK) != 0) BUG();
829     if ((len & ~PAGE_MASK) != 0) BUG();
830    
831     - ioptex = bit_map_string_get(&iommu->usemap, len >> PAGE_SHIFT, 1);
832     + /* page color = physical address */
833     + ioptex = bit_map_string_get(&iommu->usemap, len >> PAGE_SHIFT,
834     + addr >> PAGE_SHIFT);
835     if (ioptex < 0)
836     panic("iommu out");
837    
838     @@ -372,7 +388,7 @@
839     * to handle the latter case as well.
840     */
841     flush_cache_all();
842     - iommu_viking_flush_iotlb(first, len >> PAGE_SHIFT);
843     + iommu_flush_iotlb(first, len >> PAGE_SHIFT);
844     flush_tlb_all();
845     iommu_invalidate(iommu->regs);
846    
847     diff -Naur linux-2.6.10-vanilla/arch/sparc/mm/io-unit.c linux-2.6.10/arch/sparc/mm/io-unit.c
848     --- linux-2.6.10-vanilla/arch/sparc/mm/io-unit.c 2004-12-24 13:34:33.000000000 -0800
849     +++ linux-2.6.10/arch/sparc/mm/io-unit.c 2004-12-25 03:00:03.476817648 -0800
850     @@ -196,7 +196,7 @@
851     pte_t *ptep;
852     long i;
853    
854     - pgdp = pgd_offset(init_task.mm, addr);
855     + pgdp = pgd_offset(&init_mm, addr);
856     pmdp = pmd_offset(pgdp, addr);
857     ptep = pte_offset_map(pmdp, addr);
858    
859     diff -Naur linux-2.6.10-vanilla/arch/sparc/prom/ranges.c linux-2.6.10/arch/sparc/prom/ranges.c
860     --- linux-2.6.10-vanilla/arch/sparc/prom/ranges.c 2004-12-24 13:34:32.000000000 -0800
861     +++ linux-2.6.10/arch/sparc/prom/ranges.c 2004-12-25 03:00:03.531808545 -0800
862     @@ -34,7 +34,7 @@
863     }
864     }
865    
866     -static void
867     +void
868     prom_adjust_ranges(struct linux_prom_ranges *ranges1, int nranges1,
869     struct linux_prom_ranges *ranges2, int nranges2)
870     {
871     diff -Naur linux-2.6.10-vanilla/drivers/char/rtc.c linux-2.6.10/drivers/char/rtc.c
872     --- linux-2.6.10-vanilla/drivers/char/rtc.c 2004-12-24 13:35:50.000000000 -0800
873     +++ linux-2.6.10/drivers/char/rtc.c 2004-12-25 03:00:03.000000000 -0800
874     @@ -878,7 +878,7 @@
875     &rtc_fops
876     };
877    
878     -#ifdef RTC_IRQ
879     +#if defined(RTC_IRQ) && !defined(__sparc__)
880     static irqreturn_t (*rtc_int_handler_ptr)(int irq, void *dev_id, struct pt_regs *regs);
881     #endif
882    
883     diff -Naur linux-2.6.10-vanilla/drivers/sbus/char/rtc.c linux-2.6.10/drivers/sbus/char/rtc.c
884     --- linux-2.6.10-vanilla/drivers/sbus/char/rtc.c 2004-12-24 13:34:29.000000000 -0800
885     +++ linux-2.6.10/drivers/sbus/char/rtc.c 2004-12-25 03:00:03.000000000 -0800
886     @@ -20,6 +20,7 @@
887     #include <linux/poll.h>
888     #include <linux/init.h>
889     #include <linux/smp_lock.h>
890     +#include <asm/io.h>
891     #include <asm/mostek.h>
892     #include <asm/system.h>
893     #include <asm/uaccess.h>
894     @@ -30,7 +31,7 @@
895     /* Retrieve the current date and time from the real time clock. */
896     static void get_rtc_time(struct rtc_time *t)
897     {
898     - unsigned long regs = mstk48t02_regs;
899     + void * __iomem regs = mstk48t02_regs;
900     u8 tmp;
901    
902     spin_lock_irq(&mostek_lock);
903     @@ -57,7 +58,7 @@
904     /* Set the current date and time inthe real time clock. */
905     void set_rtc_time(struct rtc_time *t)
906     {
907     - unsigned long regs = mstk48t02_regs;
908     + void * __iomem regs = mstk48t02_regs;
909     u8 tmp;
910    
911     spin_lock_irq(&mostek_lock);
912     diff -Naur linux-2.6.10-vanilla/drivers/sbus/sbus.c linux-2.6.10/drivers/sbus/sbus.c
913     --- linux-2.6.10-vanilla/drivers/sbus/sbus.c 2004-12-24 13:35:50.000000000 -0800
914     +++ linux-2.6.10/drivers/sbus/sbus.c 2004-12-25 03:00:03.000000000 -0800
915     @@ -217,6 +217,8 @@
916     * prom_sbus_ranges_init(), with all sun4d stuff cut away.
917     * Ask DaveM what is going on here, how is sun4d supposed to work... XXX
918     */
919     +/* added back sun4d patch from Thomas Bogendoerfer - should be OK (crn) */
920     +
921     static void __init sbus_bus_ranges_init(int parent_node, struct sbus_bus *sbus)
922     {
923     int len;
924     @@ -229,6 +231,18 @@
925     return;
926     }
927     sbus->num_sbus_ranges = len / sizeof(struct linux_prom_ranges);
928     + if (sparc_cpu_model == sun4d) {
929     + struct linux_prom_ranges iounit_ranges[PROMREG_MAX];
930     + int num_iounit_ranges;
931     +
932     + len = prom_getproperty(parent_node, "ranges",
933     + (char *) iounit_ranges,
934     + sizeof (iounit_ranges));
935     + if (len != -1) {
936     + num_iounit_ranges = (len/sizeof(struct linux_prom_ranges));
937     + prom_adjust_ranges (sbus->sbus_ranges, sbus->num_sbus_ranges, iounit_ranges, num_iounit_ranges);
938     + }
939     + }
940     }
941    
942     static void __init __apply_ranges_to_regs(struct linux_prom_ranges *ranges,
943     diff -Naur linux-2.6.10-vanilla/drivers/serial/sunsu.c linux-2.6.10/drivers/serial/sunsu.c
944     --- linux-2.6.10-vanilla/drivers/serial/sunsu.c 2004-12-24 13:34:26.000000000 -0800
945     +++ linux-2.6.10/drivers/serial/sunsu.c 2004-12-25 03:00:03.000000000 -0800
946     @@ -1285,7 +1285,9 @@
947    
948     static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up, int channel)
949     {
950     +#ifdef CONFIG_SERIO
951     struct serio *serio;
952     +#endif
953    
954     up->port.line = channel;
955     up->port.type = PORT_UNKNOWN;
956     diff -Naur linux-2.6.10-vanilla/drivers/video/cg6.c linux-2.6.10/drivers/video/cg6.c
957     --- linux-2.6.10-vanilla/drivers/video/cg6.c 2004-12-24 13:34:29.000000000 -0800
958     +++ linux-2.6.10/drivers/video/cg6.c 2004-12-25 03:00:03.000000000 -0800
959     @@ -689,6 +689,9 @@
960     all->par.physbase = sdev->reg_addrs[0].phys_addr;
961    
962     sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
963     + all->info.var.red.length = 8;
964     + all->info.var.green.length = 8;
965     + all->info.var.blue.length = 8;
966    
967     linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
968     all->info.var.xres);
969     @@ -732,6 +735,7 @@
970     return;
971     }
972    
973     + fb_set_cmap(&all->info.cmap, &all->info);
974     cg6_init_fix(&all->info, linebytes);
975    
976     if (register_framebuffer(&all->info) < 0) {
977     diff -Naur linux-2.6.10-vanilla/drivers/video/tcx.c.orig linux-2.6.10/drivers/video/tcx.c.orig
978     --- linux-2.6.10-vanilla/drivers/video/tcx.c.orig 1969-12-31 16:00:00.000000000 -0800
979     +++ linux-2.6.10/drivers/video/tcx.c.orig 2004-12-24 13:33:47.000000000 -0800
980     @@ -0,0 +1,504 @@
981     +/* tcx.c: TCX frame buffer driver
982     + *
983     + * Copyright (C) 2003 David S. Miller (davem@redhat.com)
984     + * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
985     + * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
986     + * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
987     + *
988     + * Driver layout based loosely on tgafb.c, see that file for credits.
989     + */
990     +
991     +#include <linux/module.h>
992     +#include <linux/kernel.h>
993     +#include <linux/errno.h>
994     +#include <linux/string.h>
995     +#include <linux/slab.h>
996     +#include <linux/delay.h>
997     +#include <linux/init.h>
998     +#include <linux/fb.h>
999     +#include <linux/mm.h>
1000     +
1001     +#include <asm/io.h>
1002     +#include <asm/sbus.h>
1003     +#include <asm/oplib.h>
1004     +#include <asm/fbio.h>
1005     +
1006     +#include "sbuslib.h"
1007     +
1008     +/*
1009     + * Local functions.
1010     + */
1011     +
1012     +static int tcx_setcolreg(unsigned, unsigned, unsigned, unsigned,
1013     + unsigned, struct fb_info *);
1014     +static int tcx_blank(int, struct fb_info *);
1015     +
1016     +static int tcx_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
1017     +static int tcx_ioctl(struct inode *, struct file *, unsigned int,
1018     + unsigned long, struct fb_info *);
1019     +
1020     +/*
1021     + * Frame buffer operations
1022     + */
1023     +
1024     +static struct fb_ops tcx_ops = {
1025     + .owner = THIS_MODULE,
1026     + .fb_setcolreg = tcx_setcolreg,
1027     + .fb_blank = tcx_blank,
1028     + .fb_fillrect = cfb_fillrect,
1029     + .fb_copyarea = cfb_copyarea,
1030     + .fb_imageblit = cfb_imageblit,
1031     + .fb_mmap = tcx_mmap,
1032     + .fb_ioctl = tcx_ioctl,
1033     + .fb_cursor = soft_cursor,
1034     +};
1035     +
1036     +/* THC definitions */
1037     +#define TCX_THC_MISC_REV_SHIFT 16
1038     +#define TCX_THC_MISC_REV_MASK 15
1039     +#define TCX_THC_MISC_VSYNC_DIS (1 << 25)
1040     +#define TCX_THC_MISC_HSYNC_DIS (1 << 24)
1041     +#define TCX_THC_MISC_RESET (1 << 12)
1042     +#define TCX_THC_MISC_VIDEO (1 << 10)
1043     +#define TCX_THC_MISC_SYNC (1 << 9)
1044     +#define TCX_THC_MISC_VSYNC (1 << 8)
1045     +#define TCX_THC_MISC_SYNC_ENAB (1 << 7)
1046     +#define TCX_THC_MISC_CURS_RES (1 << 6)
1047     +#define TCX_THC_MISC_INT_ENAB (1 << 5)
1048     +#define TCX_THC_MISC_INT (1 << 4)
1049     +#define TCX_THC_MISC_INIT 0x9f
1050     +#define TCX_THC_REV_REV_SHIFT 20
1051     +#define TCX_THC_REV_REV_MASK 15
1052     +#define TCX_THC_REV_MINREV_SHIFT 28
1053     +#define TCX_THC_REV_MINREV_MASK 15
1054     +
1055     +/* The contents are unknown */
1056     +struct tcx_tec {
1057     + volatile u32 tec_matrix;
1058     + volatile u32 tec_clip;
1059     + volatile u32 tec_vdc;
1060     +};
1061     +
1062     +struct tcx_thc {
1063     + volatile u32 thc_rev;
1064     + u32 thc_pad0[511];
1065     + volatile u32 thc_hs; /* hsync timing */
1066     + volatile u32 thc_hsdvs;
1067     + volatile u32 thc_hd;
1068     + volatile u32 thc_vs; /* vsync timing */
1069     + volatile u32 thc_vd;
1070     + volatile u32 thc_refresh;
1071     + volatile u32 thc_misc;
1072     + u32 thc_pad1[56];
1073     + volatile u32 thc_cursxy; /* cursor x,y position (16 bits each) */
1074     + volatile u32 thc_cursmask[32]; /* cursor mask bits */
1075     + volatile u32 thc_cursbits[32]; /* what to show where mask enabled */
1076     +};
1077     +
1078     +struct bt_regs {
1079     + volatile u32 addr;
1080     + volatile u32 color_map;
1081     + volatile u32 control;
1082     + volatile u32 cursor;
1083     +};
1084     +
1085     +#define TCX_MMAP_ENTRIES 14
1086     +
1087     +struct tcx_par {
1088     + spinlock_t lock;
1089     + struct bt_regs __iomem *bt;
1090     + struct tcx_thc __iomem *thc;
1091     + struct tcx_tec __iomem *tec;
1092     + volatile u32 __iomem *cplane;
1093     +
1094     + u32 flags;
1095     +#define TCX_FLAG_BLANKED 0x00000001
1096     +
1097     + unsigned long physbase;
1098     + unsigned long fbsize;
1099     +
1100     + struct sbus_mmap_map mmap_map[TCX_MMAP_ENTRIES];
1101     + int lowdepth;
1102     +
1103     + struct sbus_dev *sdev;
1104     + struct list_head list;
1105     +};
1106     +
1107     +/* Reset control plane so that WID is 8-bit plane. */
1108     +static void __tcx_set_control_plane (struct tcx_par *par)
1109     +{
1110     + volatile u32 __iomem *p, *pend;
1111     +
1112     + if (par->lowdepth)
1113     + return;
1114     +
1115     + p = par->cplane;
1116     + if (p == NULL)
1117     + return;
1118     + for (pend = p + par->fbsize; p < pend; p++) {
1119     + u32 tmp = sbus_readl(p);
1120     +
1121     + tmp &= 0xffffff;
1122     + sbus_writel(tmp, p);
1123     + }
1124     +}
1125     +
1126     +static void tcx_reset (struct fb_info *info)
1127     +{
1128     + struct tcx_par *par = (struct tcx_par *) info->par;
1129     + unsigned long flags;
1130     +
1131     + spin_lock_irqsave(&par->lock, flags);
1132     + __tcx_set_control_plane(par);
1133     + spin_unlock_irqrestore(&par->lock, flags);
1134     +}
1135     +
1136     +/**
1137     + * tcx_setcolreg - Optional function. Sets a color register.
1138     + * @regno: boolean, 0 copy local, 1 get_user() function
1139     + * @red: frame buffer colormap structure
1140     + * @green: The green value which can be up to 16 bits wide
1141     + * @blue: The blue value which can be up to 16 bits wide.
1142     + * @transp: If supported the alpha value which can be up to 16 bits wide.
1143     + * @info: frame buffer info structure
1144     + */
1145     +static int tcx_setcolreg(unsigned regno,
1146     + unsigned red, unsigned green, unsigned blue,
1147     + unsigned transp, struct fb_info *info)
1148     +{
1149     + struct tcx_par *par = (struct tcx_par *) info->par;
1150     + struct bt_regs __iomem *bt = par->bt;
1151     + unsigned long flags;
1152     +
1153     + if (regno >= 256)
1154     + return 1;
1155     +
1156     + red >>= 8;
1157     + green >>= 8;
1158     + blue >>= 8;
1159     +
1160     + spin_lock_irqsave(&par->lock, flags);
1161     +
1162     + sbus_writel(regno << 24, &bt->addr);
1163     + sbus_writel(red << 24, &bt->color_map);
1164     + sbus_writel(green << 24, &bt->color_map);
1165     + sbus_writel(blue << 24, &bt->color_map);
1166     +
1167     + spin_unlock_irqrestore(&par->lock, flags);
1168     +
1169     + return 0;
1170     +}
1171     +
1172     +/**
1173     + * tcx_blank - Optional function. Blanks the display.
1174     + * @blank_mode: the blank mode we want.
1175     + * @info: frame buffer structure that represents a single frame buffer
1176     + */
1177     +static int
1178     +tcx_blank(int blank, struct fb_info *info)
1179     +{
1180     + struct tcx_par *par = (struct tcx_par *) info->par;
1181     + struct tcx_thc __iomem *thc = par->thc;
1182     + unsigned long flags;
1183     + u32 val;
1184     +
1185     + spin_lock_irqsave(&par->lock, flags);
1186     +
1187     + val = sbus_readl(&thc->thc_misc);
1188     +
1189     + switch (blank) {
1190     + case FB_BLANK_UNBLANK: /* Unblanking */
1191     + val &= ~(TCX_THC_MISC_VSYNC_DIS |
1192     + TCX_THC_MISC_HSYNC_DIS);
1193     + val |= TCX_THC_MISC_VIDEO;
1194     + par->flags &= ~TCX_FLAG_BLANKED;
1195     + break;
1196     +
1197     + case FB_BLANK_NORMAL: /* Normal blanking */
1198     + val &= ~TCX_THC_MISC_VIDEO;
1199     + par->flags |= TCX_FLAG_BLANKED;
1200     + break;
1201     +
1202     + case FB_BLANK_VSYNC_SUSPEND: /* VESA blank (vsync off) */
1203     + val |= TCX_THC_MISC_VSYNC_DIS;
1204     + break;
1205     + case FB_BLANK_HSYNC_SUSPEND: /* VESA blank (hsync off) */
1206     + val |= TCX_THC_MISC_HSYNC_DIS;
1207     + break;
1208     +
1209     + case FB_BLANK_POWERDOWN: /* Poweroff */
1210     + break;
1211     + };
1212     +
1213     + sbus_writel(val, &thc->thc_misc);
1214     +
1215     + spin_unlock_irqrestore(&par->lock, flags);
1216     +
1217     + return 0;
1218     +}
1219     +
1220     +static struct sbus_mmap_map __tcx_mmap_map[TCX_MMAP_ENTRIES] = {
1221     + {
1222     + .voff = TCX_RAM8BIT,
1223     + .size = SBUS_MMAP_FBSIZE(1)
1224     + },
1225     + {
1226     + .voff = TCX_RAM24BIT,
1227     + .size = SBUS_MMAP_FBSIZE(4)
1228     + },
1229     + {
1230     + .voff = TCX_UNK3,
1231     + .size = SBUS_MMAP_FBSIZE(8)
1232     + },
1233     + {
1234     + .voff = TCX_UNK4,
1235     + .size = SBUS_MMAP_FBSIZE(8)
1236     + },
1237     + {
1238     + .voff = TCX_CONTROLPLANE,
1239     + .size = SBUS_MMAP_FBSIZE(4)
1240     + },
1241     + {
1242     + .voff = TCX_UNK6,
1243     + .size = SBUS_MMAP_FBSIZE(8)
1244     + },
1245     + {
1246     + .voff = TCX_UNK7,
1247     + .size = SBUS_MMAP_FBSIZE(8)
1248     + },
1249     + {
1250     + .voff = TCX_TEC,
1251     + .size = PAGE_SIZE
1252     + },
1253     + {
1254     + .voff = TCX_BTREGS,
1255     + .size = PAGE_SIZE
1256     + },
1257     + {
1258     + .voff = TCX_THC,
1259     + .size = PAGE_SIZE
1260     + },
1261     + {
1262     + .voff = TCX_DHC,
1263     + .size = PAGE_SIZE
1264     + },
1265     + {
1266     + .voff = TCX_ALT,
1267     + .size = PAGE_SIZE
1268     + },
1269     + {
1270     + .voff = TCX_UNK2,
1271     + .size = 0x20000
1272     + },
1273     + { .size = 0 }
1274     +};
1275     +
1276     +static int tcx_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
1277     +{
1278     + struct tcx_par *par = (struct tcx_par *)info->par;
1279     +
1280     + return sbusfb_mmap_helper(par->mmap_map,
1281     + par->physbase, par->fbsize,
1282     + par->sdev->reg_addrs[0].which_io,
1283     + vma);
1284     +}
1285     +
1286     +static int tcx_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
1287     + unsigned long arg, struct fb_info *info)
1288     +{
1289     + struct tcx_par *par = (struct tcx_par *) info->par;
1290     +
1291     + return sbusfb_ioctl_helper(cmd, arg, info,
1292     + FBTYPE_TCXCOLOR,
1293     + (par->lowdepth ? 8 : 24),
1294     + par->fbsize);
1295     +}
1296     +
1297     +/*
1298     + * Initialisation
1299     + */
1300     +
1301     +static void
1302     +tcx_init_fix(struct fb_info *info, int linebytes)
1303     +{
1304     + struct tcx_par *par = (struct tcx_par *)info->par;
1305     + const char *tcx_name;
1306     +
1307     + if (par->lowdepth)
1308     + tcx_name = "TCX8";
1309     + else
1310     + tcx_name = "TCX24";
1311     +
1312     + strlcpy(info->fix.id, tcx_name, sizeof(info->fix.id));
1313     +
1314     + info->fix.type = FB_TYPE_PACKED_PIXELS;
1315     + info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
1316     +
1317     + info->fix.line_length = linebytes;
1318     +
1319     + info->fix.accel = FB_ACCEL_SUN_TCX;
1320     +}
1321     +
1322     +struct all_info {
1323     + struct fb_info info;
1324     + struct tcx_par par;
1325     + struct list_head list;
1326     +};
1327     +static LIST_HEAD(tcx_list);
1328     +
1329     +static void tcx_init_one(struct sbus_dev *sdev)
1330     +{
1331     + struct all_info *all;
1332     + int linebytes, i;
1333     +
1334     + all = kmalloc(sizeof(*all), GFP_KERNEL);
1335     + if (!all) {
1336     + printk(KERN_ERR "tcx: Cannot allocate memory.\n");
1337     + return;
1338     + }
1339     + memset(all, 0, sizeof(*all));
1340     +
1341     + INIT_LIST_HEAD(&all->list);
1342     +
1343     + spin_lock_init(&all->par.lock);
1344     + all->par.sdev = sdev;
1345     +
1346     + all->par.lowdepth = prom_getbool(sdev->prom_node, "tcx-8-bit");
1347     +
1348     + sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
1349     +
1350     + linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
1351     + all->info.var.xres);
1352     + all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
1353     +
1354     + all->par.tec = sbus_ioremap(&sdev->resource[7], 0,
1355     + sizeof(struct tcx_tec), "tcx tec");
1356     + all->par.thc = sbus_ioremap(&sdev->resource[9], 0,
1357     + sizeof(struct tcx_thc), "tcx thc");
1358     + all->par.bt = sbus_ioremap(&sdev->resource[8], 0,
1359     + sizeof(struct bt_regs), "tcx dac");
1360     + memcpy(&all->par.mmap_map, &__tcx_mmap_map, sizeof(all->par.mmap_map));
1361     + if (!all->par.lowdepth) {
1362     + all->par.cplane = sbus_ioremap(&sdev->resource[4], 0,
1363     + all->par.fbsize * sizeof(u32), "tcx cplane");
1364     + } else {
1365     + all->par.mmap_map[1].size = SBUS_MMAP_EMPTY;
1366     + all->par.mmap_map[4].size = SBUS_MMAP_EMPTY;
1367     + all->par.mmap_map[5].size = SBUS_MMAP_EMPTY;
1368     + all->par.mmap_map[6].size = SBUS_MMAP_EMPTY;
1369     + }
1370     +
1371     + all->par.physbase = 0;
1372     + for (i = 0; i < TCX_MMAP_ENTRIES; i++) {
1373     + int j;
1374     +
1375     + switch (i) {
1376     + case 10:
1377     + j = 12;
1378     + break;
1379     +
1380     + case 11: case 12:
1381     + j = i - 1;
1382     + break;
1383     +
1384     + default:
1385     + j = i;
1386     + break;
1387     + };
1388     + all->par.mmap_map[i].poff = sdev->reg_addrs[j].phys_addr;
1389     + }
1390     +
1391     + all->info.flags = FBINFO_DEFAULT;
1392     + all->info.fbops = &tcx_ops;
1393     +#ifdef CONFIG_SPARC32
1394     + all->info.screen_base = (char __iomem *)
1395     + prom_getintdefault(sdev->prom_node, "address", 0);
1396     +#endif
1397     + if (!all->info.screen_base)
1398     + all->info.screen_base = sbus_ioremap(&sdev->resource[0], 0,
1399     + all->par.fbsize, "tcx ram");
1400     + all->info.par = &all->par;
1401     +
1402     + /* Initialize brooktree DAC. */
1403     + sbus_writel(0x04 << 24, &all->par.bt->addr); /* color planes */
1404     + sbus_writel(0xff << 24, &all->par.bt->control);
1405     + sbus_writel(0x05 << 24, &all->par.bt->addr);
1406     + sbus_writel(0x00 << 24, &all->par.bt->control);
1407     + sbus_writel(0x06 << 24, &all->par.bt->addr); /* overlay plane */
1408     + sbus_writel(0x73 << 24, &all->par.bt->control);
1409     + sbus_writel(0x07 << 24, &all->par.bt->addr);
1410     + sbus_writel(0x00 << 24, &all->par.bt->control);
1411     +
1412     + tcx_reset(&all->info);
1413     +
1414     + tcx_blank(0, &all->info);
1415     +
1416     + if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
1417     + printk(KERN_ERR "tcx: Could not allocate color map.\n");
1418     + kfree(all);
1419     + return;
1420     + }
1421     +
1422     + tcx_init_fix(&all->info, linebytes);
1423     +
1424     + if (register_framebuffer(&all->info) < 0) {
1425     + printk(KERN_ERR "tcx: Could not register framebuffer.\n");
1426     + fb_dealloc_cmap(&all->info.cmap);
1427     + kfree(all);
1428     + return;
1429     + }
1430     +
1431     + list_add(&all->list, &tcx_list);
1432     +
1433     + printk("tcx: %s at %lx:%lx, %s\n",
1434     + sdev->prom_name,
1435     + (long) sdev->reg_addrs[0].which_io,
1436     + (long) sdev->reg_addrs[0].phys_addr,
1437     + all->par.lowdepth ? "8-bit only" : "24-bit depth");
1438     +}
1439     +
1440     +int __init tcx_init(void)
1441     +{
1442     + struct sbus_bus *sbus;
1443     + struct sbus_dev *sdev;
1444     +
1445     + if (fb_get_options("tcxfb", NULL))
1446     + return -ENODEV;
1447     +
1448     + for_all_sbusdev(sdev, sbus) {
1449     + if (!strcmp(sdev->prom_name, "tcx"))
1450     + tcx_init_one(sdev);
1451     + }
1452     +
1453     + return 0;
1454     +}
1455     +
1456     +void __exit tcx_exit(void)
1457     +{
1458     + struct list_head *pos, *tmp;
1459     +
1460     + list_for_each_safe(pos, tmp, &tcx_list) {
1461     + struct all_info *all = list_entry(pos, typeof(*all), list);
1462     +
1463     + unregister_framebuffer(&all->info);
1464     + fb_dealloc_cmap(&all->info.cmap);
1465     + kfree(all);
1466     + }
1467     +}
1468     +
1469     +int __init
1470     +tcx_setup(char *arg)
1471     +{
1472     + /* No cmdline options yet... */
1473     + return 0;
1474     +}
1475     +
1476     +module_init(tcx_init);
1477     +
1478     +#ifdef MODULE
1479     +module_exit(tcx_exit);
1480     +#endif
1481     +
1482     +MODULE_DESCRIPTION("framebuffer driver for TCX chipsets");
1483     +MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
1484     +MODULE_LICENSE("GPL");
1485     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/asi.h linux-2.6.10/include/asm-sparc/asi.h
1486     --- linux-2.6.10-vanilla/include/asm-sparc/asi.h 2004-12-24 13:34:44.000000000 -0800
1487     +++ linux-2.6.10/include/asm-sparc/asi.h 2004-12-25 03:00:03.000000000 -0800
1488     @@ -104,7 +104,8 @@
1489     #define ASI_M_DCDR 0x39 /* Data Cache Diagnostics Register rw, ss */
1490    
1491     #define ASI_M_VIKING_TMP1 0x40 /* Emulation temporary 1 on Viking */
1492     -#define ASI_M_VIKING_TMP2 0x41 /* Emulation temporary 2 on Viking */
1493     +/* only available on SuperSparc I */
1494     +/* #define ASI_M_VIKING_TMP2 0x41 */ /* Emulation temporary 2 on Viking */
1495    
1496     #define ASI_M_ACTION 0x4c /* Breakpoint Action Register (GNU/Viking) */
1497    
1498     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/bitext.h linux-2.6.10/include/asm-sparc/bitext.h
1499     --- linux-2.6.10-vanilla/include/asm-sparc/bitext.h 2004-12-24 13:35:23.000000000 -0800
1500     +++ linux-2.6.10/include/asm-sparc/bitext.h 2004-12-25 03:00:03.000000000 -0800
1501     @@ -17,6 +17,7 @@
1502     int last_off;
1503     int last_size;
1504     int first_free;
1505     + int num_colors;
1506     };
1507    
1508     extern int bit_map_string_get(struct bit_map *t, int len, int align);
1509     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/floppy.h linux-2.6.10/include/asm-sparc/floppy.h
1510     --- linux-2.6.10-vanilla/include/asm-sparc/floppy.h 2004-12-24 13:33:48.000000000 -0800
1511     +++ linux-2.6.10/include/asm-sparc/floppy.h 2004-12-25 03:00:03.000000000 -0800
1512     @@ -264,7 +264,7 @@
1513     }
1514    
1515     /* Our low-level entry point in arch/sparc/kernel/entry.S */
1516     -extern void floppy_hardint(int irq, void *unused, struct pt_regs *regs);
1517     +irqreturn_t floppy_hardint(int irq, void *unused, struct pt_regs *regs);
1518    
1519     static int sun_fd_request_irq(void)
1520     {
1521     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/io.h linux-2.6.10/include/asm-sparc/io.h
1522     --- linux-2.6.10-vanilla/include/asm-sparc/io.h 2004-12-24 13:33:52.000000000 -0800
1523     +++ linux-2.6.10/include/asm-sparc/io.h 2004-12-25 03:00:03.000000000 -0800
1524     @@ -134,12 +134,12 @@
1525     #define inl_p(__addr) inl(__addr)
1526     #define outl_p(__l, __addr) outl(__l, __addr)
1527    
1528     -extern void outsb(unsigned long addr, const void *src, unsigned long cnt);
1529     -extern void outsw(unsigned long addr, const void *src, unsigned long cnt);
1530     -extern void outsl(unsigned long addr, const void *src, unsigned long cnt);
1531     -extern void insb(unsigned long addr, void *dst, unsigned long count);
1532     -extern void insw(unsigned long addr, void *dst, unsigned long count);
1533     -extern void insl(unsigned long addr, void *dst, unsigned long count);
1534     +void outsb(void * __iomem addr, const void *src, unsigned long cnt);
1535     +void outsw(void * __iomem addr, const void *src, unsigned long cnt);
1536     +void outsl(void * __iomem addr, const void *src, unsigned long cnt);
1537     +void insb(void * __iomem addr, void *dst, unsigned long count);
1538     +void insw(void * __iomem addr, void *dst, unsigned long count);
1539     +void insl(void * __iomem addr, void *dst, unsigned long count);
1540    
1541     #define IO_SPACE_LIMIT 0xffffffff
1542    
1543     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/pcic.h linux-2.6.10/include/asm-sparc/pcic.h
1544     --- linux-2.6.10-vanilla/include/asm-sparc/pcic.h 2004-12-24 13:34:32.000000000 -0800
1545     +++ linux-2.6.10/include/asm-sparc/pcic.h 2004-12-25 03:00:03.000000000 -0800
1546     @@ -16,10 +16,10 @@
1547     #include <asm/pbm.h>
1548    
1549     struct linux_pcic {
1550     - unsigned long pcic_regs;
1551     + void * __iomem pcic_regs;
1552     unsigned long pcic_io;
1553     - unsigned long pcic_config_space_addr;
1554     - unsigned long pcic_config_space_data;
1555     + void * __iomem pcic_config_space_addr;
1556     + void * __iomem pcic_config_space_data;
1557     struct resource pcic_res_regs;
1558     struct resource pcic_res_io;
1559     struct resource pcic_res_cfg_addr;
1560     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/sbus.h linux-2.6.10/include/asm-sparc/sbus.h
1561     --- linux-2.6.10-vanilla/include/asm-sparc/sbus.h 2004-12-24 13:34:01.000000000 -0800
1562     +++ linux-2.6.10/include/asm-sparc/sbus.h 2004-12-25 03:00:03.000000000 -0800
1563     @@ -106,6 +106,8 @@
1564     /* These yield IOMMU mappings in consistent mode. */
1565     extern void *sbus_alloc_consistent(struct sbus_dev *, long, u32 *dma_addrp);
1566     extern void sbus_free_consistent(struct sbus_dev *, long, void *, u32);
1567     +void prom_adjust_ranges(struct linux_prom_ranges *, int,
1568     + struct linux_prom_ranges *, int);
1569    
1570     #define SBUS_DMA_BIDIRECTIONAL DMA_BIDIRECTIONAL
1571     #define SBUS_DMA_TODEVICE DMA_TO_DEVICE
1572     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/string.h linux-2.6.10/include/asm-sparc/string.h
1573     --- linux-2.6.10-vanilla/include/asm-sparc/string.h 2004-12-24 13:33:49.000000000 -0800
1574     +++ linux-2.6.10/include/asm-sparc/string.h 2004-12-25 03:00:03.000000000 -0800
1575     @@ -40,6 +40,9 @@
1576    
1577     if(n <= 32) {
1578     __builtin_memcpy(to, from, n);
1579     + } else if (((unsigned int) to & 7) != 0) {
1580     + /* Destination is not aligned on the double-word boundary */
1581     + __memcpy(to, from, n);
1582     } else {
1583     switch(n) {
1584     case PAGE_SIZE:
1585     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/unistd.h linux-2.6.10/include/asm-sparc/unistd.h
1586     --- linux-2.6.10-vanilla/include/asm-sparc/unistd.h 2004-12-24 13:33:51.000000000 -0800
1587     +++ linux-2.6.10/include/asm-sparc/unistd.h 2004-12-25 03:00:03.000000000 -0800
1588     @@ -486,7 +486,6 @@
1589     static __inline__ _syscall3(int,execve,__const__ char *,file,char **,argv,char **,envp)
1590     static __inline__ _syscall3(int,open,__const__ char *,file,int,flag,int,mode)
1591     static __inline__ _syscall1(int,close,int,fd)
1592     -static __inline__ _syscall1(int,_exit,int,exitcode)
1593     static __inline__ _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
1594    
1595     #include <linux/linkage.h>
1596     diff -Naur linux-2.6.10-vanilla/include/asm-sparc/winmacro.h linux-2.6.10/include/asm-sparc/winmacro.h
1597     --- linux-2.6.10-vanilla/include/asm-sparc/winmacro.h 2004-12-24 13:34:32.000000000 -0800
1598     +++ linux-2.6.10/include/asm-sparc/winmacro.h 2004-12-25 03:00:03.000000000 -0800
1599     @@ -112,9 +112,12 @@
1600     and %idreg, 0xc, %idreg; \
1601     ld [%idreg + %dest_reg], %dest_reg;
1602    
1603     -/* Sliiick. We have a Linux current register :) -jj */
1604     -#define LOAD_CURRENT4D(dest_reg) \
1605     - lda [%g0] ASI_M_VIKING_TMP2, %dest_reg;
1606     +#define LOAD_CURRENT4D(dest_reg, idreg) \
1607     + lda [%g0] ASI_M_VIKING_TMP1, %idreg; \
1608     + sethi %hi(C_LABEL(current_set)), %dest_reg; \
1609     + sll %idreg, 2, %idreg; \
1610     + or %dest_reg, %lo(C_LABEL(current_set)), %dest_reg; \
1611     + ld [%idreg + %dest_reg], %dest_reg;
1612    
1613     /* Blackbox - take care with this... - check smp4m and smp4d before changing this. */
1614     #define LOAD_CURRENT(dest_reg, idreg) \

  ViewVC Help
Powered by ViewVC 1.1.20