Changes in uspace/drv/block/pci-ide/main.c [2a5d4649:645d3832] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/block/pci-ide/main.c
r2a5d4649 r645d3832 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 49 49 static errno_t pci_ide_dev_remove(ddf_dev_t *dev); 50 50 static errno_t pci_ide_dev_gone(ddf_dev_t *dev); 51 static errno_t pci_ide_dev_quiesce(ddf_dev_t *dev);52 51 static errno_t pci_ide_fun_online(ddf_fun_t *fun); 53 52 static errno_t pci_ide_fun_offline(ddf_fun_t *fun); … … 56 55 57 56 static driver_ops_t driver_ops = { 58 .dev_add = pci_ide_dev_add, 59 .dev_remove = pci_ide_dev_remove, 60 .dev_gone = pci_ide_dev_gone, 61 .dev_quiesce = pci_ide_dev_quiesce, 62 .fun_online = pci_ide_fun_online, 63 .fun_offline = pci_ide_fun_offline 57 .dev_add = &pci_ide_dev_add, 58 .dev_remove = &pci_ide_dev_remove, 59 .dev_gone = &pci_ide_dev_gone, 60 .fun_online = &pci_ide_fun_online, 61 .fun_offline = &pci_ide_fun_offline 64 62 }; 65 63 … … 135 133 pci_ide_ctrl_t *ctrl; 136 134 pci_ide_hwres_t res; 137 async_sess_t *parent_sess;138 unsigned chans;139 135 errno_t rc; 140 136 … … 158 154 goto error; 159 155 160 chans = 0;161 162 156 rc = pci_ide_channel_init(ctrl, &ctrl->channel[0], 0, &res); 163 if (rc == EOK) 164 ++chans; 165 else if (rc != ENOENT) 157 if (rc == ENOENT) 166 158 goto error; 167 159 168 160 rc = pci_ide_channel_init(ctrl, &ctrl->channel[1], 1, &res); 169 if (rc == EOK) 170 ++chans; 171 else if (rc != ENOENT) 172 goto error; 173 174 if (chans == 0) { 175 ddf_msg(LVL_ERROR, "No PCI IDE devices found."); 176 rc = EIO; 177 goto error; 178 } 179 180 parent_sess = ddf_dev_parent_sess_get(dev); 181 if (parent_sess == NULL) { 182 rc = ENOMEM; 183 goto error; 184 } 185 186 /* Claim legacy I/O range to prevent ISA IDE from attaching there. */ 187 rc = hw_res_claim_legacy_io(parent_sess, hwc_isa_ide); 188 if (rc != EOK) { 189 ddf_msg(LVL_ERROR, "Failed claiming legacy I/O range."); 161 if (rc == ENOENT) 162 goto error; 163 164 if (rc != EOK) { 165 ddf_msg(LVL_ERROR, "Failed initializing ATA controller."); 190 166 rc = EIO; 191 167 goto error; … … 376 352 } 377 353 378 static errno_t pci_ide_dev_quiesce(ddf_dev_t *dev)379 {380 pci_ide_ctrl_t *ctrl = (pci_ide_ctrl_t *)ddf_dev_data_get(dev);381 382 ddf_msg(LVL_DEBUG, "pci_ide_dev_quiesce(%p)", dev);383 384 pci_ide_channel_quiesce(&ctrl->channel[0]);385 pci_ide_channel_quiesce(&ctrl->channel[1]);386 387 return EOK;388 }389 390 354 static errno_t pci_ide_fun_online(ddf_fun_t *fun) 391 355 {
Note:
See TracChangeset
for help on using the changeset viewer.