| .. | .. |
|---|
| 82 | 82 | mc_io->portal_phys_addr = mc_portal_phys_addr; |
|---|
| 83 | 83 | mc_io->portal_size = mc_portal_size; |
|---|
| 84 | 84 | if (flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) |
|---|
| 85 | | - spin_lock_init(&mc_io->spinlock); |
|---|
| 85 | + raw_spin_lock_init(&mc_io->spinlock); |
|---|
| 86 | 86 | else |
|---|
| 87 | 87 | mutex_init(&mc_io->mutex); |
|---|
| 88 | 88 | |
|---|
| .. | .. |
|---|
| 97 | 97 | return -EBUSY; |
|---|
| 98 | 98 | } |
|---|
| 99 | 99 | |
|---|
| 100 | | - mc_portal_virt_addr = devm_ioremap_nocache(dev, |
|---|
| 100 | + mc_portal_virt_addr = devm_ioremap(dev, |
|---|
| 101 | 101 | mc_portal_phys_addr, |
|---|
| 102 | 102 | mc_portal_size); |
|---|
| 103 | 103 | if (!mc_portal_virt_addr) { |
|---|
| 104 | 104 | dev_err(dev, |
|---|
| 105 | | - "devm_ioremap_nocache failed for MC portal %pa\n", |
|---|
| 105 | + "devm_ioremap failed for MC portal %pa\n", |
|---|
| 106 | 106 | &mc_portal_phys_addr); |
|---|
| 107 | 107 | return -ENXIO; |
|---|
| 108 | 108 | } |
|---|
| .. | .. |
|---|
| 214 | 214 | if (error < 0) |
|---|
| 215 | 215 | goto error_cleanup_resource; |
|---|
| 216 | 216 | |
|---|
| 217 | + dpmcp_dev->consumer_link = device_link_add(&mc_dev->dev, |
|---|
| 218 | + &dpmcp_dev->dev, |
|---|
| 219 | + DL_FLAG_AUTOREMOVE_CONSUMER); |
|---|
| 220 | + if (!dpmcp_dev->consumer_link) { |
|---|
| 221 | + error = -EINVAL; |
|---|
| 222 | + goto error_cleanup_mc_io; |
|---|
| 223 | + } |
|---|
| 224 | + |
|---|
| 217 | 225 | *new_mc_io = mc_io; |
|---|
| 218 | 226 | return 0; |
|---|
| 219 | 227 | |
|---|
| 228 | +error_cleanup_mc_io: |
|---|
| 229 | + fsl_destroy_mc_io(mc_io); |
|---|
| 220 | 230 | error_cleanup_resource: |
|---|
| 221 | 231 | fsl_mc_resource_free(resource); |
|---|
| 222 | 232 | return error; |
|---|
| .. | .. |
|---|
| 249 | 259 | |
|---|
| 250 | 260 | fsl_destroy_mc_io(mc_io); |
|---|
| 251 | 261 | fsl_mc_resource_free(resource); |
|---|
| 262 | + |
|---|
| 263 | + dpmcp_dev->consumer_link = NULL; |
|---|
| 252 | 264 | } |
|---|
| 253 | 265 | EXPORT_SYMBOL_GPL(fsl_mc_portal_free); |
|---|
| 254 | 266 | |
|---|