diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/apei/einj.c | 8 | ||||
-rw-r--r-- | drivers/acpi/atomicio.c | 4 | ||||
-rw-r--r-- | drivers/edac/i3200_edac.c | 13 | ||||
-rw-r--r-- | drivers/platform/x86/ibm_rtl.c | 13 | ||||
-rw-r--r-- | drivers/platform/x86/intel_ips.c | 13 | ||||
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_nx.c | 21 |
6 files changed, 72 insertions, 0 deletions
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 096aebfe7f32..f74b2ea11f21 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c | |||
@@ -101,6 +101,14 @@ static DEFINE_MUTEX(einj_mutex); | |||
101 | 101 | ||
102 | static struct einj_parameter *einj_param; | 102 | static struct einj_parameter *einj_param; |
103 | 103 | ||
104 | #ifndef writeq | ||
105 | static inline void writeq(__u64 val, volatile void __iomem *addr) | ||
106 | { | ||
107 | writel(val, addr); | ||
108 | writel(val >> 32, addr+4); | ||
109 | } | ||
110 | #endif | ||
111 | |||
104 | static void einj_exec_ctx_init(struct apei_exec_context *ctx) | 112 | static void einj_exec_ctx_init(struct apei_exec_context *ctx) |
105 | { | 113 | { |
106 | apei_exec_ctx_init(ctx, einj_ins_type, ARRAY_SIZE(einj_ins_type), | 114 | apei_exec_ctx_init(ctx, einj_ins_type, ARRAY_SIZE(einj_ins_type), |
diff --git a/drivers/acpi/atomicio.c b/drivers/acpi/atomicio.c index 542e53903891..7489b89c300f 100644 --- a/drivers/acpi/atomicio.c +++ b/drivers/acpi/atomicio.c | |||
@@ -280,9 +280,11 @@ static int acpi_atomic_read_mem(u64 paddr, u64 *val, u32 width) | |||
280 | case 32: | 280 | case 32: |
281 | *val = readl(addr); | 281 | *val = readl(addr); |
282 | break; | 282 | break; |
283 | #ifdef readq | ||
283 | case 64: | 284 | case 64: |
284 | *val = readq(addr); | 285 | *val = readq(addr); |
285 | break; | 286 | break; |
287 | #endif | ||
286 | default: | 288 | default: |
287 | return -EINVAL; | 289 | return -EINVAL; |
288 | } | 290 | } |
@@ -307,9 +309,11 @@ static int acpi_atomic_write_mem(u64 paddr, u64 val, u32 width) | |||
307 | case 32: | 309 | case 32: |
308 | writel(val, addr); | 310 | writel(val, addr); |
309 | break; | 311 | break; |
312 | #ifdef writeq | ||
310 | case 64: | 313 | case 64: |
311 | writeq(val, addr); | 314 | writeq(val, addr); |
312 | break; | 315 | break; |
316 | #endif | ||
313 | default: | 317 | default: |
314 | return -EINVAL; | 318 | return -EINVAL; |
315 | } | 319 | } |
diff --git a/drivers/edac/i3200_edac.c b/drivers/edac/i3200_edac.c index d41f9002da45..aa08497a075a 100644 --- a/drivers/edac/i3200_edac.c +++ b/drivers/edac/i3200_edac.c | |||
@@ -101,6 +101,19 @@ struct i3200_priv { | |||
101 | 101 | ||
102 | static int nr_channels; | 102 | static int nr_channels; |
103 | 103 | ||
104 | #ifndef readq | ||
105 | static inline __u64 readq(const volatile void __iomem *addr) | ||
106 | { | ||
107 | const volatile u32 __iomem *p = addr; | ||
108 | u32 low, high; | ||
109 | |||
110 | low = readl(p); | ||
111 | high = readl(p + 1); | ||
112 | |||
113 | return low + ((u64)high << 32); | ||
114 | } | ||
115 | #endif | ||
116 | |||
104 | static int how_many_channels(struct pci_dev *pdev) | 117 | static int how_many_channels(struct pci_dev *pdev) |
105 | { | 118 | { |
106 | unsigned char capid0_8b; /* 8th byte of CAPID0 */ | 119 | unsigned char capid0_8b; /* 8th byte of CAPID0 */ |
diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c index 94a114aa8e28..b1396e5b2953 100644 --- a/drivers/platform/x86/ibm_rtl.c +++ b/drivers/platform/x86/ibm_rtl.c | |||
@@ -81,6 +81,19 @@ static void __iomem *rtl_cmd_addr; | |||
81 | static u8 rtl_cmd_type; | 81 | static u8 rtl_cmd_type; |
82 | static u8 rtl_cmd_width; | 82 | static u8 rtl_cmd_width; |
83 | 83 | ||
84 | #ifndef readq | ||
85 | static inline __u64 readq(const volatile void __iomem *addr) | ||
86 | { | ||
87 | const volatile u32 __iomem *p = addr; | ||
88 | u32 low, high; | ||
89 | |||
90 | low = readl(p); | ||
91 | high = readl(p + 1); | ||
92 | |||
93 | return low + ((u64)high << 32); | ||
94 | } | ||
95 | #endif | ||
96 | |||
84 | static void __iomem *rtl_port_map(phys_addr_t addr, unsigned long len) | 97 | static void __iomem *rtl_port_map(phys_addr_t addr, unsigned long len) |
85 | { | 98 | { |
86 | if (rtl_cmd_type == RTL_ADDR_TYPE_MMIO) | 99 | if (rtl_cmd_type == RTL_ADDR_TYPE_MMIO) |
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c index 85c8ad43c0c5..5ffe7c398148 100644 --- a/drivers/platform/x86/intel_ips.c +++ b/drivers/platform/x86/intel_ips.c | |||
@@ -344,6 +344,19 @@ struct ips_driver { | |||
344 | static bool | 344 | static bool |
345 | ips_gpu_turbo_enabled(struct ips_driver *ips); | 345 | ips_gpu_turbo_enabled(struct ips_driver *ips); |
346 | 346 | ||
347 | #ifndef readq | ||
348 | static inline __u64 readq(const volatile void __iomem *addr) | ||
349 | { | ||
350 | const volatile u32 __iomem *p = addr; | ||
351 | u32 low, high; | ||
352 | |||
353 | low = readl(p); | ||
354 | high = readl(p + 1); | ||
355 | |||
356 | return low + ((u64)high << 32); | ||
357 | } | ||
358 | #endif | ||
359 | |||
347 | /** | 360 | /** |
348 | * ips_cpu_busy - is CPU busy? | 361 | * ips_cpu_busy - is CPU busy? |
349 | * @ips: IPS driver struct | 362 | * @ips: IPS driver struct |
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c index 35381cb0936e..03e522b2fe0b 100644 --- a/drivers/scsi/qla4xxx/ql4_nx.c +++ b/drivers/scsi/qla4xxx/ql4_nx.c | |||
@@ -655,6 +655,27 @@ static int qla4_8xxx_pci_is_same_window(struct scsi_qla_host *ha, | |||
655 | return 0; | 655 | return 0; |
656 | } | 656 | } |
657 | 657 | ||
658 | #ifndef readq | ||
659 | static inline __u64 readq(const volatile void __iomem *addr) | ||
660 | { | ||
661 | const volatile u32 __iomem *p = addr; | ||
662 | u32 low, high; | ||
663 | |||
664 | low = readl(p); | ||
665 | high = readl(p + 1); | ||
666 | |||
667 | return low + ((u64)high << 32); | ||
668 | } | ||
669 | #endif | ||
670 | |||
671 | #ifndef writeq | ||
672 | static inline void writeq(__u64 val, volatile void __iomem *addr) | ||
673 | { | ||
674 | writel(val, addr); | ||
675 | writel(val >> 32, addr+4); | ||
676 | } | ||
677 | #endif | ||
678 | |||
658 | static int qla4_8xxx_pci_mem_read_direct(struct scsi_qla_host *ha, | 679 | static int qla4_8xxx_pci_mem_read_direct(struct scsi_qla_host *ha, |
659 | u64 off, void *data, int size) | 680 | u64 off, void *data, int size) |
660 | { | 681 | { |