mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 20:26:43 +07:00
powerpc/vas: Use helper to unpin/close window
Use a helper to have the hardware unpin and mark a window closed. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
4963ac3632
commit
36a288fe9d
@ -1100,6 +1100,20 @@ static void poll_window_castout(struct vas_window *window)
|
||||
/* stub for now */
|
||||
}
|
||||
|
||||
/*
|
||||
* Unpin and close a window so no new requests are accepted and the
|
||||
* hardware can evict this window from cache if necessary.
|
||||
*/
|
||||
static void unpin_close_window(struct vas_window *window)
|
||||
{
|
||||
u64 val;
|
||||
|
||||
val = read_hvwc_reg(window, VREG(WINCTL));
|
||||
val = SET_FIELD(VAS_WINCTL_PIN, val, 0);
|
||||
val = SET_FIELD(VAS_WINCTL_OPEN, val, 0);
|
||||
write_hvwc_reg(window, VREG(WINCTL), val);
|
||||
}
|
||||
|
||||
/*
|
||||
* Close a window.
|
||||
*
|
||||
@ -1114,8 +1128,6 @@ static void poll_window_castout(struct vas_window *window)
|
||||
*/
|
||||
int vas_win_close(struct vas_window *window)
|
||||
{
|
||||
u64 val;
|
||||
|
||||
if (!window)
|
||||
return 0;
|
||||
|
||||
@ -1131,11 +1143,7 @@ int vas_win_close(struct vas_window *window)
|
||||
|
||||
poll_window_busy_state(window);
|
||||
|
||||
/* Unpin window from cache and close it */
|
||||
val = read_hvwc_reg(window, VREG(WINCTL));
|
||||
val = SET_FIELD(VAS_WINCTL_PIN, val, 0);
|
||||
val = SET_FIELD(VAS_WINCTL_OPEN, val, 0);
|
||||
write_hvwc_reg(window, VREG(WINCTL), val);
|
||||
unpin_close_window(window);
|
||||
|
||||
poll_window_castout(window);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user