twx-linux/include/drm
Ville Syrjälä 8445e2c54c drm: Replace mode->export_head with a boolean
In order to shrink drm_display_mode below the magic two cacheline
mark in 64bit we need to shrink it by another 8 bytes. The easiest
thing to eliminate is the 'export_head' list head which is only
used during the getconnector ioctl to temporarly track which modes
on the connector's mode list are to be exposed and which are to
remain hidden.

We can simply replace the list head with a boolean which we use
to tag the modes that are to be exposed. If we make sure to clear
the tags after we're done with them we don't even need an extra
loop over the modes to reset the tags at the start of the
getconnector ioctl.

Conveniently we already have a hole for the boolean left
behind by the removal of mode->private_flags. The final size
of the struct is now 112 bytes on 32bit and 120 bytes on 64bit.

Another alternative would be a temp bitmask so we wouldn't have
to have anything in the mode struct itself. The main issue is
how large of a bitmask do we need? I guess we could allocate
it dynamically but that means an extra kcalloc() and an extra
loop through the modes to count them first (or grow the bitmask
with krealloc() as needed).

CC: Sam Ravnborg <sam@ravnborg.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200428171940.19552-17-ville.syrjala@linux.intel.com
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2020-09-01 13:38:34 +03:00
..
bridge drm: bridge: dw-hdmi: Pass drm_display_info to dw_hdmi_support_scdc() 2020-06-23 19:57:06 +02:00
i2c
ttm drm/ttm: drop bus.size from bus placement. 2020-08-24 17:06:08 +10:00
amd_asic_type.h drm/amdgpu: add navy_flounder asic type 2020-07-15 12:45:39 -04:00
drm_agpsupport.h
drm_atomic_helper.h drm/bridge: Add the necessary bits to support bus format negotiation 2020-01-31 16:39:53 +01:00
drm_atomic_state_helper.h drm/bridge: Add a drm_bridge_state object 2020-01-31 16:00:21 +01:00
drm_atomic_uapi.h
drm_atomic.h drm: drm_atomic.h: delete duplicated word in comment 2020-07-15 14:02:29 +02:00
drm_audio_component.h
drm_auth.h
drm_blend.h
drm_bridge_connector.h drm: Add helper to create a connector for a chain of bridges 2020-02-26 13:31:41 +02:00
drm_bridge.h drm: drm_bridge.h: delete duplicated word in comment 2020-07-15 14:02:34 +02:00
drm_cache.h
drm_client.h drm/client: Add drm_client_modeset_check() 2020-05-26 13:32:03 +02:00
drm_color_mgmt.h drm: Inline drm_color_lut_extract() 2019-11-29 21:29:17 +02:00
drm_connector.h drm: report dp downstream port type as a subconnector property 2020-08-11 14:06:04 +02:00
drm_crtc_helper.h
drm_crtc.h drm: Add get_vblank_timestamp() to struct drm_crtc_funcs 2020-02-13 13:08:13 +01:00
drm_damage_helper.h
drm_debugfs_crc.h
drm_debugfs.h drm/debugfs: remove checks for return value of drm_debugfs functions. 2020-03-18 17:32:20 +01:00
drm_device.h drm/doc: add WARNING for drm_device::struct_mutex 2020-05-19 21:52:25 +01:00
drm_displayid.h drm/edid: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
drm_dp_dual_mode_helper.h
drm_dp_helper.h drm: report dp downstream port type as a subconnector property 2020-08-11 14:06:04 +02:00
drm_dp_mst_helper.h drm/dp_mst: Fix flushing the delayed port/mstb destroy work 2020-06-11 15:38:12 +03:00
drm_drv.h drm: vmwgfx: remove drm_driver::master_set() return type 2020-06-15 14:48:20 +01:00
drm_dsc.h
drm_edid.h drm: Add helper to compare edids. 2020-06-30 13:31:15 +02:00
drm_encoder_slave.h
drm_encoder.h drm: Validate encoder->possible_crtcs 2020-03-18 18:38:27 +02:00
drm_fb_cma_helper.h drm/fb-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
drm_fb_helper.h drm: Don't return 0 from a void drm_fbdev_generic_setup 2020-04-08 22:42:39 +01:00
drm_file.h drm-misc-next for 5.8: 2020-04-22 10:41:35 +10:00
drm_fixed.h
drm_flip_work.h
drm_format_helper.h drm/format-helper: Add drm_fb_swab() 2020-05-26 13:33:08 +02:00
drm_fourcc.h drm/fb: Extend format_info member arrays to handle four planes 2020-01-07 13:16:08 +02:00
drm_framebuffer.h drm/core: Calculate bpp in afbc helper 2020-04-01 14:11:22 +02:00
drm_gem_cma_helper.h drm/cma-helper: Add DRM_GEM_CMA_DRIVER_OPS to set default GEM CMA functions 2020-06-10 09:01:49 +02:00
drm_gem_framebuffer_helper.h drm/core: Add drm_afbc_framebuffer and a corresponding helper 2020-03-18 11:22:05 +01:00
drm_gem_shmem_helper.h drm/shmem-helper: Add .gem_create_object helper that sets map_cached flag 2020-06-10 10:16:43 +02:00
drm_gem_ttm_helper.h
drm_gem_vram_helper.h drm/vram-helper: Managed vram helpers 2020-07-20 09:15:56 +02:00
drm_gem.h drm: drm_gem.h: delete duplicated words in comments 2020-07-15 14:02:42 +02:00
drm_hashtab.h
drm_hdcp.h drm/hdcp: fix DRM_HDCP_2_KSV_COUNT_2_LSBITS 2020-03-04 06:35:07 +05:30
drm_ioctl.h
drm_irq.h
drm_lease.h
drm_legacy.h drm-misc-next for 5.8: 2020-04-22 10:41:35 +10:00
drm_managed.h drm: Add docs for managed resources 2020-03-26 16:09:48 +01:00
drm_mipi_dbi.h drm/mipi-dbi: Remove ->enabled 2020-06-24 09:17:34 +02:00
drm_mipi_dsi.h
drm_mm.h drm/mm: optimize rb_hole_addr rbtree search 2020-05-05 13:39:38 +02:00
drm_mode_config.h Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
drm_mode_object.h
drm_modes.h drm: Replace mode->export_head with a boolean 2020-09-01 13:38:34 +03:00
drm_modeset_helper_vtables.h drm/probe_helper: Add drm_connector_helper_funcs.mode_valid_ctx 2020-07-13 13:29:20 -04:00
drm_modeset_helper.h
drm_modeset_lock.h
drm_of.h drm: of: Fix linking when CONFIG_OF is not set 2020-01-09 10:40:58 +10:00
drm_panel.h drm/panel: Add helper for reading DT rotation 2020-08-16 17:12:18 +02:00
drm_pciids.h
drm_plane_helper.h
drm_plane.h
drm_prime.h
drm_print.h drm: add managed resources tied to drm_device 2020-03-26 14:49:13 +01:00
drm_probe_helper.h
drm_property.h
drm_rect.h drm: drm_rect.h: delete duplicated word in comment 2020-07-15 14:03:02 +02:00
drm_scdc_helper.h
drm_self_refresh_helper.h
drm_simple_kms_helper.h drm/simple-kms: Add drm_simple_encoder_{init,create}() 2020-03-02 09:22:35 +01:00
drm_syncobj.h
drm_sysfs.h
drm_util.h
drm_utils.h
drm_vblank_work.h drm/vblank: Add vblank works 2020-07-16 18:16:31 -04:00
drm_vblank.h drm/vblank: Add vblank works 2020-07-16 18:16:31 -04:00
drm_vma_manager.h
drm_writeback.h drm/writeback: wire drm_writeback.h to kernel-doc 2020-04-07 17:39:46 +02:00
gma_drm.h
gpu_scheduler.h drm/scheduler: improve job distribution with multiple queues 2020-06-26 14:16:29 +02:00
i915_component.h
i915_drm.h
i915_mei_hdcp_interface.h drm/i915: significantly reduce the use of <drm/i915_drm.h> 2020-02-27 08:35:09 +02:00
i915_pciids.h drm/i915/dg1: Add DG1 PCI IDs 2020-07-14 02:47:18 -07:00
intel_lpe_audio.h
intel-gtt.h
spsc_queue.h
task_barrier.h drm: Add Reusable task barrier. 2019-12-18 16:09:12 -05:00