Commit Graph

484 Commits

Author SHA1 Message Date
alnsn
61fe521674 Add $NetBSD$. 2014-06-17 19:33:20 +00:00
alnsn
176098a445 Don't redefine SLJIT_HALT_PROCESS(). 2014-06-17 17:30:48 +00:00
alnsn
c3ff03ecd4 New sljit version is r257. 2014-06-17 16:49:11 +00:00
alnsn
60a3e989c5 Resolve conflicts. 2014-06-17 16:48:24 +00:00
alnsn
e5292e6b87 Import sljit 0.91 (svn r257).
The changes since the last import are:

r257: Add missing ADJUST_LOCAL_OFFSET for ARM64.
r256: Move incorrectly placed array definitions.
r255: More work on testing environment.
r254: Refactor test default output.
r253: Pass entry adress in r12 on PPC-LE.
r252: Optimize calls on MIPS-64.
r251: Several minor fixes.
r250: Add missing SLJIT_IS_FPU_AVAILABLE checks and reorder U and S flags.
r249: Optimize jumps on ARM-64.
r248: Optimize jumps on PowerPC.
r247: MIPS64 support is mostly finished.
r246: MIPS arithmetic.
r245: Start working on MIPS64.
r244: Uniform names for TILE-Gx.
r243: Uniform the names of ARM compilers.
r242: Change ll to l on x86 and rename some instructions on ARM-64.
r241: Improved memory access in PPC and reordering the parameter type flags.
r240: Prepare for more registers on ARM-Thumb2 and renaming TMP_REGISTER to TMP_REG1 on x86.
r239: Prepare for more registers on ARMv5.
r238: Prepare for more registers on TILE-Gx.
r237: Prepare for more registers on MIPS and SPARC.
r236: Prepare for more registers on PPC.
r235: Prepare for more registers on x86.
r234: Most tests are pass on ARM-64 now.
r233: Around 25 test cases are now pass on ARM-64.
r232: More progress on ARM-64 and Thumb2 refactoring.
r231: Some progress an ARM-64 and ARM-T2 refactoring.
r230: Thumb2 code refactoring.
r229: Start working on ARM-64.
r228: Little endian PowerPC systems are supported now by the JIT compiler.
r227: TileGX architecture is now supported. Patch made by Jiong Wang.
r226: Cache flush for android. Patch by  Giuseppe D'Angelo.
r225: Add support for forcibly freeing unused executable memory. Inspired by Carsten Klein.
r224: Few typo fixes.
r223: Reorder madvise and posix_madvise.
r222: The missing sljit_get_float_register_index function is added.
r221: Remove an invalid shift on ARM.
r220: JIT compiler now supports 32 bit Macs thanks to Lawrence Velazquez.
r219: Better code size statistics.
r218: Improvements for x86 and LIR dump.
r217: ICC and SunPro C fixes
r216: A new file for tracking internal changes are added.
r215: Less GNU dependnet Makefile and Intel style assemby for x86-64 systems.
r214: Switch from stdcall to cdecl in x86-32.
r213: Upstreaming minor fixes. Thanks for Daniel Richard G.
r212: Documentation update and a fix for a locking issue.
r211: Renaming temporaries to scratches to match the new name of the register. Does not affect compatibility.
r210: Improving assertions.
r209: Port sljit to SunPro C compiler. Patch by Daniel Richard G.
r208: SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
r207: Removing unused checks.
r206: Optimizations for arm.
r205: Some optimizations on powerpc, mips and sparc.
r204: Rename sljit_emit_cond_value to sljit_emit_op_flags.
r203: Small x86 optimization.
r202: Finish cond_value with AND and INT_OP.
r201: More x86 fixes and improvements.
r200: Rename buf and code to inst.
r199: Replacing constants with instruction names in x86. Greatly improves maintainability.
r198: Only xmm0-xmm5 is volatile on Win64, so xmm6 must be saved.
r197: PowerPC shift right always modifies the carry flag. We may need to restore it.
r196: Rename SLJIT_F* functions to SLJIT_*D
r195: SLJIT_INT_OP works in the same way as SLJIT_SINGLE_OP: the input register arguments must be generated by the output of another instruction with SLJIT_INT_OP flag
r194: Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h to sljit_sh, and sljit_b to sljit_sb.
r193: ARM single precision support.
r192: Single precision support added for ppc, mips and sparc.
r191: Add single precision support. Only works on x86 now.
r190: Relace C types with sljit types. No functionality change.
r189: Change 0 to NULL for mmap.
r188: Support environments where MAP_ANON is not available.
r187: Adding type descriptors for pointers and doubles (preparing for x32 ABIs and single precision support).
2014-06-17 15:37:40 +00:00
christos
16bf2a1c98 Darren Reed: #550 filter rule list corrupted with inserted rules 2014-06-16 12:38:32 +00:00
riastradh
16bef292a1 Destroy, don't leak, events when done with them. 2014-06-13 00:47:08 +00:00
riastradh
93c1cf0ddc Mark another place in i915drmkms where paddr constraints are set. 2014-06-12 19:11:51 +00:00
riastradh
84255b79fd Constrain addresses of pages backing i915 GEM objects.
Use the new uao_set_pgfl and x86_select_freelist for the purpose.
2014-06-12 19:10:33 +00:00
riastradh
7df9e83c86 Check bounds in agp_i810_borrow.
Out of paranoia, do a bus_space_subregion in case the old drm code
tries sizes that the agp_i810 code doesn't agree with.
2014-06-12 15:05:29 +00:00
rmind
60d350cf6d - Implement pktqueue interface for lockless IP input queue.
- Replace ipintrq and ip6intrq with the pktqueue mechanism.
- Eliminate kernel-lock from ipintr() and ip6intr().
- Some preparation work to push softnet_lock out of ipintr().

