drm2/intel_iic: stop using iicbus_set_nostopThe desired mode of transmitting messages is implemented by subclassingiicbb driver and overriding its iicbus_transfer method with an almostidentical c
drm2/intel_iic: stop using iicbus_set_nostopThe desired mode of transmitting messages is implemented by subclassingiicbb driver and overriding its iicbus_transfer method with an almostidentical copy that issues the stop condition only at the very end.iicbus_set_nostop is very broken and is set to be removed from the KPI.This is a direct commit as in head the drm drivers have been moved outof the tree.The same change has been committed to FreeBSDDesktop/drm-legacy.
show more ...
Reapply, with minor tweaks, r338025, from the original commit:Remove unused and easy to misuse PNP macro parameterInspired by r338025, just remove the element size parameter to theMODULE_PNP_INF
Reapply, with minor tweaks, r338025, from the original commit:Remove unused and easy to misuse PNP macro parameterInspired by r338025, just remove the element size parameter to theMODULE_PNP_INFO macro entirely. The 'table' parameter is now required tohave correct pointer (or array) type. Since all invocations of the macroalready had this property and the emitted PNP data continues to include theelement size, there is no functional change.Mostly done with the coccinelle 'spatch' tool: $ cat modpnpsize0.cocci @normaltables@ identifier b,c; expression a,d,e; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,d, -sizeof(d[0]), e); @singletons@ identifier b,c,d; expression a; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,&d, -sizeof(d), 1); $ rg -l MODULE_PNP_INFO -- sys | \ xargs spatch --in-place --sp-file modpnpsize0.cocci(Note that coccinelle invokes diff(1) via a PATH search and expects diff totolerate the -B flag, which BSD diff does not. So I had to link gdiff intoPATH as diff to use spatch.)Tinderbox'd (-DMAKE_JUST_KERNELS).Approved by: re (glen)
Convert x86 cache invalidation functions to ifuncs.This simplifies the runtime logic and reduces the number ofruntime-constant branches.Reviewed by: alc, markjSponsored by: The FreeBSD Foundati
Convert x86 cache invalidation functions to ifuncs.This simplifies the runtime logic and reduces the number ofruntime-constant branches.Reviewed by: alc, markjSponsored by: The FreeBSD FoundationApproved by: re (gjb)Differential revision: https://reviews.freebsd.org/D16736
Revert drm2 removal.Revert r338177, r338176, r338175, r338174, r338172After long consultations with re@, core members and mmacy, revertthese changes. Followup changes will be made to mark them a
Revert drm2 removal.Revert r338177, r338176, r338175, r338174, r338172After long consultations with re@, core members and mmacy, revertthese changes. Followup changes will be made to mark them asdeprecated and prent a message about where to find the up-to-datedriver. Followup commits will be made to make this clear in theinstaller. Followup commits to reduce POLA in ways we're stillexploring.It's anticipated that after the freeze, this will be removed in13-current (with the residual of the drm2 code copied tosys/arm/dev/drm2 for the TEGRA port's use w/o the intel orradeon drivers).Due to the impending freeze, there was no formal core vote forthis. I've been talking to different core members all day, as well asMatt Macey and Glen Barber. Nobody is completely happy, all aregrudgingly going along with this. Work is in progress to mitigatethe negative effects as much as possible.Requested by: re@ (gjb, rgrimes)
Remove legacy drm and drm2 from treeAs discussed on the MLs drm2 conflicts with the ports' version and thereis no upstream for most if not all of drm. Both have been merged in toa single port.U
Remove legacy drm and drm2 from treeAs discussed on the MLs drm2 conflicts with the ports' version and thereis no upstream for most if not all of drm. Both have been merged in toa single port.Users on powerpc, 32-bit hardware, or with GPUs predating Radeonand i915 will need to install the graphics/drm-legacy-kmod. Allother users should be able to use one of the LinuxKPI-based ports:graphics/drm-stable-kmod, graphics/drm-next-kmod, graphics/drm-devel-kmod.MFC: neverApproved by: core@
Back out r338035 until Warner is finished churning GSoC PNP patchesI was not aware Warner was making or planning to make forward progress inthis area and have since been informed of that.It's ea
Back out r338035 until Warner is finished churning GSoC PNP patchesI was not aware Warner was making or planning to make forward progress inthis area and have since been informed of that.It's easy to apply/reapply when churn dies down.
Remove unused and easy to misuse PNP macro parameterInspired by r338025, just remove the element size parameter to theMODULE_PNP_INFO macro entirely. The 'table' parameter is now required tohave
Remove unused and easy to misuse PNP macro parameterInspired by r338025, just remove the element size parameter to theMODULE_PNP_INFO macro entirely. The 'table' parameter is now required tohave correct pointer (or array) type. Since all invocations of the macroalready had this property and the emitted PNP data continues to include theelement size, there is no functional change.Mostly done with the coccinelle 'spatch' tool: $ cat modpnpsize0.cocci @normaltables@ identifier b,c; expression a,d,e; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,d, -sizeof(d[0]), e); @singletons@ identifier b,c,d; expression a; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,&d, -sizeof(d), 1); $ rg -l MODULE_PNP_INFO -- sys | \ xargs spatch --in-place --sp-file modpnpsize0.cocci(Note that coccinelle invokes diff(1) via a PATH search and expects diff totolerate the -B flag, which BSD diff does not. So I had to link gdiff intoPATH as diff to use spatch.)Tinderbox'd (-DMAKE_JUST_KERNELS).
Make timespecadd(3) and friends publicThe timespecadd(3) family of macros were imported from NetBSD back inr35029. However, they were initially guarded by #ifdef _KERNEL. In themeantime, we have
Make timespecadd(3) and friends publicThe timespecadd(3) family of macros were imported from NetBSD back inr35029. However, they were initially guarded by #ifdef _KERNEL. In themeantime, we have grown at least 28 syscalls that use timespecs in someway, leading many programs both inside and outside of the base system toredefine those macros. It's better just to make the definitions public.Our kernel currently defines two-argument versions of timespecadd andtimespecsub. NetBSD, OpenBSD, and FreeDesktop.org's libbsd, however, definethree-argument versions. Solaris also defines a three-argument version, butonly in its kernel. This revision changes our definition to match thecommon three-argument version.Bump _FreeBSD_version due to the breaking KPI change.Discussed with: cem, jilles, ian, bdeDifferential Revision: https://reviews.freebsd.org/D14725
Fix build of i915kms with base gccBase gcc fails to compile sys/dev/drm2/i915/intel_display.c for i386,with the following -Werror warnings:cc1: warnings being treated as errors/usr/src/sys/dev/
Fix build of i915kms with base gccBase gcc fails to compile sys/dev/drm2/i915/intel_display.c for i386,with the following -Werror warnings:cc1: warnings being treated as errors/usr/src/sys/dev/drm2/i915/intel_display.c:8884: warning:initialization from incompatible pointer typeThis is due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36432, whichincorrectly interprets the [] as a flexible array member.Because base gcc does not have a -W flag to suppress this particularwarning, it requires a rather ugly cast. To not influence any othercompiler, put it in a #if/#endif block.Reviewed by: kibMFC after: 3 daysDifferential Revision: https://reviews.freebsd.org/D15744
Move most of the contents of opt_compat.h to opt_global.h.opt_compat.h is mentioned in nearly 180 files. In-progress networkdriver compabibility improvements may add over 100 more so this isclose
Move most of the contents of opt_compat.h to opt_global.h.opt_compat.h is mentioned in nearly 180 files. In-progress networkdriver compabibility improvements may add over 100 more so this iscloser to "just about everywhere" than "only some files" per theguidance in sys/conf/options.Keep COMPAT_LINUX32 in opt_compat.h as it is confined to a subset ofsys/compat/linux/*.c. A fake _COMPAT_LINUX option ensure opt_compat.his created on all architectures.Move COMPAT_LINUXKPI to opt_dontuse.h as it is only used to control theset of compiled files.Reviewed by: kib, cem, jhb, jtlSponsored by: DARPA, AFRLDifferential Revision: https://reviews.freebsd.org/D14941
vm_wait() rework.Make vm_wait() take the vm_object argument which specifies the domainset to wait for the min condition pass. If there is no objectassociated with the wait, use curthread' policy
vm_wait() rework.Make vm_wait() take the vm_object argument which specifies the domainset to wait for the min condition pass. If there is no objectassociated with the wait, use curthread' policy domainset. Themechanics of the wait in vm_wait() and vm_wait_domain() is supplied bythe new helper vm_wait_doms(), which directly takes the bitmask of thedomains to wait for passing min condition.Eliminate pagedaemon_wait(). vm_domain_clear() handles the sameoperations.Eliminate VM_WAIT and VM_WAITPFAULT macros, the direct functions callsare enough.Eliminate several control state variables from vm_domain, unneededafter the vm_wait() conversion.Scetched and reviewed by: jeffTested by: phoSponsored by: The FreeBSD Foundation, Mellanox TechnologiesDifferential revision: https://reviews.freebsd.org/D14384
These drivers have a sentinel at the end of the device list. Excludeit.
Use '#' rather than some made up name for fields we want to ignore.
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - error
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.
Unrevert r324059With a colon and bogus name ("#") added to appease the simplistic parserused in kldxref.Sponsored by: Dell EMC Isilon
Remove PNP metadata from drm2 drivers until kldxref problem is resolvedReported by: npSponsored by: Dell EMC Isilon
Add PNP metadata to more driversGPUs: radeonkms, i915kmsNICs: if_em, if_igb, if_bnxtThis metadata isn't used yet, but it will be handy to have later toimplement automatic module loading.Revie
Add PNP metadata to more driversGPUs: radeonkms, i915kmsNICs: if_em, if_igb, if_bnxtThis metadata isn't used yet, but it will be handy to have later toimplement automatic module loading.Reviewed by: imp, mmacySponsored by: Dell EMC IsilonDifferential Revision: https://reviews.freebsd.org/D12488
Simplify i915_gem_wire_page() and avoid unneeded page-busying.Reviewed by: alc, kibMFC after: 1 week
Modernize calls to vm_page_unwire(). As of r288122, vm_page_unwire()accepts PQ_NONE as the specified queue and returns a Boolean indicatingwhether the page's wire count transitioned to zero. Use
Modernize calls to vm_page_unwire(). As of r288122, vm_page_unwire()accepts PQ_NONE as the specified queue and returns a Boolean indicatingwhether the page's wire count transitioned to zero. Use these featuresin dev/drm2.Reviewed by: kib, markjMFC after: 1 week
drm2: Add some missing PCIIDs for some Haswell systemsSubmitted by: Jia-Shiun Li <jiashiun at gmail.com>
Fix bug in r309712, do not leak gem object pin count in case of erroror retry.Reported and tested by: Michael Butler <[email protected]>Sponsored by: The FreeBSD FoundationMFC after: 16
Fix bug in r309712, do not leak gem object pin count in case of erroror retry.Reported and tested by: Michael Butler <[email protected]>Sponsored by: The FreeBSD FoundationMFC after: 16 days
Use the populate() driver paging method for i915 driver.In particular, the fault access type is accounted for when theaperture page is moved to GTT domain. On the other hand, the currentpager st
Use the populate() driver paging method for i915 driver.In particular, the fault access type is accounted for when theaperture page is moved to GTT domain. On the other hand, the currentpager structure is left intact, most important, only one page isinstantiated per populate call.Reviewed by: alcSponsored by: The FreeBSD FoundationMFC after: 3 weeks
Fix a race in vm_page_busy_sleep(9).Suppose that we have an exclusively busy page, and a thread which canaccept shared-busy page. In this case, typical code waiting for thepage xbusy state to pa
Fix a race in vm_page_busy_sleep(9).Suppose that we have an exclusively busy page, and a thread which canaccept shared-busy page. In this case, typical code waiting for thepage xbusy state to pass isagain: VM_OBJECT_WLOCK(object); ... if (vm_page_xbusied(m)) { vm_page_lock(m); VM_OBJECT_WUNLOCK(object); <---1 vm_page_busy_sleep(p, "vmopax"); goto again; }Suppose that the xbusy state owner locked the object, unbusied thepage and unlocked the object after we are at the line [1], but before weexecuted the load of the busy_lock word in vm_page_busy_sleep(). If ithappens that there is still no waiters recorded for the busy state,the xbusy owner did not acquired the page lock, so it proceeded.More, suppose that some other thread happen to share-busy the pageafter xbusy state was relinquished but before the m->busy_lock is readin vm_page_busy_sleep(). Again, that thread only needs vm_object lockto proceed. Then, vm_page_busy_sleep() reads busy_lock value equal tothe VPB_SHARERS_WORD(1).In this case, all tests in vm_page_busy_sleep(9) pass and we are goingto sleep, despite the page being share-busied.Update check for m->busy_lock == VPB_UNBUSIED in vm_page_busy_sleep(9)to also accept shared-busy state if we only wait for the xbusy state topass.Merge sequential if()s with the same 'then' clause invm_page_busy_sleep().Note that the current code does not share-busy pages from parallelthreads, the only way to have more that one sbusy owner is right nowis to recurse.Reported and tested by: pho (previous version)Reviewed by: alc, markjSponsored by: The FreeBSD FoundationMFC after: 1 weekDifferential revision: https://reviews.freebsd.org/D8196
Remove redundant declarations for intel_fbc_enabled(..) andi915_gem_dump_object(..) to fix -Wredundant-decls warningMFC after: 1 weekPR: 209924Reported by: Mark Millard <[email protected]>Te
Remove redundant declarations for intel_fbc_enabled(..) andi915_gem_dump_object(..) to fix -Wredundant-decls warningMFC after: 1 weekPR: 209924Reported by: Mark Millard <[email protected]>Tested with: devel/amd64-gcc (5.3.0)Sponsored by: EMC / Isilon Storage Division
Don't repeat the the word 'the'(one manual change to fix grammar)Confirmed With: dbApproved by: secteam (not really, but this is a comment typo fix)
12345