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

Commit 2336f80f authored by Terence Hampson's avatar Terence Hampson Committed by Mickey Mendlin
Browse files

msm: mdp3: move mdp_overlay variable from stack to heap



We are moving struct mdp_overlay variable from stack to heap since
mdp_overlay size increase significantly recently. There
was a warning from compiler saying that frame size is larger than
1024 bytes, which is resolved with this patch. Similar change is
present in mdss code.

Change-Id: Ib19fb63596f095a5a6b2be9b10b5eeb04542449f
Signed-off-by: default avatarTerence Hampson <thampson@codeaurora.org>
parent bfc96c5e
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -1385,7 +1385,7 @@ static int mdp3_ctrl_ioctl_handler(struct msm_fb_data_type *mfd,
	int rc = -EINVAL;
	struct mdp3_session_data *mdp3_session;
	struct msmfb_metadata metadata;
	struct mdp_overlay req;
	struct mdp_overlay *req = NULL;
	struct msmfb_overlay_data ov_data;
	int val;

@@ -1393,6 +1393,8 @@ static int mdp3_ctrl_ioctl_handler(struct msm_fb_data_type *mfd,
	if (!mdp3_session)
		return -ENODEV;

	req = &mdp3_session->req_overlay;

	if (!mdp3_session->status && cmd != MSMFB_METADATA_GET) {
		pr_err("mdp3_ctrl_ioctl_handler, display off!\n");
		return -EPERM;
@@ -1432,23 +1434,23 @@ static int mdp3_ctrl_ioctl_handler(struct msm_fb_data_type *mfd,
			rc = copy_to_user(argp, &metadata, sizeof(metadata));
		break;
	case MSMFB_OVERLAY_GET:
		rc = copy_from_user(&req, argp, sizeof(req));
		rc = copy_from_user(req, argp, sizeof(*req));
		if (!rc) {
			rc = mdp3_overlay_get(mfd, &req);
			rc = mdp3_overlay_get(mfd, req);

		if (!IS_ERR_VALUE(rc))
			rc = copy_to_user(argp, &req, sizeof(req));
			rc = copy_to_user(argp, req, sizeof(*req));
		}
		if (rc)
			pr_err("OVERLAY_GET failed (%d)\n", rc);
		break;
	case MSMFB_OVERLAY_SET:
		rc = copy_from_user(&req, argp, sizeof(req));
		rc = copy_from_user(req, argp, sizeof(*req));
		if (!rc) {
			rc = mdp3_overlay_set(mfd, &req);
			rc = mdp3_overlay_set(mfd, req);

		if (!IS_ERR_VALUE(rc))
			rc = copy_to_user(argp, &req, sizeof(req));
			rc = copy_to_user(argp, req, sizeof(*req));
		}
		if (rc)
			pr_err("OVERLAY_SET failed (%d)\n", rc);
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ struct mdp3_session_data {
	int vsync_period;
	struct sysfs_dirent *vsync_event_sd;
	struct mdp_overlay overlay;
	struct mdp_overlay req_overlay;
	struct mdp3_buffer_queue bufq_in;
	struct mdp3_buffer_queue bufq_out;
	int histo_status;