<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/smartpqi, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>chore: replace {0, 0} with {DEV,KOBJ}METHOD_END</title>
<updated>2026-02-25T05:59:34+00:00</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2026-02-21T06:14:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0fc6c3f731a2cca3120798806c330a3081c9424b'/>
<id>0fc6c3f731a2cca3120798806c330a3081c9424b</id>
<content type='text'>
Both of the aforementioned macros have been present in FreeBSD
for well over a decade: 2009 for `KOBJMETHOD_END`; 2011 for
`DEVMETHOD_END`.

Adapt all hardcoded references of `{0, 0}` with `DEVMETHOD_END`
and `KOBJMETHOD_END` as appropriate. This helps ensure that
future adaptations to drivers following patterns documented
in driver(9) can be made more easily/without issue.

MFC after:	1 week
Differential Revision:	 https://reviews.freebsd.org/D55414
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Both of the aforementioned macros have been present in FreeBSD
for well over a decade: 2009 for `KOBJMETHOD_END`; 2011 for
`DEVMETHOD_END`.

Adapt all hardcoded references of `{0, 0}` with `DEVMETHOD_END`
and `KOBJMETHOD_END` as appropriate. This helps ensure that
future adaptations to drivers following patterns documented
in driver(9) can be made more easily/without issue.

MFC after:	1 week
Differential Revision:	 https://reviews.freebsd.org/D55414
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Update to vendor version 14.4690.0.2008 - 15.2.0.2008</title>
<updated>2026-02-02T17:01:30+00:00</updated>
<author>
<name>John Hall</name>
<email>jrhall@FreeBSD.org</email>
</author>
<published>2026-02-02T15:44:23+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=7f54c65abc67f50363bbd2a68a980d23e69c9ef0'/>
<id>7f54c65abc67f50363bbd2a68a980d23e69c9ef0</id>
<content type='text'>
Update to versions:
FreeBSD14 14.4690.2008
FreeBSD15 15.2.0.2008

Included in this update are:
 - Support for new controllers
 - Add code that utilizes the new BIG_IOCTL_Command_struct and allows
   the I/O buffer size for a single passthrough ioctl to be stored as a
   32 bit integer instead of the original 16 bit integer.
 - Update occurrences of Microsemi to Microchip
 - Some format changes including converting comments from C++ to C
   style, remove instances of /* $FreeBSD$ */, and updating copyright
   dates.

Update to versions:
FreeBSD14 14.4690.2008
FreeBSD15 15.2.0.2008

Included in this update are:

- Support for new controllers

_ Add code that utilizes the new BIG_IOCTL_Command_struct and allows
  the I/O buffer size for a single passthrough ioctl to be stored as
  a 32 bit integer instead of the original 16 bit integer.

- Update occurrences of Microsemi to Microchip

- Some format changes including converting comments from C++ to C
  style, remove instances of /* $FreeBSD$ */, and updating copyright
  dates.

Reviewed by:	imp
Approved by:	imp
MFC after:	1 week

Sponsored by: Microchip Technology Inc.

Differential Revision:	https://reviews.freebsd.org/D54787
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update to versions:
FreeBSD14 14.4690.2008
FreeBSD15 15.2.0.2008

Included in this update are:
 - Support for new controllers
 - Add code that utilizes the new BIG_IOCTL_Command_struct and allows
   the I/O buffer size for a single passthrough ioctl to be stored as a
   32 bit integer instead of the original 16 bit integer.
 - Update occurrences of Microsemi to Microchip
 - Some format changes including converting comments from C++ to C
   style, remove instances of /* $FreeBSD$ */, and updating copyright
   dates.

Update to versions:
FreeBSD14 14.4690.2008
FreeBSD15 15.2.0.2008

Included in this update are:

- Support for new controllers

_ Add code that utilizes the new BIG_IOCTL_Command_struct and allows
  the I/O buffer size for a single passthrough ioctl to be stored as
  a 32 bit integer instead of the original 16 bit integer.

- Update occurrences of Microsemi to Microchip

- Some format changes including converting comments from C++ to C
  style, remove instances of /* $FreeBSD$ */, and updating copyright
  dates.

