Changeset a35b458 in mainline for kernel/arch/sparc64/src/drivers/kbd.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/drivers/kbd.c
r3061bc1 ra35b458 62 62 { 63 63 const char *name = ofw_tree_node_name(node); 64 64 65 65 if (str_cmp(name, "su") != 0) 66 66 return false; 67 67 68 68 /* 69 69 * Read 'interrupts' property. … … 75 75 return false; 76 76 } 77 77 78 78 uint32_t interrupts = *((uint32_t *) prop->value); 79 79 80 80 /* 81 81 * Read 'reg' property. … … 87 87 return false; 88 88 } 89 89 90 90 size_t size = ((ofw_ebus_reg_t *) prop->value)->size; 91 91 92 92 uintptr_t pa = 0; // Prevent -Werror=maybe-uninitialized 93 93 if (!ofw_ebus_apply_ranges(node->parent, … … 97 97 return false; 98 98 } 99 99 100 100 inr_t inr; 101 101 cir_t cir; … … 108 108 return false; 109 109 } 110 110 111 111 /* 112 112 * We need to pass aligned address to hw_map(). … … 117 117 uintptr_t aligned_addr = ALIGN_DOWN(pa, PAGE_SIZE); 118 118 size_t offset = pa - aligned_addr; 119 119 120 120 ioport8_t *ns16550 = (ioport8_t *) (km_map(aligned_addr, offset + size, 121 121 PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset); 122 122 123 123 ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, 0, inr, cir, 124 124 cir_arg, NULL); … … 131 131 } 132 132 } 133 133 134 134 /* 135 135 * This is the necessary evil until the userspace drivers are … … 140 140 sysinfo_set_item_val("kbd.address.physical", NULL, pa); 141 141 sysinfo_set_item_val("kbd.type.ns16550", NULL, true); 142 142 143 143 return true; 144 144 }
Note:
See TracChangeset
for help on using the changeset viewer.