Jakub, David, Eddie,
or whoever is less loaded and has an Ultra:

I need to offload couple of small fixes that touch common code with
sparc64. Please consider...

1. sunhme forgets to do ioremap. This works on Ultra because ioremap
is nop there anyways...

Index: drivers/net/sunhme.c
===================================================================
RCS file: /cvs/linux/linux/drivers/net/sunhme.c,v
retrieving revision 1.80
diff -u -r1.80 sunhme.c
--- drivers/net/sunhme.c        1999/09/21 14:36:29     1.80
+++ drivers/net/sunhme.c        1999/10/06 01:35:09
@@ -2761,6 +2761,8 @@
                printk("happymeal(PCI): Cannot find proper PCI device base 
address.\n");
                return ENODEV;
        }
+       hpreg_base &= PCI_BASE_ADDRESS_MEM_MASK;
+       hpreg_base = (unsigned long) ioremap(hpreg_base, 0x8000);
 
        if (qfe_slot != -1 && prom_getproplen(node, "local-mac-address") == 6)
                prom_getproperty(node, "local-mac-address", dev->dev_addr, 6);
@@ -2805,9 +2807,10 @@
 
        hp->hblock_dvma = (u32) virt_to_bus(hp->happy_block);
 #ifndef __sparc_v9__
-       /* This case we currently need to use 'sparc_alloc_io' */
-       hp->happy_block = sparc_alloc_io (hp->hblock_dvma, NULL, 
-                                         PAGE_SIZE, "sunhme", 0, 0);
+       /*
+        * P3: Dirty trick to get uncacheable memory as we have no dma_sync.
+        */
+       hp->happy_block = ioremap(virt_to_phys(hp->happy_block), PAGE_SIZE);
 #endif
 
        hp->linkcheck = 0;

2. sbus_iommu_init is specific to sparc64, we use iommu_init on sparc
(confused yet?)

Index: drivers/sbus/sbus.c
===================================================================
RCS file: /cvs/linux/linux/drivers/sbus/sbus.c,v
retrieving revision 1.81
diff -u -r1.81 sbus.c
--- drivers/sbus/sbus.c 1999/09/21 14:36:58     1.81
+++ drivers/sbus/sbus.c 1999/10/06 01:35:12
@@ -372,14 +372,16 @@
 
        /* Loop until we find no more SBUS's */
        while(this_sbus) {
+#ifdef __sparc_v9__                                              
                /* IOMMU hides inside SBUS/SYSIO prom node on Ultra. */
                if(sparc_cpu_model == sun4u) {
                        extern void sbus_iommu_init(int prom_node, struct sbus_bus 
*sbus);
 
                        sbus_iommu_init(this_sbus, sbus);
                }
+#endif
 #ifndef __sparc_v9__                                             
-               else if (sparc_cpu_model == sun4d)
+               if (sparc_cpu_model == sun4d)
                        iounit_init(this_sbus, iommund, sbus);
 #endif                                            
                printk("sbus%d: ", num_sbus);

Thanks,
--Pete
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of the message to [EMAIL PROTECTED]

Reply via email to