Reviewed by:	imp
Approved by:	imp
MFC after:	1 week

Sponsored by: Microchip Technology Inc.

Differential Revision:	https://reviews.freebsd.org/D54787
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Avoid declaring extern inline functions</title>
<updated>2026-01-16T19:55:08+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2026-01-16T19:49:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=75c591b26723711d7a38f2a5df7aecc28198cd83'/>
<id>75c591b26723711d7a38f2a5df7aecc28198cd83</id>
<content type='text'>
Each C file is compiled separately so these functions can't be inlined
except in the file where they are defined.  Since these functions aren't
used outside smartpqi_request.c, just do the simple thing and make them
private to that file.

Reported by:	gcc
Reviewed by:	jrhall
Fixes:		c558eca47970 ("smartpqi: update to version 4660.0.2002")
Differential Revision:	https://reviews.freebsd.org/D54732
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Each C file is compiled separately so these functions can't be inlined
except in the file where they are defined.  Since these functions aren't
used outside smartpqi_request.c, just do the simple thing and make them
private to that file.

Reported by:	gcc
Reviewed by:	jrhall
Fixes:		c558eca47970 ("smartpqi: update to version 4660.0.2002")
Differential Revision:	https://reviews.freebsd.org/D54732
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Make pqisrc_is_supported_write static</title>
<updated>2026-01-10T20:22:36+00:00</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2026-01-10T20:15:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=73a238643a2e9ef298d961966040587ca0970a58'/>
<id>73a238643a2e9ef298d961966040587ca0970a58</id>
<content type='text'>
This fixes a build error with -O0 and matches all the other pqisrc_is_*
routines in the file.

--- kernel.full ---
ld: error: undefined symbol: pqisrc_is_supported_write
&gt;&gt;&gt; referenced by smartpqi_request.c:1799 (/.../smartpqi_request.c:1799)
&gt;&gt;&gt;               smartpqi_request.o:(pqisrc_build_scsi_cmd_raidbypass)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a build error with -O0 and matches all the other pqisrc_is_*
routines in the file.

--- kernel.full ---
ld: error: undefined symbol: pqisrc_is_supported_write
&gt;&gt;&gt; referenced by smartpqi_request.c:1799 (/.../smartpqi_request.c:1799)
&gt;&gt;&gt;               smartpqi_request.o:(pqisrc_build_scsi_cmd_raidbypass)
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: update to version 4660.0.2002</title>
<updated>2026-01-09T17:39:58+00:00</updated>
<author>
<name>John Hall</name>
<email>jrhall@FreeBSD.org</email>
</author>
<published>2025-08-28T21:11:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c558eca47970c8467ed0494145f08d1879050bbd'/>
<id>c558eca47970c8467ed0494145f08d1879050bbd</id>
<content type='text'>
This updates the smartpqi driver to Microchip's
latest available public release.

Reviewed by: imp
Approved by: imp

Sponsored by: Microchip Technology Inc.

Differential Revision: https://reviews.freebsd.org/D52507
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates the smartpqi driver to Microchip's
latest available public release.

Reviewed by: imp
Approved by: imp

Sponsored by: Microchip Technology Inc.

Differential Revision: https://reviews.freebsd.org/D52507
</pre>
</div>
</content>
</entry>
<entry>
<title>style(9): white space after ; and around binary operators</title>
<updated>2025-10-16T22:02:50+00:00</updated>
<author>
<name>David E. O'Brien</name>
<email>obrien@FreeBSD.org</email>
</author>
<published>2025-10-15T05:22:00+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0050289464fa56ec79e060b8d8378b9ff7145a0e'/>
<id>0050289464fa56ec79e060b8d8378b9ff7145a0e</id>
<content type='text'>
in for() loops.  Also, use 'while', where only the
conditional test of 'for' was used.

Reviewed by: sjg
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in for() loops.  Also, use 'while', where only the
conditional test of 'for' was used.

