IRDA_DEBUG(2, "%s(), ----------------- End -----------------\n", __func__);
 }
 
+static const struct net_device_ops ali_ircc_sir_ops = {
+       .ndo_open       = ali_ircc_net_open,
+       .ndo_stop       = ali_ircc_net_close,
+       .ndo_start_xmit = ali_ircc_sir_hard_xmit,
+       .ndo_do_ioctl   = ali_ircc_net_ioctl,
+};
+
+static const struct net_device_ops ali_ircc_fir_ops = {
+       .ndo_open       = ali_ircc_net_open,
+       .ndo_stop       = ali_ircc_net_close,
+       .ndo_start_xmit = ali_ircc_fir_hard_xmit,
+       .ndo_do_ioctl   = ali_ircc_net_ioctl,
+};
+
 /*
  * Function ali_ircc_open (int i, chipio_t *inf)
  *
        self->tx_fifo.tail = self->tx_buff.head;
 
        /* Override the network functions we need to use */
-       dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
-       dev->open            = ali_ircc_net_open;
-       dev->stop            = ali_ircc_net_close;
-       dev->do_ioctl        = ali_ircc_net_ioctl;
+       dev->netdev_ops = &ali_ircc_sir_ops;
 
        err = register_netdev(dev);
        if (err) {
                ali_ircc_fir_change_speed(self, baud);                  
                
                /* Install FIR xmit handler*/
-               dev->hard_start_xmit = ali_ircc_fir_hard_xmit;          
+               dev->netdev_ops = &ali_ircc_fir_ops;
                                
                /* Enable Interuupt */
                self->ier = IER_EOM; // benjamin 2000/11/20 07:24PM                                     
                ali_ircc_sir_change_speed(self, baud);
                                
                /* Install SIR xmit handler*/
-               dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
+               dev->netdev_ops = &ali_ircc_sir_ops;
        }