From b9b2a1dcd2d36f3872d5c3d65fb2ae590a63cba1 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Wed, 15 Sep 2021 12:34:34 -0500 Subject: [PATCH] radeon_hd: yolo add navi chipsets * PCI ID's from Linux * There are a bunch of NAVI quirks around 3d rendering pipelines but not many around modesetting (which is the only thing we care about) Change-Id: If63e31fe1d37d9d95f2a71c222a4cda7a2914a5e Reviewed-on: https://review.haiku-os.org/c/haiku/+/4467 Tested-by: Commit checker robot Reviewed-by: Alex von Gluck IV --- .../private/graphics/radeon_hd/radeon_hd.h | 2 + .../drivers/graphics/radeon_hd/driver.cpp | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/headers/private/graphics/radeon_hd/radeon_hd.h b/headers/private/graphics/radeon_hd/radeon_hd.h index a56bcd62d2..c30eb4dcb1 100644 --- a/headers/private/graphics/radeon_hd/radeon_hd.h +++ b/headers/private/graphics/radeon_hd/radeon_hd.h @@ -122,6 +122,7 @@ enum radeon_chipset { RADEON_VEGA12, // DCE 13.0? RADEON_VEGA20, // DCE 13.0? RADEON_RAVEN, // DCE 13? + RADEON_NAVI, // DCE 13.0? }; // !! Must match chipset families above @@ -189,6 +190,7 @@ static const char radeon_chip_name[][MAX_NAME_LENGTH] = { "Vega 12", "Vega 20", "Raven", + "Navi", }; diff --git a/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp b/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp index c44a45cbf5..807ae24237 100644 --- a/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp +++ b/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp @@ -609,6 +609,49 @@ const struct supported_device { // Raven (APU) {0x15dd, 13, 0, RADEON_RAVEN, CHIP_APU, "Radeon Vega Raven"}, {0x15d8, 13, 0, RADEON_RAVEN, CHIP_APU, "Radeon Vega Raven"}, + + // TODO: We might need to split NAVI into NAVI10, NAVI12, etc + + // Introduced: 2019 + // Codename: Navi + // Process: 7nm FinFET + // Navi 10 + {0x7310, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x7312, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x7318, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x7319, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x731a, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x731b, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x731e, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x731f, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX 5600 / 5700"}, + // Renoir? + {0x1636, 13, 3, RADEON_NAVI, CHIP_APU, "Radeon Renoir"}, + {0x1638, 13, 3, RADEON_NAVI, CHIP_APU, "Radeon Renoir"}, + {0x164c, 13, 3, RADEON_NAVI, CHIP_APU, "Radeon Renoir"}, + // Navi 14 + {0x7340, 13, 3, RADEON_NAVI, CHIP_STD, "Radeon RX 5500"}, + // Navi 21/22 aka "Sienna Cichlid"? + {0x73a0, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73a1, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73a2, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73a3, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73ab, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73ae, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73bf, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX 6800 / 6900 XT"}, + {0x73cf, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi"}, + {0x73df, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX 6700 XT"}, + // Van Gogh? + {0x163f, 13, 4, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Van Gogh)"}, + // Navy Flounder? + {0x73c0, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Navy)"}, + {0x73c1, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Navy)"}, + {0x73c3, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Navy)"}, + {0x73df, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Navy)"}, + // Dimgrey Cavefish? + {0x73e0, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Dimgrey)"}, + {0x73e1, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Dimgrey)"}, + {0x73e2, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Dimgrey)"}, + {0x73ff, 13, 5, RADEON_NAVI, CHIP_STD, "Radeon RX Navi (Dimgrey)"}, };