The NetBSD Project

CVS log for src/sys/external/bsd/drm2/linux/linux_pci.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / external / bsd / drm2 / linux

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.27 / (download) - annotate - [select for diffs], Sat Sep 30 10:46:46 2023 UTC (4 months, 4 weeks ago) by mrg
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.26: +13 -2 lines
Diff to previous 1.26 (colored)

drm: enable almost all PCIe functionality

linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining
missing PCIe backends, but only enabled them for some amdgpu portions.

this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie",
and "XXX pcie speed".  for most of it, simply removing #ifndefs __NetBSD__
to enable compliation was required, once the new "bus->max_bus_speed"
member was added to struct pci_bus.  add an "always fails" backend for
pci_enable_atomic_ops_to_root() which seems to only be necessary
for virtual GPU functionality (and could be implemented if needed.)

tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and
nvidia 750 and 1030 [nouveau].


this still does not quite work on nvidia cards.  there are two problems
that remain:

- the call to set the link speed is skipped because the speed is set
  to the default value of "-1".  nvkm_pcie_set_link() will actually
  determine the right value for this and for some cards, calling this
  function if the current speed is -1 helps set the link speed.  it
  may be that on linux other paths we don't have enabled properly
  would set this (there's one via debugfs, and a jetson specific one,
  though perhaps setting either AC or DC speed values as boot options
  (after hooking up these for netbsd) would currently work.

- worse, cards newer than kepler - geforce 900, 1000, and newer, are
  all lacking the backing support to set pcie link speed.  the GT 1030
  card i have been testing with remains at pcie 1.0.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Sep 4 21:31:58 2023 UTC (5 months, 3 weeks ago) by mrg
Branch: MAIN
Changes since 1.25: +8 -5 lines
Diff to previous 1.25 (colored)

convert a KASSERT() into an if () panic() sequence to appease GCC 12.

OK riastradh@.

Revision 1.25 / (download) - annotate - [select for diffs], Mon Oct 17 03:05:32 2022 UTC (16 months, 1 week ago) by mrg
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Changes since 1.24: +200 -2 lines
Diff to previous 1.24 (colored)

add pcie capability and read request size linux compat, some pci root support

implement support for:
- pcie_capability_read_dword()
- pcie_capability_read_word()
- pcie_capability_write_dword()
- pcie_capability_write_word()
- pcie_get_readrq()
- pcie_set_readrq()

implement the "struct pci_dev" bus->self member by creating a minimal fake
"struct pci_dev" for the pci bus itself.  this is kind of gross.  it checks
that the current device's parent is a netbsd "pci" device, and that it has
a (grand) parent "ppb" device, and then fills in the fake device based upon
the pci and ppb devices.

add some PCIE_LCSR2_TGT_LSPEED encodings, and map them to linux names.
map several other PCIE_LCSR and PCIE_LCAP names.

uncomment several pcie code segments in radeon and amdgpu.  (not sure that
we can test the amdgpu_si.c change, as we use the radeon version and the
amdgpu version hangs on the one machine i have.)

tested on amdgpu (RX550) and radeon (7750 & 3650).


ok @riastradh

Revision 1.24 / (download) - annotate - [select for diffs], Tue Sep 20 23:01:42 2022 UTC (17 months, 1 week ago) by mrg
Branch: MAIN
CVS Tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.23: +141 -4 lines
Diff to previous 1.23 (colored)

fill out more of the linux pci API compat

- implement pcie_get_speed_cap(), pcie_bandwidth_available(), and
  pci_is_root_bus().
- expand "enum pci_bus_speed" to add PCIe 5.x and 6.x speeds.
- add "enum pcie_link_width".
- add defines for PCIE_LCSR_LINKSPEED (PCIe generation) and PCIE_LCSR_NLW
  (negotiated lane width) to pcireg.h
- enable amdgpu_device_get_pcie_info() code now it works.

ok riastradh@

Revision 1.23 / (download) - annotate - [select for diffs], Wed Jul 20 01:20:20 2022 UTC (19 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

drm: Use real pci segment number, not pciN device unit.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jul 19 22:24:34 2022 UTC (19 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.21: +2 -3 lines
Diff to previous 1.21 (colored)

drm: Nix drm_agp_borrow.

This horrible kludge dates from before I understood the relation of
genfb_pci and pci drm drivers in the old and new worlds of drm.

The only user of it, in i915, was changed to use agp_i810_borrow
directly in the last drm update, so this hack can die.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Feb 27 14:19:20 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.20: +2 -6 lines
Diff to previous 1.20 (colored)

drm: Deconditionalize pci_get_segment.

Revision 1.20 / (download) - annotate - [select for diffs], Sun Dec 19 12:00:16 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.19: +10 -2 lines
Diff to previous 1.19 (colored)

linux: pci_name

Revision 1.19 / (download) - annotate - [select for diffs], Sun Dec 19 11:38:04 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.18: +10 -2 lines
Diff to previous 1.18 (colored)

i915: another whack at it

Revision 1.18 / (download) - annotate - [select for diffs], Sun Dec 19 11:09:48 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.17: +2 -8 lines
Diff to previous 1.17 (colored)

drm: Remove local diffs for drm_pci_set_busid.

Instead, move it to its own file that can be safely used without
bringing in a link/run-time dependency on pci.

Revision 1.17 / (download) - annotate - [select for diffs], Sun Dec 19 10:59:48 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.16: +3 -2 lines
Diff to previous 1.16 (colored)

Include acpica.h for NACPICA.

Revision 1.16 / (download) - annotate - [select for diffs], Sun Dec 19 10:57:42 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.15: +7 -2 lines
Diff to previous 1.15 (colored)

Move acpi includes to linux_pci.c to avoid pollution.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Dec 19 09:49:39 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.14: +8 -2 lines
Diff to previous 1.14 (colored)

Stub dev_is_pci


Author: Maya Rashish <maya@NetBSD.org>

Revision 1.14 / (download) - annotate - [select for diffs], Sun Dec 19 01:48:13 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.13: +10 -2 lines
Diff to previous 1.13 (colored)

Define pci_is_thunderbolt_attached (answer: no).

Revision 1.13 / (download) - annotate - [select for diffs], Sun Dec 19 01:46:52 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

Update change to Linux struct resource members: end, not size.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Dec 19 01:21:15 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.11: +11 -6 lines
Diff to previous 1.11 (colored)

Define pci_get/set_drvdata properly.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Dec 19 01:21:08 2021 UTC (2 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.10: +5 -3 lines
Diff to previous 1.10 (colored)

pci_get_bus_and_slot -> pci_get_domain_bus_and_slot

Revision 1.6.6.3 / (download) - annotate - [select for diffs], Wed Apr 8 14:08:28 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.6.6.2: +12 -7 lines
Diff to previous 1.6.6.2 (colored) to branchpoint 1.6 (colored) next main 1.7 (colored)

Merge changes from current as of 20200406

Revision 1.6.10.2 / (download) - annotate - [select for diffs], Sat Feb 29 20:20:18 2020 UTC (3 years, 11 months ago) by ad
Branch: ad-namecache
Changes since 1.6.10.1: +2 -6 lines
Diff to previous 1.6.10.1 (colored) to branchpoint 1.6 (colored) next main 1.7 (colored)

Sync with head.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Feb 12 18:35:01 2020 UTC (4 years ago) by jdolecek
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3
Changes since 1.9: +2 -6 lines
Diff to previous 1.9 (colored)

re-enable MSI - this actually enables MSI only for intel/radeon/generic
which are reported to work fine, while nouveau (which breaks with
MSI) still uses INTx

see the thread
http://mail-index.netbsd.org/current-users/2020/02/06/msg037661.html

Revision 1.9 / (download) - annotate - [select for diffs], Fri Feb 7 18:13:33 2020 UTC (4 years ago) by jmcneill
Branch: MAIN
Changes since 1.8: +4 -0 lines
Diff to previous 1.8 (colored)

Turn MSI off again.

Revision 1.8 / (download) - annotate - [select for diffs], Mon Feb 3 16:22:52 2020 UTC (4 years ago) by jmcneill
Branch: MAIN
Changes since 1.7: +2 -6 lines
Diff to previous 1.7 (colored)

Re-enable PCI MSI for DRM devices

Revision 1.6.10.1 / (download) - annotate - [select for diffs], Sat Jan 25 22:38:50 2020 UTC (4 years, 1 month ago) by ad
Branch: ad-namecache
Changes since 1.6: +12 -3 lines
Diff to previous 1.6 (colored)

Sync with head.

Revision 1.7 / (download) - annotate - [select for diffs], Sat Jan 18 02:59:42 2020 UTC (4 years, 1 month ago) by jmcneill
Branch: MAIN
CVS Tags: ad-namecache-base2
Changes since 1.6: +12 -3 lines
Diff to previous 1.6 (colored)

Use pci_get_segment if available

Revision 1.6.6.2 / (download) - annotate - [select for diffs], Mon Jun 10 22:08:33 2019 UTC (4 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.6.6.1: +765 -0 lines
Diff to previous 1.6.6.1 (colored) to branchpoint 1.6 (colored)

Sync with HEAD

Revision 1.6.2.2 / (download) - annotate - [select for diffs], Thu Sep 6 06:56:37 2018 UTC (5 years, 5 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.6.2.1: +765 -0 lines
Diff to previous 1.6.2.1 (colored) to branchpoint 1.6 (colored) next main 1.7 (colored)

Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.6.6.1, Tue Aug 28 03:41:39 2018 UTC (5 years, 6 months ago) by christos
Branch: phil-wifi
Changes since 1.6: +0 -765 lines
FILE REMOVED

file linux_pci.c was added on branch phil-wifi on 2019-06-10 22:08:33 +0000

Revision 1.6.2.1, Tue Aug 28 03:41:39 2018 UTC (5 years, 6 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.6: +0 -765 lines
FILE REMOVED

file linux_pci.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000

Revision 1.6 / (download) - annotate - [select for diffs], Tue Aug 28 03:41:39 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
CVS Tags: phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, ad-namecache-base1, ad-namecache-base
Branch point for: phil-wifi, pgoyette-compat, ad-namecache
Changes since 1.5: +2 -9 lines
Diff to previous 1.5 (colored)

Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
  => See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
  for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
  => Use drm_agp_borrow instead.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Aug 27 15:12:21 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.4: +6 -0 lines
Diff to previous 1.4 (colored)

Try agp_i810_borrow only if CONFIG_AGP is enabled.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Aug 27 14:19:59 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.3: +3 -0 lines
Diff to previous 1.3 (colored)

Treat pre-enabled devices as 1 enablecnt.

Revision 1.3 / (download) - annotate - [select for diffs], Mon Aug 27 14:17:04 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.2: +2 -0 lines
Diff to previous 1.2 (colored)

Zero the whole thing for good measure.

Revision 1.2 / (download) - annotate - [select for diffs], Mon Aug 27 14:16:52 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

Make sure the resources are marked unmapped initially.

Revision 1.1 / (download) - annotate - [select for diffs], Mon Aug 27 14:16:38 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN

Move the Linux PCI shim into its very own .c file.

The poor thing has deserved this for a very long time, even though it
is full of kludges.  Also I'm tired of recompiling everything every
time I touch it.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>