techpack: display: msm: notify sysfs for fod ui changes
Change-Id: I5559a9cfe00af58847e089764452a24c39830e20
This commit is contained in:
committed by
Sebastiano Barezzi
parent
c1a6ac3774
commit
c9debe88b1
@@ -5072,7 +5072,29 @@ static int dsi_display_validate_split_link(struct dsi_display *display)
|
||||
return rc;
|
||||
}
|
||||
|
||||
static ssize_t sysfs_fod_ui_read(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct dsi_display *display;
|
||||
bool status;
|
||||
|
||||
display = dev_get_drvdata(dev);
|
||||
if (!display) {
|
||||
pr_err("Invalid display\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
status = atomic_read(&display->fod_ui);
|
||||
|
||||
return snprintf(buf, PAGE_SIZE, "%d\n", status);
|
||||
}
|
||||
|
||||
static DEVICE_ATTR(fod_ui, 0444,
|
||||
sysfs_fod_ui_read,
|
||||
NULL);
|
||||
|
||||
static struct attribute *display_fs_attrs[] = {
|
||||
&dev_attr_fod_ui.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -5102,6 +5124,13 @@ static int dsi_display_sysfs_deinit(struct dsi_display *display)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dsi_display_set_fod_ui(struct dsi_display *display, bool status)
|
||||
{
|
||||
struct device *dev = &display->pdev->dev;
|
||||
atomic_set(&display->fod_ui, status);
|
||||
sysfs_notify(&dev->kobj, NULL, "fod_ui");
|
||||
}
|
||||
|
||||
/**
|
||||
* dsi_display_bind - bind dsi device with controlling device
|
||||
* @dev: Pointer to base of platform device
|
||||
@@ -5179,6 +5208,8 @@ static int dsi_display_bind(struct device *dev,
|
||||
goto error;
|
||||
}
|
||||
|
||||
atomic_set(&display->fod_ui, false);
|
||||
|
||||
memset(&info, 0x0, sizeof(info));
|
||||
|
||||
display_for_each_ctrl(i, display) {
|
||||
|
||||
@@ -275,6 +275,7 @@ struct dsi_display {
|
||||
u32 clk_gating_config;
|
||||
bool queue_cmd_waits;
|
||||
struct workqueue_struct *dma_cmd_workq;
|
||||
atomic_t fod_ui;
|
||||
};
|
||||
|
||||
int dsi_display_dev_probe(struct platform_device *pdev);
|
||||
@@ -748,4 +749,6 @@ int dsi_display_esd_irq_ctrl(struct dsi_display *display,
|
||||
|
||||
struct dsi_display *get_main_display(void);
|
||||
|
||||
void dsi_display_set_fod_ui(struct dsi_display *display, bool status);
|
||||
|
||||
#endif /* _DSI_DISPLAY_H_ */
|
||||
|
||||
@@ -805,6 +805,7 @@ void sde_connector_update_fod_hbm(struct drm_connector *connector)
|
||||
mutex_lock(&display->panel->panel_lock);
|
||||
dsi_panel_set_fod_hbm(display->panel, status);
|
||||
mutex_unlock(&display->panel->panel_lock);
|
||||
dsi_display_set_fod_ui(display, status);
|
||||
}
|
||||
|
||||
struct sde_connector_dyn_hdr_metadata *sde_connector_get_dyn_hdr_meta(
|
||||
|
||||
Reference in New Issue
Block a user