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
49bd8da5
Commit
49bd8da5
authored
Aug 20, 2015
by
Ben Skeggs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drm/nouveau/i2c: convert to new-style nvkm_subdev
Signed-off-by:
Ben Skeggs
<
bskeggs@redhat.com
>
parent
2ea7249f
Changes
23
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
200 additions
and
327 deletions
+200
-327
drivers/gpu/drm/nouveau/include/nvif/device.h
drivers/gpu/drm/nouveau/include/nvif/device.h
+1
-1
drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
+11
-15
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
+67
-67
drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c
+0
-9
drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c
+0
-7
drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
+0
-3
drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
+0
-2
drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
+0
-8
drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
+0
-4
drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
+0
-5
drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
+0
-16
drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
+0
-14
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
+1
-1
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
+44
-69
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
+9
-10
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h
+4
-26
No files found.
drivers/gpu/drm/nouveau/include/nvif/device.h
View file @
49bd8da5
...
@@ -56,7 +56,7 @@ u64 nvif_device_time(struct nvif_device *);
...
@@ -56,7 +56,7 @@ u64 nvif_device_time(struct nvif_device *);
#define nvxx_bar(a) nvxx_device(a)->bar
#define nvxx_bar(a) nvxx_device(a)->bar
#define nvxx_gpio(a) nvxx_device(a)->gpio
#define nvxx_gpio(a) nvxx_device(a)->gpio
#define nvxx_clk(a) nvxx_device(a)->clk
#define nvxx_clk(a) nvxx_device(a)->clk
#define nvxx_i2c(a) nv
km_i2c(nvxx_device(a))
#define nvxx_i2c(a) nv
xx_device(a)->i2c
#define nvxx_therm(a) nvkm_therm(nvxx_device(a))
#define nvxx_therm(a) nvkm_therm(nvxx_device(a))
#include <core/device.h>
#include <core/device.h>
...
...
drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
View file @
49bd8da5
...
@@ -69,31 +69,27 @@ int nvkm_i2c_aux_lnk_ctl(struct nvkm_i2c_aux *, int link_nr, int link_bw,
...
@@ -69,31 +69,27 @@ int nvkm_i2c_aux_lnk_ctl(struct nvkm_i2c_aux *, int link_nr, int link_bw,
bool
enhanced_framing
);
bool
enhanced_framing
);
struct
nvkm_i2c
{
struct
nvkm_i2c
{
const
struct
nvkm_i2c_func
*
func
;
struct
nvkm_subdev
subdev
;
struct
nvkm_subdev
subdev
;
struct
nvkm_event
event
;
struct
list_head
pad
;
struct
list_head
pad
;
struct
list_head
bus
;
struct
list_head
bus
;
struct
list_head
aux
;
struct
list_head
aux
;
struct
nvkm_event
event
;
};
};
struct
nvkm_i2c_bus
*
nvkm_i2c_bus_find
(
struct
nvkm_i2c
*
,
int
);
struct
nvkm_i2c_bus
*
nvkm_i2c_bus_find
(
struct
nvkm_i2c
*
,
int
);
struct
nvkm_i2c_aux
*
nvkm_i2c_aux_find
(
struct
nvkm_i2c
*
,
int
);
struct
nvkm_i2c_aux
*
nvkm_i2c_aux_find
(
struct
nvkm_i2c
*
,
int
);
static
inline
struct
nvkm_i2c
*
int
nv04_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
nvkm_i2c
(
void
*
obj
)
int
nv4e_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
{
int
nv50_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
return
(
void
*
)
nvkm_subdev
(
obj
,
NVDEV_SUBDEV_I2C
);
int
g94_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
}
int
gf117_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
int
gf119_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
extern
struct
nvkm_oclass
*
nv04_i2c_oclass
;
int
gk104_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
extern
struct
nvkm_oclass
*
nv4e_i2c_oclass
;
int
gm204_i2c_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_i2c
**
);
extern
struct
nvkm_oclass
*
nv50_i2c_oclass
;
extern
struct
nvkm_oclass
*
g94_i2c_oclass
;
extern
struct
nvkm_oclass
*
gf110_i2c_oclass
;
extern
struct
nvkm_oclass
*
gf117_i2c_oclass
;
extern
struct
nvkm_oclass
*
gk104_i2c_oclass
;
extern
struct
nvkm_oclass
*
gm204_i2c_oclass
;
static
inline
int
static
inline
int
nvkm_rdi2cr
(
struct
i2c_adapter
*
adap
,
u8
addr
,
u8
reg
)
nvkm_rdi2cr
(
struct
i2c_adapter
*
adap
,
u8
addr
,
u8
reg
)
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
View file @
49bd8da5
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ gf100_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0xc0
:
case
0xc0
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
...
@@ -52,7 +51,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -52,7 +51,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xc4
:
case
0xc4
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
...
@@ -76,7 +74,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -76,7 +74,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xc3
:
case
0xc3
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -99,7 +96,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -99,7 +96,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xce
:
case
0xce
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
...
@@ -123,7 +119,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -123,7 +119,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xcf
:
case
0xcf
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -146,7 +141,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -146,7 +141,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xc1
:
case
0xc1
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -169,7 +163,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -169,7 +163,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf108_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf108_pm_oclass
;
break
;
break
;
case
0xc8
:
case
0xc8
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf100_mc_oclass
;
...
@@ -193,7 +186,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -193,7 +186,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf100_pm_oclass
;
break
;
break
;
case
0xd9
:
case
0xd9
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gf110_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -216,7 +208,6 @@ gf100_identify(struct nvkm_device *device)
...
@@ -216,7 +208,6 @@ gf100_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf117_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gf117_pm_oclass
;
break
;
break
;
case
0xd7
:
case
0xd7
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gf117_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ gk104_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0xe4
:
case
0xe4
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -53,7 +52,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -53,7 +52,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gk104_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gk104_pm_oclass
;
break
;
break
;
case
0xe7
:
case
0xe7
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -78,7 +76,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -78,7 +76,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gk104_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gk104_pm_oclass
;
break
;
break
;
case
0xe6
:
case
0xe6
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -119,7 +116,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -119,7 +116,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_SUBDEV_PMU
]
=
gk20a_pmu_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PMU
]
=
gk20a_pmu_oclass
;
break
;
break
;
case
0xf0
:
case
0xf0
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -144,7 +140,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -144,7 +140,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
&
gk110_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
&
gk110_pm_oclass
;
break
;
break
;
case
0xf1
:
case
0xf1
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gf110_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gf106_mc_oclass
;
...
@@ -169,7 +164,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -169,7 +164,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
&
gk110_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
&
gk110_pm_oclass
;
break
;
break
;
case
0x106
:
case
0x106
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
...
@@ -193,7 +187,6 @@ gk104_identify(struct nvkm_device *device)
...
@@ -193,7 +187,6 @@ gk104_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_MSPPP
]
=
&
gf100_msppp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_MSPPP
]
=
&
gf100_msppp_oclass
;
break
;
break
;
case
0x108
:
case
0x108
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gk104_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gf110_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ gm100_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ gm100_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x117
:
case
0x117
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gf110_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gm107_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gm107_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
gk20a_mc_oclass
;
...
@@ -59,7 +58,6 @@ gm100_identify(struct nvkm_device *device)
...
@@ -59,7 +58,6 @@ gm100_identify(struct nvkm_device *device)
#endif
#endif
break
;
break
;
case
0x124
:
case
0x124
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gm204_i2c_oclass
;
#if 0
#if 0
/* looks to be some non-trivial changes */
/* looks to be some non-trivial changes */
/* priv ring says no to 0x10eb14 writes */
/* priv ring says no to 0x10eb14 writes */
...
@@ -91,7 +89,6 @@ gm100_identify(struct nvkm_device *device)
...
@@ -91,7 +89,6 @@ gm100_identify(struct nvkm_device *device)
#endif
#endif
break
;
break
;
case
0x126
:
case
0x126
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
gm204_i2c_oclass
;
#if 0
#if 0
/* looks to be some non-trivial changes */
/* looks to be some non-trivial changes */
/* priv ring says no to 0x10eb14 writes */
/* priv ring says no to 0x10eb14 writes */
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv04_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv04_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x04
:
case
0x04
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -40,7 +39,6 @@ nv04_identify(struct nvkm_device *device)
...
@@ -40,7 +39,6 @@ nv04_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x05
:
case
0x05
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv10_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x10
:
case
0x10
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -38,7 +37,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -38,7 +37,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x15
:
case
0x15
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -50,7 +48,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -50,7 +48,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x16
:
case
0x16
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -62,7 +59,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -62,7 +59,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x1a
:
case
0x1a
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -74,7 +70,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -74,7 +70,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x11
:
case
0x11
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -86,7 +81,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -86,7 +81,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x17
:
case
0x17
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -98,7 +92,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -98,7 +92,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x1f
:
case
0x1f
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -110,7 +103,6 @@ nv10_identify(struct nvkm_device *device)
...
@@ -110,7 +103,6 @@ nv10_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x18
:
case
0x18
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv20_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv20_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x20
:
case
0x20
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -40,7 +39,6 @@ nv20_identify(struct nvkm_device *device)
...
@@ -40,7 +39,6 @@ nv20_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x25
:
case
0x25
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -52,7 +50,6 @@ nv20_identify(struct nvkm_device *device)
...
@@ -52,7 +50,6 @@ nv20_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x28
:
case
0x28
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -64,7 +61,6 @@ nv20_identify(struct nvkm_device *device)
...
@@ -64,7 +61,6 @@ nv20_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x2a
:
case
0x2a
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv30_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv30_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x30
:
case
0x30
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -40,7 +39,6 @@ nv30_identify(struct nvkm_device *device)
...
@@ -40,7 +39,6 @@ nv30_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x35
:
case
0x35
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -52,7 +50,6 @@ nv30_identify(struct nvkm_device *device)
...
@@ -52,7 +50,6 @@ nv30_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x31
:
case
0x31
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -65,7 +62,6 @@ nv30_identify(struct nvkm_device *device)
...
@@ -65,7 +62,6 @@ nv30_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x36
:
case
0x36
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
@@ -78,7 +74,6 @@ nv30_identify(struct nvkm_device *device)
...
@@ -78,7 +74,6 @@ nv30_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
nv04_disp_oclass
;
break
;
break
;
case
0x34
:
case
0x34
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv04_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv04_instmem_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv40_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x40
:
case
0x40
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -44,7 +43,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -44,7 +43,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x41
:
case
0x41
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -60,7 +58,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -60,7 +58,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x42
:
case
0x42
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -76,7 +73,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -76,7 +73,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x43
:
case
0x43
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -92,7 +88,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -92,7 +88,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x45
:
case
0x45
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -108,7 +103,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -108,7 +103,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x47
:
case
0x47
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -124,7 +118,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -124,7 +118,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x49
:
case
0x49
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -140,7 +133,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -140,7 +133,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x4b
:
case
0x4b
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv40_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -156,7 +148,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -156,7 +148,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x44
:
case
0x44
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv44_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv44_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -172,7 +163,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -172,7 +163,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x46
:
case
0x46
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -188,7 +178,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -188,7 +178,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x4a
:
case
0x4a
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv44_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv44_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -204,7 +193,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -204,7 +193,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x4c
:
case
0x4c
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -220,7 +208,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -220,7 +208,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x4e
:
case
0x4e
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv4e_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -236,7 +223,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -236,7 +223,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x63
:
case
0x63
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -252,7 +238,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -252,7 +238,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x67
:
case
0x67
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
@@ -268,7 +253,6 @@ nv40_identify(struct nvkm_device *device)
...
@@ -268,7 +253,6 @@ nv40_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv40_pm_oclass
;
break
;
break
;
case
0x68
:
case
0x68
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv04_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv40_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv4c_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_TIMER
]
=
&
nv04_timer_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
View file @
49bd8da5
...
@@ -28,7 +28,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -28,7 +28,6 @@ nv50_identify(struct nvkm_device *device)
{
{
switch
(
device
->
chipset
)
{
switch
(
device
->
chipset
)
{
case
0x50
:
case
0x50
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv50_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv50_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
nv50_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
...
@@ -45,7 +44,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -45,7 +44,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv50_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
nv50_pm_oclass
;
break
;
break
;
case
0x84
:
case
0x84
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv50_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
...
@@ -65,7 +63,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -65,7 +63,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0x86
:
case
0x86
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv50_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
...
@@ -85,7 +82,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -85,7 +82,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0x92
:
case
0x92
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv50_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
nv50_mc_oclass
;
...
@@ -105,7 +101,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -105,7 +101,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0x94
:
case
0x94
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g94_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g94_mc_oclass
;
...
@@ -125,7 +120,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -125,7 +120,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0x96
:
case
0x96
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g94_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g94_mc_oclass
;
...
@@ -145,7 +139,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -145,7 +139,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0x98
:
case
0x98
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -165,7 +158,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -165,7 +158,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0xa0
:
case
0xa0
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
nv50_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -185,7 +177,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -185,7 +177,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt200_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt200_pm_oclass
;
break
;
break
;
case
0xaa
:
case
0xaa
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -205,7 +196,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -205,7 +196,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0xac
:
case
0xac
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
g84_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -225,7 +215,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -225,7 +215,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
g84_pm_oclass
;
break
;
break
;
case
0xa3
:
case
0xa3
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -247,7 +236,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -247,7 +236,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
break
;
break
;
case
0xa5
:
case
0xa5
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -268,7 +256,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -268,7 +256,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
break
;
break
;
case
0xa8
:
case
0xa8
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
@@ -289,7 +276,6 @@ nv50_identify(struct nvkm_device *device)
...
@@ -289,7 +276,6 @@ nv50_identify(struct nvkm_device *device)
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
device
->
oclass
[
NVDEV_ENGINE_PM
]
=
gt215_pm_oclass
;
break
;
break
;
case
0xaf
:
case
0xaf
:
device
->
oclass
[
NVDEV_SUBDEV_I2C
]
=
g94_i2c_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_THERM
]
=
&
gt215_therm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MXM
]
=
&
nv50_mxm_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_MC
]
=
g98_mc_oclass
;
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
View file @
49bd8da5
...
@@ -3,8 +3,8 @@ nvkm-y += nvkm/subdev/i2c/nv04.o
...
@@ -3,8 +3,8 @@ nvkm-y += nvkm/subdev/i2c/nv04.o
nvkm-y += nvkm/subdev/i2c/nv4e.o
nvkm-y += nvkm/subdev/i2c/nv4e.o
nvkm-y += nvkm/subdev/i2c/nv50.o
nvkm-y += nvkm/subdev/i2c/nv50.o
nvkm-y += nvkm/subdev/i2c/g94.o
nvkm-y += nvkm/subdev/i2c/g94.o
nvkm-y += nvkm/subdev/i2c/gf110.o
nvkm-y += nvkm/subdev/i2c/gf117.o
nvkm-y += nvkm/subdev/i2c/gf117.o
nvkm-y += nvkm/subdev/i2c/gf119.o
nvkm-y += nvkm/subdev/i2c/gk104.o
nvkm-y += nvkm/subdev/i2c/gk104.o
nvkm-y += nvkm/subdev/i2c/gm204.o
nvkm-y += nvkm/subdev/i2c/gm204.o
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
View file @
49bd8da5
...
@@ -91,9 +91,8 @@ nvkm_i2c_intr_fini(struct nvkm_event *event, int type, int id)
...
@@ -91,9 +91,8 @@ nvkm_i2c_intr_fini(struct nvkm_event *event, int type, int id)
{
{
struct
nvkm_i2c
*
i2c
=
container_of
(
event
,
typeof
(
*
i2c
),
event
);
struct
nvkm_i2c
*
i2c
=
container_of
(
event
,
typeof
(
*
i2c
),
event
);
struct
nvkm_i2c_aux
*
aux
=
nvkm_i2c_aux_find
(
i2c
,
id
);
struct
nvkm_i2c_aux
*
aux
=
nvkm_i2c_aux_find
(
i2c
,
id
);
const
struct
nvkm_i2c_impl
*
impl
=
(
void
*
)
nv_object
(
i2c
)
->
oclass
;
if
(
aux
)
if
(
aux
)
i
mpl
->
aux_mask
(
i2c
,
type
,
aux
->
intr
,
0
);
i
2c
->
func
->
aux_mask
(
i2c
,
type
,
aux
->
intr
,
0
);
}
}
static
void
static
void
...
@@ -101,9 +100,8 @@ nvkm_i2c_intr_init(struct nvkm_event *event, int type, int id)
...
@@ -101,9 +100,8 @@ nvkm_i2c_intr_init(struct nvkm_event *event, int type, int id)
{
{
struct
nvkm_i2c
*
i2c
=
container_of
(
event
,
typeof
(
*
i2c
),
event
);
struct
nvkm_i2c
*
i2c
=
container_of
(
event
,
typeof
(
*
i2c
),
event
);
struct
nvkm_i2c_aux
*
aux
=
nvkm_i2c_aux_find
(
i2c
,
id
);
struct
nvkm_i2c_aux
*
aux
=
nvkm_i2c_aux_find
(
i2c
,
id
);
const
struct
nvkm_i2c_impl
*
impl
=
(
void
*
)
nv_object
(
i2c
)
->
oclass
;
if
(
aux
)
if
(
aux
)
i
mpl
->
aux_mask
(
i2c
,
type
,
aux
->
intr
,
aux
->
intr
);
i
2c
->
func
->
aux_mask
(
i2c
,
type
,
aux
->
intr
,
aux
->
intr
);
}
}
static
int
static
int
...
@@ -120,18 +118,24 @@ nvkm_i2c_intr_ctor(struct nvkm_object *object, void *data, u32 size,
...
@@ -120,18 +118,24 @@ nvkm_i2c_intr_ctor(struct nvkm_object *object, void *data, u32 size,
return
-
EINVAL
;
return
-
EINVAL
;
}
}
static
const
struct
nvkm_event_func
nvkm_i2c_intr_func
=
{
.
ctor
=
nvkm_i2c_intr_ctor
,
.
init
=
nvkm_i2c_intr_init
,
.
fini
=
nvkm_i2c_intr_fini
,
};
static
void
static
void
nvkm_i2c_intr
(
struct
nvkm_subdev
*
obj
)
nvkm_i2c_intr
(
struct
nvkm_subdev
*
subdev
)
{
{
struct
nvkm_i2c
*
i2c
=
container_of
(
obj
,
typeof
(
*
i2c
),
subdev
);
struct
nvkm_i2c
*
i2c
=
nvkm_i2c
(
subdev
);
struct
nvkm_i2c_impl
*
impl
=
(
void
*
)
i2c
->
subdev
.
object
.
oclass
;
struct
nvkm_i2c_aux
*
aux
;
struct
nvkm_i2c_aux
*
aux
;
u32
hi
,
lo
,
rq
,
tx
;
u32
hi
,
lo
,
rq
,
tx
;
if
(
!
i
mpl
->
aux_stat
)
if
(
!
i
2c
->
func
->
aux_stat
)
return
;
return
;
i
mpl
->
aux_stat
(
i2c
,
&
hi
,
&
lo
,
&
rq
,
&
tx
);
i
2c
->
func
->
aux_stat
(
i2c
,
&
hi
,
&
lo
,
&
rq
,
&
tx
);
if
(
!
hi
&&
!
lo
&&
!
rq
&&
!
tx
)
if
(
!
hi
&&
!
lo
&&
!
rq
&&
!
tx
)
return
;
return
;
...
@@ -151,44 +155,31 @@ nvkm_i2c_intr(struct nvkm_subdev *obj)
...
@@ -151,44 +155,31 @@ nvkm_i2c_intr(struct nvkm_subdev *obj)
}
}
}
}
static
const
struct
nvkm_event_func
static
int
nvkm_i2c_intr_func
=
{
nvkm_i2c_fini
(
struct
nvkm_subdev
*
subdev
,
bool
suspend
)
.
ctor
=
nvkm_i2c_intr_ctor
,
.
init
=
nvkm_i2c_intr_init
,
.
fini
=
nvkm_i2c_intr_fini
,
};
int
_nvkm_i2c_fini
(
struct
nvkm_object
*
object
,
bool
suspend
)
{
{
struct
nvkm_i2c_impl
*
impl
=
(
void
*
)
nv_oclass
(
object
);
struct
nvkm_i2c
*
i2c
=
nvkm_i2c
(
subdev
);
struct
nvkm_i2c
*
i2c
=
(
void
*
)
object
;
struct
nvkm_i2c_pad
*
pad
;
struct
nvkm_i2c_pad
*
pad
;
u32
mask
;
u32
mask
;
if
((
mask
=
(
1
<<
i
mpl
->
aux
)
-
1
),
impl
->
aux_stat
)
{
if
((
mask
=
(
1
<<
i
2c
->
func
->
aux
)
-
1
),
i2c
->
func
->
aux_stat
)
{
i
mpl
->
aux_mask
(
i2c
,
NVKM_I2C_ANY
,
mask
,
0
);
i
2c
->
func
->
aux_mask
(
i2c
,
NVKM_I2C_ANY
,
mask
,
0
);
i
mpl
->
aux_stat
(
i2c
,
&
mask
,
&
mask
,
&
mask
,
&
mask
);
i
2c
->
func
->
aux_stat
(
i2c
,
&
mask
,
&
mask
,
&
mask
,
&
mask
);
}
}
list_for_each_entry
(
pad
,
&
i2c
->
pad
,
head
)
{
list_for_each_entry
(
pad
,
&
i2c
->
pad
,
head
)
{
nvkm_i2c_pad_fini
(
pad
);
nvkm_i2c_pad_fini
(
pad
);
}
}
return
nvkm_subdev_fini_old
(
&
i2c
->
subdev
,
suspend
)
;
return
0
;
}
}
int
static
int
_nvkm_i2c_init
(
struct
nvkm_object
*
object
)
nvkm_i2c_init
(
struct
nvkm_subdev
*
subdev
)
{
{
struct
nvkm_i2c
*
i2c
=
(
void
*
)
object
;
struct
nvkm_i2c
*
i2c
=
nvkm_i2c
(
subdev
)
;
struct
nvkm_i2c_bus
*
bus
;
struct
nvkm_i2c_bus
*
bus
;
struct
nvkm_i2c_pad
*
pad
;
struct
nvkm_i2c_pad
*
pad
;
int
ret
;
ret
=
nvkm_subdev_init_old
(
&
i2c
->
subdev
);
if
(
ret
)
return
ret
;
list_for_each_entry
(
pad
,
&
i2c
->
pad
,
head
)
{
list_for_each_entry
(
pad
,
&
i2c
->
pad
,
head
)
{
nvkm_i2c_pad_init
(
pad
);
nvkm_i2c_pad_init
(
pad
);
...
@@ -201,10 +192,10 @@ _nvkm_i2c_init(struct nvkm_object *object)
...
@@ -201,10 +192,10 @@ _nvkm_i2c_init(struct nvkm_object *object)
return
0
;
return
0
;
}
}
void
static
void
*
_nvkm_i2c_dtor
(
struct
nvkm_object
*
object
)
nvkm_i2c_dtor
(
struct
nvkm_subdev
*
subdev
)
{
{
struct
nvkm_i2c
*
i2c
=
(
void
*
)
object
;
struct
nvkm_i2c
*
i2c
=
nvkm_i2c
(
subdev
)
;
nvkm_event_fini
(
&
i2c
->
event
);
nvkm_event_fini
(
&
i2c
->
event
);
...
@@ -226,9 +217,17 @@ _nvkm_i2c_dtor(struct nvkm_object *object)
...
@@ -226,9 +217,17 @@ _nvkm_i2c_dtor(struct nvkm_object *object)
nvkm_i2c_pad_del
(
&
pad
);
nvkm_i2c_pad_del
(
&
pad
);
}
}
nvkm_subdev_destroy
(
&
i2c
->
subdev
)
;
return
i2c
;
}
}
static
const
struct
nvkm_subdev_func
nvkm_i2c
=
{
.
dtor
=
nvkm_i2c_dtor
,
.
init
=
nvkm_i2c_init
,
.
fini
=
nvkm_i2c_fini
,
.
intr
=
nvkm_i2c_intr
,
};
static
const
struct
nvkm_i2c_drv
{
static
const
struct
nvkm_i2c_drv
{
u8
bios
;
u8
bios
;
u8
addr
;
u8
addr
;
...
@@ -242,11 +241,9 @@ nvkm_i2c_drv[] = {
...
@@ -242,11 +241,9 @@ nvkm_i2c_drv[] = {
};
};
int
int
nvkm_i2c_
create_
(
struct
nvkm_object
*
parent
,
struct
nvkm_object
*
engin
e
,
nvkm_i2c_
new_
(
const
struct
nvkm_i2c_func
*
func
,
struct
nvkm_device
*
devic
e
,
struct
nvkm_oclass
*
oclass
,
int
length
,
void
**
pobject
)
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
{
struct
nvkm_i2c_impl
*
impl
=
(
void
*
)
oclass
;
struct
nvkm_device
*
device
=
(
void
*
)
parent
;
struct
nvkm_bios
*
bios
=
device
->
bios
;
struct
nvkm_bios
*
bios
=
device
->
bios
;
struct
nvkm_i2c
*
i2c
;
struct
nvkm_i2c
*
i2c
;
struct
dcb_i2c_entry
ccbE
;
struct
dcb_i2c_entry
ccbE
;
...
@@ -254,17 +251,15 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
...
@@ -254,17 +251,15 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
u8
ver
,
hdr
;
u8
ver
,
hdr
;
int
ret
,
i
;
int
ret
,
i
;
ret
=
nvkm_subdev_create
(
parent
,
engine
,
oclass
,
0
,
"I2C"
,
"i2c"
,
&
i2c
);
if
(
!
(
i2c
=
*
pi2c
=
kzalloc
(
sizeof
(
*
i2c
),
GFP_KERNEL
)))
*
pobject
=
nv_object
(
i2c
);
return
-
ENOMEM
;
if
(
ret
)
return
ret
;
nvkm_subdev_ctor
(
&
nvkm_i2c
,
device
,
index
,
0
,
&
i2c
->
subdev
);
i2c
->
func
=
func
;
INIT_LIST_HEAD
(
&
i2c
->
pad
);
INIT_LIST_HEAD
(
&
i2c
->
pad
);
INIT_LIST_HEAD
(
&
i2c
->
bus
);
INIT_LIST_HEAD
(
&
i2c
->
bus
);
INIT_LIST_HEAD
(
&
i2c
->
aux
);
INIT_LIST_HEAD
(
&
i2c
->
aux
);
nv_subdev
(
i2c
)
->
intr
=
nvkm_i2c_intr
;
i
=
-
1
;
i
=
-
1
;
while
(
!
dcb_i2c_parse
(
bios
,
++
i
,
&
ccbE
))
{
while
(
!
dcb_i2c_parse
(
bios
,
++
i
,
&
ccbE
))
{
struct
nvkm_i2c_pad
*
pad
=
NULL
;
struct
nvkm_i2c_pad
*
pad
=
NULL
;
...
@@ -278,11 +273,11 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
...
@@ -278,11 +273,11 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
if
(
ccbE
.
share
!=
DCB_I2C_UNUSED
)
{
if
(
ccbE
.
share
!=
DCB_I2C_UNUSED
)
{
const
int
id
=
NVKM_I2C_PAD_HYBRID
(
ccbE
.
share
);
const
int
id
=
NVKM_I2C_PAD_HYBRID
(
ccbE
.
share
);
if
(
!
(
pad
=
nvkm_i2c_pad_find
(
i2c
,
id
)))
if
(
!
(
pad
=
nvkm_i2c_pad_find
(
i2c
,
id
)))
ret
=
impl
->
pad_s_new
(
i2c
,
id
,
&
pad
);
ret
=
func
->
pad_s_new
(
i2c
,
id
,
&
pad
);
else
else
ret
=
0
;
ret
=
0
;
}
else
{
}
else
{
ret
=
impl
->
pad_x_new
(
i2c
,
NVKM_I2C_PAD_CCB
(
i
),
&
pad
);
ret
=
func
->
pad_x_new
(
i2c
,
NVKM_I2C_PAD_CCB
(
i
),
&
pad
);
}
}
if
(
ret
)
{
if
(
ret
)
{
...
@@ -397,25 +392,5 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
...
@@ -397,25 +392,5 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
}
}
}
}
ret
=
nvkm_event_init
(
&
nvkm_i2c_intr_func
,
4
,
i
,
&
i2c
->
event
);
return
nvkm_event_init
(
&
nvkm_i2c_intr_func
,
4
,
i
,
&
i2c
->
event
);
if
(
ret
)
return
ret
;
return
0
;
}
int
_nvkm_i2c_ctor
(
struct
nvkm_object
*
parent
,
struct
nvkm_object
*
engine
,
struct
nvkm_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nvkm_object
**
pobject
)
{
struct
nvkm_i2c
*
i2c
;
int
ret
;
ret
=
nvkm_i2c_create
(
parent
,
engine
,
oclass
,
&
i2c
);
*
pobject
=
nv_object
(
i2c
);
if
(
ret
)
return
ret
;
return
0
;
}
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c
View file @
49bd8da5
...
@@ -56,18 +56,17 @@ g94_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
...
@@ -56,18 +56,17 @@ g94_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
nvkm_wr32
(
device
,
0x00e068
,
temp
);
nvkm_wr32
(
device
,
0x00e068
,
temp
);
}
}
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
g94_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
g94_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0x94
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
g94_i2c_pad_x_new
,
.
pad_x_new
=
g94_i2c_pad_x_new
,
.
pad_s_new
=
g94_i2c_pad_s_new
,
.
pad_s_new
=
g94_i2c_pad_s_new
,
.
aux
=
4
,
.
aux
=
4
,
.
aux_stat
=
g94_aux_stat
,
.
aux_stat
=
g94_aux_stat
,
.
aux_mask
=
g94_aux_mask
,
.
aux_mask
=
g94_aux_mask
,
}.
base
;
};
int
g94_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
g94_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
View file @
49bd8da5
...
@@ -24,14 +24,13 @@
...
@@ -24,14 +24,13 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
gf117_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
gf117_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0xd7
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_x_new
=
gf119_i2c_pad_x_new
,
}.
base
;
};
int
gf117_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
gf117_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf11
0
.c
→
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf11
9
.c
View file @
49bd8da5
...
@@ -24,18 +24,17 @@
...
@@ -24,18 +24,17 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
gf110_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
gf119_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0xd0
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_s_new
=
gf119_i2c_pad_s_new
,
.
pad_s_new
=
gf119_i2c_pad_s_new
,
.
aux
=
4
,
.
aux
=
4
,
.
aux_stat
=
g94_aux_stat
,
.
aux_stat
=
g94_aux_stat
,
.
aux_mask
=
g94_aux_mask
,
.
aux_mask
=
g94_aux_mask
,
}.
base
;
};
int
gf119_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
gf119_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c
View file @
49bd8da5
...
@@ -56,18 +56,17 @@ gk104_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
...
@@ -56,18 +56,17 @@ gk104_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
nvkm_wr32
(
device
,
0x00dc68
,
temp
);
nvkm_wr32
(
device
,
0x00dc68
,
temp
);
}
}
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
gk104_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
gk104_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0xe0
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_s_new
=
gf119_i2c_pad_s_new
,
.
pad_s_new
=
gf119_i2c_pad_s_new
,
.
aux
=
4
,
.
aux
=
4
,
.
aux_stat
=
gk104_aux_stat
,
.
aux_stat
=
gk104_aux_stat
,
.
aux_mask
=
gk104_aux_mask
,
.
aux_mask
=
gk104_aux_mask
,
}.
base
;
};
int
gk104_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
gk104_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
View file @
49bd8da5
...
@@ -24,18 +24,17 @@
...
@@ -24,18 +24,17 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
gm204_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
gm204_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0x24
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_x_new
=
gf119_i2c_pad_x_new
,
.
pad_s_new
=
gm204_i2c_pad_s_new
,
.
pad_s_new
=
gm204_i2c_pad_s_new
,
.
aux
=
8
,
.
aux
=
8
,
.
aux_stat
=
gk104_aux_stat
,
.
aux_stat
=
gk104_aux_stat
,
.
aux_mask
=
gk104_aux_mask
,
.
aux_mask
=
gk104_aux_mask
,
}.
base
;
};
int
gm204_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
gm204_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
View file @
49bd8da5
...
@@ -24,14 +24,13 @@
...
@@ -24,14 +24,13 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
nv04_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
nv04_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0x04
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
nv04_i2c_pad_new
,
.
pad_x_new
=
nv04_i2c_pad_new
,
}.
base
;
};
int
nv04_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
nv04_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
View file @
49bd8da5
...
@@ -24,14 +24,13 @@
...
@@ -24,14 +24,13 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
nv4e_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
nv4e_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0x4e
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
nv4e_i2c_pad_new
,
.
pad_x_new
=
nv4e_i2c_pad_new
,
}.
base
;
};
int
nv4e_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
nv4e_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
View file @
49bd8da5
...
@@ -24,14 +24,13 @@
...
@@ -24,14 +24,13 @@
#include "priv.h"
#include "priv.h"
#include "pad.h"
#include "pad.h"
struct
nvkm_oclass
*
static
const
struct
nvkm_i2c_func
nv50_i2c_oclass
=
&
(
struct
nvkm_i2c_impl
)
{
nv50_i2c
=
{
.
base
.
handle
=
NV_SUBDEV
(
I2C
,
0x50
),
.
base
.
ofuncs
=
&
(
struct
nvkm_ofuncs
)
{
.
ctor
=
_nvkm_i2c_ctor
,
.
dtor
=
_nvkm_i2c_dtor
,
.
init
=
_nvkm_i2c_init
,
.
fini
=
_nvkm_i2c_fini
,
},
.
pad_x_new
=
nv50_i2c_pad_new
,
.
pad_x_new
=
nv50_i2c_pad_new
,
}.
base
;
};
int
nv50_i2c_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_i2c
**
pi2c
)
{
return
nvkm_i2c_new_
(
&
nv50_i2c
,
device
,
index
,
pi2c
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h
View file @
49bd8da5
#ifndef __NVKM_I2C_PRIV_H__
#ifndef __NVKM_I2C_PRIV_H__
#define __NVKM_I2C_PRIV_H__
#define __NVKM_I2C_PRIV_H__
#define nvkm_i2c(p) container_of((p), struct nvkm_i2c, subdev)
#include <subdev/i2c.h>
#include <subdev/i2c.h>
#define nvkm_i2c_create(p,e,o,d) \
int
nvkm_i2c_new_
(
const
struct
nvkm_i2c_func
*
,
struct
nvkm_device
*
,
nvkm_i2c_create_((p), (e), (o), sizeof(**d), (void **)d)
int
index
,
struct
nvkm_i2c
**
);
#define nvkm_i2c_destroy(p) ({ \
struct nvkm_i2c *i2c = (p); \
_nvkm_i2c_dtor(nv_object(i2c)); \
})
#define nvkm_i2c_init(p) ({ \
struct nvkm_i2c *i2c = (p); \
_nvkm_i2c_init(nv_object(i2c)); \
})
#define nvkm_i2c_fini(p,s) ({ \
struct nvkm_i2c *i2c = (p); \
_nvkm_i2c_fini(nv_object(i2c), (s)); \
})
int
nvkm_i2c_create_
(
struct
nvkm_object
*
,
struct
nvkm_object
*
,
struct
nvkm_oclass
*
,
int
,
void
**
);
int
_nvkm_i2c_ctor
(
struct
nvkm_object
*
,
struct
nvkm_object
*
,
struct
nvkm_oclass
*
,
void
*
,
u32
,
struct
nvkm_object
**
);
void
_nvkm_i2c_dtor
(
struct
nvkm_object
*
);
int
_nvkm_i2c_init
(
struct
nvkm_object
*
);
int
_nvkm_i2c_fini
(
struct
nvkm_object
*
,
bool
);
struct
nvkm_i2c_impl
{
struct
nvkm_oclass
base
;
struct
nvkm_i2c_func
{
int
(
*
pad_x_new
)(
struct
nvkm_i2c
*
,
int
id
,
struct
nvkm_i2c_pad
**
);
int
(
*
pad_x_new
)(
struct
nvkm_i2c
*
,
int
id
,
struct
nvkm_i2c_pad
**
);
int
(
*
pad_s_new
)(
struct
nvkm_i2c
*
,
int
id
,
struct
nvkm_i2c_pad
**
);
int
(
*
pad_s_new
)(
struct
nvkm_i2c
*
,
int
id
,
struct
nvkm_i2c_pad
**
);
...
...
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