| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| inherit linux-info |
| |
| DESCRIPTION="Microcode for C.Islands/V.Islands/A.Islands Radeon GPUs and APUs" |
| HOMEPAGE="https://people.freedesktop.org/~agd5f/radeon_ucode/" |
| SRC_URI="mirror://gentoo/${P}.tar.xz |
| legacy? ( mirror://gentoo/${P/amdgpu/radeon}.tar.xz )" |
| |
| LICENSE="radeon-ucode" |
| SLOT="0" |
| KEYWORDS="amd64 x86" |
| IUSE="legacy" |
| |
| RDEPEND="legacy? ( !sys-firmware/radeon-ucode ) |
| !>sys-kernel/linux-firmware-20150812[-savedconfig]" |
| |
| S=${WORKDIR}/amdgpu |
| |
| AMDGPU_LEGACY_CIK="bonaire hawaii kabini kaveri mullins" |
| |
| src_install() { |
| local chip files legacyfiles |
| if use legacy; then |
| pushd ../radeon || die |
| for chip in ${AMDGPU_LEGACY_CIK}; do |
| legacyfiles+=( ${chip}*.bin ) |
| done |
| insinto /lib/firmware/radeon |
| doins ${legacyfiles[@]} |
| popd |
| fi |
| files=( *.bin ) |
| insinto /lib/firmware/amdgpu |
| doins ${files[@]} |
| FILES=( ${files[@]/#/amdgpu/} ${legacyfiles[@]/#/radeon/} ) |
| } |
| |
| pkg_postinst() { |
| if linux_config_exists && linux_chkconfig_builtin DRM_AMDGPU; then |
| if ! linux_chkconfig_present FIRMWARE_IN_KERNEL || \ |
| ! [[ "$(linux_chkconfig_string EXTRA_FIRMWARE)" == *_rlc.bin* ]]; then |
| ewarn "Your kernel has amdgpu DRM built-in but not the microcode." |
| ewarn "For kernel modesetting to work, please set in kernel config" |
| ewarn "CONFIG_FIRMWARE_IN_KERNEL=y" |
| ewarn "CONFIG_EXTRA_FIRMWARE_DIR=\"/lib/firmware\"" |
| ewarn "CONFIG_EXTRA_FIRMWARE=\"${FILES[@]}\"" |
| ewarn "You may skip microcode files for which no hardware is installed." |
| ewarn "More information at https://wiki.gentoo.org/wiki/AMDGPU#Firmware" |
| fi |
| fi |
| } |