[parisc-linux] SCSI broken in latest CVS changes
Joel Soete
soete.joel at tiscali.be
Wed Mar 17 07:20:38 MST 2004
oops my very bad, I just figure out that I also include the following patch
from upstream (which seems to be missed but may be there was a good reason?):
diff -Nru a/include/asm-parisc/dma-mapping.h b/include/asm-parisc/dma-mapping.h
--- a/include/asm-parisc/dma-mapping.h Mon Mar 15 21:48:01 2004
+++ b/include/asm-parisc/dma-mapping.h Mon Mar 15 21:48:01 2004
@@ -15,8 +15,10 @@
void (*unmap_single)(struct device *dev, dma_addr_t iova, size_t size,
enum dma_data_direction direction);
int (*map_sg)(struct device *dev, struct scatterlist *sg, int nents, enum
dma_data_direction direction);
void (*unmap_sg)(struct device *dev, struct scatterlist *sg, int nhwents,
enum dma_data_direction direction);
- void (*dma_sync_single)(struct device *dev, dma_addr_t iova, unsigned long
offset, size_t size, enum dma_data_direction direction);
- void (*dma_sync_sg)(struct device *dev, struct scatterlist *sg, int nelems,
enum dma_data_direction direction);
+ void (*dma_sync_single_for_cpu)(struct device *dev, dma_addr_t iova, unsigned
long offset, size_t size, enum dma_data_direction direction);
+ void (*dma_sync_single_for_device)(struct device *dev, dma_addr_t iova,
unsigned long offset, size_t size, enum dma_data_direction direction);
+ void (*dma_sync_sg_for_cpu)(struct device *dev, struct scatterlist *sg,
int nelems, enum dma_data_direction direction);
+ void (*dma_sync_sg_for_device)(struct device *dev, struct scatterlist *sg,
int nelems, enum dma_data_direction direction);
};
/*
@@ -116,28 +118,53 @@
static inline void
-dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size,
+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t
size,
enum dma_data_direction direction)
{
- if(hppa_dma_ops->dma_sync_single)
- hppa_dma_ops->dma_sync_single(dev, dma_handle, 0, size, direction);
+ if(hppa_dma_ops->dma_sync_single_for_cpu)
+ hppa_dma_ops->dma_sync_single_for_cpu(dev, dma_handle, 0, size, direction);
}
static inline void
-dma_sync_single_range(struct device *dev, dma_addr_t dma_handle,
+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t
size,
+ enum dma_data_direction direction)
+{
+ if(hppa_dma_ops->dma_sync_single_for_device)
+ hppa_dma_ops->dma_sync_single_for_device(dev, dma_handle, 0, size, direction);
+}
+
+static inline void
+dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle,
+ unsigned long offset, size_t size,
+ enum dma_data_direction direction)
+{
+ if(hppa_dma_ops->dma_sync_single_for_cpu)
+ hppa_dma_ops->dma_sync_single_for_cpu(dev, dma_handle, offset, size, direction);
+}
+
+static inline void
+dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
unsigned long offset, size_t size,
enum dma_data_direction direction)
{
- if(hppa_dma_ops->dma_sync_single)
- hppa_dma_ops->dma_sync_single(dev, dma_handle, offset, size, direction);
+ if(hppa_dma_ops->dma_sync_single_for_device)
+ hppa_dma_ops->dma_sync_single_for_device(dev, dma_handle, offset, size,
direction);
+}
+
+static inline void
+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
+ enum dma_data_direction direction)
+{
+ if(hppa_dma_ops->dma_sync_sg_for_cpu)
+ hppa_dma_ops->dma_sync_sg_for_cpu(dev, sg, nelems, direction);
}
static inline void
-dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems,
+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
enum dma_data_direction direction)
{
- if(hppa_dma_ops->dma_sync_sg)
- hppa_dma_ops->dma_sync_sg(dev, sg, nelems, direction);
+ if(hppa_dma_ops->dma_sync_sg_for_device)
+ hppa_dma_ops->dma_sync_sg_for_device(dev, sg, nelems, direction);
}
static inline int
@@ -166,14 +193,14 @@
static inline int
dma_is_consistent(dma_addr_t dma_addr)
{
- return (hppa_dma_ops->dma_sync_single == NULL);
+ return (hppa_dma_ops->dma_sync_single_for_cpu == NULL);
}
static inline void
dma_cache_sync(void *vaddr, size_t size,
enum dma_data_direction direction)
{
- if(hppa_dma_ops->dma_sync_single)
+ if(hppa_dma_ops->dma_sync_single_for_cpu)
flush_kernel_dcache_range((unsigned long)vaddr, size);
}
========><========
Sorry,
joel
ps: see attachement if bad wrapping of my webmail
----------------------------------------------------------------------------------------
Tiscali ADSL: 35 /mois, la meilleure offre du marché!
http://reg.tiscali.be/default.asp?lg=fr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: include_asm-parisc_dma-mapping.h.patch
Type: application/octet-stream
Size: 4062 bytes
Desc: not available
Url : http://lists.parisc-linux.org/pipermail/parisc-linux/attachments/20040317/7ae3bbaf/include_asm-parisc_dma-mapping.h.obj
More information about the parisc-linux
mailing list