Loading drivers/soc/qcom/smd.c +2 −58 Original line number Diff line number Diff line Loading @@ -128,11 +128,6 @@ static struct interrupt_config private_intr_config[NUM_SMD_SUBSYSTEMS] = { }, }; union fifo_mem { uint64_t u64; uint8_t u8; }; struct interrupt_stat interrupt_stats[NUM_SMD_SUBSYSTEMS]; #define SMSM_STATE_ADDR(entry) (smsm_info.state + entry) Loading Loading @@ -234,33 +229,8 @@ static inline void smd_write_intr(unsigned int val, void __iomem *addr) */ static void *smd_memcpy_to_fifo(void *dest, const void *src, size_t num_bytes) { union fifo_mem *temp_dst = (union fifo_mem *)dest; union fifo_mem *temp_src = (union fifo_mem *)src; uintptr_t mask = sizeof(union fifo_mem) - 1; /* Do byte copies until we hit 8-byte (double word) alignment */ while ((uintptr_t)temp_dst & mask && num_bytes) { __raw_writeb_no_log(temp_src->u8, temp_dst); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); num_bytes--; } /* Do double word copies */ while (num_bytes >= sizeof(union fifo_mem)) { __raw_writeq_no_log(temp_src->u64, temp_dst); temp_dst++; temp_src++; num_bytes -= sizeof(union fifo_mem); } /* Copy remaining bytes */ while (num_bytes--) { __raw_writeb_no_log(temp_src->u8, temp_dst); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); } memcpy_toio(dest, src, num_bytes); return dest; } Loading @@ -278,33 +248,7 @@ static void *smd_memcpy_to_fifo(void *dest, const void *src, size_t num_bytes) */ static void *smd_memcpy_from_fifo(void *dest, const void *src, size_t num_bytes) { union fifo_mem *temp_dst = (union fifo_mem *)dest; union fifo_mem *temp_src = (union fifo_mem *)src; uintptr_t mask = sizeof(union fifo_mem) - 1; /* Do byte copies until we hit 8-byte (double word) alignment */ while ((uintptr_t)temp_src & mask && num_bytes) { temp_dst->u8 = __raw_readb_no_log(temp_src); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); num_bytes--; } /* Do double word copies */ while (num_bytes >= sizeof(union fifo_mem)) { temp_dst->u64 = __raw_readq_no_log(temp_src); temp_dst++; temp_src++; num_bytes -= sizeof(union fifo_mem); } /* Copy remaining bytes */ while (num_bytes--) { temp_dst->u8 = __raw_readb_no_log(temp_src); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); } memcpy_fromio(dest, src, num_bytes); return dest; } Loading Loading
drivers/soc/qcom/smd.c +2 −58 Original line number Diff line number Diff line Loading @@ -128,11 +128,6 @@ static struct interrupt_config private_intr_config[NUM_SMD_SUBSYSTEMS] = { }, }; union fifo_mem { uint64_t u64; uint8_t u8; }; struct interrupt_stat interrupt_stats[NUM_SMD_SUBSYSTEMS]; #define SMSM_STATE_ADDR(entry) (smsm_info.state + entry) Loading Loading @@ -234,33 +229,8 @@ static inline void smd_write_intr(unsigned int val, void __iomem *addr) */ static void *smd_memcpy_to_fifo(void *dest, const void *src, size_t num_bytes) { union fifo_mem *temp_dst = (union fifo_mem *)dest; union fifo_mem *temp_src = (union fifo_mem *)src; uintptr_t mask = sizeof(union fifo_mem) - 1; /* Do byte copies until we hit 8-byte (double word) alignment */ while ((uintptr_t)temp_dst & mask && num_bytes) { __raw_writeb_no_log(temp_src->u8, temp_dst); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); num_bytes--; } /* Do double word copies */ while (num_bytes >= sizeof(union fifo_mem)) { __raw_writeq_no_log(temp_src->u64, temp_dst); temp_dst++; temp_src++; num_bytes -= sizeof(union fifo_mem); } /* Copy remaining bytes */ while (num_bytes--) { __raw_writeb_no_log(temp_src->u8, temp_dst); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); } memcpy_toio(dest, src, num_bytes); return dest; } Loading @@ -278,33 +248,7 @@ static void *smd_memcpy_to_fifo(void *dest, const void *src, size_t num_bytes) */ static void *smd_memcpy_from_fifo(void *dest, const void *src, size_t num_bytes) { union fifo_mem *temp_dst = (union fifo_mem *)dest; union fifo_mem *temp_src = (union fifo_mem *)src; uintptr_t mask = sizeof(union fifo_mem) - 1; /* Do byte copies until we hit 8-byte (double word) alignment */ while ((uintptr_t)temp_src & mask && num_bytes) { temp_dst->u8 = __raw_readb_no_log(temp_src); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); num_bytes--; } /* Do double word copies */ while (num_bytes >= sizeof(union fifo_mem)) { temp_dst->u64 = __raw_readq_no_log(temp_src); temp_dst++; temp_src++; num_bytes -= sizeof(union fifo_mem); } /* Copy remaining bytes */ while (num_bytes--) { temp_dst->u8 = __raw_readb_no_log(temp_src); temp_src = (union fifo_mem *)((uintptr_t)temp_src + 1); temp_dst = (union fifo_mem *)((uintptr_t)temp_dst + 1); } memcpy_fromio(dest, src, num_bytes); return dest; } Loading