Home | History | Annotate | Download | only in bsd-core
History log of /src/sys/external/bsd/drm/dist/bsd-core/mga_drv.c
RevisionDateAuthorComments
 1.9  28-Aug-2011  jmcneill add mach64drm, mgadrm, r128drm, savagedrm, sisdrm, and tdfxdrm modules
 1.8  04-Apr-2011  dyoung Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

For the most part, these changes add a 'const' where there was no
'const' before, however, some drivers and MD code used to modify
pci_attach_args. Now those drivers either copy their pci_attach_args
and modify the copy, or refrain from modifying pci_attach_args:

Xen: according to Manuel Bouyer, writing to pci_attach_args in
pci_intr_map() was a leftover from Xen 2. Probably a bug. I
stopped writing it. I have not tested this change.

siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args.
Probably a bug. I use a temporary variable. I have not tested this
change.

slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args.
Probably a bug. Use a local pci_attach_args. I have not tested
this change.

viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the
caller's pci_attach_args. Probably a bug. Make a local copy of the
caller's pci_attach_args and modify the copy. I have not tested
this change.

While I'm here, make pci_mapreg_submap() static.

With these changes in place, I have tested the compilation of these
kernels:

alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-eb NSLU2
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX
HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200
KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR
TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sgimips GENERIC32_IP2x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC

As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels
with or without my patches in place:

### evbmips-el GDIUM

nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop

### evbarm-el MPCSA_GENERIC
src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'

### ia64 GENERIC

/tmp/genassym.28085/assym.c: In function 'f111':
/tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb'
/tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.7  06-Dec-2009  dyoung branches: 1.7.4; 1.7.6;
Delete the do-nothing device-activation hook, drm_activate().
 1.6  24-Jun-2009  mrg don't include pcidevs_data.h.
 1.5  23-Jun-2009  mrg add a bunch of fixes mostly from rafal@.
this fixes the build for all the other drm modules.

use pci_find_device() to kill the one XXX rafal left.
 1.4  19-Jun-2009  mrg merge the changes from drm 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c
with our changes and the work recently done by Arto Huusko
<arto.huusko@pp2.inet.fi> and FUKAUMI Naoki <fun@naobsd.org>.

it includes all the changes arto provided from both mesa-drm and
the r6xx-r7xx-support branch. it does not yet include code to
handle the (deleted) drm_pciids.h file, but i'll probably just
check in a generated one for now.

i have not yet merged the changes from outside this dir.


from arto's messages to tech-x11:

The important change that was needed is that drm_scatter.c was
fixed to return pointer to all allocated pages, not just the
beginning of the allocated segments.

Other changes:

- drm_scatter maps COHERENT memory
- drm_drawable: drawable handle allocation is done
inside lock
- drm_memory: when mapping "agp" memory, store offset
of mapped area, so that new requests to same offset
return the same area instead of trying to remap
and fail
- drm_vm: use bus_space_mmap for frame buffer and registers

- r600_cp.c: ioremapfree allocated gart range
- radeon_cp.c: use mtsleep
- some memset calls I had added had their args swapped,
and no memory was cleared
 1.3  19-Jul-2008  mrg branches: 1.3.2; 1.3.4; 1.3.6; 1.3.10; 1.3.14; 1.3.18; 1.3.20;
XXX: always return DRM_MIGHT_BE_AGP for now -- need to implement the
XXX: releant bus controller grovelling for netbsd pci.
 1.2  19-Jul-2008  mrg pull over many many changes from netbsd-current sys/dev/{,pci/}drm/.
make the mesa-drm style Makefile's actually run on netbsd (but i doubt
they work yet.)

this still has a lot to go. it doesn't work yet, but it's getting
close.

most of this is from other authors than myself: yorrick, drochner,
jared, bjs, all contributed a lot more than i have so far, but there's
a bunch of clean up from myself in here as well.
 1.1  19-Jul-2008  mrg branches: 1.1.1;
Initial revision
 1.1.1.2  19-Jun-2009  mrg import mesa-drm git from version 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c.
 1.1.1.1  19-Jul-2008  mrg import mesa-drm git from version 5d27fd94afaaf434c3a92af0075420b550055bfb,
