The kernel's video= option sets the initial video mode. It is shared by fbdev and DRM, but located within the fbdev code. Move it to drivers/video/ and adapt callers. Allows DRM (and others) to use the option without depending on fbdev. While at it, fix the interface of the lookup functions. This requires a number of changes. First clarify the ownership of the option string in patch 2. The helper fb_get_options() returns the video= parameter's value. It's sometimes a copy and sometimes the original string. Hence callers, mostly fbdev drivers, have just leaked the returned string. Change this to always duplicate the option string in fb_get_options() and transfer ownership of the copy to the caller. We can then start to fix the memory leaks in the fbdev drivers. There's a global video= setting and a number of per-output settings. In patches 3 to 5, support explicit lookup of the global video option and lookup the string in fbdev's modedb and in a PS3 driver. Then avoid exporting the global setting's internal state variable in patch 6. Finally, in patches 7 to 11, move the video= option to drivers/video. It can be used directly in DRM and a PS3 driver. This fixes any memory leaks from the returned option string. For fbdev drivers, the helper fb_get_options() remains as an adapter aroudn the new interface. Tested with DRM and fbdev and built for the PS3. Thomas Zimmermann (11): fbdev: Fix contact info in fb_cmdline.c fbdev: Transfer video= option strings to caller; clarify ownership fbdev: Support NULL for name in option-string lookup drivers/ps3: Read video= option with fb_get_option() fbdev: Read video= option with fb_get_option() in modedb fbdev: Unexport fb_mode_option fbdev: Move option-string lookup into helper fbdev: Handle video= parameter in video/cmdline.c driver/ps3: Include <video/cmdline.h> for mode parsing drm: Include <video/cmdline.h> for mode parsing drm: Fix comment on mode parsing drivers/gpu/drm/Kconfig | 2 +- drivers/gpu/drm/drm_connector.c | 9 +- drivers/gpu/drm/drm_modes.c | 3 +- drivers/ps3/ps3av.c | 9 +- drivers/video/Kconfig | 3 + drivers/video/Makefile | 1 + drivers/video/cmdline.c | 133 ++++++++++++++++++++++++++ drivers/video/fbdev/Kconfig | 5 +- drivers/video/fbdev/core/Makefile | 3 +- drivers/video/fbdev/core/fb_cmdline.c | 94 +++++------------- drivers/video/fbdev/core/modedb.c | 8 +- include/linux/fb.h | 1 - include/video/cmdline.h | 20 ++++ 13 files changed, 202 insertions(+), 89 deletions(-) create mode 100644 drivers/video/cmdline.c create mode 100644 include/video/cmdline.h base-commit: 1a019dd7a5d25f7c1c9b77931138290e28947e6a -- 2.39.1