Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
f01c4e68
Commit
f01c4e68
authored
Nov 09, 2015
by
Ben Skeggs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious
Signed-off-by:
Ben Skeggs
<
bskeggs@redhat.com
>
parent
13db6d6e
Changes
45
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
186 additions
and
171 deletions
+186
-171
drivers/gpu/drm/nouveau/include/nvif/unpack.h
drivers/gpu/drm/nouveau/include/nvif/unpack.h
+19
-15
drivers/gpu/drm/nouveau/nouveau_abi16.c
drivers/gpu/drm/nouveau/nouveau_abi16.c
+2
-2
drivers/gpu/drm/nouveau/nouveau_usif.c
drivers/gpu/drm/nouveau/nouveau_usif.c
+13
-12
drivers/gpu/drm/nouveau/nvkm/core/client.c
drivers/gpu/drm/nouveau/nvkm/core/client.c
+4
-4
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
+28
-28
drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
+6
-6
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
+10
-6
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
+4
-4
drivers/gpu/drm/nouveau/nvkm/engine/disp/basenv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/basenv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/corenv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/corenv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
+4
-4
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c
+4
-4
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
+9
-7
drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c
drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
+2
-1
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
+2
-1
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
+2
-1
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+5
-4
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c
+14
-14
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
+2
-2
No files found.
drivers/gpu/drm/nouveau/include/nvif/unpack.h
View file @
f01c4e68
#ifndef __NVIF_UNPACK_H__
#define __NVIF_UNPACK_H__
#define nvif_unvers(d) ({ \
ret = (size == sizeof(d)) ? 0 : -ENOSYS; \
(ret == 0); \
#define nvif_unvers(r,d,s,m) ({ \
void **_data = (d); __u32 *_size = (s); int _ret = (r); \
if (_ret == -ENOSYS && *_size == sizeof(m)) { \
*_data = NULL; \
*_size = _ret = 0; \
} \
_ret; \
})
#define nvif_unpack(d,vl,vh,m) ({ \
if ((vl) == 0 || ret == -ENOSYS) { \
int _size = sizeof(d); \
if (_size <= size && (d).version >= (vl) && \
(d).version <= (vh)) { \
data = (u8 *)data + _size; \
size = size - _size; \
ret = ((m) || !size) ? 0 : -E2BIG; \
} else { \
ret = -ENOSYS; \
#define nvif_unpack(r,d,s,m,vl,vh,x) ({ \
void **_data = (d); __u32 *_size = (s); \
int _ret = (r), _vl = (vl), _vh = (vh); \
if (_ret == -ENOSYS && *_size >= sizeof(m) && \
(m).version >= _vl && (m).version <= _vh) { \
*_data = (__u8 *)*_data + sizeof(m); \
*_size = *_size - sizeof(m); \
if (_ret = 0, !(x)) { \
_ret = *_size ? -E2BIG : 0; \
*_data = NULL; \
*_size = 0; \
} \
} \
(ret == 0);
\
_ret;
\
})
#endif
drivers/gpu/drm/nouveau/nouveau_abi16.c
View file @
f01c4e68
...
...
@@ -357,9 +357,9 @@ nouveau_abi16_usif(struct drm_file *file_priv, void *data, u32 size)
}
*
args
=
data
;
struct
nouveau_abi16_chan
*
chan
;
struct
nouveau_abi16
*
abi16
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
switch
(
args
->
v0
.
type
)
{
case
NVIF_IOCTL_V0_NEW
:
case
NVIF_IOCTL_V0_MTHD
:
...
...
drivers/gpu/drm/nouveau/nouveau_usif.c
View file @
f01c4e68
...
...
@@ -130,20 +130,21 @@ usif_notify_new(struct drm_file *f, void *data, u32 size, void *argv, u32 argc)
struct
nvif_notify_req_v0
v0
;
}
*
req
;
struct
usif_notify
*
ntfy
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
if
(
usif_notify_find
(
f
,
args
->
v0
.
index
))
return
-
EEXIST
;
}
else
return
ret
;
req
=
data
;
ret
=
-
ENOSYS
;
if
(
!
(
ntfy
=
kmalloc
(
sizeof
(
*
ntfy
),
GFP_KERNEL
)))
return
-
ENOMEM
;
atomic_set
(
&
ntfy
->
enabled
,
0
);
if
(
nvif_unpack
(
req
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
req
->
v0
,
0
,
0
,
true
)
))
{
ntfy
->
reply
=
sizeof
(
struct
nvif_notify_rep_v0
)
+
req
->
v0
.
reply
;
ntfy
->
route
=
req
->
v0
.
route
;
ntfy
->
token
=
req
->
v0
.
token
;
...
...
@@ -171,9 +172,9 @@ usif_notify_del(struct drm_file *f, void *data, u32 size, void *argv, u32 argc)
struct
nvif_ioctl_ntfy_del_v0
v0
;
}
*
args
=
data
;
struct
usif_notify
*
ntfy
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
if
(
!
(
ntfy
=
usif_notify_find
(
f
,
args
->
v0
.
index
)))
return
-
ENOENT
;
}
else
...
...
@@ -194,9 +195,9 @@ usif_notify_get(struct drm_file *f, void *data, u32 size, void *argv, u32 argc)
struct
nvif_ioctl_ntfy_del_v0
v0
;
}
*
args
=
data
;
struct
usif_notify
*
ntfy
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
if
(
!
(
ntfy
=
usif_notify_find
(
f
,
args
->
v0
.
index
)))
return
-
ENOENT
;
}
else
...
...
@@ -233,9 +234,9 @@ usif_notify_put(struct drm_file *f, void *data, u32 size, void *argv, u32 argc)
struct
nvif_ioctl_ntfy_put_v0
v0
;
}
*
args
=
data
;
struct
usif_notify
*
ntfy
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
if
(
!
(
ntfy
=
usif_notify_find
(
f
,
args
->
v0
.
index
)))
return
-
ENOENT
;
}
else
...
...
@@ -270,13 +271,13 @@ usif_object_new(struct drm_file *f, void *data, u32 size, void *argv, u32 argc)
struct
nvif_ioctl_new_v0
v0
;
}
*
args
=
data
;
struct
usif_object
*
object
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
!
(
object
=
kmalloc
(
sizeof
(
*
object
),
GFP_KERNEL
)))
return
-
ENOMEM
;
list_add
(
&
object
->
head
,
&
cli
->
objects
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
object
->
route
=
args
->
v0
.
route
;
object
->
token
=
args
->
v0
.
token
;
args
->
v0
.
route
=
NVDRM_OBJECT_USIF
;
...
...
@@ -310,7 +311,7 @@ usif_ioctl(struct drm_file *filp, void __user *user, u32 argc)
if
(
ret
=
-
EFAULT
,
copy_from_user
(
argv
,
user
,
size
))
goto
done
;
if
(
nvif_unpack
(
argv
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
-
ENOSYS
,
&
data
,
&
size
,
argv
->
v0
,
0
,
0
,
true
)
))
{
/* block access to objects not created via this interface */
owner
=
argv
->
v0
.
owner
;
if
(
argv
->
v0
.
object
==
0ULL
)
...
...
drivers/gpu/drm/nouveau/nvkm/core/client.c
View file @
f01c4e68
...
...
@@ -97,7 +97,7 @@ nvkm_client_notify_new(struct nvkm_object *object,
struct
nvif_notify_req_v0
v0
;
}
*
req
=
data
;
u8
index
,
reply
;
int
ret
;
int
ret
=
-
ENOSYS
;
for
(
index
=
0
;
index
<
ARRAY_SIZE
(
client
->
notify
);
index
++
)
{
if
(
!
client
->
notify
[
index
])
...
...
@@ -112,7 +112,7 @@ nvkm_client_notify_new(struct nvkm_object *object,
return
-
ENOMEM
;
nvif_ioctl
(
object
,
"notify new size %d
\n
"
,
size
);
if
(
nvif_unpack
(
req
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
req
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"notify new vers %d reply %d route %02x "
"token %llx
\n
"
,
req
->
v0
.
version
,
req
->
v0
.
reply
,
req
->
v0
.
route
,
req
->
v0
.
token
);
...
...
@@ -144,10 +144,10 @@ nvkm_client_mthd_devlist(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nv_client_devlist_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"client devlist size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"client devlist vers %d count %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
count
);
if
(
size
==
sizeof
(
args
->
v0
.
device
[
0
])
*
args
->
v0
.
count
)
{
...
...
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
View file @
f01c4e68
...
...
@@ -34,10 +34,10 @@ nvkm_ioctl_nop(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_nop_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"nop size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"nop vers %lld
\n
"
,
args
->
v0
.
version
);
args
->
v0
.
version
=
NVIF_VERSION_LATEST
;
}
...
...
@@ -52,10 +52,10 @@ nvkm_ioctl_sclass(struct nvkm_object *object, void *data, u32 size)
struct
nvif_ioctl_sclass_v0
v0
;
}
*
args
=
data
;
struct
nvkm_oclass
oclass
;
int
ret
,
i
=
0
;
int
ret
=
-
ENOSYS
,
i
=
0
;
nvif_ioctl
(
object
,
"sclass size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"sclass vers %d count %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
count
);
if
(
size
!=
args
->
v0
.
count
*
sizeof
(
args
->
v0
.
oclass
[
0
]))
...
...
@@ -86,10 +86,10 @@ nvkm_ioctl_new(struct nvkm_object *parent, void *data, u32 size)
struct
nvkm_client
*
client
=
parent
->
client
;
struct
nvkm_object
*
object
=
NULL
;
struct
nvkm_oclass
oclass
;
int
ret
,
i
=
0
;
int
ret
=
-
ENOSYS
,
i
=
0
;
nvif_ioctl
(
parent
,
"new size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
parent
,
"new vers %d handle %08x class %08x "
"route %02x token %llx object %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
handle
,
args
->
v0
.
oclass
,
...
...
@@ -147,10 +147,10 @@ nvkm_ioctl_del(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_del
none
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"delete size %d
\n
"
,
size
);
if
(
nvif_unvers
(
args
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
args
->
none
)
))
{
nvif_ioctl
(
object
,
"delete
\n
"
);
nvkm_object_fini
(
object
,
false
);
nvkm_object_del
(
&
object
);
...
...
@@ -165,10 +165,10 @@ nvkm_ioctl_mthd(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_mthd_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"mthd size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"mthd vers %d mthd %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
method
);
ret
=
nvkm_object_mthd
(
object
,
args
->
v0
.
method
,
data
,
size
);
...
...
@@ -189,10 +189,10 @@ nvkm_ioctl_rd(struct nvkm_object *object, void *data, u32 size)
u16
b16
;
u32
b32
;
}
v
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"rd size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"rd vers %d size %d addr %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
size
,
args
->
v0
.
addr
);
switch
(
args
->
v0
.
size
)
{
...
...
@@ -223,10 +223,10 @@ nvkm_ioctl_wr(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_wr_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"wr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"wr vers %d size %d addr %016llx data %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
size
,
args
->
v0
.
addr
,
...
...
@@ -251,10 +251,10 @@ nvkm_ioctl_map(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_map_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"map size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"map vers %d
\n
"
,
args
->
v0
.
version
);
ret
=
nvkm_object_map
(
object
,
&
args
->
v0
.
handle
,
&
args
->
v0
.
length
);
...
...
@@ -269,10 +269,10 @@ nvkm_ioctl_unmap(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_unmap
none
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"unmap size %d
\n
"
,
size
);
if
(
nvif_unvers
(
args
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
args
->
none
)
))
{
nvif_ioctl
(
object
,
"unmap
\n
"
);
}
...
...
@@ -286,10 +286,10 @@ nvkm_ioctl_ntfy_new(struct nvkm_object *object, void *data, u32 size)
struct
nvif_ioctl_ntfy_new_v0
v0
;
}
*
args
=
data
;
struct
nvkm_event
*
event
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"ntfy new size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"ntfy new vers %d event %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
event
);
ret
=
nvkm_object_ntfy
(
object
,
args
->
v0
.
event
,
&
event
);
...
...
@@ -312,10 +312,10 @@ nvkm_ioctl_ntfy_del(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_ntfy_del_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"ntfy del size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"ntfy del vers %d index %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
index
);
ret
=
nvkm_client_notify_del
(
client
,
args
->
v0
.
index
);
...
...
@@ -331,10 +331,10 @@ nvkm_ioctl_ntfy_get(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_ntfy_get_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"ntfy get size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"ntfy get vers %d index %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
index
);
ret
=
nvkm_client_notify_get
(
client
,
args
->
v0
.
index
);
...
...
@@ -350,10 +350,10 @@ nvkm_ioctl_ntfy_put(struct nvkm_object *object, void *data, u32 size)
union
{
struct
nvif_ioctl_ntfy_put_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"ntfy put size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"ntfy put vers %d index %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
index
);
ret
=
nvkm_client_notify_put
(
client
,
args
->
v0
.
index
);
...
...
@@ -421,12 +421,12 @@ nvkm_ioctl(struct nvkm_client *client, bool supervisor,
union
{
struct
nvif_ioctl_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
client
->
super
=
supervisor
;
nvif_ioctl
(
object
,
"size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"vers %d type %02x object %016llx owner %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
type
,
args
->
v0
.
object
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
View file @
f01c4e68
...
...
@@ -38,10 +38,10 @@ nvkm_control_mthd_pstate_info(struct nvkm_control *ctrl, void *data, u32 size)
struct
nvif_control_pstate_info_v0
v0
;
}
*
args
=
data
;
struct
nvkm_clk
*
clk
=
ctrl
->
device
->
clk
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate info size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate info vers %d
\n
"
,
args
->
v0
.
version
);
}
else
...
...
@@ -76,10 +76,10 @@ nvkm_control_mthd_pstate_attr(struct nvkm_control *ctrl, void *data, u32 size)
struct
nvkm_cstate
*
cstate
;
int
i
=
0
,
j
=
-
1
;
u32
lo
,
hi
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate attr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate attr vers %d state %d index %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
args
->
v0
.
index
);
...
...
@@ -144,10 +144,10 @@ nvkm_control_mthd_pstate_user(struct nvkm_control *ctrl, void *data, u32 size)
struct
nvif_control_pstate_user_v0
v0
;
}
*
args
=
data
;
struct
nvkm_clk
*
clk
=
ctrl
->
device
->
clk
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate user size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
&
ctrl
->
object
,
"control pstate user vers %d ustate %d pwrsrc %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
ustate
,
args
->
v0
.
pwrsrc
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
View file @
f01c4e68
...
...
@@ -49,10 +49,10 @@ nvkm_udevice_info(struct nvkm_udevice *udev, void *data, u32 size)
union
{
struct
nv_device_info_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"device info size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"device info vers %d
\n
"
,
args
->
v0
.
version
);
}
else
return
ret
;
...
...
@@ -124,13 +124,16 @@ nvkm_udevice_info(struct nvkm_udevice *udev, void *data, u32 size)
static
int
nvkm_udevice_time
(
struct
nvkm_udevice
*
udev
,
void
*
data
,
u32
size
)
{
struct
nvkm_object
*
object
=
&
udev
->
object
;
struct
nvkm_device
*
device
=
udev
->
device
;
union
{
struct
nv_device_time_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
nvif_ioctl
(
object
,
"device time size %d
\n
"
,
size
);
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)))
{
nvif_ioctl
(
object
,
"device time vers %d
\n
"
,
args
->
v0
.
version
);
args
->
v0
.
time
=
nvkm_timer_read
(
device
->
timer
);
}
...
...
@@ -141,6 +144,7 @@ static int
nvkm_udevice_mthd
(
struct
nvkm_object
*
object
,
u32
mthd
,
void
*
data
,
u32
size
)
{
struct
nvkm_udevice
*
udev
=
nvkm_udevice
(
object
);
nvif_ioctl
(
object
,
"device mthd %08x
\n
"
,
mthd
);
switch
(
mthd
)
{
case
NV_DEVICE_V0_INFO
:
return
nvkm_udevice_info
(
udev
,
data
,
size
);
...
...
@@ -332,10 +336,10 @@ nvkm_udevice_new(const struct nvkm_oclass *oclass, void *data, u32 size,
struct
nvkm_object
*
parent
=
&
client
->
object
;
const
struct
nvkm_object_func
*
func
;
struct
nvkm_udevice
*
udev
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create device size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create device v%d device %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
device
);
}
else
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
View file @
f01c4e68
...
...
@@ -59,9 +59,9 @@ nvkm_disp_vblank_ctor(struct nvkm_object *object, void *data, u32 size,
union
{
struct
nvif_notify_head_req_v0
v0
;
}
*
req
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
req
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
req
->
v0
,
0
,
0
,
false
)
))
{
notify
->
size
=
sizeof
(
struct
nvif_notify_head_rep_v0
);
if
(
ret
=
-
ENXIO
,
req
->
v0
.
head
<=
disp
->
vblank
.
index_nr
)
{
notify
->
types
=
1
;
...
...
@@ -97,9 +97,9 @@ nvkm_disp_hpd_ctor(struct nvkm_object *object, void *data, u32 size,
struct
nvif_notify_conn_req_v0
v0
;
}
*
req
=
data
;
struct
nvkm_output
*
outp
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
req
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
req
->
v0
,
0
,
0
,
false
)
))
{
notify
->
size
=
sizeof
(
struct
nvif_notify_conn_rep_v0
);
list_for_each_entry
(
outp
,
&
disp
->
outp
,
head
)
{
if
(
ret
=
-
ENXIO
,
outp
->
conn
->
index
==
req
->
v0
.
conn
)
{
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/basenv50.c
View file @
f01c4e68
...
...
@@ -42,11 +42,11 @@ nv50_disp_base_new(const struct nv50_disp_dmac_func *func,
}
*
args
=
data
;
struct
nvkm_object
*
parent
=
oclass
->
parent
;
struct
nv50_disp
*
disp
=
root
->
disp
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
u64
push
;
nvif_ioctl
(
parent
,
"create disp base channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create disp base channel dma vers %d "
"pushbuf %016llx head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
head
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
View file @
f01c4e68
...
...
@@ -134,9 +134,9 @@ nv50_disp_chan_uevent_ctor(struct nvkm_object *object, void *data, u32 size,
union
{
struct
nvif_notify_uevent_req
none
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unvers
(
args
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
args
->
none
)
))
{
notify
->
size
=
sizeof
(
struct
nvif_notify_uevent_rep
);
notify
->
types
=
1
;
notify
->
index
=
chan
->
chid
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/corenv50.c
View file @
f01c4e68
...
...
@@ -43,10 +43,10 @@ nv50_disp_core_new(const struct nv50_disp_dmac_func *func,
}
*
args
=
data
;
struct
nvkm_object
*
parent
=
oclass
->
parent
;
u64
push
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create disp core channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create disp core channel dma vers %d "
"pushbuf %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c
View file @
f01c4e68
...
...
@@ -42,10 +42,10 @@ nv50_disp_curs_new(const struct nv50_disp_chan_func *func,
}
*
args
=
data
;
struct
nvkm_object
*
parent
=
oclass
->
parent
;
struct
nv50_disp
*
disp
=
root
->
disp
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create disp cursor size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create disp cursor vers %d head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
head
);
if
(
args
->
v0
.
head
>
disp
->
base
.
head
.
nr
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
View file @
f01c4e68
...
...
@@ -39,10 +39,10 @@ nv50_dac_power(NV50_DISP_MTHD_V1)
struct
nv50_disp_dac_pwr_v0
v0
;
}
*
args
=
data
;
u32
stat
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp dac pwr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp dac pwr vers %d state %d data %d "
"vsync %d hsync %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
args
->
v0
.
data
,
...
...
@@ -76,10 +76,10 @@ nv50_dac_sense(NV50_DISP_MTHD_V1)
}
*
args
=
data
;
const
u32
doff
=
outp
->
or
*
0x800
;
u32
loadval
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp dac load size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp dac load vers %d data %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
data
);
if
(
args
->
v0
.
data
&
0xfff00000
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
View file @
f01c4e68
...
...
@@ -41,10 +41,10 @@ gf119_hda_eld(NV50_DISP_MTHD_V1)
}
*
args
=
data
;
const
u32
soff
=
outp
->
or
*
0x030
;
const
u32
hoff
=
head
*
0x800
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
object
,
"disp sor hda eld size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"disp sor hda eld vers %d
\n
"
,
args
->
v0
.
version
);
if
(
size
>
0x60
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
View file @
f01c4e68
...
...
@@ -38,10 +38,10 @@ gt215_hda_eld(NV50_DISP_MTHD_V1)
struct
nv50_disp_sor_hda_eld_v0
v0
;
}
*
args
=
data
;
const
u32
soff
=
outp
->
or
*
0x800
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
object
,
"disp sor hda eld size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"disp sor hda eld vers %d
\n
"
,
args
->
v0
.
version
);
if
(
size
>
0x60
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c
View file @
f01c4e68
...
...
@@ -37,10 +37,10 @@ g84_hdmi_ctrl(NV50_DISP_MTHD_V1)
struct
nv50_disp_sor_hdmi_pwr_v0
v0
;
}
*
args
=
data
;
u32
ctrl
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor hdmi ctrl size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor hdmi ctrl vers %d state %d "
"max_ac_packet %d rekey %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c
View file @
f01c4e68
...
...
@@ -37,10 +37,10 @@ gf119_hdmi_ctrl(NV50_DISP_MTHD_V1)
struct
nv50_disp_sor_hdmi_pwr_v0
v0
;
}
*
args
=
data
;
u32
ctrl
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor hdmi ctrl size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor hdmi ctrl vers %d state %d "
"max_ac_packet %d rekey %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c
View file @
f01c4e68
...
...
@@ -38,10 +38,10 @@ gk104_hdmi_ctrl(NV50_DISP_MTHD_V1)
struct
nv50_disp_sor_hdmi_pwr_v0
v0
;
}
*
args
=
data
;
u32
ctrl
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor hdmi ctrl size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor hdmi ctrl vers %d state %d "
"max_ac_packet %d rekey %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c
View file @
f01c4e68
...
...
@@ -38,10 +38,10 @@ gt215_hdmi_ctrl(NV50_DISP_MTHD_V1)
struct
nv50_disp_sor_hdmi_pwr_v0
v0
;
}
*
args
=
data
;
u32
ctrl
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor hdmi ctrl size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor hdmi ctrl vers %d state %d "
"max_ac_packet %d rekey %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c
View file @
f01c4e68
...
...
@@ -42,10 +42,10 @@ nv50_disp_oimm_new(const struct nv50_disp_chan_func *func,
}
*
args
=
data
;
struct
nvkm_object
*
parent
=
oclass
->
parent
;
struct
nv50_disp
*
disp
=
root
->
disp
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create disp overlay size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create disp overlay vers %d head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
head
);
if
(
args
->
v0
.
head
>
disp
->
base
.
head
.
nr
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c
View file @
f01c4e68
...
...
@@ -42,11 +42,11 @@ nv50_disp_ovly_new(const struct nv50_disp_dmac_func *func,
}
*
args
=
data
;
struct
nvkm_object
*
parent
=
oclass
->
parent
;
struct
nv50_disp
*
disp
=
root
->
disp
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
u64
push
;
nvif_ioctl
(
parent
,
"create disp overlay channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create disp overlay channel dma vers %d "
"pushbuf %016llx head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
head
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
View file @
f01c4e68
...
...
@@ -40,10 +40,10 @@ nv50_pior_power(NV50_DISP_MTHD_V1)
struct
nv50_disp_pior_pwr_v0
v0
;
}
*
args
=
data
;
u32
ctrl
,
type
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp pior pwr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp pior pwr vers %d state %d type %x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
,
args
->
v0
.
type
);
if
(
args
->
v0
.
type
>
0x0f
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
View file @
f01c4e68
...
...
@@ -42,10 +42,10 @@ gf119_disp_root_scanoutpos(NV50_DISP_MTHD_V0)
union
{
struct
nv50_disp_scanoutpos_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp scanoutpos size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp scanoutpos vers %d
\n
"
,
args
->
v0
.
version
);
args
->
v0
.
vblanke
=
(
blanke
&
0xffff0000
)
>>
16
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c
View file @
f01c4e68
...
...
@@ -46,10 +46,10 @@ nv04_disp_scanoutpos(struct nv04_disp_root *root,
struct
nv04_disp_scanoutpos_v0
v0
;
}
*
args
=
data
;
u32
line
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp scanoutpos size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp scanoutpos vers %d
\n
"
,
args
->
v0
.
version
);
args
->
v0
.
vblanks
=
nvkm_rd32
(
device
,
0x680800
+
hoff
)
&
0xffff
;
...
...
@@ -86,10 +86,10 @@ nv04_disp_mthd(struct nvkm_object *object, u32 mthd, void *data, u32 size)
union
{
struct
nv04_disp_mthd_v0
v0
;
}
*
args
=
data
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp mthd size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"disp mthd vers %d mthd %02x head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
method
,
args
->
v0
.
head
);
mthd
=
args
->
v0
.
method
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
View file @
f01c4e68
...
...
@@ -42,10 +42,10 @@ nv50_disp_root_scanoutpos(NV50_DISP_MTHD_V0)
union
{
struct
nv50_disp_scanoutpos_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp scanoutpos size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp scanoutpos vers %d
\n
"
,
args
->
v0
.
version
);
args
->
v0
.
vblanke
=
(
blanke
&
0xffff0000
)
>>
16
;
...
...
@@ -79,19 +79,19 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
struct
nvkm_output
*
outp
=
NULL
;
struct
nvkm_output
*
temp
;
u16
type
,
mask
=
0
;
int
head
,
ret
;
int
head
,
ret
=
-
ENOSYS
;
if
(
mthd
!=
NV50_DISP_MTHD
)
return
-
EINVAL
;
nvif_ioctl
(
object
,
"disp mthd size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
object
,
"disp mthd vers %d mthd %02x head %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
method
,
args
->
v0
.
head
);
mthd
=
args
->
v0
.
method
;
head
=
args
->
v0
.
head
;
}
else
if
(
nvif_unpack
(
args
->
v1
,
1
,
1
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v1
,
1
,
1
,
true
)
))
{
nvif_ioctl
(
object
,
"disp mthd vers %d mthd %02x "
"type %04x mask %04x
\n
"
,
args
->
v1
.
version
,
args
->
v1
.
method
,
...
...
@@ -144,8 +144,9 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
union
{
struct
nv50_disp_sor_lvds_script_v0
v0
;
}
*
args
=
data
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor lvds script size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor lvds script "
"vers %d name %04x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
script
);
...
...
@@ -160,8 +161,9 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
union
{
struct
nv50_disp_sor_dp_pwr_v0
v0
;
}
*
args
=
data
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor dp pwr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor dp pwr vers %d state %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
);
if
(
args
->
v0
.
state
==
0
)
{
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
View file @
f01c4e68
...
...
@@ -39,10 +39,10 @@ nv50_sor_power(NV50_DISP_MTHD_V1)
}
*
args
=
data
;
const
u32
soff
=
outp
->
or
*
0x800
;
u32
stat
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor pwr size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"disp sor pwr vers %d state %d
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
state
);
stat
=
!!
args
->
v0
.
state
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c
View file @
f01c4e68
...
...
@@ -69,7 +69,7 @@ nvkm_dmaobj_ctor(const struct nvkm_dmaobj_func *func, struct nvkm_dma *dma,
struct
nvkm_fb
*
fb
=
device
->
fb
;
void
*
data
=
*
pdata
;
u32
size
=
*
psize
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvkm_object_ctor
(
&
nvkm_dmaobj_func
,
oclass
,
&
dmaobj
->
object
);
dmaobj
->
func
=
func
;
...
...
@@ -77,7 +77,7 @@ nvkm_dmaobj_ctor(const struct nvkm_dmaobj_func *func, struct nvkm_dma *dma,
RB_CLEAR_NODE
(
&
dmaobj
->
rb
);
nvif_ioctl
(
parent
,
"create dma size %d
\n
"
,
*
psize
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
true
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
true
)
))
{
nvif_ioctl
(
parent
,
"create dma vers %d target %d access %d "
"start %016llx limit %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
target
,
args
->
v0
.
access
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
View file @
f01c4e68
...
...
@@ -87,10 +87,11 @@ gf100_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
if
(
ret
)
return
ret
;
ret
=
-
ENOSYS
;
args
=
data
;
nvif_ioctl
(
parent
,
"create gf100 dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create gf100 dma vers %d priv %d kind %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
priv
,
args
->
v0
.
kind
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
View file @
f01c4e68
...
...
@@ -85,10 +85,11 @@ gf119_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
if
(
ret
)
return
ret
;
ret
=
-
ENOSYS
;
args
=
data
;
nvif_ioctl
(
parent
,
"create gf119 dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create gf100 dma vers %d page %d kind %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
page
,
args
->
v0
.
kind
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
View file @
f01c4e68
...
...
@@ -87,10 +87,11 @@ nv50_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
if
(
ret
)
return
ret
;
ret
=
-
ENOSYS
;
args
=
data
;
nvif_ioctl
(
parent
,
"create nv50 dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create nv50 dma vers %d priv %d part %d "
"comp %d kind %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
priv
,
args
->
v0
.
part
,
args
->
v0
.
comp
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
View file @
f01c4e68
...
...
@@ -129,9 +129,9 @@ nvkm_fifo_uevent_ctor(struct nvkm_object *object, void *data, u32 size,
union
{
struct
nvif_notify_uevent_req
none
;
}
*
req
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unvers
(
req
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
req
->
none
)
))
{
notify
->
size
=
sizeof
(
struct
nvif_notify_uevent_rep
);
notify
->
types
=
1
;
notify
->
index
=
0
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c
View file @
f01c4e68
...
...
@@ -40,10 +40,10 @@ g84_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
}
*
args
=
data
;
struct
nv50_fifo
*
fifo
=
nv50_fifo
(
base
);
struct
nv50_fifo_chan
*
chan
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d vm %llx "
"pushbuf %llx offset %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
vm
,
args
->
v0
.
pushbuf
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
View file @
f01c4e68
...
...
@@ -168,10 +168,10 @@ nv04_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv04_fifo_chan
*
chan
=
NULL
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
struct
nvkm_instmem
*
imem
=
device
->
imem
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d pushbuf %llx "
"offset %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
offset
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c
View file @
f01c4e68
...
...
@@ -44,10 +44,10 @@ nv10_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv04_fifo_chan
*
chan
=
NULL
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
struct
nvkm_instmem
*
imem
=
device
->
imem
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d pushbuf %llx "
"offset %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
offset
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c
View file @
f01c4e68
...
...
@@ -44,10 +44,10 @@ nv17_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv04_fifo_chan
*
chan
=
NULL
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
struct
nvkm_instmem
*
imem
=
device
->
imem
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d pushbuf %llx "
"offset %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
offset
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c
View file @
f01c4e68
...
...
@@ -189,10 +189,10 @@ nv40_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv04_fifo_chan
*
chan
=
NULL
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
struct
nvkm_instmem
*
imem
=
device
->
imem
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d pushbuf %llx "
"offset %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
pushbuf
,
args
->
v0
.
offset
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c
View file @
f01c4e68
...
...
@@ -40,10 +40,10 @@ nv50_fifo_dma_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
}
*
args
=
data
;
struct
nv50_fifo
*
fifo
=
nv50_fifo
(
base
);
struct
nv50_fifo_chan
*
chan
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel dma size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel dma vers %d vm %llx "
"pushbuf %llx offset %016llx
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
vm
,
args
->
v0
.
pushbuf
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c
View file @
f01c4e68
...
...
@@ -41,10 +41,10 @@ g84_fifo_gpfifo_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv50_fifo
*
fifo
=
nv50_fifo
(
base
);
struct
nv50_fifo_chan
*
chan
;
u64
ioffset
,
ilength
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel gpfifo size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel gpfifo vers %d vm %llx "
"pushbuf %llx ioffset %016llx "
"ilength %08x
\n
"
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
View file @
f01c4e68
...
...
@@ -200,10 +200,10 @@ gf100_fifo_gpfifo_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nvkm_object
*
parent
=
oclass
->
parent
;
struct
gf100_fifo_chan
*
chan
;
u64
usermem
,
ioffset
,
ilength
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
parent
,
"create channel gpfifo size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel gpfifo vers %d vm %llx "
"ioffset %016llx ilength %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
vm
,
args
->
v0
.
ioffset
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c
View file @
f01c4e68
...
...
@@ -214,10 +214,10 @@ gk104_fifo_gpfifo_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
gk104_fifo_chan
*
chan
;
u64
usermem
,
ioffset
,
ilength
;
u32
engines
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
parent
,
"create channel gpfifo size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel gpfifo vers %d vm %llx "
"ioffset %016llx ilength %08x engine %08x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
vm
,
args
->
v0
.
ioffset
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c
View file @
f01c4e68
...
...
@@ -41,10 +41,10 @@ nv50_fifo_gpfifo_new(struct nvkm_fifo *base, const struct nvkm_oclass *oclass,
struct
nv50_fifo
*
fifo
=
nv50_fifo
(
base
);
struct
nv50_fifo_chan
*
chan
;
u64
ioffset
,
ilength
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create channel gpfifo size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create channel gpfifo vers %d vm %llx "
"pushbuf %llx ioffset %016llx "
"ilength %08x
\n
"
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
View file @
f01c4e68
...
...
@@ -148,9 +148,9 @@ gf100_fermi_mthd_zbc_color(struct nvkm_object *object, void *data, u32 size)
union
{
struct
fermi_a_zbc_color_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
switch
(
args
->
v0
.
format
)
{
case
FERMI_A_ZBC_COLOR_V0_FMT_ZERO
:
case
FERMI_A_ZBC_COLOR_V0_FMT_UNORM_ONE
:
...
...
@@ -194,9 +194,9 @@ gf100_fermi_mthd_zbc_depth(struct nvkm_object *object, void *data, u32 size)
union
{
struct
fermi_a_zbc_depth_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
switch
(
args
->
v0
.
format
)
{
case
FERMI_A_ZBC_DEPTH_V0_FMT_FP32
:
ret
=
gf100_gr_zbc_depth_get
(
gr
,
args
->
v0
.
format
,
...
...
@@ -214,6 +214,7 @@ gf100_fermi_mthd_zbc_depth(struct nvkm_object *object, void *data, u32 size)
static
int
gf100_fermi_mthd
(
struct
nvkm_object
*
object
,
u32
mthd
,
void
*
data
,
u32
size
)
{
nvif_ioctl
(
object
,
"fermi mthd %08x
\n
"
,
mthd
);
switch
(
mthd
)
{
case
FERMI_A_ZBC_COLOR
:
return
gf100_fermi_mthd_zbc_color
(
object
,
data
,
size
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c
View file @
f01c4e68
...
...
@@ -212,10 +212,10 @@ nvkm_perfdom_init(struct nvkm_perfdom *dom, void *data, u32 size)
}
*
args
=
data
;
struct
nvkm_object
*
object
=
&
dom
->
object
;
struct
nvkm_pm
*
pm
=
dom
->
perfmon
->
pm
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
object
,
"perfdom init size %d
\n
"
,
size
);
if
(
nvif_unvers
(
args
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
args
->
none
)
))
{
nvif_ioctl
(
object
,
"perfdom init
\n
"
);
}
else
return
ret
;
...
...
@@ -242,10 +242,10 @@ nvkm_perfdom_sample(struct nvkm_perfdom *dom, void *data, u32 size)
}
*
args
=
data
;
struct
nvkm_object
*
object
=
&
dom
->
object
;
struct
nvkm_pm
*
pm
=
dom
->
perfmon
->
pm
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"perfdom sample size %d
\n
"
,
size
);
if
(
nvif_unvers
(
args
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
args
->
none
)
))
{
nvif_ioctl
(
object
,
"perfdom sample
\n
"
);
}
else
return
ret
;
...
...
@@ -266,10 +266,10 @@ nvkm_perfdom_read(struct nvkm_perfdom *dom, void *data, u32 size)
}
*
args
=
data
;
struct
nvkm_object
*
object
=
&
dom
->
object
;
struct
nvkm_pm
*
pm
=
dom
->
perfmon
->
pm
;
int
ret
,
i
;
int
ret
=
-
ENOSYS
,
i
;
nvif_ioctl
(
object
,
"perfdom read size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"perfdom read vers %d
\n
"
,
args
->
v0
.
version
);
}
else
return
ret
;
...
...
@@ -376,10 +376,10 @@ nvkm_perfdom_new_(struct nvkm_perfmon *perfmon,
struct
nvkm_perfctr
*
ctr
[
4
]
=
{};
struct
nvkm_perfdom
*
dom
;
int
c
,
s
,
m
;
int
ret
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
parent
,
"create perfdom size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
parent
,
"create perfdom vers %d dom %d mode %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
domain
,
args
->
v0
.
mode
);
}
else
...
...
@@ -441,10 +441,10 @@ nvkm_perfmon_mthd_query_domain(struct nvkm_perfmon *perfmon,
struct
nvkm_pm
*
pm
=
perfmon
->
pm
;
struct
nvkm_perfdom
*
dom
;
u8
domain_nr
;
int
di
,
ret
;
int
di
,
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"perfmon query domain size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"perfmon domain vers %d iter %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
iter
);
di
=
(
args
->
v0
.
iter
&
0xff
)
-
1
;
...
...
@@ -492,10 +492,10 @@ nvkm_perfmon_mthd_query_signal(struct nvkm_perfmon *perfmon,
struct
nvkm_perfsig
*
sig
;
const
bool
all
=
nvkm_boolopt
(
device
->
cfgopt
,
"NvPmShowAll"
,
false
);
const
bool
raw
=
nvkm_boolopt
(
device
->
cfgopt
,
"NvPmUnnamed"
,
all
);
int
ret
,
si
;
int
ret
=
-
ENOSYS
,
si
;
nvif_ioctl
(
object
,
"perfmon query signal size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"perfmon query signal vers %d dom %d iter %04x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
domain
,
args
->
v0
.
iter
);
...
...
@@ -545,10 +545,10 @@ nvkm_perfmon_mthd_query_source(struct nvkm_perfmon *perfmon,
struct
nvkm_perfsig
*
sig
;
struct
nvkm_perfsrc
*
src
;
u8
source_nr
=
0
;
int
si
,
ret
;
int
si
,
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"perfmon query source size %d
\n
"
,
size
);
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
nvif_ioctl
(
object
,
"perfmon source vers %d dom %d sig %02x iter %02x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
domain
,
args
->
v0
.
signal
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
View file @
f01c4e68
...
...
@@ -53,9 +53,9 @@ nvkm_sw_chan_event_ctor(struct nvkm_object *object, void *data, u32 size,
union
{
struct
nvif_notify_uevent_req
none
;
}
*
req
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unvers
(
req
->
none
))
{
if
(
!
(
ret
=
nvif_unvers
(
ret
,
&
data
,
&
size
,
req
->
none
)
))
{
notify
->
size
=
sizeof
(
struct
nvif_notify_uevent_rep
);
notify
->
types
=
1
;
notify
->
index
=
0
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
View file @
f01c4e68
...
...
@@ -47,9 +47,9 @@ nv04_nvsw_mthd_get_ref(struct nvkm_nvsw *nvsw, void *data, u32 size)
union
{
struct
nv04_nvsw_get_ref_v0
v0
;
}
*
args
=
data
;
int
ret
;
int
ret
=
-
ENOSYS
;
if
(
nvif_unpack
(
args
->
v0
,
0
,
0
,
false
))
{
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)
))
{
args
->
v0
.
ref
=
atomic_read
(
&
chan
->
ref
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment