mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/secboot: use nvkm_mc_intr_mask/unmask()
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
8a90b6fe8c
commit
2b80bb74fb
|
@ -43,8 +43,8 @@ struct nvkm_secboot {
|
||||||
const struct nvkm_secboot_func *func;
|
const struct nvkm_secboot_func *func;
|
||||||
struct nvkm_subdev subdev;
|
struct nvkm_subdev subdev;
|
||||||
|
|
||||||
|
enum nvkm_devidx devidx;
|
||||||
u32 base;
|
u32 base;
|
||||||
u32 irq_mask;
|
|
||||||
u32 enable_mask;
|
u32 enable_mask;
|
||||||
};
|
};
|
||||||
#define nvkm_secboot(p) container_of((p), struct nvkm_secboot, subdev)
|
#define nvkm_secboot(p) container_of((p), struct nvkm_secboot, subdev)
|
||||||
|
|
|
@ -19,8 +19,9 @@
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "priv.h"
|
#include "priv.h"
|
||||||
|
|
||||||
|
#include <subdev/mc.h>
|
||||||
#include <subdev/timer.h>
|
#include <subdev/timer.h>
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
|
@ -85,8 +86,7 @@ nvkm_secboot_falcon_enable(struct nvkm_secboot *sb)
|
||||||
|
|
||||||
/* enable IRQs */
|
/* enable IRQs */
|
||||||
nvkm_wr32(device, sb->base + 0x010, 0xff);
|
nvkm_wr32(device, sb->base + 0x010, 0xff);
|
||||||
nvkm_mask(device, 0x640, sb->irq_mask, sb->irq_mask);
|
nvkm_mc_intr_mask(device, sb->devidx, true);
|
||||||
nvkm_mask(device, 0x644, sb->irq_mask, sb->irq_mask);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -97,8 +97,7 @@ nvkm_secboot_falcon_disable(struct nvkm_secboot *sb)
|
||||||
struct nvkm_device *device = sb->subdev.device;
|
struct nvkm_device *device = sb->subdev.device;
|
||||||
|
|
||||||
/* disable IRQs and wait for any previous code to complete */
|
/* disable IRQs and wait for any previous code to complete */
|
||||||
nvkm_mask(device, 0x644, sb->irq_mask, 0x0);
|
nvkm_mc_intr_mask(device, sb->devidx, false);
|
||||||
nvkm_mask(device, 0x640, sb->irq_mask, 0x0);
|
|
||||||
nvkm_wr32(device, sb->base + 0x014, 0xff);
|
nvkm_wr32(device, sb->base + 0x014, 0xff);
|
||||||
|
|
||||||
falcon_wait_idle(device, sb->base);
|
falcon_wait_idle(device, sb->base);
|
||||||
|
@ -270,8 +269,8 @@ nvkm_secboot_ctor(const struct nvkm_secboot_func *func,
|
||||||
/* setup the performing falcon's base address and masks */
|
/* setup the performing falcon's base address and masks */
|
||||||
switch (func->boot_falcon) {
|
switch (func->boot_falcon) {
|
||||||
case NVKM_SECBOOT_FALCON_PMU:
|
case NVKM_SECBOOT_FALCON_PMU:
|
||||||
|
sb->devidx = NVKM_SUBDEV_PMU;
|
||||||
sb->base = 0x10a000;
|
sb->base = 0x10a000;
|
||||||
sb->irq_mask = 0x1000000;
|
|
||||||
sb->enable_mask = 0x2000;
|
sb->enable_mask = 0x2000;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue