<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/pccbb, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2015-07-29T00:57:54Z</updated>
<entry>
<title>MFS r285863 (jhb):</title>
<updated>2015-07-29T00:57:54Z</updated>
<author>
<name>Glen Barber</name>
<email>gjb@FreeBSD.org</email>
</author>
<published>2015-07-29T00:57:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9325ec5c9b7830a837f5ebafd8d4b3e4c5d8c369'/>
<id>urn:sha1:9325ec5c9b7830a837f5ebafd8d4b3e4c5d8c369</id>
<content type='text'>
 Partially revert r284034.  In particular, revert the final change in
 this MFC (281874).  It broke suspend and resume on several Thinkpads
 (though not all) in 10 even though it works fine on the same laptops
 in HEAD.

PR:		201239
Reported by:	Kevin Oberman and several others
Approved by:	re (kib)
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC 274633,274639,274663,277233-277235,281870,281871,281873,281874:</title>
<updated>2015-06-05T17:05:09Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2015-06-05T17:05:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f26e4e8088a5d9dd5f3d17d6938372d4e5fe0172'/>
<id>urn:sha1:f26e4e8088a5d9dd5f3d17d6938372d4e5fe0172</id>
<content type='text'>
Various fixes for suspend and resume of PCI to PCI and PCI to Cardbus
bridges.

274633:

Remove stray empty comment. The code is adequately explained in the
block comment above, so there's nothing to add here.

274639:

Modernize comments about BIOSes being lame since in this detail they
aren't lame, the rules changed along the way. Catch up to 1999 or so
with the new rules.

274663:

Fix typo pointed out by avg@ and Joerg Sonnenberger. Add a clarifying
sentence too.

277233:

Suspend and resume were the only two functions not to follow the brdev
convention here, so fix that.

277234:

Move the suspsned and resume functions to the bus attachment. They
were accessing PCI config registers, which won't work for the ISA
version.

277235:

Always enable I/O, memory and dma cycles. Some BIOSes don't enable
them, sometimes they are reset for power state transitions or during
whatever happens while suspended. Also, it is good practice to always
do this.

281870:

Cosmetic change: use PCIR_SECLAT_2 rather than PCIR_SECLAT_1.

281871:

The minimim grant and maximum latency PCI config registers are only valid
for type 0 devices, not type 1 or 2 bridges.  Don't read them for bridge
devices during bus scans and return an error when attempting to read them
as ivars for bridge devices.

281873:

Don't explicitly manage power states for PCI-PCI bridge devices in the
driver's suspend and resume routines.  These have been redundant no-ops
since r214065 changed the PCI bus driver to manage power states for
all devices (including type 1/2 bridge devices) during suspend and resume.

281874:

Update the pci_cfg_save/restore routines to operate on bridge devices
(type 1 and type 2) as well as leaf devices (type 0).  In particular,
this allows the existing PCI bus logic to save and restore capability
registers such as MSI and PCI-express work for bridge devices rather than
requiring that code to be duplicated in bridge drivers.  It also means
that bridge drivers no longer need to save and restore basic registers
such as the PCI command register or BARs nor manage powerstates for the
bridge device.

While here, pci_setup_secbus() has been changed to initialize the 'sec'
and 'sub' fields in the 'secbus' structure instead of requiring the pcib
and pccbb drivers to do this in the NEW_PCIB + PCI_RES_BUS case.
</content>
</entry>
<entry>
<title>MFC 261790:</title>
<updated>2015-04-01T21:48:54Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2015-04-01T21:48:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2558ef53a140a2a8c43348bd9356347b8a6b60ba'/>
<id>urn:sha1:2558ef53a140a2a8c43348bd9356347b8a6b60ba</id>
<content type='text'>
Add support for managing PCI bus numbers.  As with BARs and PCI-PCI bridge
I/O windows, the default is to preserve the firmware-assigned resources.
PCI bus numbers are only managed if NEW_PCIB is enabled and the architecture
defines a PCI_RES_BUS resource type.
- Add a helper API to create top-level PCI bus resource managers for each
  PCI domain/segment.  Host-PCI bridge drivers use this API to allocate
  bus numbers from their associated domain.
- Change the PCI bus and CardBus drivers to allocate a bus resource for
  their bus number from the parent PCI bridge device.
- Change the PCI-PCI and PCI-CardBus bridge drivers to allocate the
  full range of bus numbers from secbus to subbus from their parent bridge.
  The drivers also always program their primary bus register.  The bridge
  drivers also support growing their bus range by extending the bus resource
  and updating subbus to match the larger range.
- Add support for managing PCI bus resources to the Host-PCI bridge drivers
  used for amd64 and i386 (acpi_pcib, mptable_pcib, legacy_pcib, and qpi_pcib).
- Define a PCI_RES_BUS resource type for amd64 and i386.

