static irqreturn_t bwmon_intr_handler(int irq, void *dev) { struct bwmon *m = dev; if (mon_irq_status(m)) { update_bw_hwmon(&m->hw); return IRQ_HANDLED; } return IRQ_NONE; }
static long mon_get_count(struct bwmon *m) { long count; count = readl_relaxed(MON_CNT(m)); if (mon_irq_status(m)) count += mon_get_limit(m); dev_dbg(m->dev, "Count: %ld\n", count); return count; }
static unsigned long mon_get_count(struct bwmon *m) { unsigned long count, status; count = readl_relaxed(MON_CNT(m)); status = mon_irq_status(m); dev_dbg(m->dev, "Counter: %08lx\n", count); if (OVERFLOW(status) && m->spec->overflow) count += 0xFFFFFFFF; if (THRES_HIT(status) && m->spec->wrap_on_thres) count += mon_get_limit(m); dev_dbg(m->dev, "Actual Count: %08lx\n", count); return count; }