Hi Nemesa,

kernel test robot noticed the following build warnings:

[auto build test WARNING on next-20250219]
[cannot apply to drm-xe/drm-xe-next drm-exynos/exynos-drm-next linus/master 
v6.14-rc3 v6.14-rc2 v6.14-rc1 v6.14-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Nemesa-Garg/drm-Introduce-sharpness-strength-property/20250219-200229
base:   next-20250219
patch link:    
https://lore.kernel.org/r/20250219115359.2320992-2-nemesa.garg%40intel.com
patch subject: [PATCH 1/6] drm: Introduce sharpness strength property
config: s390-allyesconfig 
(https://download.01.org/0day-ci/archive/20250220/202502201640.kv91rrh2-...@intel.com/config)
compiler: s390-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250220/202502201640.kv91rrh2-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202502201640.kv91rrh2-...@intel.com/

All warnings (new ones prefixed by >>):

>> include/drm/drm_crtc.h:321: warning: Incorrect use of kernel-doc format:     
>>      * @sharpness_strength
>> include/drm/drm_crtc.h:398: warning: Function parameter or struct member 
>> 'sharpness_strength' not described in 'drm_crtc_state'
>> include/drm/drm_crtc.h:1194: warning: Function parameter or struct member 
>> 'sharpness_strength_property' not described in 'drm_crtc'
>> include/drm/drm_crtc.h:1194: warning: Excess struct member 
>> 'sharpness_strength_prop' description in 'drm_crtc'


vim +321 include/drm/drm_crtc.h

    65  
    66  /**
    67   * struct drm_crtc_state - mutable CRTC state
    68   *
    69   * Note that the distinction between @enable and @active is rather 
subtle:
    70   * Flipping @active while @enable is set without changing anything else 
may
    71   * never return in a failure from the 
&drm_mode_config_funcs.atomic_check
    72   * callback. Userspace assumes that a DPMS On will always succeed. In 
other
    73   * words: @enable controls resource assignment, @active controls the 
actual
    74   * hardware state.
    75   *
    76   * The three booleans active_changed, connectors_changed and 
mode_changed are
    77   * intended to indicate whether a full modeset is needed, rather than 
strictly
    78   * describing what has changed in a commit. See also:
    79   * drm_atomic_crtc_needs_modeset()
    80   */
    81  struct drm_crtc_state {
    82          /** @crtc: backpointer to the CRTC */
    83          struct drm_crtc *crtc;
    84  
    85          /**
    86           * @enable: Whether the CRTC should be enabled, gates all other 
state.
    87           * This controls reservations of shared resources. Actual 
hardware state
    88           * is controlled by @active.
    89           */
    90          bool enable;
    91  
    92          /**
    93           * @active: Whether the CRTC is actively displaying (used for 
DPMS).
    94           * Implies that @enable is set. The driver must not release any 
shared
    95           * resources if @active is set to false but @enable still true, 
because
    96           * userspace expects that a DPMS ON always succeeds.
    97           *
    98           * Hence drivers must not consult @active in their various
    99           * &drm_mode_config_funcs.atomic_check callback to reject an 
atomic
   100           * commit. They can consult it to aid in the computation of 
derived
   101           * hardware state, since even in the DPMS OFF state the display 
hardware
   102           * should be as much powered down as when the CRTC is completely
   103           * disabled through setting @enable to false.
   104           */
   105          bool active;
   106  
   107          /**
   108           * @planes_changed: Planes on this crtc are updated. Used by 
the atomic
   109           * helpers and drivers to steer the atomic commit control flow.
   110           */
   111          bool planes_changed : 1;
   112  
   113          /**
   114           * @mode_changed: @mode or @enable has been changed. Used by 
the atomic
   115           * helpers and drivers to steer the atomic commit control flow. 
See also
   116           * drm_atomic_crtc_needs_modeset().
   117           *
   118           * Drivers are supposed to set this for any CRTC state changes 
that
   119           * require a full modeset. They can also reset it to false if 
e.g. a
   120           * @mode change can be done without a full modeset by only 
changing
   121           * scaler settings.
   122           */
   123          bool mode_changed : 1;
   124  
   125          /**
   126           * @active_changed: @active has been toggled. Used by the atomic
   127           * helpers and drivers to steer the atomic commit control flow. 
See also
   128           * drm_atomic_crtc_needs_modeset().
   129           */
   130          bool active_changed : 1;
   131  
   132          /**
   133           * @connectors_changed: Connectors to this crtc have been 
updated,
   134           * either in their state or routing. Used by the atomic
   135           * helpers and drivers to steer the atomic commit control flow. 
See also
   136           * drm_atomic_crtc_needs_modeset().
   137           *
   138           * Drivers are supposed to set this as-needed from their own 
atomic
   139           * check code, e.g. from &drm_encoder_helper_funcs.atomic_check
   140           */
   141          bool connectors_changed : 1;
   142          /**
   143           * @zpos_changed: zpos values of planes on this crtc have been 
updated.
   144           * Used by the atomic helpers and drivers to steer the atomic 
commit
   145           * control flow.
   146           */
   147          bool zpos_changed : 1;
   148          /**
   149           * @color_mgmt_changed: Color management properties have changed
   150           * (@gamma_lut, @degamma_lut or @ctm). Used by the atomic 
helpers and
   151           * drivers to steer the atomic commit control flow.
   152           */
   153          bool color_mgmt_changed : 1;
   154  
   155          /**
   156           * @no_vblank:
   157           *
   158           * Reflects the ability of a CRTC to send VBLANK events. This 
state
   159           * usually depends on the pipeline configuration. If set to 
true, DRM
   160           * atomic helpers will send out a fake VBLANK event during 
display
   161           * updates after all hardware changes have been committed. This 
is
   162           * implemented in drm_atomic_helper_fake_vblank().
   163           *
   164           * One usage is for drivers and/or hardware without support for 
VBLANK
   165           * interrupts. Such drivers typically do not initialize 
vblanking
   166           * (i.e., call drm_vblank_init() with the number of CRTCs). For 
CRTCs
   167           * without initialized vblanking, this field is set to true in
   168           * drm_atomic_helper_check_modeset(), and a fake VBLANK event 
will be
   169           * send out on each update of the display pipeline by
   170           * drm_atomic_helper_fake_vblank().
   171           *
   172           * Another usage is CRTCs feeding a writeback connector 
operating in
   173           * oneshot mode. In this case the fake VBLANK event is only 
generated
   174           * when a job is queued to the writeback connector, and we want 
the
   175           * core to fake VBLANK events when this part of the pipeline 
hasn't
   176           * changed but others had or when the CRTC and connectors are 
being
   177           * disabled.
   178           *
   179           * __drm_atomic_helper_crtc_duplicate_state() will not reset 
the value
   180           * from the current state, the CRTC driver is then responsible 
for
   181           * updating this field when needed.
   182           *
   183           * Note that the combination of &drm_crtc_state.event == NULL 
and
   184           * &drm_crtc_state.no_blank == true is valid and usually used 
when the
   185           * writeback connector attached to the CRTC has a new job 
queued. In
   186           * this case the driver will send the VBLANK event on its own 
when the
   187           * writeback job is complete.
   188           */
   189          bool no_vblank : 1;
   190  
   191          /**
   192           * @plane_mask: Bitmask of drm_plane_mask(plane) of planes 
attached to
   193           * this CRTC.
   194           */
   195          u32 plane_mask;
   196  
   197          /**
   198           * @connector_mask: Bitmask of drm_connector_mask(connector) of
   199           * connectors attached to this CRTC.
   200           */
   201          u32 connector_mask;
   202  
   203          /**
   204           * @encoder_mask: Bitmask of drm_encoder_mask(encoder) of 
encoders
   205           * attached to this CRTC.
   206           */
   207          u32 encoder_mask;
   208  
   209          /**
   210           * @adjusted_mode:
   211           *
   212           * Internal display timings which can be used by the driver to 
handle
   213           * differences between the mode requested by userspace in @mode 
and what
   214           * is actually programmed into the hardware.
   215           *
   216           * For drivers using &drm_bridge, this stores hardware display 
timings
   217           * used between the CRTC and the first bridge. For other 
drivers, the
   218           * meaning of the adjusted_mode field is purely driver 
implementation
   219           * defined information, and will usually be used to store the 
hardware
   220           * display timings used between the CRTC and encoder blocks.
   221           */
   222          struct drm_display_mode adjusted_mode;
   223  
   224          /**
   225           * @mode:
   226           *
   227           * Display timings requested by userspace. The driver should 
try to
   228           * match the refresh rate as close as possible (but note that 
it's
   229           * undefined what exactly is close enough, e.g. some of the 
HDMI modes
   230           * only differ in less than 1% of the refresh rate). The active 
width
   231           * and height as observed by userspace for positioning planes 
must match
   232           * exactly.
   233           *
   234           * For external connectors where the sink isn't fixed (like 
with a
   235           * built-in panel), this mode here should match the physical 
mode on the
   236           * wire to the last details (i.e. including sync polarities and
   237           * everything).
   238           */
   239          struct drm_display_mode mode;
   240  
   241          /**
   242           * @mode_blob: &drm_property_blob for @mode, for exposing the 
mode to
   243           * atomic userspace.
   244           */
   245          struct drm_property_blob *mode_blob;
   246  
   247          /**
   248           * @degamma_lut:
   249           *
   250           * Lookup table for converting framebuffer pixel data before 
apply the
   251           * color conversion matrix @ctm. See 
drm_crtc_enable_color_mgmt(). The
   252           * blob (if not NULL) is an array of &struct drm_color_lut.
   253           */
   254          struct drm_property_blob *degamma_lut;
   255  
   256          /**
   257           * @ctm:
   258           *
   259           * Color transformation matrix. See 
drm_crtc_enable_color_mgmt(). The
   260           * blob (if not NULL) is a &struct drm_color_ctm.
   261           */
   262          struct drm_property_blob *ctm;
   263  
   264          /**
   265           * @gamma_lut:
   266           *
   267           * Lookup table for converting pixel data after the color 
conversion
   268           * matrix @ctm.  See drm_crtc_enable_color_mgmt(). The blob (if 
not
   269           * NULL) is an array of &struct drm_color_lut.
   270           *
   271           * Note that for mostly historical reasons stemming from Xorg 
heritage,
   272           * this is also used to store the color map (also sometimes 
color lut,
   273           * CLUT or color palette) for indexed formats like 
DRM_FORMAT_C8.
   274           */
   275          struct drm_property_blob *gamma_lut;
   276  
   277          /**
   278           * @target_vblank:
   279           *
   280           * Target vertical blank period when a page flip
   281           * should take effect.
   282           */
   283          u32 target_vblank;
   284  
   285          /**
   286           * @async_flip:
   287           *
   288           * This is set when DRM_MODE_PAGE_FLIP_ASYNC is set in the 
legacy
   289           * PAGE_FLIP IOCTL. It's not wired up for the atomic IOCTL 
itself yet.
   290           */
   291          bool async_flip;
   292  
   293          /**
   294           * @vrr_enabled:
   295           *
   296           * Indicates if variable refresh rate should be enabled for the 
CRTC.
   297           * Support for the requested vrr state will depend on driver and
   298           * hardware capabiltiy - lacking support is not treated as 
failure.
   299           */
   300          bool vrr_enabled;
   301  
   302          /**
   303           * @self_refresh_active:
   304           *
   305           * Used by the self refresh helpers to denote when a self 
refresh
   306           * transition is occurring. This will be set on enable/disable 
callbacks
   307           * when self refresh is being enabled or disabled. In some 
cases, it may
   308           * not be desirable to fully shut off the crtc during self 
refresh.
   309           * CRTC's can inspect this flag and determine the best course 
of action.
   310           */
   311          bool self_refresh_active;
   312  
   313          /**
   314           * @scaling_filter:
   315           *
   316           * Scaling filter to be applied
   317           */
   318          enum drm_scaling_filter scaling_filter;
   319  
   320          /**
 > 321           * @sharpness_strength
   322           *
   323           * Used by the user to set the sharpness intensity.
   324           * The value ranges from 0-255.
   325           * Any value greater than 0 means enabling the featuring
   326           * along with setting the value for sharpness.
   327           */
   328          u8 sharpness_strength;
   329  
   330          /**
   331           * @event:
   332           *
   333           * Optional pointer to a DRM event to signal upon completion of 
the
   334           * state update. The driver must send out the event when the 
atomic
   335           * commit operation completes. There are two cases:
   336           *
   337           *  - The event is for a CRTC which is being disabled through 
this
   338           *    atomic commit. In that case the event can be send out any 
time
   339           *    after the hardware has stopped scanning out the current
   340           *    framebuffers. It should contain the timestamp and counter 
for the
   341           *    last vblank before the display pipeline was shut off. The 
simplest
   342           *    way to achieve that is calling 
drm_crtc_send_vblank_event()
   343           *    somewhen after drm_crtc_vblank_off() has been called.
   344           *
   345           *  - For a CRTC which is enabled at the end of the commit 
(even when it
   346           *    undergoes an full modeset) the vblank timestamp and 
counter must
   347           *    be for the vblank right before the first frame that scans 
out the
   348           *    new set of buffers. Again the event can only be sent out 
after the
   349           *    hardware has stopped scanning out the old buffers.
   350           *
   351           *  - Events for disabled CRTCs are not allowed, and drivers 
can ignore
   352           *    that case.
   353           *
   354           * For very simple hardware without VBLANK interrupt, enabling
   355           * &struct drm_crtc_state.no_vblank makes DRM's atomic commit 
helpers
   356           * send a fake VBLANK event at the end of the display update 
after all
   357           * hardware changes have been applied. See
   358           * drm_atomic_helper_fake_vblank().
   359           *
   360           * For more complex hardware this
   361           * can be handled by the drm_crtc_send_vblank_event() function,
   362           * which the driver should call on the provided event upon 
completion of
   363           * the atomic commit. Note that if the driver supports vblank 
signalling
   364           * and timestamping the vblank counters and timestamps must 
agree with
   365           * the ones returned from page flip events. With the current 
vblank
   366           * helper infrastructure this can be achieved by holding a 
vblank
   367           * reference while the page flip is pending, acquired through
   368           * drm_crtc_vblank_get() and released with 
drm_crtc_vblank_put().
   369           * Drivers are free to implement their own vblank counter and 
timestamp
   370           * tracking though, e.g. if they have accurate timestamp 
registers in
   371           * hardware.
   372           *
   373           * For hardware which supports some means to synchronize vblank
   374           * interrupt delivery with committing display state there's also
   375           * drm_crtc_arm_vblank_event(). See the documentation of that 
function
   376           * for a detailed discussion of the constraints it needs to be 
used
   377           * safely.
   378           *
   379           * If the device can't notify of flip completion in a race-free 
way
   380           * at all, then the event should be armed just after the page 
flip is
   381           * committed. In the worst case the driver will send the event 
to
   382           * userspace one frame too late. This doesn't allow for a real 
atomic
   383           * update, but it should avoid tearing.
   384           */
   385          struct drm_pending_vblank_event *event;
   386  
   387          /**
   388           * @commit:
   389           *
   390           * This tracks how the commit for this update proceeds through 
the
   391           * various phases. This is never cleared, except when we 
destroy the
   392           * state, so that subsequent commits can synchronize with 
previous ones.
   393           */
   394          struct drm_crtc_commit *commit;
   395  
   396          /** @state: backpointer to global drm_atomic_state */
   397          struct drm_atomic_state *state;
 > 398  };
   399  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to