which is approximately june 25th or so.
 1.3.20.1  21-Apr-2010  matt sync to netbsd-5
 1.3.18.4  11-Mar-2010  yamt sync with head
 1.3.18.3  18-Jul-2009  yamt sync with head.
 1.3.18.2  04-May-2009  yamt sync with head.
 1.3.18.1  19-Jul-2008  yamt file mga_drv.c was added on branch yamt-nfs-mp on 2009-05-04 08:13:29 +0000
 1.3.14.1  23-Jul-2009  jym Sync with HEAD.
 1.3.10.3  25-Jun-2009  snj Pull up following revision(s) (requested by mrg in ticket #832):
sys/external/bsd/drm/dist/bsd-core/mga_drv.c: revision 1.6
don't include pcidevs_data.h.
 1.3.10.2  24-Jun-2009  snj Pull up following revision(s) (requested by mrg in ticket #830):
sys/external/bsd/drm/dist/bsd-core/mach64_drv.c: revision 1.4
sys/external/bsd/drm/dist/bsd-core/mga_drv.c: revision 1.5
sys/external/bsd/drm/dist/bsd-core/r128_drv.c: revision 1.4
sys/external/bsd/drm/dist/bsd-core/savage_drv.c: revision 1.4
sys/external/bsd/drm/dist/bsd-core/sis_drv.c: revision 1.4
sys/external/bsd/drm/dist/bsd-core/tdfx_drv.c: revision 1.4
sys/external/bsd/drm/dist/shared-core/mach64_dma.c: revision 1.2
sys/external/bsd/drm/dist/shared-core/mach64_drv.h: revision 1.4
sys/external/bsd/drm/dist/shared-core/savage_bci.c: revision 1.4
sys/external/bsd/drm/dist/shared-core/savage_state.c: revision 1.4
sys/external/bsd/drm/dist/shared-core/sis_ds.c: revision 1.4
add a bunch of fixes mostly from rafal@.
this fixes the build for all the other drm modules.
use pci_find_device() to kill the one XXX rafal left.
 1.3.10.1  20-Jun-2009  snj Apply patch (requested by mrg in ticket #823):
import mesa-drm git from version 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c.
--
merge the changes from drm 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c
with our changes and the work recently done by Arto Huusko and FUKAUMI
Naoki.

it includes all the changes arto provided from both mesa-drm and
the r6xx-r7xx-support branch. it does not yet include code to
handle the (deleted) drm_pciids.h file, but i'll probably just
check in a generated one for now.

i have not yet merged the changes from outside this dir.

from arto's messages to tech-x11:

The important change that was needed is that drm_scatter.c was
fixed to return pointer to all allocated pages, not just the
beginning of the allocated segments.

Other changes:

- drm_scatter maps COHERENT memory
- drm_drawable: drawable handle allocation is done
inside lock
- drm_memory: when mapping "agp" memory, store offset
of mapped area, so that new requests to same offset
return the same area instead of trying to remap
and fail
- drm_vm: use bus_space_mmap for frame buffer and registers

- r600_cp.c: ioremapfree allocated gart range
- radeon_cp.c: use mtsleep
- some memset calls I had added had their args swapped,
and no memory was cleared
--
add a freshly generated drm_pciids.h
--
some minor clean up:
- reduce diffs to mesa-drm where possible
- fix various formatting issues
- netbsd uses major 180 for drm (XXX)
 1.3.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.3.6.1  19-Jul-2008  mjf file mga_drv.c was added on branch mjf-devfs2 on 2008-09-28 10:40:37 +0000
 1.3.4.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.3.4.1  19-Jul-2008  wrstuden file mga_drv.c was added on branch wrstuden-revivesa on 2008-09-18 04:36:48 +0000
 1.3.2.2  28-Jul-2008  simonb Sync with head.
 1.3.2.1  19-Jul-2008  simonb file mga_drv.c was added on branch simonb-wapbl on 2008-07-28 14:37:29 +0000
 1.7.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.7.4.1  21-Apr-2011  rmind sync with head

RSS XML Feed