On Thu, 2018-11-08 at 09:31 +0100, Daniel Vetter wrote: > On Wed, Nov 07, 2018 at 04:23:52PM -0800, José Roberto de Souza > wrote: > > This function will be helpful to drivers that wants to add its own > > quirks to sinks. > > Why would you want to do that? The point of a shared edid parsing > code is > that we can share all these quirks ... > > For these kind of patches, always include the driver code that makes > use > of your new code too. That makes it much easier to answer these > questions. This will be used to disable or enable with quirks PSR in some panels that do not behave like eDP spec states. As this would be specifc to i915, I guess is better keep the list only in i915. What is your opinion about that? > > Thanks, Daniel > > > > Signed-off-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > > --- > > drivers/gpu/drm/drm_edid.c | 20 ++++++++++++++++---- > > include/drm/drm_edid.h | 1 + > > 2 files changed, 17 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_edid.c > > b/drivers/gpu/drm/drm_edid.c > > index b506e3622b08..1a0ddf3d326b 100644 > > --- a/drivers/gpu/drm/drm_edid.c > > +++ b/drivers/gpu/drm/drm_edid.c > > @@ -1755,6 +1755,21 @@ EXPORT_SYMBOL(drm_edid_duplicate); > > > > /*** EDID parsing ***/ > > > > +/** > > + * drm_edid_manufacturer_parse - parse the EDID manufacturer id to > > readable > > + * characters and set into manufacturer parameter. > > + * @edid: EDID to get the manufacturer > > + * @manufacturer: the char buffer to store the id > > + */ > > +void drm_edid_manufacturer_parse(const struct edid *edid, char > > manufacturer[3]) > > +{ > > + manufacturer[0] = ((edid->mfg_id[0] & 0x7c) >> 2) + '@'; > > + manufacturer[1] = (((edid->mfg_id[0] & 0x3) << 3) | > > + ((edid->mfg_id[1] & 0xe0) >> 5)) + '@'; > > + manufacturer[2] = (edid->mfg_id[1] & 0x1f) + '@'; > > +} > > +EXPORT_SYMBOL(drm_edid_manufacturer_parse); > > + > > /** > > * edid_vendor - match a string against EDID's obfuscated vendor > > field > > * @edid: EDID to match > > @@ -1766,10 +1781,7 @@ static bool edid_vendor(const struct edid > > *edid, const char *vendor) > > { > > char edid_vendor[3]; > > > > - edid_vendor[0] = ((edid->mfg_id[0] & 0x7c) >> 2) + '@'; > > - edid_vendor[1] = (((edid->mfg_id[0] & 0x3) << 3) | > > - ((edid->mfg_id[1] & 0xe0) >> 5)) + '@'; > > - edid_vendor[2] = (edid->mfg_id[1] & 0x1f) + '@'; > > + drm_edid_manufacturer_parse(edid, edid_vendor); > > > > return !strncmp(edid_vendor, vendor, 3); > > } > > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h > > index e3c404833115..e4f3f7f34d6a 100644 > > --- a/include/drm/drm_edid.h > > +++ b/include/drm/drm_edid.h > > @@ -466,6 +466,7 @@ struct edid *drm_get_edid_switcheroo(struct > > drm_connector *connector, > > struct i2c_adapter *adapter); > > struct edid *drm_edid_duplicate(const struct edid *edid); > > int drm_add_edid_modes(struct drm_connector *connector, struct > > edid *edid); > > +void drm_edid_manufacturer_parse(const struct edid *edid, char > > manufacturer[3]); > > > > u8 drm_match_cea_mode(const struct drm_display_mode *to_match); > > enum hdmi_picture_aspect drm_get_cea_aspect_ratio(const u8 > > video_code); > > -- > > 2.19.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel