diff options
Diffstat (limited to 'arch/s390/include/asm/pci_io.h')
| -rw-r--r-- | arch/s390/include/asm/pci_io.h | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/s390/include/asm/pci_io.h b/arch/s390/include/asm/pci_io.h index 5fd81f31d6c..83a9caa6ae5 100644 --- a/arch/s390/include/asm/pci_io.h +++ b/arch/s390/include/asm/pci_io.h @@ -36,7 +36,7 @@ static inline RETTYPE zpci_read_##RETTYPE(const volatile void __iomem *addr)	\  	u64 data;								\  	int rc;									\  										\ -	rc = pcilg_instr(&data, req, ZPCI_OFFSET(addr));			\ +	rc = s390pci_load(&data, req, ZPCI_OFFSET(addr));			\  	if (rc)									\  		data = -1ULL;							\  	return (RETTYPE) data;							\ @@ -50,7 +50,7 @@ static inline void zpci_write_##VALTYPE(VALTYPE val,				\  	u64 req = ZPCI_CREATE_REQ(entry->fh, entry->bar, LENGTH);		\  	u64 data = (VALTYPE) val;						\  										\ -	pcistg_instr(data, req, ZPCI_OFFSET(addr));				\ +	s390pci_store(data, req, ZPCI_OFFSET(addr));				\  }  zpci_read(8, u64) @@ -83,15 +83,18 @@ static inline int zpci_write_single(u64 req, const u64 *data, u64 offset, u8 len  		val = 0;		/* let FW report error */  		break;  	} -	return pcistg_instr(val, req, offset); +	return s390pci_store(val, req, offset);  }  static inline int zpci_read_single(u64 req, u64 *dst, u64 offset, u8 len)  {  	u64 data; -	u8 cc; +	int cc; + +	cc = s390pci_load(&data, req, offset); +	if (cc) +		goto out; -	cc = pcilg_instr(&data,	 req, offset);  	switch (len) {  	case 1:  		*((u8 *) dst) = (u8) data; @@ -106,12 +109,13 @@ static inline int zpci_read_single(u64 req, u64 *dst, u64 offset, u8 len)  		*((u64 *) dst) = (u64) data;  		break;  	} +out:  	return cc;  }  static inline int zpci_write_block(u64 req, const u64 *data, u64 offset)  { -	return pcistb_instr(data, req, offset); +	return s390pci_store_block(data, req, offset);  }  static inline u8 zpci_get_max_write_size(u64 src, u64 dst, int len, int max)  |