diff options
author | eggz | 2021-07-14 22:39:38 +0200 |
---|---|---|
committer | eggz | 2021-07-14 22:39:38 +0200 |
commit | a6bb9f4b30d3254599371c22c4c20f3b967d235a (patch) | |
tree | 715657ab868e53230b6645161a2a8fa8b1ec2e31 | |
parent | 1cca662f0a6028acf06e2b63ca047e848af9a0a2 (diff) | |
download | aur-a6bb9f4b30d3254599371c22c4c20f3b967d235a.tar.gz |
Updated
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | brightness.patch | 105 | ||||
-rw-r--r-- | config.x86_64 | 2 |
4 files changed, 112 insertions, 7 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-amd-raven - pkgver = 5.4.v.131 + pkgver = 5.4.v.132 pkgrel = 1 url = https://www.kernel.org/ arch = x86_64 @@ -14,13 +14,13 @@ pkgbase = linux-amd-raven makedepends = lzop makedepends = gcc>=9.1 options = !strip - source = git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#tag=v5.4.131 + source = git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#tag=v5.4.132 source = config.x86_64 source = linux-amd-raven.preset source = linux.install source = 5010_enable-cpu-optimizations-universal.patch sha256sums = SKIP - sha256sums = f959022c9ae19c9d8604554b22561ee4b3652ea5b70c1e7e2ba5efc1684a4c41 + sha256sums = 10fc9da3e2ee1c2c469032a0e68e857f7bf5c8fb1f1b62fdf8438102d1262430 sha256sums = fd220b9f47a86162247b042f06311848678f9acb64b92f716572972f3aeb3d18 sha256sums = d590e751ab4cf424b78fd0d57e53d187f07401a68c8b468d17a5f39a337dacf0 sha256sums = 63eb599f217729e42dbb0840247412b16b2bd5365725d2488a0256295f71ccda @@ -2,8 +2,8 @@ pkgbase=linux-amd-raven _srcname=linux -gitver=v5.4.131 -pkgver=5.4.v.131 +gitver=v5.4.132 +pkgver=5.4.v.132 pkgrel=1 arch=('x86_64') url="https://www.kernel.org/" @@ -23,7 +23,7 @@ source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#ta ) sha256sums=('SKIP' #config.x86_64 - 'f959022c9ae19c9d8604554b22561ee4b3652ea5b70c1e7e2ba5efc1684a4c41' + '10fc9da3e2ee1c2c469032a0e68e857f7bf5c8fb1f1b62fdf8438102d1262430' #.preset file 'fd220b9f47a86162247b042f06311848678f9acb64b92f716572972f3aeb3d18' #linux install file diff --git a/brightness.patch b/brightness.patch new file mode 100644 index 000000000000..c3cc50e70c4c --- /dev/null +++ b/brightness.patch @@ -0,0 +1,105 @@ +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 710edc70e37e..b60a763f3f95 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -2881,51 +2881,50 @@ static int set_backlight_via_aux(struct dc_link *link, uint32_t brightness) + return rc ? 0 : 1; + } +-static u32 convert_brightness(const struct amdgpu_dm_backlight_caps *caps, +- const uint32_t user_brightness) ++static int get_brightness_range(const struct amdgpu_dm_backlight_caps *caps, ++ unsigned *min, unsigned *max) + { +- u32 min, max, conversion_pace; +- u32 brightness = user_brightness; +- + if (!caps) +- goto out; ++ return 0; +- if (!caps->aux_support) { +- max = caps->max_input_signal; +- min = caps->min_input_signal; +- /* +- * The brightness input is in the range 0-255 +- * It needs to be rescaled to be between the +- * requested min and max input signal +- * It also needs to be scaled up by 0x101 to +- * match the DC interface which has a range of +- * 0 to 0xffff +- */ +- conversion_pace = 0x101; +- brightness = +- user_brightness +- * conversion_pace +- * (max - min) +- / AMDGPU_MAX_BL_LEVEL +- + min * conversion_pace; ++ if (caps->aux_support) { ++ // Firmware limits are in nits, DC API wants millinits. ++ *max = 1000 * caps->aux_max_input_signal; ++ *min = 1000 * caps->aux_min_input_signal; + } else { +- /* TODO +- * We are doing a linear interpolation here, which is OK but +- * does not provide the optimal result. We probably want +- * something close to the Perceptual Quantizer (PQ) curve. +- */ +- max = caps->aux_max_input_signal; +- min = caps->aux_min_input_signal; +- +- brightness = (AMDGPU_MAX_BL_LEVEL - user_brightness) * min +- + user_brightness * max; +- // Multiple the value by 1000 since we use millinits +- brightness *= 1000; +- brightness = DIV_ROUND_CLOSEST(brightness, AMDGPU_MAX_BL_LEVEL); ++ // Firmware limits are 8-bit, PWM control is 16-bit. ++ *max = 0x101 * caps->max_input_signal; ++ *min = 0x101 * caps->min_input_signal; + } ++ return 1; ++} +-out: +- return brightness; ++static u32 convert_brightness_from_user(const struct amdgpu_dm_backlight_caps *caps, ++ uint32_t brightness) ++{ ++ unsigned min, max; ++ ++ if (!get_brightness_range(caps, &min, &max)) ++ return brightness; ++ ++ // Rescale 0..255 to min..max ++ return min + DIV_ROUND_CLOSEST((max - min) * brightness, ++ AMDGPU_MAX_BL_LEVEL); ++} ++ ++static u32 convert_brightness_to_user(const struct amdgpu_dm_backlight_caps *caps, ++ uint32_t brightness) ++{ ++ unsigned min, max; ++ ++ if (!get_brightness_range(caps, &min, &max)) ++ return brightness; ++ ++ if (brightness < min) ++ return 0; ++ // Rescale min..max to 0..255 ++ return DIV_ROUND_CLOSEST(AMDGPU_MAX_BL_LEVEL * (brightness - min), ++ max - min); + } + static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) +@@ -2941,7 +2940,7 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) + link = (struct dc_link *)dm->backlight_link; +- brightness = convert_brightness(&caps, bd->props.brightness); ++ brightness = convert_brightness_from_user(&caps, bd->props.brightness); + // Change brightness based on AUX property + if (caps.aux_support) + return set_backlight_via_aux(link, brightness); +@@ -2958,7 +2957,7 @@ static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd) + if (ret == DC_ERROR_UNEXPECTED) + return bd->props.brightness; +- return ret; ++ return convert_brightness_to_user(&dm->backlight_caps, ret); + } + static const struct backlight_ops amdgpu_dm_backlight_ops = { +base-commit: bcf876870b95592b52519ed4aafcf9d95999bc9c diff --git a/config.x86_64 b/config.x86_64 index 0fc3c30e70ee..97f0914ed3e5 100644 --- a/config.x86_64 +++ b/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.4.131 Kernel Configuration +# Linux/x86 5.4.132 Kernel Configuration # # |