Commit | Line | Data |
---|---|---|
9274f4a9 BS |
1 | /* |
2 | * Copyright 2012 Red Hat Inc. | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | * copy of this software and associated documentation files (the "Software"), | |
6 | * to deal in the Software without restriction, including without limitation | |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 | * and/or sell copies of the Software, and to permit persons to whom the | |
9 | * Software is furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice shall be included in | |
12 | * all copies or substantial portions of the Software. | |
13 | * | |
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | |
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
20 | * OTHER DEALINGS IN THE SOFTWARE. | |
21 | * | |
22 | * Authors: Ben Skeggs | |
23 | */ | |
9719047b | 24 | #include "priv.h" |
9274f4a9 | 25 | |
9274f4a9 | 26 | int |
9719047b | 27 | gk104_identify(struct nvkm_device *device) |
9274f4a9 BS |
28 | { |
29 | switch (device->chipset) { | |
30 | case 0xe4: | |
05c7145d | 31 | device->oclass[NVDEV_ENGINE_FIFO ] = gk104_fifo_oclass; |
f84aff4e | 32 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 33 | device->oclass[NVDEV_ENGINE_GR ] = gk104_gr_oclass; |
878da15a | 34 | device->oclass[NVDEV_ENGINE_DISP ] = gk104_disp_oclass; |
1914f673 | 35 | device->oclass[NVDEV_ENGINE_PM ] = gk104_pm_oclass; |
9274f4a9 BS |
36 | break; |
37 | case 0xe7: | |
05c7145d | 38 | device->oclass[NVDEV_ENGINE_FIFO ] = gk104_fifo_oclass; |
f84aff4e | 39 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 40 | device->oclass[NVDEV_ENGINE_GR ] = gk104_gr_oclass; |
878da15a | 41 | device->oclass[NVDEV_ENGINE_DISP ] = gk104_disp_oclass; |
1914f673 | 42 | device->oclass[NVDEV_ENGINE_PM ] = gk104_pm_oclass; |
caba5570 BS |
43 | break; |
44 | case 0xe6: | |
05c7145d | 45 | device->oclass[NVDEV_ENGINE_FIFO ] = gk104_fifo_oclass; |
f84aff4e | 46 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 47 | device->oclass[NVDEV_ENGINE_GR ] = gk104_gr_oclass; |
878da15a | 48 | device->oclass[NVDEV_ENGINE_DISP ] = gk104_disp_oclass; |
1914f673 | 49 | device->oclass[NVDEV_ENGINE_PM ] = gk104_pm_oclass; |
9274f4a9 | 50 | break; |
52e98f1a | 51 | case 0xea: |
52e98f1a | 52 | device->oclass[NVDEV_ENGINE_FIFO ] = gk20a_fifo_oclass; |
f84aff4e | 53 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
b8bf04e1 | 54 | device->oclass[NVDEV_ENGINE_GR ] = gk20a_gr_oclass; |
1914f673 | 55 | device->oclass[NVDEV_ENGINE_PM ] = gk104_pm_oclass; |
52e98f1a | 56 | break; |
7b4f638b | 57 | case 0xf0: |
05c7145d | 58 | device->oclass[NVDEV_ENGINE_FIFO ] = gk104_fifo_oclass; |
f84aff4e | 59 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 60 | device->oclass[NVDEV_ENGINE_GR ] = gk110_gr_oclass; |
878da15a | 61 | device->oclass[NVDEV_ENGINE_DISP ] = gk110_disp_oclass; |
4d34686e | 62 | device->oclass[NVDEV_ENGINE_PM ] = &gk110_pm_oclass; |
9abdbab0 JR |
63 | break; |
64 | case 0xf1: | |
05c7145d | 65 | device->oclass[NVDEV_ENGINE_FIFO ] = gk104_fifo_oclass; |
f84aff4e | 66 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
b8bf04e1 | 67 | device->oclass[NVDEV_ENGINE_GR ] = gk110b_gr_oclass; |
878da15a | 68 | device->oclass[NVDEV_ENGINE_DISP ] = gk110_disp_oclass; |
4d34686e | 69 | device->oclass[NVDEV_ENGINE_PM ] = &gk110_pm_oclass; |
aabf19c2 | 70 | break; |
8d5e3af1 | 71 | case 0x106: |
05c7145d | 72 | device->oclass[NVDEV_ENGINE_FIFO ] = gk208_fifo_oclass; |
f84aff4e | 73 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 74 | device->oclass[NVDEV_ENGINE_GR ] = gk208_gr_oclass; |
878da15a | 75 | device->oclass[NVDEV_ENGINE_DISP ] = gk110_disp_oclass; |
8d5e3af1 | 76 | break; |
aabf19c2 | 77 | case 0x108: |
05c7145d | 78 | device->oclass[NVDEV_ENGINE_FIFO ] = gk208_fifo_oclass; |
f84aff4e | 79 | device->oclass[NVDEV_ENGINE_SW ] = gf100_sw_oclass; |
e3c71eb2 | 80 | device->oclass[NVDEV_ENGINE_GR ] = gk208_gr_oclass; |
878da15a | 81 | device->oclass[NVDEV_ENGINE_DISP ] = gk110_disp_oclass; |
7b4f638b | 82 | break; |
9274f4a9 | 83 | default: |
9274f4a9 BS |
84 | return -EINVAL; |
85 | } | |
86 | ||
87 | return 0; | |
88 | } |