Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb45c8fa authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "input: touchscreen: synaptics_dsx: add display dependency"

parents c828023d 755f7cb0
Loading
Loading
Loading
Loading
+33 −13
Original line number Diff line number Diff line
@@ -147,6 +147,8 @@ static int synaptics_rmi4_suspend(struct device *dev);

static int synaptics_rmi4_resume(struct device *dev);

static int synaptics_rmi4_defer_probe(struct platform_device *pdev);

static ssize_t synaptics_rmi4_f01_reset_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count);

@@ -4226,7 +4228,6 @@ EXPORT_SYMBOL(synaptics_rmi4_new_function);
static int synaptics_rmi4_probe(struct platform_device *pdev)
{
	int retval;
	unsigned char attr_count;
	struct synaptics_rmi4_data *rmi4_data;
	const struct synaptics_dsx_hw_interface *hw_if;
	const struct synaptics_dsx_board_data *bdata;
@@ -4277,6 +4278,31 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)

	vir_button_map = bdata->vir_button_map;

	rmi4_data->initialized = false;
#ifdef CONFIG_FB
	rmi4_data->fb_notifier.notifier_call =
					synaptics_rmi4_dsi_panel_notifier_cb;
	retval = msm_drm_register_client(&rmi4_data->fb_notifier);
	if (retval < 0) {
		dev_err(&pdev->dev,
				"%s: Failed to register fb notifier client\n",
				__func__);
	}
#endif
	return retval;
}

static int synaptics_rmi4_defer_probe(struct platform_device *pdev)
{
	int retval;
	struct synaptics_rmi4_data *rmi4_data;
	const struct synaptics_dsx_hw_interface *hw_if;
	const struct synaptics_dsx_board_data *bdata;
	unsigned char attr_count;

	rmi4_data = platform_get_drvdata(pdev);
	hw_if = rmi4_data->hw_if;
	bdata = hw_if->board_data;
	retval = synaptics_rmi4_get_reg(rmi4_data, true);
	if (retval < 0) {
		dev_err(&pdev->dev,
@@ -4335,18 +4361,6 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)
		goto err_set_input_dev;
	}

#ifdef CONFIG_FB
	rmi4_data->fb_notifier.notifier_call = synaptics_rmi4_dsi_panel_notifier_cb;
	retval = msm_drm_register_client(&rmi4_data->fb_notifier);
	if (retval < 0) {


		dev_err(&pdev->dev,
				"%s: Failed to register fb notifier client\n",
				__func__);
	}
#endif

#ifdef USE_EARLYSUSPEND
	rmi4_data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1;
	rmi4_data->early_suspend.suspend = synaptics_rmi4_early_suspend;
@@ -4594,6 +4608,12 @@ static int synaptics_rmi4_dsi_panel_notifier_cb(struct notifier_block *self,
				synaptics_rmi4_suspend(&rmi4_data->pdev->dev);
				rmi4_data->fb_ready = false;
			} else if (transition == MSM_DRM_BLANK_UNBLANK) {
				if (rmi4_data->initialized == false) {
					if (synaptics_rmi4_defer_probe(
							rmi4_data->pdev))
						return -ECANCELED;
					rmi4_data->initialized = true;
				}
				synaptics_rmi4_resume(&rmi4_data->pdev->dev);
				rmi4_data->fb_ready = true;
			}
+1 −0
Original line number Diff line number Diff line
@@ -353,6 +353,7 @@ struct synaptics_rmi4_device_info {
 * @report_touch: pointer to touch reporting function
 */
struct synaptics_rmi4_data {
	bool initialized;
	struct platform_device *pdev;
	struct input_dev *input_dev;
	struct input_dev *stylus_dev;