]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/nouveau/nvkm/subdev/secboot/base.c
drm/nouveau/secboot: use nvkm_mc_intr_mask/unmask()
[karo-tx-linux.git] / drivers / gpu / drm / nouveau / nvkm / subdev / secboot / base.c
index 213fdba6cfa0c8813cdf7276ed3c9dc72e2c40d6..7d72a8143bbd0212ebfbc7e53bb7a11d27c6b335 100644 (file)
@@ -19,8 +19,9 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
-
 #include "priv.h"
+
+#include <subdev/mc.h>
 #include <subdev/timer.h>
 
 static const char *
@@ -85,8 +86,7 @@ nvkm_secboot_falcon_enable(struct nvkm_secboot *sb)
 
        /* enable IRQs */
        nvkm_wr32(device, sb->base + 0x010, 0xff);
-       nvkm_mask(device, 0x640, sb->irq_mask, sb->irq_mask);
-       nvkm_mask(device, 0x644, sb->irq_mask, sb->irq_mask);
+       nvkm_mc_intr_mask(device, sb->devidx, true);
 
        return 0;
 }
@@ -97,8 +97,7 @@ nvkm_secboot_falcon_disable(struct nvkm_secboot *sb)
        struct nvkm_device *device = sb->subdev.device;
 
        /* disable IRQs and wait for any previous code to complete */
-       nvkm_mask(device, 0x644, sb->irq_mask, 0x0);
-       nvkm_mask(device, 0x640, sb->irq_mask, 0x0);
+       nvkm_mc_intr_mask(device, sb->devidx, false);
        nvkm_wr32(device, sb->base + 0x014, 0xff);
 
        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 */
        switch (func->boot_falcon) {
        case NVKM_SECBOOT_FALCON_PMU:
+               sb->devidx = NVKM_SUBDEV_PMU;
                sb->base = 0x10a000;
-               sb->irq_mask = 0x1000000;
                sb->enable_mask = 0x2000;
                break;
        default: