• Martin Peres's avatar
    drm/nouveau/pbus: add a PBUS subdev that hands IRQs to the right subdevs · a10220bb
    Martin Peres authored
    We are going to use PTHERM's IRQs for thermal monitoring but we need to route
    them first.
    
    On nv31-50, PBUS's IRQ line is shared with GPIOs IRQs.
    
    It seems like nv10-31 GPIO interruptions aren't well handled. I kept the
    original behaviour but it is wrong and may lead to an IRQ storm.
    
    Since we enable all PBUS IRQs, we need a way to avoid being stormed if we
    don't handle them. The solution I used was to mask the IRQs that have not been
    handled. This will also print one message in the logs to let us know.
    
    v2: drop the shared intr handler because of was racy
    v3: style fixes
    v4: drop a useless construct in the chipset-dependent INTR
    v5: add BUS to the disable mask
    v6 (Ben Skeggs):
    - general tidy to match the rest of the driver's style
    - nva3->nvc0, nva3 can be serviced just fine with nv50.c, rnndb even notes
      that the THERM_ALARM bit got left in the hw until fermi anyway.. so, it's
      not going to conflict
    - removed the peephole and user stuff, for the moment.. will handle them
      later if we find a good reason to actually care..
    - limited INTR_EN to just what we can handle for now, mostly to prevent
      spam of unknown status bits (seen on at least nv4x)
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Signed-off-by: default avatarMartin Peres <martin.peres@labri.fr>
    a10220bb
nv50.c 2.48 KB