sfxge(4): support Medford2 event timer semantics

The event timer interface has changed for Medford2 - for
details see bug66418 comment 9. Update the common code to
use the new timer semantics for Medford2.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D18198
This commit is contained in:
Andrew Rybchenko 2018-11-28 09:22:53 +00:00
parent ffde74241a
commit 2222409ba1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=341123
2 changed files with 14 additions and 2 deletions

View File

@ -732,9 +732,15 @@ ef10_ev_qmoderate(
EFX_BAR_VI_WRITED(enp, ER_DD_EVQ_INDIRECT,
eep->ee_index, &dword, 0);
} else {
EFX_POPULATE_DWORD_2(dword,
/*
* NOTE: The TMR_REL field introduced in Medford2 is
* ignored on earlier EF10 controllers. See bug66418
* comment 9 for details.
*/
EFX_POPULATE_DWORD_3(dword,
ERF_DZ_TC_TIMER_MODE, mode,
ERF_DZ_TC_TIMER_VAL, ticks);
ERF_DZ_TC_TIMER_VAL, ticks,
ERF_FZ_TC_TMR_REL_VAL, ticks);
EFX_BAR_VI_WRITED(enp, ER_DZ_EVQ_TMR_REG,
eep->ee_index, &dword, 0);
}

View File

@ -184,6 +184,8 @@ extern "C" {
#define ER_FZ_EVQ_TMR_REG_64K_RESET 0x0
#define ERF_FZ_TC_TMR_REL_VAL_LBN 16
#define ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
#define ERF_FZ_TC_TIMER_MODE_LBN 14
#define ERF_FZ_TC_TIMER_MODE_WIDTH 2
#define ERF_FZ_TC_TIMER_VAL_LBN 0
@ -202,6 +204,8 @@ extern "C" {
#define ER_FZ_EVQ_TMR_REG_16K_RESET 0x0
/* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
/* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
/* defined as ERF_FZ_TC_TIMER_MODE_LBN 14; */
/* defined as ERF_FZ_TC_TIMER_MODE_WIDTH 2 */
/* defined as ERF_FZ_TC_TIMER_VAL_LBN 0; */
@ -220,6 +224,8 @@ extern "C" {
#define ER_DZ_EVQ_TMR_REG_RESET 0x0
/* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
/* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
#define ERF_DZ_TC_TIMER_MODE_LBN 14
#define ERF_DZ_TC_TIMER_MODE_WIDTH 2
#define ERF_DZ_TC_TIMER_VAL_LBN 0