59 *pobject = nv_object(obj);
64 nv_wo32(obj, 0x04, 0x00000000);
65 nv_wo32(obj, 0x08, 0x00000000);
66 nv_wo32(obj, 0x0c, 0x00000000);
72 .ctor = nv84_crypt_object_ctor,
81 nv84_crypt_sclass[] = {
82 { 0x74c1, &nv84_crypt_ofuncs },
101 *pobject = nv_object(priv);
109 nv84_crypt_cclass = {
112 .ctor = nv84_crypt_context_ctor,
126 { 0x00000001,
"INVALID_STATE" },
127 { 0x00000002,
"ILLEGAL_MTHD" },
128 { 0x00000004,
"ILLEGAL_CLASS" },
129 { 0x00000080,
"QUERY" },
130 { 0x00000100,
"FAULT" },
141 u32 stat = nv_rd32(priv, 0x102130);
142 u32 mthd = nv_rd32(priv, 0x102190);
143 u32 data = nv_rd32(priv, 0x102194);
144 u32 inst = nv_rd32(priv, 0x102188) & 0x7fffffff;
148 chid = pfifo->
chid(pfifo, engctx);
153 printk(
" ch %d [0x%010llx] mthd 0x%04x data 0x%08x\n",
154 chid, (
u64)inst << 12, mthd, data);
157 nv_wr32(priv, 0x102130, stat);
158 nv_wr32(priv, 0x10200c, 0x10);
180 *pobject = nv_object(priv);
184 nv_subdev(priv)->unit = 0x00004000;
185 nv_subdev(priv)->intr = nv84_crypt_intr;
186 nv_engine(priv)->cclass = &nv84_crypt_cclass;
187 nv_engine(priv)->sclass = nv84_crypt_sclass;
188 nv_engine(priv)->tlb_flush = nv84_crypt_tlb_flush;
202 nv_wr32(priv, 0x102130, 0xffffffff);
203 nv_wr32(priv, 0x102140, 0xffffffbf);
204 nv_wr32(priv, 0x10200c, 0x00000010);
212 .ctor = nv84_crypt_ctor,
214 .init = nv84_crypt_init,