diff options
Diffstat (limited to 'arch/sparc64/kernel/ds.c')
-rw-r--r-- | arch/sparc64/kernel/ds.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c index c7ece8c52039..9c8839d1cffd 100644 --- a/arch/sparc64/kernel/ds.c +++ b/arch/sparc64/kernel/ds.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <asm/ldc.h> | 15 | #include <asm/ldc.h> |
16 | #include <asm/vio.h> | 16 | #include <asm/vio.h> |
17 | #include <asm/power.h> | 17 | #include <asm/power.h> |
18 | #include <asm/mdesc.h> | ||
18 | 19 | ||
19 | #define DRV_MODULE_NAME "ds" | 20 | #define DRV_MODULE_NAME "ds" |
20 | #define PFX DRV_MODULE_NAME ": " | 21 | #define PFX DRV_MODULE_NAME ": " |
@@ -170,8 +171,7 @@ static void md_update_data(struct ldc_channel *lp, | |||
170 | 171 | ||
171 | rp = (struct ds_md_update_req *) (dpkt + 1); | 172 | rp = (struct ds_md_update_req *) (dpkt + 1); |
172 | 173 | ||
173 | printk(KERN_ERR PFX "MD update REQ [%lx] len=%d\n", | 174 | printk(KERN_ERR PFX "Machine description update.\n"); |
174 | rp->req_num, len); | ||
175 | 175 | ||
176 | memset(&pkt, 0, sizeof(pkt)); | 176 | memset(&pkt, 0, sizeof(pkt)); |
177 | pkt.data.tag.type = DS_DATA; | 177 | pkt.data.tag.type = DS_DATA; |
@@ -181,6 +181,8 @@ static void md_update_data(struct ldc_channel *lp, | |||
181 | pkt.res.result = DS_OK; | 181 | pkt.res.result = DS_OK; |
182 | 182 | ||
183 | ds_send(lp, &pkt, sizeof(pkt)); | 183 | ds_send(lp, &pkt, sizeof(pkt)); |
184 | |||
185 | mdesc_update(); | ||
184 | } | 186 | } |
185 | 187 | ||
186 | struct ds_shutdown_req { | 188 | struct ds_shutdown_req { |
@@ -555,7 +557,6 @@ static int __devinit ds_probe(struct vio_dev *vdev, | |||
555 | const struct vio_device_id *id) | 557 | const struct vio_device_id *id) |
556 | { | 558 | { |
557 | static int ds_version_printed; | 559 | static int ds_version_printed; |
558 | struct mdesc_node *endp; | ||
559 | struct ldc_channel_config ds_cfg = { | 560 | struct ldc_channel_config ds_cfg = { |
560 | .event = ds_event, | 561 | .event = ds_event, |
561 | .mtu = 4096, | 562 | .mtu = 4096, |
@@ -563,20 +564,11 @@ static int __devinit ds_probe(struct vio_dev *vdev, | |||
563 | }; | 564 | }; |
564 | struct ldc_channel *lp; | 565 | struct ldc_channel *lp; |
565 | struct ds_info *dp; | 566 | struct ds_info *dp; |
566 | const u64 *chan_id; | ||
567 | int err; | 567 | int err; |
568 | 568 | ||
569 | if (ds_version_printed++ == 0) | 569 | if (ds_version_printed++ == 0) |
570 | printk(KERN_INFO "%s", version); | 570 | printk(KERN_INFO "%s", version); |
571 | 571 | ||
572 | endp = vio_find_endpoint(vdev); | ||
573 | if (!endp) | ||
574 | return -ENODEV; | ||
575 | |||
576 | chan_id = md_get_property(endp, "id", NULL); | ||
577 | if (!chan_id) | ||
578 | return -ENODEV; | ||
579 | |||
580 | dp = kzalloc(sizeof(*dp), GFP_KERNEL); | 572 | dp = kzalloc(sizeof(*dp), GFP_KERNEL); |
581 | err = -ENOMEM; | 573 | err = -ENOMEM; |
582 | if (!dp) | 574 | if (!dp) |
@@ -588,10 +580,10 @@ static int __devinit ds_probe(struct vio_dev *vdev, | |||
588 | 580 | ||
589 | dp->rcv_buf_len = 4096; | 581 | dp->rcv_buf_len = 4096; |
590 | 582 | ||
591 | ds_cfg.tx_irq = endp->irqs[0]; | 583 | ds_cfg.tx_irq = vdev->tx_irq; |
592 | ds_cfg.rx_irq = endp->irqs[1]; | 584 | ds_cfg.rx_irq = vdev->rx_irq; |
593 | 585 | ||
594 | lp = ldc_alloc(*chan_id, &ds_cfg, dp); | 586 | lp = ldc_alloc(vdev->channel_id, &ds_cfg, dp); |
595 | if (IS_ERR(lp)) { | 587 | if (IS_ERR(lp)) { |
596 | err = PTR_ERR(lp); | 588 | err = PTR_ERR(lp); |
597 | goto out_free_rcv_buf; | 589 | goto out_free_rcv_buf; |