unsigned int            tx_irq;
        unsigned int            rx_irq;
+       u64                     rx_ino;
 
        struct device           dev;
 };
                    char *name);
 
 void vio_port_up(struct vio_driver_state *vio);
+int vio_set_intr(unsigned long dev_ino, int state);
 
 #endif /* _SPARC64_VIO_H */
 
                        vdev->tx_irq = sun4v_build_virq(cdev_cfg_handle, *irq);
 
                irq = mdesc_get_property(hp, target, "rx-ino", NULL);
-               if (irq)
+               if (irq) {
                        vdev->rx_irq = sun4v_build_virq(cdev_cfg_handle, *irq);
+                       vdev->rx_ino = *irq;
+               }
 
                chan_id = mdesc_get_property(hp, target, "id", NULL);
                if (chan_id)
        }
 }
 
+int vio_set_intr(unsigned long dev_ino, int state)
+{
+       int err;
+
+       err = sun4v_vintr_set_valid(cdev_cfg_handle, dev_ino, state);
+       return err;
+}
+EXPORT_SYMBOL(vio_set_intr);
+
 static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,
                                      struct device *parent)
 {