diff options
Diffstat (limited to 'arch/sparc/kernel/vio.c')
-rw-r--r-- | arch/sparc/kernel/vio.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c index 8647fcc5ca6c..cb5789c9f961 100644 --- a/arch/sparc/kernel/vio.c +++ b/arch/sparc/kernel/vio.c | |||
@@ -180,8 +180,10 @@ static void vio_fill_channel_info(struct mdesc_handle *hp, u64 mp, | |||
180 | vdev->tx_irq = sun4v_build_virq(cdev_cfg_handle, *irq); | 180 | vdev->tx_irq = sun4v_build_virq(cdev_cfg_handle, *irq); |
181 | 181 | ||
182 | irq = mdesc_get_property(hp, target, "rx-ino", NULL); | 182 | irq = mdesc_get_property(hp, target, "rx-ino", NULL); |
183 | if (irq) | 183 | if (irq) { |
184 | vdev->rx_irq = sun4v_build_virq(cdev_cfg_handle, *irq); | 184 | vdev->rx_irq = sun4v_build_virq(cdev_cfg_handle, *irq); |
185 | vdev->rx_ino = *irq; | ||
186 | } | ||
185 | 187 | ||
186 | chan_id = mdesc_get_property(hp, target, "id", NULL); | 188 | chan_id = mdesc_get_property(hp, target, "id", NULL); |
187 | if (chan_id) | 189 | if (chan_id) |
@@ -189,6 +191,15 @@ static void vio_fill_channel_info(struct mdesc_handle *hp, u64 mp, | |||
189 | } | 191 | } |
190 | } | 192 | } |
191 | 193 | ||
194 | int vio_set_intr(unsigned long dev_ino, int state) | ||
195 | { | ||
196 | int err; | ||
197 | |||
198 | err = sun4v_vintr_set_valid(cdev_cfg_handle, dev_ino, state); | ||
199 | return err; | ||
200 | } | ||
201 | EXPORT_SYMBOL(vio_set_intr); | ||
202 | |||
192 | static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp, | 203 | static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp, |
193 | struct device *parent) | 204 | struct device *parent) |
194 | { | 205 | { |