void etb_enable(void) { mutex_lock(&etb.lock); __etb_enable(); etb.enabled = true; dev_info(etb.dev, "etb enabled\n"); mutex_unlock(&etb.lock); }
void etb_enable(void) { unsigned long flags; spin_lock_irqsave(&etb.spinlock, flags); __etb_enable(); etb.enabled = true; spin_unlock_irqrestore(&etb.spinlock, flags); }
void etb_enable(void) { unsigned long flags; spin_lock_irqsave(&etb.spinlock, flags); __etb_enable(); etb.enabled = true; dev_info(etb.dev, "ETB enabled\n"); spin_unlock_irqrestore(&etb.spinlock, flags); }
void etb_dump(void) { mutex_lock(&etb.lock); if (etb.enabled) { __etb_disable(); __etb_dump(); __etb_enable(); dev_info(etb.dev, "etb dumped\n"); } mutex_unlock(&etb.lock); }
void etb_dump(void) { unsigned long flags; spin_lock_irqsave(&etb.spinlock, flags); if (etb.enabled) { __etb_disable(); __etb_dump(); __etb_enable(); } spin_unlock_irqrestore(&etb.spinlock, flags); }
static void etb_dump(struct etb_drvdata *drvdata) { unsigned long flags; spin_lock_irqsave(&drvdata->spinlock, flags); if (drvdata->enable) { __etb_disable(drvdata); __etb_dump(drvdata); __etb_enable(drvdata); } spin_unlock_irqrestore(&drvdata->spinlock, flags); dev_info(drvdata->dev, "ETB dumped\n"); }
static int etb_enable(struct coresight_device *csdev) { struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); int ret; unsigned long flags; ret = clk_prepare_enable(drvdata->clk); if (ret) return ret; spin_lock_irqsave(&drvdata->spinlock, flags); __etb_enable(drvdata); drvdata->enable = true; spin_unlock_irqrestore(&drvdata->spinlock, flags); dev_info(drvdata->dev, "ETB enabled\n"); return 0; }