| 54 | } |
| 55 | |
| 56 | static int |
| 57 | fman_get_ip_rev(const struct device_node *fman_node) |
| 58 | { |
| 59 | const uint32_t *fman_addr; |
| 60 | uint64_t phys_addr; |
| 61 | uint64_t regs_size; |
| 62 | uint32_t ip_rev_1; |
| 63 | int _errno; |
| 64 | |
| 65 | fman_addr = of_get_address(fman_node, 0, ®s_size, NULL); |
| 66 | if (!fman_addr) { |
| 67 | pr_err("of_get_address cannot return fman address\n"); |
| 68 | return -EINVAL; |
| 69 | } |
| 70 | phys_addr = of_translate_address(fman_node, fman_addr); |
| 71 | if (!phys_addr) { |
| 72 | pr_err("of_translate_address failed\n"); |
| 73 | return -EINVAL; |
| 74 | } |
| 75 | fman_ccsr_map = mmap(NULL, regs_size, PROT_READ | PROT_WRITE, |
| 76 | MAP_SHARED, fman_ccsr_map_fd, phys_addr); |
| 77 | if (fman_ccsr_map == MAP_FAILED) { |
| 78 | pr_err("Can not map FMan ccsr base"); |
| 79 | return -EINVAL; |
| 80 | } |
| 81 | |
| 82 | ip_rev_1 = in_be32(fman_ccsr_map + FMAN_IP_REV_1); |
| 83 | fman_ip_rev = (ip_rev_1 & FMAN_IP_REV_1_MAJOR_MASK) >> |
| 84 | FMAN_IP_REV_1_MAJOR_SHIFT; |
| 85 | |
| 86 | _errno = munmap(fman_ccsr_map, regs_size); |
| 87 | if (_errno) |
| 88 | pr_err("munmap() of FMan ccsr failed"); |
| 89 | |
| 90 | return 0; |
| 91 | } |
| 92 | |
| 93 | static int |
| 94 | fman_get_mac_index(uint64_t regs_addr_host, uint8_t *mac_idx) |
no test coverage detected