From owner-cvs-src@FreeBSD.ORG Tue Jul 1 08:52:08 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 71C3137B404; Tue, 1 Jul 2003 08:52:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F3ED43FD7; Tue, 1 Jul 2003 08:52:07 -0700 (PDT) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h61Fq70U036091; Tue, 1 Jul 2003 08:52:07 -0700 (PDT) (envelope-from scottl@repoman.freebsd.org) Received: (from scottl@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h61Fq6bI036087; Tue, 1 Jul 2003 08:52:06 -0700 (PDT) Message-Id: <200307011552.h61Fq6bI036087@repoman.freebsd.org> From: Scott Long Date: Tue, 1 Jul 2003 08:52:06 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/alpha/alpha busdma_machdep.csrc/sys/alpha/include bus.h src/sys/alpha/isa isa_dma.c src/sys/amd64/amd64 busdma_machdep.c src/sys/amd64/include bus_dma.h src/sys/dev/aac aac.c aac_pci.c src/sys/dev/advansys adv_eisa.c adv_isa.c ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 15:52:09 -0000 scottl 2003/07/01 08:52:06 PDT FreeBSD src repository Modified files: sys/alpha/alpha busdma_machdep.c sys/alpha/include bus.h sys/alpha/isa isa_dma.c sys/amd64/amd64 busdma_machdep.c sys/amd64/include bus_dma.h sys/dev/aac aac.c aac_pci.c sys/dev/advansys adv_eisa.c adv_isa.c adv_pci.c advansys.c adw_pci.c adwcam.c sys/dev/aha aha.c aha_isa.c aha_mca.c sys/dev/ahb ahb.c sys/dev/aic7xxx ahc_eisa.c ahc_pci.c ahd_pci.c aic79xx_osm.h aic7xxx_osm.h sys/dev/amd amd.c sys/dev/amr amr_pci.c sys/dev/an if_an_pci.c sys/dev/ata ata-dma.c sys/dev/ath if_ath_pci.c sys/dev/buslogic bt.c bt_eisa.c bt_isa.c bt_mca.c bt_pci.c sys/dev/ciss ciss.c sys/dev/ct ct_isa.c sys/dev/dpt dpt_eisa.c dpt_isa.c dpt_pci.c dpt_scsi.c sys/dev/em if_em.c sys/dev/en midway.c sys/dev/fatm if_fatm.c sys/dev/firewire fwdma.c fwohci.c fwohci_pci.c sbp.c sys/dev/fxp if_fxp.c sys/dev/gem if_gem.c sys/dev/hatm if_hatm.c sys/dev/hifn hifn7751.c sys/dev/hme if_hme.c sys/dev/ida ida.c ida_eisa.c ida_pci.c sys/dev/iir iir.c iir_pci.c sys/dev/ips ips.c ips_commands.c ips_ioctl.c ips_pci.c sys/dev/isp isp_pci.c isp_sbus.c sys/dev/lnc if_lnc_cbus.c if_lnc_isa.c if_lnc_pci.c sys/dev/mlx mlx.c mlx_pci.c sys/dev/mly mly.c sys/dev/mpt mpt_pci.c sys/dev/sound/isa ad1816.c ess.c mss.c sb16.c sb8.c sys/dev/sound/pci als4000.c au88x0.c aureal.c cmi.c cs4281.c csapcm.c ds1.c emu10k1.c es137x.c fm801.c ich.c maestro.c maestro3.c solo.c t4dwave.c via8233.c via82c686.c vibes.c sys/dev/sound/usb uaudio_pcm.c sys/dev/sym sym_hipd.c sys/dev/trm trm.c sys/dev/twe twe_freebsd.c sys/dev/tx if_tx.c sys/dev/ubsec ubsec.c sys/dev/wds wd7000.c sys/dev/wi if_wi.c sys/i386/acpica acpi_wakeup.c sys/i386/i386 busdma_machdep.c sys/i386/include bus_dma.h sys/i4b/layer1/itjc i4b_itjc_pci.c sys/ia64/ia64 busdma_machdep.c sys/ia64/include bus.h sys/ia64/isa isa_dma.c sys/pci if_rl.c if_sis.c if_xl.c sys/powerpc/include bus.h sys/powerpc/powerpc busdma_machdep.c sys/sparc64/include bus.h sys/sparc64/pci psycho.c sys/sparc64/sbus sbus.c sys/sparc64/sparc64 bus_machdep.c Log: Mega busdma API commit. Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs Revision Changes Path 1.40 +55 -6 src/sys/alpha/alpha/busdma_machdep.c 1.22 +18 -1 src/sys/alpha/include/bus.h 1.9 +4 -0 src/sys/alpha/isa/isa_dma.c 1.47 +55 -6 src/sys/amd64/amd64/busdma_machdep.c 1.23 +17 -1 src/sys/amd64/include/bus_dma.h 1.70 +12 -9 src/sys/dev/aac/aac.c 1.35 +1 -0 src/sys/dev/aac/aac_pci.c 1.14 +8 -0 src/sys/dev/advansys/adv_eisa.c 1.23 +6 -0 src/sys/dev/advansys/adv_isa.c 1.19 +6 -0 src/sys/dev/advansys/adv_pci.c 1.26 +6 -0 src/sys/dev/advansys/advansys.c 1.16 +4 -0 src/sys/dev/advansys/adw_pci.c 1.17 +10 -0 src/sys/dev/advansys/adwcam.c 1.48 +10 -0 src/sys/dev/aha/aha.c 1.22 +4 -0 src/sys/dev/aha/aha_isa.c 1.7 +4 -0 src/sys/dev/aha/aha_mca.c 1.30 +6 -0 src/sys/dev/ahb/ahb.c 1.30 +3 -1 src/sys/dev/aic7xxx/ahc_eisa.c 1.54 +3 -1 src/sys/dev/aic7xxx/ahc_pci.c 1.9 +3 -1 src/sys/dev/aic7xxx/ahd_pci.c 1.11 +1 -1 src/sys/dev/aic7xxx/aic79xx_osm.h 1.23 +2 -2 src/sys/dev/aic7xxx/aic7xxx_osm.h 1.21 +7 -1 src/sys/dev/amd/amd.c 1.17 +6 -0 src/sys/dev/amr/amr_pci.c 1.21 +2 -0 src/sys/dev/an/if_an_pci.c 1.116 +8 -3 src/sys/dev/ata/ata-dma.c 1.2 +2 -0 src/sys/dev/ath/if_ath_pci.c 1.40 +10 -0 src/sys/dev/buslogic/bt.c 1.17 +4 -0 src/sys/dev/buslogic/bt_eisa.c 1.21 +6 -0 src/sys/dev/buslogic/bt_isa.c 1.7 +6 -0 src/sys/dev/buslogic/bt_mca.c 1.14 +4 -0 src/sys/dev/buslogic/bt_pci.c 1.24 +3 -0 src/sys/dev/ciss/ciss.c 1.8 +3 -2 src/sys/dev/ct/ct_isa.c 1.17 +5 -1 src/sys/dev/dpt/dpt_eisa.c 1.6 +2 -0 src/sys/dev/dpt/dpt_isa.c 1.26 +4 -0 src/sys/dev/dpt/dpt_pci.c 1.44 +6 -0 src/sys/dev/dpt/dpt_scsi.c 1.27 +6 -0 src/sys/dev/em/if_em.c 1.44 +4 -2 src/sys/dev/en/midway.c 1.2 +9 -10 src/sys/dev/fatm/if_fatm.c 1.2 +7 -2 src/sys/dev/firewire/fwdma.c 1.56 +3 -1 src/sys/dev/firewire/fwohci.c 1.27 +4 -1 src/sys/dev/firewire/fwohci_pci.c 1.55 +4 -1 src/sys/dev/firewire/sbp.c 1.185 +6 -4 src/sys/dev/fxp/if_fxp.c 1.17 +4 -4 src/sys/dev/gem/if_gem.c 1.3 +7 -4 src/sys/dev/hatm/if_hatm.c 1.18 +2 -0 src/sys/dev/hifn/hifn7751.c 1.14 +5 -4 src/sys/dev/hme/if_hme.c 1.28 +4 -2 src/sys/dev/ida/ida.c 1.12 +2 -0 src/sys/dev/ida/ida_eisa.c 1.23 +1 -1 src/sys/dev/ida/ida_pci.c 1.7 +3 -1 src/sys/dev/iir/iir.c 1.8 +4 -1 src/sys/dev/iir/iir_pci.c 1.4 +6 -0 src/sys/dev/ips/ips.c 1.4 +6 -0 src/sys/dev/ips/ips_commands.c 1.3 +2 -0 src/sys/dev/ips/ips_ioctl.c 1.3 +2 -0 src/sys/dev/ips/ips_pci.c 1.93 +4 -2 src/sys/dev/isp/isp_pci.c 1.8 +4 -2 src/sys/dev/isp/isp_sbus.c 1.4 +2 -0 src/sys/dev/lnc/if_lnc_cbus.c 1.15 +2 -0 src/sys/dev/lnc/if_lnc_isa.c 1.28 +2 -0 src/sys/dev/lnc/if_lnc_pci.c 1.39 +4 -0 src/sys/dev/mlx/mlx.c 1.15 +2 -0 src/sys/dev/mlx/mlx_pci.c 1.28 +10 -0 src/sys/dev/mly/mly.c 1.11 +4 -4 src/sys/dev/mpt/mpt_pci.c 1.28 +2 -1 src/sys/dev/sound/isa/ad1816.c 1.26 +2 -1 src/sys/dev/sound/isa/ess.c 1.85 +3 -2 src/sys/dev/sound/isa/mss.c 1.79 +3 -2 src/sys/dev/sound/isa/sb16.c 1.72 +3 -2 src/sys/dev/sound/isa/sb8.c 1.11 +2 -1 src/sys/dev/sound/pci/als4000.c 1.2 +1 -1 src/sys/dev/sound/pci/au88x0.c 1.23 +2 -1 src/sys/dev/sound/pci/aureal.c 1.21 +2 -0 src/sys/dev/sound/pci/cmi.c 1.15 +2 -1 src/sys/dev/sound/pci/cs4281.c 1.25 +2 -1 src/sys/dev/sound/pci/csapcm.c 1.33 +4 -2 src/sys/dev/sound/pci/ds1.c 1.38 +2 -1 src/sys/dev/sound/pci/emu10k1.c 1.44 +2 -1 src/sys/dev/sound/pci/es137x.c 1.18 +2 -1 src/sys/dev/sound/pci/fm801.c 1.29 +2 -1 src/sys/dev/sound/pci/ich.c 1.18 +2 -1 src/sys/dev/sound/pci/maestro.c 1.20 +2 -1 src/sys/dev/sound/pci/maestro3.c 1.26 +2 -1 src/sys/dev/sound/pci/solo.c 1.37 +2 -1 src/sys/dev/sound/pci/t4dwave.c 1.11 +4 -2 src/sys/dev/sound/pci/via8233.c 1.25 +4 -2 src/sys/dev/sound/pci/via82c686.c 1.13 +2 -1 src/sys/dev/sound/pci/vibes.c 1.3 +2 -0 src/sys/dev/sound/usb/uaudio_pcm.c 1.43 +6 -2 src/sys/dev/sym/sym_hipd.c 1.12 +22 -14 src/sys/dev/trm/trm.c 1.27 +4 -0 src/sys/dev/twe/twe_freebsd.c 1.73 +7 -4 src/sys/dev/tx/if_tx.c 1.24 +2 -0 src/sys/dev/ubsec/ubsec.c 1.7 +2 -0 src/sys/dev/wds/wd7000.c 1.146 +10 -0 src/sys/dev/wi/if_wi.c 1.21 +2 -1 src/sys/i386/acpica/acpi_wakeup.c 1.48 +55 -6 src/sys/i386/i386/busdma_machdep.c 1.22 +17 -1 src/sys/i386/include/bus_dma.h 1.10 +1 -0 src/sys/i4b/layer1/itjc/i4b_itjc_pci.c 1.26 +58 -11 src/sys/ia64/ia64/busdma_machdep.c 1.13 +17 -1 src/sys/ia64/include/bus.h 1.5 +4 -0 src/sys/ia64/isa/isa_dma.c 1.102 +3 -0 src/sys/pci/if_rl.c 1.77 +7 -0 src/sys/pci/if_sis.c 1.146 +6 -3 src/sys/pci/if_xl.c 1.11 +17 -1 src/sys/powerpc/include/bus.h 1.17 +51 -2 src/sys/powerpc/powerpc/busdma_machdep.c 1.29 +18 -1 src/sys/sparc64/include/bus.h 1.41 +1 -1 src/sys/sparc64/pci/psycho.c 1.22 +1 -1 src/sys/sparc64/sbus/sbus.c 1.32 +53 -2 src/sys/sparc64/sparc64/bus_machdep.c