*/
static uint16_t pnic_command_quiet ( struct pnic *pnic, uint16_t command,
- void *input, uint16_t input_length,
+ const void *input, uint16_t input_length,
void *output, uint16_t output_max_length,
uint16_t *output_length ) {
uint16_t status;
}
static uint16_t pnic_command ( struct pnic *pnic, uint16_t command,
- void *input, uint16_t input_length,
+ const void *input, uint16_t input_length,
void *output, uint16_t output_max_length,
uint16_t *output_length ) {
uint16_t status = pnic_command_quiet ( pnic, command,
/**************************************************************************
OPEN - Open network device
***************************************************************************/
-static int pnic_open ( struct net_device *netdev __unused ) {
+static int pnic_open ( struct net_device *netdev ) {
+ struct pnic *pnic = netdev->priv;
+ static const uint8_t enable = 1;
+
+ /* Enable interrupts */
+ pnic_command ( pnic, PNIC_CMD_MASK_IRQ, &enable,
+ sizeof ( enable ), NULL, 0, NULL );
+
return 0;
}
/**************************************************************************
CLOSE - Close network device
***************************************************************************/
-static void pnic_close ( struct net_device *netdev __unused ) {
- /* Nothing to do */
+static void pnic_close ( struct net_device *netdev ) {
+ struct pnic *pnic = netdev->priv;
+ static const uint8_t disable = 0;
+
+ /* Disable interrupts */
+ pnic_command ( pnic, PNIC_CMD_MASK_IRQ, &disable,
+ sizeof ( disable ), NULL, 0, NULL );
}
/**************************************************************************