aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/vio.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/vio.c')
-rw-r--r--arch/sparc/kernel/vio.c13
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
194int 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}
201EXPORT_SYMBOL(vio_set_intr);
202
192static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp, 203static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,
193 struct device *parent) 204 struct device *parent)
194{ 205{