>Number:         152378
>Category:       kern
>Synopsis:       [sound][patch] Update snd_envy24ht to be MPSAFE and use 32-bit 
>DMA addresses
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 18 21:00:18 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Jason Harmening
>Release:        8.1-STABLE
>Organization:
>Environment:
FreeBSD riviera.austin.rr.com 8.1-STABLE FreeBSD 8.1-STABLE #0: Sun Nov 14 
12:01:19 CST 2010     [email protected]:/usr/obj/usr/src/sys/CUSTOM  
amd64
>Description:
--Allow DMA addresses anywhere in the lower 4GB--Envy24HT has a 32-bit DMA 
engine, not 28-bit like Envy24
--Mark interrupt handler as MPSAFE, seems to be correctly synchronized
Testing done:
   daily usage of envy24ht-based sound card for ~1yr on machine w/ 6GB RAM
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- envy24ht.h.orig     2007-05-27 14:58:39.000000000 -0500
+++ envy24ht.h  2009-05-06 10:49:56.000000000 -0500
@@ -176,8 +176,7 @@
 #define ENVY24HT_VOL_MIN   96 /* -144db(negate) */
 #define ENVY24HT_VOL_MUTE 127 /* mute */
 
-#define BUS_SPACE_MAXADDR_ENVY24 0x0fffffff /* Address space beyond 256MB is 
not
- supported */
+#define BUS_SPACE_MAXADDR_ENVY24 0xffffffff
 #define BUS_SPACE_MAXSIZE_ENVY24 0x3fffc /* 64k x 4byte(1dword) */
 
 #define ENVY24HT_CCS_GPIO_HDATA 0x1E
--- envy24ht.c  2009-05-07 09:09:31.000000000 -0500
+++ envy24ht.c  2009-05-07 09:22:38.000000000 -0500
@@ -2421,7 +2421,7 @@
        sc->irq = bus_alloc_resource(sc->dev, SYS_RES_IRQ, &sc->irqid,
                                 0, ~0, 1, RF_ACTIVE | RF_SHAREABLE);
        if (!sc->irq ||
-           snd_setup_intr(sc->dev, sc->irq, 0, envy24ht_intr, sc, &sc->ih)) {
+           snd_setup_intr(sc->dev, sc->irq, INTR_MPSAFE, envy24ht_intr, sc, 
&sc->ih)) {
                device_printf(sc->dev, "unable to map interrupt\n");
                return ENXIO;
        }
@@ -2431,7 +2431,7 @@
            /*alignment*/4,
            /*boundary*/0,
            /*lowaddr*/BUS_SPACE_MAXADDR_ENVY24,
-           /*highaddr*/BUS_SPACE_MAXADDR_ENVY24,
+           /*highaddr*/BUS_SPACE_MAXADDR,
            /*filter*/NULL, /*filterarg*/NULL,
            /*maxsize*/BUS_SPACE_MAXSIZE_ENVY24,
            /*nsegments*/1, /*maxsegsz*/0x3ffff,


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to