Rob Clark
8f5264d302
drm/msm/adreno: Remove MODULE_FIRMWARE()'s
...
The driver handles the case where gpu fw is not in the initrd. OTOH it
doesn't always handle the case where _some_ fw is in the initrd, but
others are not. In particular the zap fw tends to be signed with an OEM
specific key, so the paths/names differ across devices with the same
SoC/GPU, so we cannot sanely list them with MODULE_FIRMWARE().
So MODULE_FIRMWARE() just ends up causing problems without actually
solving anything. Remove them!
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com >
Patchwork: https://patchwork.freedesktop.org/patch/652195/
2025-05-10 09:06:36 -07:00
Rob Clark
dda72ac390
drm/msm/adreno: Drop fictional address_space_size
...
Really the only purpose of this was to limit the address space size to
4GB to avoid 32b rollover problems in 64b pointer math in older sqe fw.
So replace the address_space_size with a quirk limiting the address
space to 4GB. In all other cases, use the SMMU input address size (IAS)
to determine the address space size.
v2: Properly account for vm_start
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com >
Patchwork: https://patchwork.freedesktop.org/patch/649467/
2025-05-04 09:20:28 -07:00
Jie Zhang
b1f07bc58d
drm/msm/a6xx: Add support for Adreno 623
...
Add support for Adreno 623 GPU found in QCS8300 chipsets.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com >
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/640056/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2025-02-27 13:05:23 -08:00
Neil Armstrong
855e9d0fbb
drm/msm: adreno: enable GMU bandwidth for A740 and A750
...
Now all the DDR bandwidth voting via the GPU Management Unit (GMU)
is in place, declare the Bus Control Modules (BCMs) and the
corresponding parameters in the GPU info struct.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/629401/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2025-01-03 07:20:27 -08:00
Puranam V G Tejaswi
5773cce861
drm/msm/a6xx: Add support for A663
...
Add support for Adreno 663 found on sa8775p based platforms.
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com >
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/620768/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-10-27 08:13:49 -07:00
Antonino Maniscalco
20f3327575
drm/msm/a6xx: Enable preemption for tested a7xx targets
...
Initialize with 4 rings to enable preemption.
Add the "preemption_enabled" module parameter to override this.
Tested-by: Rob Clark <robdclark@gmail.com >
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8650-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8550-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8450-HDK
Signed-off-by: Antonino Maniscalco <antomani103@gmail.com >
Patchwork: https://patchwork.freedesktop.org/patch/618029/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-10-03 13:21:52 -07:00
Antonino Maniscalco
91389b4e32
drm/msm/a6xx: Add a pwrup_list field to a6xx_info
...
Add a field to contain the pwup_reglist needed for preemption.
Signed-off-by: Antonino Maniscalco <antomani103@gmail.com >
Patchwork: https://patchwork.freedesktop.org/patch/618018/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-10-03 13:21:52 -07:00
Antonino Maniscalco
b9365f4114
drm/msm: Add a preempt_record_size field
...
Adds a field to `adreno_info` to store the GPU specific preempt record
size.
Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Tested-by: Rob Clark <robdclark@gmail.com >
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8650-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8550-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org > # on SM8450-HDK
Signed-off-by: Antonino Maniscalco <antomani103@gmail.com >
Patchwork: https://patchwork.freedesktop.org/patch/618015/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-10-03 13:18:35 -07:00
Konrad Dybcio
dbfbb376b5
drm/msm/a6xx: Add A621 support
...
A621 is a clear A662 derivative (same lineage as A650), no explosions
or sick features, other than a NoC bug which can stall the GPU..
Add support for it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/611100/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-09-01 08:17:54 -07:00
Konrad Dybcio
40c297eb24
drm/msm/a6xx: Set GMU CGC properties on a6xx too
...
This was apparently never done before.. Program the expected values.
This also gets rid of sneakily setting that register through the HWCG
reg list on A690.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/611098/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-09-01 08:17:54 -07:00
Konrad Dybcio
d50a8363c2
drm/msm/a6xx: Store correct gmu_cgc_mode in struct a6xx_info
...
Store the correct values that we happen to have for some A7xx SKUs in
the GPU info struct and fill out the missing information for A6xx GPUs
based on downstream kernel information.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/611094/
[add missing entry to a615 catalog to resolve conflict]
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-09-01 08:17:54 -07:00
Konrad Dybcio
2bbb5fe390
drm/msm/a6xx: Store primFifoThreshold in struct a6xx_info
...
The if-else monster is so unmaintainable that one case is repeated
twice. Get rid of it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/611092/
[add missing entry to a615 catalog to resolve conflict]
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-09-01 08:17:53 -07:00
Richard Acayan
c80bbd7fcd
drm/msm/adreno: add a615 support
...
The Adreno A615 is used in SDM670. Add an entry to support it.
Signed-off-by: Richard Acayan <mailingradian@gmail.com >
Patchwork: https://patchwork.freedesktop.org/patch/607238/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-08-30 10:41:19 -07:00
Eugene Lepshy
f7f14b1088
drm/msm/a6xx: Add A642L speedbin (0x81)
...
According to downstream, A642L's speedbin is 129 and uses 4 as index
Signed-off-by: Eugene Lepshy <fekz115@gmail.com >
Signed-off-by: Danila Tikhonov <danila@jiaxyga.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/606722/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-08-30 10:41:19 -07:00
Rob Clark
ad7f52996b
drm/msm/a6xx: Add missing __always_unused
...
The __build_asserts() function only exists to have a place to put
build-time asserts.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202407010401.rfunrBSx-lkp@intel.com/
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/601606/
2024-07-02 07:05:08 -07:00
Akhil P Oommen
2c4c53f316
drm/msm/adreno: Introduce gmu_chipid for a740 & a750
...
To simplify, introduce the new gmu_chipid for a740 & a750 GPUs.
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/601396/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-06-29 16:46:01 -07:00
Akhil P Oommen
d6225e0cd0
drm/msm/adreno: Add support for X185 GPU
...
Add support in drm/msm driver for the Adreno X185 gpu found in
Snapdragon X1 Elite chipset.
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/601399/
Signed-off-by: Rob Clark <robdclark@chromium.org >
2024-06-29 13:45:30 -07:00
Rob Clark
fccf9dd008
drm/msm/adreno: Move CP_PROTECT settings to hw catalog
...
Move the CP_PROTECT settings into the hw catalog.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/599731/
2024-06-20 09:45:37 -07:00
Rob Clark
dff2f69f3e
drm/msm/adreno: Move hwcg table into a6xx specific info
...
Introduce a6xx_info where we can stash gen specific stuff without
polluting the toplevel adreno_info struct.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/599728/
2024-06-20 09:45:26 -07:00
Rob Clark
85e8cc06f2
drm/msm/adreno: Move hwcg regs to a6xx hw catalog
...
Move the hwcg tables into the hw catalog.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/599727/
2024-06-20 09:45:25 -07:00
Rob Clark
2e819c420e
drm/msm/adreno: Split catalog into separate files
...
Split each gen's gpu table into it's own file. Only code-motion, no
functional change.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/599725/
2024-06-20 09:45:25 -07:00