On the BCM2711, we currently call the vc4_bo_cache_init() and vc4_gem_init() functions. These functions initialize the BO and GEM backends. However, this code was initially created to accomodate the requirements of the GPU on the older SoCs, while the BCM2711 has a separate driver for it. So let's just skip these calls when we're on a newer hardware.
Unified · Split
| @@ -285,19 +285,23 @@ static int vc4_drm_bind(struct device *dev) · 284 unmodified lines | ||
| 285 | 285 | platform_set_drvdata(pdev, drm); |
| 286 | 286 | INIT_LIST_HEAD(&vc4->debugfs_list); |
| 287 | 287 | |
| 288 | − mutex_init(&vc4->bin_bo_lock); | |
| 288 | + if (!is_vc5) { | |
| 289 | + mutex_init(&vc4->bin_bo_lock); | |
| 289 | 290 | |
| 290 | − ret = vc4_bo_cache_init(drm); | |
| 291 | − if (ret) | |
| 292 | − return ret; | |
| 291 | + ret = vc4_bo_cache_init(drm); | |
| 292 | + if (ret) | |
| 293 | + return ret; | |
| 294 | + } | |
| 293 | 295 | |
| 294 | 296 | ret = drmm_mode_config_init(drm); |
| 295 | 297 | if (ret) |
| 296 | 298 | return ret; |
| 297 | 299 | |
| 298 | − ret = vc4_gem_init(drm); | |
| 299 | − if (ret) | |
| 300 | − return ret; | |
| 300 | + if (!is_vc5) { | |
| 301 | + ret = vc4_gem_init(drm); | |
| 302 | + if (ret) | |
| 303 | + return ret; | |
| 304 | + } | |
| 301 | 305 | |
| 302 | 306 | node = of_find_compatible_node(NULL, NULL, "raspberrypi,bcm2835-firmware"); |
| 303 | 307 | if (node) { |