linux/drivers/gpu/drm/i915/display
Pankaj Bharadiya cc2396ff75 drm/i915/display: Add Nearest-neighbor based integer scaling support
Integer scaling (IS) is a nearest-neighbor upscaling technique that
simply scales up the existing pixels by an integer
(i.e., whole number) multiplier.Nearest-neighbor (NN) interpolation
works by filling in the missing color values in the upscaled image
with that of the coordinate-mapped nearest source pixel value.

Both IS and NN preserve the clarity of the original image. Integer
scaling is particularly useful for pixel art games that rely on
sharp, blocky images to deliver their distinctive look.

Introduce functions to configure the scaler filter coefficients to
enable nearest-neighbor filtering.

Bspec: 49247

changes since v6:
* Trust compiler, remove pointless inline keyword from cnl_coef_tap()
  & cnl_nearest_filter_coef() functions (Ville)
changes since v4:
* Make cnl_coef_tap(), cnl_nearest_filter_coef() inline (Uma)
changes since v3:
* None
changes since v2:
* Move APIs from 5/5 into this patch.
* Change filter programming related function names to cnl_*, move
  filter select bits related code into inline function (Ville)
changes since v1:
* Rearrange skl_scaler_setup_nearest_neighbor_filter() to iterate the
  registers directly instead of the phases and taps (Ville)

