summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2007-10-11 06:53:32 +0200
committerPaul Mackerras <paulus@samba.org>2007-10-11 12:40:45 +0200
commit1670b2b2716b98541765da94be1332ad5c314b7a (patch)
tree872def623a8b58907801001093a3350ae161395e /drivers
parent[POWERPC] iSeries: Simplify viocd initialisation (diff)
downloadlinux-1670b2b2716b98541765da94be1332ad5c314b7a.tar.xz
linux-1670b2b2716b98541765da94be1332ad5c314b7a.zip
[POWERPC] Remove iSeries_vio_dev
It was only being used to carry around dma_iommu_ops and vio_iommu_table which we can use directly instead. This also means that vio_bus_device doesn't need to refer to them either. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/cdrom/viocd.c5
-rw-r--r--drivers/char/viotape.c7
2 files changed, 5 insertions, 7 deletions
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index b88fdebe77f6..c081e5400ce0 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -220,7 +220,7 @@ static void __init get_viocd_info(void)
struct cdrom_info *viocd_unitinfo;
dma_addr_t unitinfo_dmaaddr;
- viocd_unitinfo = dma_alloc_coherent(iSeries_vio_dev,
+ viocd_unitinfo = iseries_hv_alloc(
sizeof(*viocd_unitinfo) * VIOCD_MAX_CD,
&unitinfo_dmaaddr, GFP_ATOMIC);
if (viocd_unitinfo == NULL) {
@@ -262,8 +262,7 @@ static void __init get_viocd_info(void)
}
error_ret:
- dma_free_coherent(iSeries_vio_dev,
- sizeof(*viocd_unitinfo) * VIOCD_MAX_CD,
+ iseries_hv_free(sizeof(*viocd_unitinfo) * VIOCD_MAX_CD,
viocd_unitinfo, unitinfo_dmaaddr);
}
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c
index e12275df6ea2..064c09195215 100644
--- a/drivers/char/viotape.c
+++ b/drivers/char/viotape.c
@@ -392,8 +392,8 @@ static int get_viotape_info(void)
if (op == NULL)
return -ENOMEM;
- viotape_unitinfo = dma_alloc_coherent(iSeries_vio_dev, len,
- &viotape_unitinfo_token, GFP_ATOMIC);
+ viotape_unitinfo = iseries_hv_alloc(len, &viotape_unitinfo_token,
+ GFP_ATOMIC);
if (viotape_unitinfo == NULL) {
free_op_struct(op);
return -ENOMEM;
@@ -1103,8 +1103,7 @@ static void __exit viotap_exit(void)
class_destroy(tape_class);
unregister_chrdev(VIOTAPE_MAJOR, "viotape");
if (viotape_unitinfo)
- dma_free_coherent(iSeries_vio_dev,
- sizeof(viotape_unitinfo[0]) * VIOTAPE_MAX_TAPE,
+ iseries_hv_free(sizeof(viotape_unitinfo[0]) * VIOTAPE_MAX_TAPE,
viotape_unitinfo, viotape_unitinfo_token);
viopath_close(viopath_hostLp, viomajorsubtype_tape, VIOTAPE_MAXREQ + 2);
vio_clearHandler(viomajorsubtype_tape);