Message ID | bac72a569dfe1bb604f4b3089fefbb2c71af47b6.1665496046.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/edid: EDID override refactoring and fixes | expand |
On Tue, Oct 11, 2022 at 04:49:47PM +0300, Jani Nikula wrote: > The EDID loader is internal to drm, not for drivers. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_crtc_internal.h | 11 +++++++++++ > drivers/gpu/drm/drm_edid_load.c | 5 +++-- > include/drm/drm_edid.h | 7 ------- > 3 files changed, 14 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h > index fb8a68d90940..501a10edd0e1 100644 > --- a/drivers/gpu/drm/drm_crtc_internal.h > +++ b/drivers/gpu/drm/drm_crtc_internal.h > @@ -290,3 +290,14 @@ void drm_mode_fixup_1366x768(struct drm_display_mode *mode); > int drm_edid_override_show(struct drm_connector *connector, struct seq_file *m); > int drm_edid_override_set(struct drm_connector *connector, const void *edid, size_t size); > int drm_edid_override_reset(struct drm_connector *connector); > + > +/* drm_edid_load.c */ > +#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE > +const struct drm_edid *drm_edid_load_firmware(struct drm_connector *connector); > +#else > +static inline const struct drm_edid * > +drm_edid_load_firmware(struct drm_connector *connector) > +{ > + return ERR_PTR(-ENOENT); > +} > +#endif > diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c > index 248f0685c33e..882caaa6e663 100644 > --- a/drivers/gpu/drm/drm_edid_load.c > +++ b/drivers/gpu/drm/drm_edid_load.c > @@ -11,12 +11,13 @@ > #include <linux/module.h> > #include <linux/platform_device.h> > > -#include <drm/drm_crtc.h> > -#include <drm/drm_crtc_helper.h> > +#include <drm/drm_connector.h> > #include <drm/drm_drv.h> > #include <drm/drm_edid.h> > #include <drm/drm_print.h> > > +#include "drm_crtc_internal.h" > + > static char edid_firmware[PATH_MAX]; > module_param_string(edid_firmware, edid_firmware, sizeof(edid_firmware), 0644); > MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob " > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h > index 8138613f4e4e..372963600f1d 100644 > --- a/include/drm/drm_edid.h > +++ b/include/drm/drm_edid.h > @@ -388,15 +388,8 @@ int drm_av_sync_delay(struct drm_connector *connector, > const struct drm_display_mode *mode); > > #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE > -const struct drm_edid *drm_edid_load_firmware(struct drm_connector *connector); > int __drm_set_edid_firmware_path(const char *path); > int __drm_get_edid_firmware_path(char *buf, size_t bufsize); > -#else > -static inline const struct drm_edid * > -drm_edid_load_firmware(struct drm_connector *connector) > -{ > - return ERR_PTR(-ENOENT); > -} > #endif > > bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2); > -- > 2.34.1
diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h index fb8a68d90940..501a10edd0e1 100644 --- a/drivers/gpu/drm/drm_crtc_internal.h +++ b/drivers/gpu/drm/drm_crtc_internal.h @@ -290,3 +290,14 @@ void drm_mode_fixup_1366x768(struct drm_display_mode *mode); int drm_edid_override_show(struct drm_connector *connector, struct seq_file *m); int drm_edid_override_set(struct drm_connector *connector, const void *edid, size_t size); int drm_edid_override_reset(struct drm_connector *connector); + +/* drm_edid_load.c */ +#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE +const struct drm_edid *drm_edid_load_firmware(struct drm_connector *connector); +#else +static inline const struct drm_edid * +drm_edid_load_firmware(struct drm_connector *connector) +{ + return ERR_PTR(-ENOENT); +} +#endif diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c index 248f0685c33e..882caaa6e663 100644 --- a/drivers/gpu/drm/drm_edid_load.c +++ b/drivers/gpu/drm/drm_edid_load.c @@ -11,12 +11,13 @@ #include <linux/module.h> #include <linux/platform_device.h> -#include <drm/drm_crtc.h> -#include <drm/drm_crtc_helper.h> +#include <drm/drm_connector.h> #include <drm/drm_drv.h> #include <drm/drm_edid.h> #include <drm/drm_print.h> +#include "drm_crtc_internal.h" + static char edid_firmware[PATH_MAX]; module_param_string(edid_firmware, edid_firmware, sizeof(edid_firmware), 0644); MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob " diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h index 8138613f4e4e..372963600f1d 100644 --- a/include/drm/drm_edid.h +++ b/include/drm/drm_edid.h @@ -388,15 +388,8 @@ int drm_av_sync_delay(struct drm_connector *connector, const struct drm_display_mode *mode); #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE -const struct drm_edid *drm_edid_load_firmware(struct drm_connector *connector); int __drm_set_edid_firmware_path(const char *path); int __drm_get_edid_firmware_path(char *buf, size_t bufsize); -#else -static inline const struct drm_edid * -drm_edid_load_firmware(struct drm_connector *connector) -{ - return ERR_PTR(-ENOENT); -} #endif bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2);
The EDID loader is internal to drm, not for drivers. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/drm_crtc_internal.h | 11 +++++++++++ drivers/gpu/drm/drm_edid_load.c | 5 +++-- include/drm/drm_edid.h | 7 ------- 3 files changed, 14 insertions(+), 9 deletions(-)