Changeset 832cbe7 in mainline for uspace/drv/block/isa-ide/main.c
- Timestamp:
- 2025-02-05T12:30:20Z (9 days ago)
- Branches:
- master
- Children:
- accdf882
- Parents:
- 0dab4850
- git-author:
- Jiri Svoboda <jiri@…> (2025-02-04 21:30:06)
- git-committer:
- Jiri Svoboda <jiri@…> (2025-02-05 12:30:20)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/block/isa-ide/main.c
r0dab4850 r832cbe7 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 43 43 44 44 #include "isa-ide.h" 45 #include "isa-ide_hw.h" 45 46 #include "main.h" 46 47 … … 70 71 async_sess_t *parent_sess; 71 72 hw_res_list_parsed_t hw_res; 72 hw_res_ flags_t flags;73 hw_res_claims_t claims; 73 74 errno_t rc; 74 75 … … 77 78 return ENOMEM; 78 79 79 rc = hw_res_get_flags(parent_sess, &flags); 80 if (rc != EOK) 81 return rc; 82 83 /* 84 * Prevent attaching to the legacy ISA IDE register block 85 * on a system with PCI not to conflict with PCI IDE. 86 * 87 * XXX This is a simplification. If we had a PCI-based system without 88 * PCI-IDE or with PCI-IDE disabled and would still like to use 89 * an ISA IDE controller, this would prevent us from doing so. 90 */ 91 if (flags & hwf_isa_bridge) { 92 ddf_msg(LVL_NOTE, "Will not attach to PCI/ISA bridge."); 93 return EIO; 80 rc = hw_res_query_legacy_io(parent_sess, &claims); 81 if (rc != EOK) { 82 ddf_msg(LVL_NOTE, "Error getting HW resource flags."); 83 return rc; 94 84 } 95 85 96 86 hw_res_list_parsed_init(&hw_res); 97 87 rc = hw_res_get_list_parsed(parent_sess, &hw_res, 0); 98 if (rc != EOK) 99 return rc; 88 if (rc != EOK) { 89 ddf_msg(LVL_NOTE, "Error getting HW resource list."); 90 return rc; 91 } 100 92 101 93 if (hw_res.io_ranges.count != 4) { … … 148 140 } 149 141 142 /* 143 * Only attach to legacy ISA IDE register block if it 144 * is not claimed by PCI IDE driver. 145 */ 146 if (res->cmd1 == leg_ide_ata_cmd_p && 147 res->cmd2 == leg_ide_ata_cmd_s && 148 (claims & hwc_isa_ide) != 0) { 149 ddf_msg(LVL_NOTE, "Will not attach to ISA legacy ports " 150 "since they are already handled by PCI."); 151 return EBUSY; 152 } 153 150 154 return EOK; 151 155 error: … … 167 171 rc = isa_ide_get_res(dev, &res); 168 172 if (rc != EOK) { 169 ddf_msg(LVL_ERROR, "Invalid HW resource configuration."); 173 if (rc == EINVAL) 174 ddf_msg(LVL_ERROR, "Invalid HW resource configuration."); 170 175 return EINVAL; 171 176 }
Note:
See TracChangeset
for help on using the changeset viewer.