Discussed on tech-net.
2014-06-05 23:48:16 +00:00
riastradh
9f975af5fa Mark variables __diagused. 2014-06-04 13:52:52 +00:00
riastradh
a8f2a2efec Rework gen6 aperture/gtt size detection. Mark variables __diagused. 2014-06-03 19:49:37 +00:00
riastradh
c910302de2 Mark variables __diagused. 2014-06-03 19:40:37 +00:00
riastradh
db479d6e55 Ensure we call uvmfault_unlockall on every exit from i915_gem_fault. 2014-06-03 15:06:36 +00:00
riastradh
a21c03fe5f Fix atomic_dec_and_test in <linux/atomic.h>: test 0, not -1. 2014-06-03 14:59:30 +00:00
rmind
fa1e674c1d Include cdefs.h earlier for NetBSD. 2014-05-30 02:16:17 +00:00
riastradh
78c2b3ab22 Work around broken GTT size detection in agp_i810 code.
This will do until I work out the twisty maze of registers, all
different, to reliably determine the size of the GTT (and hence the
GPU's virtual address space) separately from the size of the AGP
aperture.
2014-05-29 22:05:24 +00:00
riastradh
5cce18873b Explain the fields of struct intel_gtt for future reference. 2014-05-28 16:13:02 +00:00
riastradh
db1909e63d Fix bogus GTT total size calculation. Omit gtt_bsh for `agp' gtt. 2014-05-28 15:44:02 +00:00
riastradh
16cc43868d Fix GTT PTE flag bits. 2014-05-23 23:02:47 +00:00
riastradh
0db82c270c Implement intel_gtt_chipset_flush correctly. 2014-05-23 22:59:23 +00:00
riastradh
8f9e898dc6 Unifdef the dmi hacks here too, now that we have dmi_check_system. 2014-05-21 15:40:52 +00:00
riastradh
a3a8fde1c3 Unifdef the dmi hacks here, now that we have dmi_check_system. 2014-05-21 14:03:42 +00:00
riastradh
8929297ea6 Miscellaneous little fixes for harmless issues:
- Fix sense of subtraction in i915_gem_restore_gtt_mappings (not
  currently used, so this was harmless).

- Program gtt->gtt_scratch_map->dm_segs[0].ds_addr rather than
  gtt->gtt_scratch_seg.ds_addr into the GTT for consistency with the
  bus_dma API.  These are currently the same, but if we ever start
  using x86 iommu perhaps that may change.

- Kassert that the scratch PTE decodes into the scratch address.
2014-05-20 15:50:11 +00:00
riastradh
0c6fc07d39 Oops -- drop the GEM object reference on error too. 2014-05-20 15:15:04 +00:00
riastradh
24c81ef173 Don't map the GEM uvm_aobj copy-on-write -- what was I thinking?
Do transfer the GEM object reference to the uvm_aobj reference --
these are not the same thing.  (There's another uvm object whose
references are the same thing as the GEM object references, but
that's not the uao.)

With these changes, it looks like the GPU is no longer trying to draw
graphics all over kernel data structures.  Wish I had that month of
debugging back!
2014-05-20 15:12:41 +00:00
joerg
30308f423a Import compiler-rt r209132. Revert use of TI mode on 32bit PPC. 2014-05-19 16:11:28 +00:00
riastradh
7e88065a92 Remove (bad) debugging message that crept into i915_gem_gtt_init. 2014-05-19 14:57:37 +00:00
riastradh
14d191068e Fix page/byte sense of AGP GTT parameter calculations. 2014-05-19 14:55:46 +00:00
riastradh
31ed01fae9 Use correct value for gtt->gtt_bsh in agp case (unused, so harmless). 2014-05-19 14:44:36 +00:00
riastradh
5acb9c2dd2 Use the scratch page, not zero, to clear ggtt entries for gen<6. 2014-05-19 14:39:33 +00:00
joerg
d49dd56f86 Clean up a few more directories. 2014-05-16 00:08:17 +00:00
joerg
61f2f2562d Import compiler-rt r208593. Fix a build bug in __clear_cache by not
explicitly forcing the ABI. Add first part of IEEE 754 quad support.
2014-05-16 00:04:17 +00:00
riastradh
dba14edfb9 Fix sense of test in last commit, noted by Robert Swindells. 2014-05-14 16:25:19 +00:00
riastradh
6b598eeda2 Tweak i915 gen6_gtt_init calculations for clarity. 2014-05-14 15:58:24 +00:00
riastradh
d325027b1d Reject 32-bit paddrs on 965.
XXX Doing the check here is wrong; it serves only to report an
earlier problem, which is that there's on way to express constraints
on paddrs to uvm_obj_wirepages.  bus_dmamem_alloc can do this, but it
gives us pages out of thin air, not pages backing a uvm object.  I
was hoping this wouldn't manifest as a real problem, but evidently it
does.
2014-05-14 13:59:19 +00:00
riastradh
873dbefa1a Fix >40-bit paddr error branch in i915_gem_object_get_pages_gtt. 2014-05-14 13:53:41 +00:00
riastradh
d2e4193eff Fix error branch in drm_limit_dma_space. 2014-05-14 04:38:49 +00:00
bouyer
3910868948 Make sure *(if_output)() is called with KERNEL_LOCK held.
Add some KASSERT for this.
See http://mail-index.netbsd.org/tech-net/2014/04/09/msg004511.html
for details.
2014-05-13 19:36:16 +00:00
christos
6f8fc9d1fc make this compile. 2014-05-09 23:26:36 +00:00
skrll
f90eccea8d Use a spinlock for completions. Makes vchiq pass LOCKDEBUG where other
spinlocks where held when trying to use the completion API.
2014-05-05 15:59:11 +00:00
riastradh
4c9193e998 Cast from uint32_t to bus_addr_t earlier, since it may exceed 32 bits. 2014-05-02 14:36:10 +00:00
riastradh
c5a81b561e Tweak some DRM GEM page indexing crap.
- Fix order of subtraction in drm_mmap_paddr_locked.
- Address GEM objects' pages from 0, not from the mmap cookie.
- Check page alignment earlier in mmap code paths.
- Sprinkle kasserts throughout.

Still doesn't fix the garbage that is sometimes being scribbled all
over kernel memory!
2014-05-01 15:19:16 +00:00
riastradh
19062f226a Clear only the requested range in gen6_ggtt_clear_range.
Sprinkle kasserts throughout i915_gem_gtt.c.
2014-05-01 14:37:36 +00:00
joerg
e7ed6f13f6 First argument of vchiq_log_info is the log level, not a boolean. 2014-05-01 03:07:50 +00:00
riastradh
a5c71a7d77 Convert pending_flip_lock to spin lock -- interrupt handlers take it. 2014-04-26 20:26:26 +00:00
riastradh
ba02a7d79e Replace cpu_relax() by DELAY(1) or DELAY(1000) to wait us/ms. 2014-04-26 14:55:43 +00:00
riastradh
1e41db3906 Implement Linux dmi_check_system API.
Use it to get a Thinkpad quirk for i915 graphics.

Patch from nonoka@, PR 48708.
2014-04-25 23:54:59 +00:00
riastradh
8e210af663 Fix hot-plug with small patch from upstream before a full update. 2014-04-25 19:07:55 +00:00