diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-08-11 21:55:03 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-08-11 21:55:03 +0000 |
commit | de60505351e76a27be346eb381e460eb746c52a9 (patch) | |
tree | fac12150ab8cb37c46901fd3eb06ee188be951ba | |
parent | 4216bb955341b142b326a07a7a2d217450e4cb7f (diff) | |
parent | d80cf63a737510ca3562a4941717ffb28e47dc8f (diff) | |
download | display-drivers-android-msm-eos-5.15-tm-wear-kr3-pixel-watch.tar.gz |
Snap for 10648389 from d80cf63a737510ca3562a4941717ffb28e47dc8f to android13-msm-pixelwatch-5.15-eos-releaseandroid-wear-13.0.0_r0.8android-wear-13.0.0_r0.6android-wear-13.0.0_r0.4android-wear-13.0.0_r0.10android-msm-eos-5.15-tm-wear-kr3-pixel-watch
Change-Id: I90ee15c4840bb9666040011435e08ed6043cc2f9
-rw-r--r-- | msm/dsi/dsi_display.c | 15 | ||||
-rw-r--r-- | msm/dsi/dsi_display.h | 12 | ||||
-rw-r--r-- | msm/sde/sde_connector.c | 31 | ||||
-rw-r--r-- | msm/sde/sde_connector.h | 12 | ||||
-rw-r--r-- | msm/sde/sde_kms.c | 1 |
5 files changed, 66 insertions, 5 deletions
diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index fabc981a..476b54e8 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -1393,6 +1393,21 @@ int dsi_display_set_hbm(struct drm_connector *connector, bool cmd, void *disp) return rc; } +int dsi_display_get_vendor_string(struct drm_connector *connector, void *display, char *buf, + u32 buf_len) +{ + struct dsi_display *disp = (struct dsi_display *)display; + int len = 0; + + if (!disp || !disp->panel) { + DSI_ERR("Invalid param(s) dsi_display or dsi_panel"); + return -EINVAL; + } + + len = scnprintf(buf, buf_len, "%s", disp->panel->name); + return len; +} + #if IS_ENABLED(CONFIG_DEBUG_FS) static bool dsi_display_is_te_based_esd(struct dsi_display *display) { diff --git a/msm/dsi/dsi_display.h b/msm/dsi/dsi_display.h index 2458fb13..144af668 100644 --- a/msm/dsi/dsi_display.h +++ b/msm/dsi/dsi_display.h @@ -879,4 +879,16 @@ int dsi_display_ctrl_vreg_off(struct dsi_display *display); */ int dsi_display_set_hbm(struct drm_connector *connector, bool cmd, void *disp); +/** + * dsi_display_get_vendor_string() - Get panel's vendor string + * @connector: Pointer to drm connector structure + * @display: Pointer to private display structure + * @buf: String buffer + * @buf_len: String buffer length + * + * Return: Size of string written to buffer + */ +int dsi_display_get_vendor_string(struct drm_connector *connector, void *display, char *buf, + u32 buf_len); + #endif /* _DSI_DISPLAY_H_ */ diff --git a/msm/sde/sde_connector.c b/msm/sde/sde_connector.c index ba3b200d..3e869bae 100644 --- a/msm/sde/sde_connector.c +++ b/msm/sde/sde_connector.c @@ -3386,14 +3386,35 @@ static ssize_t twm_enable_show(struct device *device, return scnprintf(buf, PAGE_SIZE, "%d\n", sde_conn->twm_en); } +static ssize_t vendor_string_show(struct device *device, struct device_attribute *attr, char *buf) +{ + struct drm_connector *conn; + struct sde_connector *sde_conn; + int len = 0; + + conn = dev_get_drvdata(device); + sde_conn = to_sde_connector(conn); + if (!sde_conn->ops.get_vendor_string) { + SDE_ERROR("no cmd get_vendor_string for connector name %s\n", sde_conn->name); + return -EINVAL; + } + + len = sde_conn->ops.get_vendor_string(conn, sde_conn->display, buf, PAGE_SIZE); + if (len <= 0) { + SDE_ERROR("cannot get vendor string %s\n", sde_conn->name); + return -EINVAL; + } + + return len; +} + static DEVICE_ATTR_RO(panel_power_state); static DEVICE_ATTR_RW(twm_enable); +static DEVICE_ATTR_RO(vendor_string); -static struct attribute *sde_connector_dev_attrs[] = { - &dev_attr_panel_power_state.attr, - &dev_attr_twm_enable.attr, - NULL -}; +static struct attribute *sde_connector_dev_attrs[] = { &dev_attr_panel_power_state.attr, + &dev_attr_twm_enable.attr, + &dev_attr_vendor_string.attr, NULL }; static const struct attribute_group sde_connector_attr_group = { .attrs = sde_connector_dev_attrs, diff --git a/msm/sde/sde_connector.h b/msm/sde/sde_connector.h index c155bc68..cd0b2fa1 100644 --- a/msm/sde/sde_connector.h +++ b/msm/sde/sde_connector.h @@ -446,6 +446,18 @@ struct sde_connector_ops { * Return: Zero on Success */ int (*set_hbm)(struct drm_connector *connector, bool cmd, void *disp); + + /** + * get_vendor_string() - Get panel's vendor string + * @connector: Pointer to drm connector structure + * @display: Pointer to private display structure + * @buf: String buffer + * @buf_len: String buffer length + * + * Return: String length written to buffer + */ + int (*get_vendor_string)(struct drm_connector *connector, void *display, char *buf, + u32 buf_len); }; /** diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index 2d834db7..5cfe7e24 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -1830,6 +1830,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .get_num_lm_from_mode = dsi_conn_get_lm_from_mode, .update_transfer_time = dsi_display_update_transfer_time, .set_hbm = dsi_display_set_hbm, + .get_vendor_string = dsi_display_get_vendor_string, }; static const struct sde_connector_ops wb_ops = { .post_init = sde_wb_connector_post_init, |