changes since RFC:
* Refine the skl_scaler_setup_nearest_neighbor_filter() logic (Ville)

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201020161427.6941-4-pankaj.laxminarayan.bharadiya@intel.com
2020-10-21 12:21:04 +03:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
icl_dsi.c drm/i915/jsl: Split EHL/JSL platform info and PCI ids 2020-10-14 09:31:34 +02:00
intel_acpi.c
intel_acpi.h
intel_atomic.c drm/i915: Remove the old global state stuff 2020-09-17 20:08:08 +03:00
intel_atomic.h drm/i915: Remove the old global state stuff 2020-09-17 20:08:08 +03:00
intel_atomic_plane.c drm/i915: Add dedicated plane hook for async flip case 2020-09-28 14:12:49 +03:00
intel_atomic_plane.h
intel_audio.c drm/i915: Nuke force_min_cdclk_changed 2020-09-17 20:10:21 +03:00
intel_audio.h
intel_bios.c drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map 2020-10-09 14:09:53 -07:00
intel_bios.h
intel_bw.c
intel_bw.h
intel_cdclk.c drm/i915/rkl: Add new cdclk table 2020-10-16 08:47:08 -07:00
intel_cdclk.h drm/i915: Nuke force_min_cdclk_changed 2020-09-17 20:10:21 +03:00
intel_color.c drm/i915: Replace some gamma_mode ifs with switches 2020-09-28 18:09:52 +03:00
intel_color.h
intel_combo_phy.c drm/i915/jsl: Split EHL/JSL platform info and PCI ids 2020-10-14 09:31:34 +02:00
intel_combo_phy.h
intel_connector.c
intel_connector.h
intel_crt.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_crt.h
intel_csr.c drm/i915/dg1: Load DMC 2020-10-15 14:14:33 -07:00
intel_csr.h
intel_ddi.c drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/ 2020-10-20 20:13:03 +03:00
intel_ddi.h drm/i915: Eliminate intel_dp.regs.dp_tp_{ctl,status} 2020-10-01 16:45:57 +03:00
intel_de.h
intel_display.c drm/i915/display: Add Nearest-neighbor based integer scaling support 2020-10-21 12:21:04 +03:00
intel_display.h drm/i915/display: Add Nearest-neighbor based integer scaling support 2020-10-21 12:21:04 +03:00
intel_display_debugfs.c drm/i915/dg1: Update DMC_DEBUG register 2020-10-15 15:30:22 -07:00
intel_display_debugfs.h
intel_display_power.c drm/i915: Reorder hpd init vs. display resume 2020-10-20 20:18:32 +03:00
intel_display_power.h drm/i915/dg1: Add DG1 power wells 2020-10-15 14:14:29 -07:00
intel_display_types.h drm/i915: Nuke lspcon_downsampling 2020-10-16 19:44:45 +03:00
intel_dp.c drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/ 2020-10-20 20:13:03 +03:00
intel_dp.h drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/ 2020-10-20 20:13:03 +03:00
intel_dp_aux_backlight.c drm/i915/dpcd_bl: uncheck PWM_PIN_CAP when detect eDP backlight capabilities 2020-10-12 19:37:15 -04:00
intel_dp_aux_backlight.h
intel_dp_hdcp.c drm/i915: Add HDCP 1.4 support for MST connectors 2020-09-01 13:03:05 +05:30
intel_dp_link_training.c drm/i915: Switch to LTTPR non-transparent mode link training 2020-10-12 15:33:03 +03:00
intel_dp_link_training.h drm/i915: Switch to LTTPR non-transparent mode link training 2020-10-12 15:33:03 +03:00
intel_dp_mst.c drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/ 2020-10-20 20:13:03 +03:00
intel_dp_mst.h
intel_dpio_phy.c drm/i915: Plumb crtc_state to link training 2020-10-01 16:45:57 +03:00
intel_dpio_phy.h drm/i915: Plumb crtc_state to link training 2020-10-01 16:45:57 +03:00
intel_dpll_mgr.c drm/i915/dg1: Enable DPLL for DG1 2020-10-15 14:14:32 -07:00
intel_dpll_mgr.h drm/i915/dg1: Add DPLL macros for DG1 2020-10-15 14:14:30 -07:00
intel_dsb.c
intel_dsb.h
intel_dsi.c
intel_dsi.h drm/i915/dsi: Initiate frame request in cmd mode 2020-09-28 20:02:14 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_dcs_backlight.h
intel_dsi_vbt.c
intel_dvo.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_dvo.h
intel_dvo_dev.h
intel_fbc.c drm/i915/display/fbc: Implement WA 22010751166 2020-10-19 17:25:55 -07:00
intel_fbc.h
intel_fbdev.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just removing the outputs 2020-09-15 14:57:13 +03:00
intel_fbdev.h
intel_fifo_underrun.c
intel_fifo_underrun.h
intel_frontbuffer.c drm/i915: Add a couple of missing i915_active_fini() 2020-08-17 16:16:34 -04:00
intel_frontbuffer.h
intel_global_state.c
intel_global_state.h
intel_gmbus.c drm/i915/dg1: gmbus pin mapping 2020-10-07 13:51:21 -07:00
intel_gmbus.h
intel_hdcp.c drm/i915: dont retry stream management at seq_num_m roll over 2020-09-24 15:44:57 +05:30
intel_hdcp.h drm/i915: Plumb port through hdcp init 2020-09-01 13:02:33 +05:30
intel_hdmi.c drm/i915/dg1: gmbus pin mapping 2020-10-07 13:51:21 -07:00
intel_hdmi.h drm/i915: Do YCbCr 444->420 conversion via DP protocol converters 2020-09-17 18:43:09 +03:00
intel_hotplug.c drm/i915: Refactor .hpd_irq_setup() calls a bit 2020-10-20 20:18:53 +03:00
intel_hotplug.h drm/i915: Reorder hpd init vs. display resume 2020-10-20 20:18:32 +03:00
intel_lpe_audio.c
intel_lpe_audio.h
intel_lspcon.c drm/i915: Nuke lspcon_ycbcr420_config() 2020-10-16 19:44:45 +03:00
intel_lspcon.h drm/i915: Nuke lspcon_ycbcr420_config() 2020-10-16 19:44:45 +03:00
intel_lvds.c drm/i915: Wait for LVDS panel power cycle delay on reboot 2020-10-09 21:12:13 +03:00
intel_lvds.h
intel_opregion.c
intel_opregion.h
intel_overlay.c
intel_overlay.h
intel_panel.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_panel.h drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_pipe_crc.c
intel_pipe_crc.h
intel_psr.c drm/i915/display: Program PSR2 selective fetch registers 2020-10-09 15:07:39 -07:00
intel_psr.h drm/i915/display: Program PSR2 selective fetch registers 2020-10-09 15:07:39 -07:00
intel_quirks.c
intel_quirks.h
intel_sdvo.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_sdvo.h
intel_sdvo_regs.h
intel_sprite.c drm/i915/dg1: Add initial DG1 workarounds 2020-10-15 14:14:34 -07:00
intel_sprite.h
intel_tc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
intel_tc.h
intel_tv.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_tv.h
intel_vbt_defs.h drm/i915/vbt: Add VRR VBT toggle 2020-10-09 14:09:54 -07:00
intel_vdsc.c
intel_vdsc.h
intel_vga.c
intel_vga.h
vlv_dsi.c drm/i915: Wait for VLV/CHV/BXT/GLK DSI panel power cycle delay on reboot 2020-10-09 21:12:13 +03:00
vlv_dsi_pll.c drm/i915/vlv_dsi_pll: fix spelling mistake "Cant" -> "Can't" 2020-08-27 16:28:21 +03:00