PR:		197076
</content>
</entry>
<entry>
<title>Merge r269488 from head:</title>
<updated>2014-09-03T23:08:21Z</updated>
<author>
<name>Gavin Atkinson</name>
<email>gavin@FreeBSD.org</email>
</author>
<published>2014-09-03T23:08:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4a437ca512609c3cfd7af36a3e31c3bba4079ece'/>
<id>urn:sha1:4a437ca512609c3cfd7af36a3e31c3bba4079ece</id>
<content type='text'>
  For reasons which are not clear, r254263 broke some PCMCIA and CardBus
  bridges in strange ways, either rendering them unable to detect
  insertion and removal events, or possibly unable to read from the
  device behind the bridge.

  This fixes at least one laptop, a Toshiba Tecra M5 with a Texas
  Instruments PCxx12 (d=0x8039 v=0c104c) bridge.  The very similar
  Tecra M9 has the same bridge, but worked fine without this change.

  The bridge chip has no I/O port BAR, and there is nothing in the spec
  to suggest I/O decoding should be enabled; however enabling it fixes
  the issue.  Add an XXX comment to this effect.

Discussed with:		jhb, imp
</content>
</entry>
<entry>
<title>MFC 261216:</title>
<updated>2014-01-30T19:09:59Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2014-01-30T19:09:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f74c8a100786c0a943f33f8d8b5aa02462c7b98b'/>
<id>urn:sha1:f74c8a100786c0a943f33f8d8b5aa02462c7b98b</id>
<content type='text'>
Explicitly enable I/O and memory decoding in the bridge's command register
when activating an I/O or memory window on the CardBus bridge.
</content>
</entry>
<entry>
<title>Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI</title>
<updated>2013-08-12T23:30:01Z</updated>
<author>
<name>Scott Long</name>
<email>scottl@FreeBSD.org</email>
</author>
<published>2013-08-12T23:30:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c68534f1d5bab4ad466384c4fb9bb2956811e8b9'/>
<id>urn:sha1:c68534f1d5bab4ad466384c4fb9bb2956811e8b9</id>
<content type='text'>
command register.  The lazy BAR allocation code in FreeBSD sometimes
disables this bit when it detects a range conflict, and will re-enable
it on demand when a driver allocates the BAR.  Thus, the bit is no longer
a reliable indication of capability, and should not be checked.  This
results in the elimination of a lot of code from drivers, and also gives
the opportunity to simplify a lot of drivers to use a helper API to set
the busmaster enable bit.

This changes fixes some recent reports of disk controllers and their
associated drives/enclosures disappearing during boot.

Submitted by:	jhb
Reviewed by:	jfv, marius, achadd, achim
MFC after:	1 day
</content>
</entry>
<entry>
<title>Restore the PCI bridge configuration upon resume.</title>
<updated>2012-07-31T18:47:17Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2012-07-31T18:47:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b0fa0cba6514417cf4e03a24dd38c85724f083d7'/>
<id>urn:sha1:b0fa0cba6514417cf4e03a24dd38c85724f083d7</id>
<content type='text'>
This allows my TI1510 cardbus/PCI bridge to work after a suspend/resume,
without having to unload/reload the cbb driver.

I've also tested this on stable/9.  I'll MFC it shortly.

PR:		kern/170058
Reviewed by:	jhb
MFC after:	1 day
</content>
</entry>
<entry>
<title>Some laptops have weak power controllers that cannot tolerate multiple</title>
<updated>2012-01-27T21:49:02Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2012-01-27T21:49:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dbd618bf56628596bd8bd739953f6e4f934d5253'/>
<id>urn:sha1:dbd618bf56628596bd8bd739953f6e4f934d5253</id>
<content type='text'>
cards powering up at once.  Work around the easy case (multiple cards
inserted on boot) with a short sleep and a long comment.  This
improves reliability on those laptops with power hungry cards.
</content>
</entry>
<entry>
<title>- There's no need to overwrite the default device method with the default</title>
<updated>2011-11-22T21:28:20Z</updated>
<author>
<name>Marius Strobl</name>
<email>marius@FreeBSD.org</email>
</author>
<published>2011-11-22T21:28:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4b7ec27007570e0ce4fe9dbb447e7afc131b487a'/>
<id>urn:sha1:4b7ec27007570e0ce4fe9dbb447e7afc131b487a</id>
<content type='text'>
  one. Interestingly, these are actually the default for quite some time
  (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9)
  since r52045) but even recently added device drivers do this unnecessarily.
  Discussed with: jhb, marcel
- While at it, use DEVMETHOD_END.
  Discussed with: jhb
- Also while at it, use __FBSDID.
</content>
</entry>
<entry>
<title>Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.</title>
<updated>2011-11-07T15:43:11Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2011-11-07T15:43:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6472ac3d8a86336899b6cfb789a4cd9897e3fab5'/>
<id>urn:sha1:6472ac3d8a86336899b6cfb789a4cd9897e3fab5</id>
<content type='text'>
The SYSCTL_NODE macro defines a list that stores all child-elements of
that node. If there's no SYSCTL_DECL macro anywhere else, there's no
reason why it shouldn't be static.
</content>
</entry>
</feed>
