drivers/gpib/hp_82335/hp82335.c

Source file repositories/reference/linux-study-clean/drivers/gpib/hp_82335/hp82335.c

File Facts

System
Linux kernel
Corpus path
drivers/gpib/hp_82335/hp82335.c
Extension
.c
Size
10514 bytes
Lines
373
Domain
Driver Families
Bucket
drivers/gpib
Inferred role
Driver Families: exported/initcall integration point
Status
integration implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

module_init(hp82335_init_module);
module_exit(hp82335_exit_module);

/*
 * GPIB interrupt service routines
 */

static irqreturn_t hp82335_interrupt(int irq, void *arg)
{
	int status1, status2;
	struct gpib_board *board = arg;
	struct hp82335_priv *priv = board->private_data;
	unsigned long flags;
	irqreturn_t retval;

	spin_lock_irqsave(&board->spinlock, flags);
	status1 = read_byte(&priv->tms9914_priv, ISR0);
	status2 = read_byte(&priv->tms9914_priv, ISR1);
	hp82335_clear_interrupt(priv);
	retval = tms9914_interrupt_have_status(board, &priv->tms9914_priv, status1, status2);
	spin_unlock_irqrestore(&board->spinlock, flags);
	return retval;
}

Annotation

Implementation Notes