162306a36Sopenharmony_ci#ifndef __NVIF_FIFO_H__ 262306a36Sopenharmony_ci#define __NVIF_FIFO_H__ 362306a36Sopenharmony_ci#include <nvif/device.h> 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci/* Returns mask of runlists that support a NV_DEVICE_INFO_RUNLIST_ENGINES_* type. */ 662306a36Sopenharmony_ciu64 nvif_fifo_runlist(struct nvif_device *, u64 engine); 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* CE-supporting runlists (excluding GRCE, if others exist). */ 962306a36Sopenharmony_cistatic inline u64 1062306a36Sopenharmony_cinvif_fifo_runlist_ce(struct nvif_device *device) 1162306a36Sopenharmony_ci{ 1262306a36Sopenharmony_ci u64 runmgr = nvif_fifo_runlist(device, NV_DEVICE_HOST_RUNLIST_ENGINES_GR); 1362306a36Sopenharmony_ci u64 runmce = nvif_fifo_runlist(device, NV_DEVICE_HOST_RUNLIST_ENGINES_CE); 1462306a36Sopenharmony_ci if (runmce && !(runmce &= ~runmgr)) 1562306a36Sopenharmony_ci runmce = runmgr; 1662306a36Sopenharmony_ci return runmce; 1762306a36Sopenharmony_ci} 1862306a36Sopenharmony_ci#endif 19