Reviewed by: sjg
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi(4): Fix a typo in a source code comment</title>
<updated>2025-01-26T12:09:34+00:00</updated>
<author>
<name>Gordon Bergling</name>
<email>gbe@FreeBSD.org</email>
</author>
<published>2025-01-26T12:09:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b0c318efdde7c1b059b26f1ab6d4c75e838b6652'/>
<id>b0c318efdde7c1b059b26f1ab6d4c75e838b6652</id>
<content type='text'>
- s/isnt/isn’t/

MFC after:	3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- s/isnt/isn’t/

MFC after:	3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Change alignment for dma tags</title>
<updated>2023-10-19T03:12:27+00:00</updated>
<author>
<name>John Hall</name>
<email>john.hall@microchip.com</email>
</author>
<published>2023-10-19T03:10:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f07b267d8cc87e88be3c78aa69504b5ebc6571ee'/>
<id>f07b267d8cc87e88be3c78aa69504b5ebc6571ee</id>
<content type='text'>
Problem: Under certain I/O conditions, a program doing large block disk
reads can cause a controller to crash.

Root Cause: The SCSI read request and destination address in the BDMA
descriptor is incorrect, causing the BDMA engine in the controller to
assert.

Fix: Change the alignment for creating bus_dma_tags in the driver from
PAGE_SIZE (4k) to 1, which allows the controller to manage it's own
address range for BDMA transactions.

Risk: Medium

Exposure: This reverts a change first made to support NVMe drives on
Excalibur. At that time a 4k alignment was necessary. This no longer
seems to be the case.

PR: 259541
Reported by: Ka Ho Ng &lt;khng@freebsd.org&gt;
Reviewed by: imp
Differential Revision:	https://reviews.freebsd.org/D41619
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Under certain I/O conditions, a program doing large block disk
reads can cause a controller to crash.

Root Cause: The SCSI read request and destination address in the BDMA
descriptor is incorrect, causing the BDMA engine in the controller to
assert.

Fix: Change the alignment for creating bus_dma_tags in the driver from
PAGE_SIZE (4k) to 1, which allows the controller to manage it's own
address range for BDMA transactions.

Risk: Medium

Exposure: This reverts a change first made to support NVMe drives on
Excalibur. At that time a 4k alignment was necessary. This no longer
seems to be the case.

PR: 259541
Reported by: Ka Ho Ng &lt;khng@freebsd.org&gt;
Reviewed by: imp
Differential Revision:	https://reviews.freebsd.org/D41619
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Drop spinlock before freeing memory</title>
<updated>2023-10-19T03:06:40+00:00</updated>
<author>
<name>John F. Carr</name>
<email>jfc@mit.edu</email>
</author>
<published>2023-10-19T03:02:42+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b064a4c9eed5b1dd2a40fc4fd2cb7e738b681547'/>
<id>b064a4c9eed5b1dd2a40fc4fd2cb7e738b681547</id>
<content type='text'>
pqisrc_free_device frees the device softc with the os spinlock
held. This causes crashes when devices are removed because the memory
free might sleep (which is prohibited with spin locks held). Drop the
spinlock before releasing the memory.

MFC After: 2 days
PR: 273289
Reviewed by: imp
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pqisrc_free_device frees the device softc with the os spinlock
held. This causes crashes when devices are removed because the memory
free might sleep (which is prohibited with spin locks held). Drop the
spinlock before releasing the memory.

MFC After: 2 days
PR: 273289
Reviewed by: imp
</pre>
</div>
</content>
</entry>
<entry>
<title>smartpqi: Fix build issues highlighted by gcc12</title>
<updated>2023-08-25T15:46:44+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-25T15:45:28+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2f06449d64298fe508e3c585b45effd69a72d696'/>
<id>2f06449d64298fe508e3c585b45effd69a72d696</id>
<content type='text'>
Make inline functions defined in a header file as static inline.
Mark inline functions used only in the compilation unit they are
defined in as merely static (the compiler can figure out it these
days).

Sponsored by:		Netflix
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make inline functions defined in a header file as static inline.
Mark inline functions used only in the compilation unit they are
defined in as merely static (the compiler can figure out it these
days).

Sponsored by:		Netflix
</pre>
</div>
</content>
</entry>
</feed>
