All of lore.kernel.org
 help / color / mirror / Atom feed
From: Archit Taneja <a0393947@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org, archit@ti.com
Subject: Re: [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs settings
Date: Wed, 07 Dec 2011 13:17:51 +0000	[thread overview]
Message-ID: <4EDF64AF.6040008@ti.com> (raw)
In-Reply-To: <1321953724-6350-64-git-send-email-tomi.valkeinen@ti.com>

Hi,

On Tuesday 22 November 2011 02:52 PM, Tomi Valkeinen wrote:
> Add checks for overlay and manager settings. The checks are a bit
> complex, as we need to observe the bigger picture instead of overlays
> and managers independently. Things like the used display and the zorder
> of other overlays affect the validity of the settings.

Minor comment:

dss_ovl_check, dss_mgr_check and dss_mgr_check_zorder don't really 
qualify as functions which do actual applying of configurations, they 
could be moved from apply.c to manager.c and overlay.c.

Archit

>
> Signed-off-by: Tomi Valkeinen<tomi.valkeinen@ti.com>
> ---
>   drivers/video/omap2/dss/apply.c |  215 ++++++++++++++++++++++++++++++++++++++-
>   1 files changed, 212 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
> index 5d933b9..72afa85 100644
> --- a/drivers/video/omap2/dss/apply.c
> +++ b/drivers/video/omap2/dss/apply.c
> @@ -166,6 +166,169 @@ static bool mgr_manual_update(struct omap_overlay_manager *mgr)
>   	return mgr->device->caps&  OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
>   }
>
> +/* Check if overlay parameters are compatible with display */
> +static int dss_ovl_check(struct omap_overlay *ovl,
> +		struct omap_overlay_info *info, struct omap_dss_device *dssdev)
> +{
> +	u16 outw, outh;
> +	u16 dw, dh;
> +
> +	if (dssdev = NULL)
> +		return 0;
> +
> +	dssdev->driver->get_resolution(dssdev,&dw,&dh);
> +
> +	if ((ovl->caps&  OMAP_DSS_OVL_CAP_SCALE) = 0) {
> +		outw = info->width;
> +		outh = info->height;
> +	} else {
> +		if (info->out_width = 0)
> +			outw = info->width;
> +		else
> +			outw = info->out_width;
> +
> +		if (info->out_height = 0)
> +			outh = info->height;
> +		else
> +			outh = info->out_height;
> +	}
> +
> +	if (dw<  info->pos_x + outw) {
> +		DSSERR("overlay %d horizontally not inside the display area "
> +				"(%d + %d>= %d)\n",
> +				ovl->id, info->pos_x, outw, dw);
> +		return -EINVAL;
> +	}
> +
> +	if (dh<  info->pos_y + outh) {
> +		DSSERR("overlay %d vertically not inside the display area "
> +				"(%d + %d>= %d)\n",
> +				ovl->id, info->pos_y, outh, dh);
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +
> +static int dss_mgr_check_zorder(struct omap_overlay_manager *mgr,
> +		struct omap_overlay_info **overlay_infos)
> +{
> +	struct omap_overlay *ovl1, *ovl2;
> +	struct ovl_priv_data *op1, *op2;
> +	struct omap_overlay_info *info1, *info2;
> +
> +	list_for_each_entry(ovl1,&mgr->overlays, list) {
> +		op1 = get_ovl_priv(ovl1);
> +		info1 = overlay_infos[ovl1->id];
> +
> +		if (info1 = NULL)
> +			continue;
> +
> +		list_for_each_entry(ovl2,&mgr->overlays, list) {
> +			if (ovl1 = ovl2)
> +				continue;
> +
> +			op2 = get_ovl_priv(ovl2);
> +			info2 = overlay_infos[ovl2->id];
> +
> +			if (info2 = NULL)
> +				continue;
> +
> +			if (info1->zorder = info2->zorder) {
> +				DSSERR("overlays %d and %d have the same "
> +						"zorder %d\n",
> +					ovl1->id, ovl2->id, info1->zorder);
> +				return -EINVAL;
> +			}
> +		}
> +	}
> +
> +	return 0;
> +}
> +
> +static int dss_mgr_check(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev,
> +		struct omap_overlay_manager_info *info,
> +		struct omap_overlay_info **overlay_infos)
> +{
> +	struct omap_overlay *ovl;
> +	int r;
> +
> +	if (dss_has_feature(FEAT_ALPHA_FREE_ZORDER)) {
> +		r = dss_mgr_check_zorder(mgr, overlay_infos);
> +		if (r)
> +			return r;
> +	}
> +
> +	list_for_each_entry(ovl,&mgr->overlays, list) {
> +		struct omap_overlay_info *oi;
> +		int r;
> +
> +		oi = overlay_infos[ovl->id];
> +
> +		if (oi = NULL)
> +			continue;
> +
> +		r = dss_ovl_check(ovl, oi, dssdev);
> +		if (r)
> +			return r;
> +	}
> +
> +	return 0;
> +}
> +static int dss_check_settings_low(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev, bool applying)
> +{
> +	struct omap_overlay_info *oi;
> +	struct omap_overlay_manager_info *mi;
> +	struct omap_overlay *ovl;
> +	struct omap_overlay_info *ois[MAX_DSS_OVERLAYS];
> +	struct ovl_priv_data *op;
> +	struct mgr_priv_data *mp;
> +
> +	mp = get_mgr_priv(mgr);
> +
> +	if (applying&&  mp->user_info_dirty)
> +		mi =&mp->user_info;
> +	else
> +		mi =&mp->info;
> +
> +	/* collect the infos to be tested into the array */
> +	list_for_each_entry(ovl,&mgr->overlays, list) {
> +		op = get_ovl_priv(ovl);
> +
> +		if (!op->enabled)
> +			oi = NULL;
> +		else if (applying&&  op->user_info_dirty)
> +			oi =&op->user_info;
> +		else
> +			oi =&op->info;
> +
> +		ois[ovl->id] = oi;
> +	}
> +
> +	return dss_mgr_check(mgr, dssdev, mi, ois);
> +}
> +
> +/*
> + * check manager and overlay settings using overlay_info from data->info
> + */
> +static int dss_check_settings(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev)
> +{
> +	return dss_check_settings_low(mgr, dssdev, false);
> +}
> +
> +/*
> + * check manager and overlay settings using overlay_info from ovl->info if
> + * dirty and from data->info otherwise
> + */
> +static int dss_check_settings_apply(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev)
> +{
> +	return dss_check_settings_low(mgr, dssdev, true);
> +}
> +
>   static bool need_isr(void)
>   {
>   	const int num_mgrs = dss_feat_get_num_mgrs();
> @@ -517,6 +680,7 @@ static void dss_write_regs(void)
>   	for (i = 0; i<  num_mgrs; ++i) {
>   		struct omap_overlay_manager *mgr;
>   		struct mgr_priv_data *mp;
> +		int r;
>
>   		mgr = omap_dss_get_overlay_manager(i);
>   		mp = get_mgr_priv(mgr);
> @@ -524,6 +688,13 @@ static void dss_write_regs(void)
>   		if (!mp->enabled || mgr_manual_update(mgr) || mp->busy)
>   			continue;
>
> +		r = dss_check_settings(mgr, mgr->device);
> +		if (r) {
> +			DSSERR("cannot write registers for manager %s: "
> +					"illegal configuration\n", mgr->name);
> +			continue;
> +		}
> +
>   		dss_mgr_write_regs(mgr);
>
>   		if (need_go(mgr)) {
> @@ -541,11 +712,19 @@ void dss_start_update(struct omap_overlay_manager *mgr)
>   {
>   	struct mgr_priv_data *mp = get_mgr_priv(mgr);
>   	unsigned long flags;
> +	int r;
>
>   	spin_lock_irqsave(&data_lock, flags);
>
>   	WARN_ON(mp->updating);
>
> +	r = dss_check_settings(mgr, mgr->device);
> +	if (r) {
> +		DSSERR("cannot start manual update: illegal configuration\n");
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		return;
> +	}
> +
>   	dss_mgr_write_regs(mgr);
>
>   	mp->updating = true;
> @@ -690,11 +869,19 @@ int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
>   {
>   	unsigned long flags;
>   	struct omap_overlay *ovl;
> +	int r;
>
>   	DSSDBG("omap_dss_mgr_apply(%s)\n", mgr->name);
>
>   	spin_lock_irqsave(&data_lock, flags);
>
> +	r = dss_check_settings_apply(mgr, mgr->device);
> +	if (r) {
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		DSSERR("failed to apply settings: illegal configuration.\n");
> +		return r;
> +	}
> +
>   	/* Configure overlays */
>   	list_for_each_entry(ovl,&mgr->overlays, list)
>   		omap_dss_mgr_apply_ovl(ovl);
> @@ -784,6 +971,7 @@ void dss_mgr_enable(struct omap_overlay_manager *mgr)
>   {
>   	struct mgr_priv_data *mp = get_mgr_priv(mgr);
>   	unsigned long flags;
> +	int r;
>
>   	mutex_lock(&apply_lock);
>
> @@ -793,6 +981,16 @@ void dss_mgr_enable(struct omap_overlay_manager *mgr)
>   	spin_lock_irqsave(&data_lock, flags);
>
>   	mp->enabled = true;
> +	r = dss_check_settings(mgr, mgr->device);
> +	mp->enabled = false;
> +	if (r) {
> +		DSSERR("failed to enable manager %d: check_settings failed\n",
> +				mgr->id);
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		goto out;
> +	}
> +
> +	mp->enabled = true;
>
>   	dss_mgr_setup_fifos(mgr);
>
> @@ -1142,16 +1340,25 @@ int dss_ovl_enable(struct omap_overlay *ovl)
>
>   	if (op->enabled) {
>   		r = 0;
> -		goto err;
> +		goto err1;
>   	}
>
>   	if (ovl->manager = NULL || ovl->manager->device = NULL) {
>   		r = -EINVAL;
> -		goto err;
> +		goto err1;
>   	}
>
>   	spin_lock_irqsave(&data_lock, flags);
>
> +	op->enabled = true;
> +	r = dss_check_settings(ovl->manager, ovl->manager->device);
> +	op->enabled = false;
> +	if (r) {
> +		DSSERR("failed to enable overlay %d: check_settings failed\n",
> +				ovl->id);
> +		goto err2;
> +	}
> +
>   	dss_apply_ovl_enable(ovl, true);
>
>   	dss_ovl_setup_fifo(ovl);
> @@ -1163,7 +1370,9 @@ int dss_ovl_enable(struct omap_overlay *ovl)
>   	mutex_unlock(&apply_lock);
>
>   	return 0;
> -err:
> +err2:
> +	spin_unlock_irqrestore(&data_lock, flags);
> +err1:
>   	mutex_unlock(&apply_lock);
>   	return r;
>   }


WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <a0393947@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org, archit@ti.com
Subject: Re: [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs settings
Date: Wed, 7 Dec 2011 18:35:51 +0530	[thread overview]
Message-ID: <4EDF64AF.6040008@ti.com> (raw)
In-Reply-To: <1321953724-6350-64-git-send-email-tomi.valkeinen@ti.com>

Hi,

On Tuesday 22 November 2011 02:52 PM, Tomi Valkeinen wrote:
> Add checks for overlay and manager settings. The checks are a bit
> complex, as we need to observe the bigger picture instead of overlays
> and managers independently. Things like the used display and the zorder
> of other overlays affect the validity of the settings.

Minor comment:

dss_ovl_check, dss_mgr_check and dss_mgr_check_zorder don't really 
qualify as functions which do actual applying of configurations, they 
could be moved from apply.c to manager.c and overlay.c.

Archit

>
> Signed-off-by: Tomi Valkeinen<tomi.valkeinen@ti.com>
> ---
>   drivers/video/omap2/dss/apply.c |  215 ++++++++++++++++++++++++++++++++++++++-
>   1 files changed, 212 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
> index 5d933b9..72afa85 100644
> --- a/drivers/video/omap2/dss/apply.c
> +++ b/drivers/video/omap2/dss/apply.c
> @@ -166,6 +166,169 @@ static bool mgr_manual_update(struct omap_overlay_manager *mgr)
>   	return mgr->device->caps&  OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
>   }
>
> +/* Check if overlay parameters are compatible with display */
> +static int dss_ovl_check(struct omap_overlay *ovl,
> +		struct omap_overlay_info *info, struct omap_dss_device *dssdev)
> +{
> +	u16 outw, outh;
> +	u16 dw, dh;
> +
> +	if (dssdev == NULL)
> +		return 0;
> +
> +	dssdev->driver->get_resolution(dssdev,&dw,&dh);
> +
> +	if ((ovl->caps&  OMAP_DSS_OVL_CAP_SCALE) == 0) {
> +		outw = info->width;
> +		outh = info->height;
> +	} else {
> +		if (info->out_width == 0)
> +			outw = info->width;
> +		else
> +			outw = info->out_width;
> +
> +		if (info->out_height == 0)
> +			outh = info->height;
> +		else
> +			outh = info->out_height;
> +	}
> +
> +	if (dw<  info->pos_x + outw) {
> +		DSSERR("overlay %d horizontally not inside the display area "
> +				"(%d + %d>= %d)\n",
> +				ovl->id, info->pos_x, outw, dw);
> +		return -EINVAL;
> +	}
> +
> +	if (dh<  info->pos_y + outh) {
> +		DSSERR("overlay %d vertically not inside the display area "
> +				"(%d + %d>= %d)\n",
> +				ovl->id, info->pos_y, outh, dh);
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +
> +static int dss_mgr_check_zorder(struct omap_overlay_manager *mgr,
> +		struct omap_overlay_info **overlay_infos)
> +{
> +	struct omap_overlay *ovl1, *ovl2;
> +	struct ovl_priv_data *op1, *op2;
> +	struct omap_overlay_info *info1, *info2;
> +
> +	list_for_each_entry(ovl1,&mgr->overlays, list) {
> +		op1 = get_ovl_priv(ovl1);
> +		info1 = overlay_infos[ovl1->id];
> +
> +		if (info1 == NULL)
> +			continue;
> +
> +		list_for_each_entry(ovl2,&mgr->overlays, list) {
> +			if (ovl1 == ovl2)
> +				continue;
> +
> +			op2 = get_ovl_priv(ovl2);
> +			info2 = overlay_infos[ovl2->id];
> +
> +			if (info2 == NULL)
> +				continue;
> +
> +			if (info1->zorder == info2->zorder) {
> +				DSSERR("overlays %d and %d have the same "
> +						"zorder %d\n",
> +					ovl1->id, ovl2->id, info1->zorder);
> +				return -EINVAL;
> +			}
> +		}
> +	}
> +
> +	return 0;
> +}
> +
> +static int dss_mgr_check(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev,
> +		struct omap_overlay_manager_info *info,
> +		struct omap_overlay_info **overlay_infos)
> +{
> +	struct omap_overlay *ovl;
> +	int r;
> +
> +	if (dss_has_feature(FEAT_ALPHA_FREE_ZORDER)) {
> +		r = dss_mgr_check_zorder(mgr, overlay_infos);
> +		if (r)
> +			return r;
> +	}
> +
> +	list_for_each_entry(ovl,&mgr->overlays, list) {
> +		struct omap_overlay_info *oi;
> +		int r;
> +
> +		oi = overlay_infos[ovl->id];
> +
> +		if (oi == NULL)
> +			continue;
> +
> +		r = dss_ovl_check(ovl, oi, dssdev);
> +		if (r)
> +			return r;
> +	}
> +
> +	return 0;
> +}
> +static int dss_check_settings_low(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev, bool applying)
> +{
> +	struct omap_overlay_info *oi;
> +	struct omap_overlay_manager_info *mi;
> +	struct omap_overlay *ovl;
> +	struct omap_overlay_info *ois[MAX_DSS_OVERLAYS];
> +	struct ovl_priv_data *op;
> +	struct mgr_priv_data *mp;
> +
> +	mp = get_mgr_priv(mgr);
> +
> +	if (applying&&  mp->user_info_dirty)
> +		mi =&mp->user_info;
> +	else
> +		mi =&mp->info;
> +
> +	/* collect the infos to be tested into the array */
> +	list_for_each_entry(ovl,&mgr->overlays, list) {
> +		op = get_ovl_priv(ovl);
> +
> +		if (!op->enabled)
> +			oi = NULL;
> +		else if (applying&&  op->user_info_dirty)
> +			oi =&op->user_info;
> +		else
> +			oi =&op->info;
> +
> +		ois[ovl->id] = oi;
> +	}
> +
> +	return dss_mgr_check(mgr, dssdev, mi, ois);
> +}
> +
> +/*
> + * check manager and overlay settings using overlay_info from data->info
> + */
> +static int dss_check_settings(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev)
> +{
> +	return dss_check_settings_low(mgr, dssdev, false);
> +}
> +
> +/*
> + * check manager and overlay settings using overlay_info from ovl->info if
> + * dirty and from data->info otherwise
> + */
> +static int dss_check_settings_apply(struct omap_overlay_manager *mgr,
> +		struct omap_dss_device *dssdev)
> +{
> +	return dss_check_settings_low(mgr, dssdev, true);
> +}
> +
>   static bool need_isr(void)
>   {
>   	const int num_mgrs = dss_feat_get_num_mgrs();
> @@ -517,6 +680,7 @@ static void dss_write_regs(void)
>   	for (i = 0; i<  num_mgrs; ++i) {
>   		struct omap_overlay_manager *mgr;
>   		struct mgr_priv_data *mp;
> +		int r;
>
>   		mgr = omap_dss_get_overlay_manager(i);
>   		mp = get_mgr_priv(mgr);
> @@ -524,6 +688,13 @@ static void dss_write_regs(void)
>   		if (!mp->enabled || mgr_manual_update(mgr) || mp->busy)
>   			continue;
>
> +		r = dss_check_settings(mgr, mgr->device);
> +		if (r) {
> +			DSSERR("cannot write registers for manager %s: "
> +					"illegal configuration\n", mgr->name);
> +			continue;
> +		}
> +
>   		dss_mgr_write_regs(mgr);
>
>   		if (need_go(mgr)) {
> @@ -541,11 +712,19 @@ void dss_start_update(struct omap_overlay_manager *mgr)
>   {
>   	struct mgr_priv_data *mp = get_mgr_priv(mgr);
>   	unsigned long flags;
> +	int r;
>
>   	spin_lock_irqsave(&data_lock, flags);
>
>   	WARN_ON(mp->updating);
>
> +	r = dss_check_settings(mgr, mgr->device);
> +	if (r) {
> +		DSSERR("cannot start manual update: illegal configuration\n");
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		return;
> +	}
> +
>   	dss_mgr_write_regs(mgr);
>
>   	mp->updating = true;
> @@ -690,11 +869,19 @@ int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
>   {
>   	unsigned long flags;
>   	struct omap_overlay *ovl;
> +	int r;
>
>   	DSSDBG("omap_dss_mgr_apply(%s)\n", mgr->name);
>
>   	spin_lock_irqsave(&data_lock, flags);
>
> +	r = dss_check_settings_apply(mgr, mgr->device);
> +	if (r) {
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		DSSERR("failed to apply settings: illegal configuration.\n");
> +		return r;
> +	}
> +
>   	/* Configure overlays */
>   	list_for_each_entry(ovl,&mgr->overlays, list)
>   		omap_dss_mgr_apply_ovl(ovl);
> @@ -784,6 +971,7 @@ void dss_mgr_enable(struct omap_overlay_manager *mgr)
>   {
>   	struct mgr_priv_data *mp = get_mgr_priv(mgr);
>   	unsigned long flags;
> +	int r;
>
>   	mutex_lock(&apply_lock);
>
> @@ -793,6 +981,16 @@ void dss_mgr_enable(struct omap_overlay_manager *mgr)
>   	spin_lock_irqsave(&data_lock, flags);
>
>   	mp->enabled = true;
> +	r = dss_check_settings(mgr, mgr->device);
> +	mp->enabled = false;
> +	if (r) {
> +		DSSERR("failed to enable manager %d: check_settings failed\n",
> +				mgr->id);
> +		spin_unlock_irqrestore(&data_lock, flags);
> +		goto out;
> +	}
> +
> +	mp->enabled = true;
>
>   	dss_mgr_setup_fifos(mgr);
>
> @@ -1142,16 +1340,25 @@ int dss_ovl_enable(struct omap_overlay *ovl)
>
>   	if (op->enabled) {
>   		r = 0;
> -		goto err;
> +		goto err1;
>   	}
>
>   	if (ovl->manager == NULL || ovl->manager->device == NULL) {
>   		r = -EINVAL;
> -		goto err;
> +		goto err1;
>   	}
>
>   	spin_lock_irqsave(&data_lock, flags);
>
> +	op->enabled = true;
> +	r = dss_check_settings(ovl->manager, ovl->manager->device);
> +	op->enabled = false;
> +	if (r) {
> +		DSSERR("failed to enable overlay %d: check_settings failed\n",
> +				ovl->id);
> +		goto err2;
> +	}
> +
>   	dss_apply_ovl_enable(ovl, true);
>
>   	dss_ovl_setup_fifo(ovl);
> @@ -1163,7 +1370,9 @@ int dss_ovl_enable(struct omap_overlay *ovl)
>   	mutex_unlock(&apply_lock);
>
>   	return 0;
> -err:
> +err2:
> +	spin_unlock_irqrestore(&data_lock, flags);
> +err1:
>   	mutex_unlock(&apply_lock);
>   	return r;
>   }


  reply	other threads:[~2011-12-07 13:17 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-22  9:20 [PATCH 00/65] OMAPDSS: manager/apply improvements Tomi Valkeinen
2011-11-22  9:20 ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 01/65] OMAPDSS: DISPC: add missing prototype Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 02/65] OMAPDSS: Remove old fifomerge hacks Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 03/65] OMAPDSS: remove L4_EXAMPLE code Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 04/65] OMAPDSS: DISPC: make dispc_ovl_set_channel_out() public Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 05/65] OMAPDSS: DISPC: make dispc_ovl_set_fifo_threshold() public Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 06/65] OMAPDSS: remove partial update from the overlay manager Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22 11:41   ` Archit Taneja
2011-11-22 11:53     ` [PATCH 06/65] OMAPDSS: remove partial update from the overlay Archit Taneja
2011-11-22  9:21 ` [PATCH 07/65] OMAPDSS: remove partial update from DSI Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 08/65] OMAPDSS: remove partial update from panel-taal Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22 11:53   ` Archit Taneja
2011-11-22 11:55     ` Archit Taneja
2011-11-22 12:32     ` Tomi Valkeinen
2011-11-22 12:32       ` Tomi Valkeinen
2011-11-23  5:49       ` Archit Taneja
2011-11-23  5:51         ` Archit Taneja
2011-11-22  9:21 ` [PATCH 09/65] OMAPDSS: pass ovl manager to dss_start_update Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-23  5:53   ` Archit Taneja
2011-11-23  5:55     ` Archit Taneja
2011-11-23  7:32     ` Tomi Valkeinen
2011-11-23  7:32       ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 10/65] OMAPDSS: DISPC: handle 0 out_width/out_height in ovl_setup() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 11/65] OMAPDSS: handle ilace/replication when configuring overlay Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 12/65] OMAPDSS: separate FIFO threshold setup from ovl_setup Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 13/65] OMAPDSS: separate overlay channel " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 14/65] OMAPDSS: setup manager with dispc_mgr_setup() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 15/65] OMAPDSS: DISPC: remove unused functions Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 16/65] OMAPDSS: remove unneeded dss_ovl_wait_for_go() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 17/65] OMAPDSS: add ovl/mgr_manual_update() helpers Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 18/65] OMAPDSS: split omap_dss_mgr_apply() to smaller funcs Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 19/65] OMAPDSS: apply affects only one overlay manager Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 20/65] OMAPDSS: create apply.c Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 21/65] OMAPDSS: hide manager's enable/disable() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 22/65] OMAPDSS: APPLY: track whether a manager is enabled Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 23/65] OMAPDSS: APPLY: skip isr register and config for manual update displays Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 24/65] OMAPDSS: APPLY: skip isr register and config for disabled displays Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 25/65] OMAPDSS: APPLY: cleanup dss_start_update Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 26/65] OMAPDSS: store overlays in an array Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 27/65] OMAPDSS: store managers " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 28/65] OMAPDSS: store overlays in a list for each manager Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 29/65] OMAPDSS: APPLY: separate vsync isr register/unregister Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 30/65] OMAPDSS: DISPC: Add dispc_mgr_get_vsync_irq() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 31/65] OMAPDSS: APPLY: use dispc_mgr_get_vsync_irq() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 32/65] OMAPDSS: APPLY: configure_* funcs take ovl/manager as args Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 33/65] OMAPDSS: APPLY: rename overlay_cache_data Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 34/65] OMAPDSS: APPLY: rename manager_cache_data Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 35/65] OMAPDSS: APPLY: move spinlock outside the struct Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-23  9:25   ` Archit Taneja
2011-11-23  9:37     ` Archit Taneja
2011-11-23  9:27     ` Archit Taneja
2011-11-23  9:39       ` Archit Taneja
2011-11-23 10:29   ` Sergey Kibrik
2011-11-23 10:29     ` Sergey Kibrik
2011-11-23 10:47     ` Tomi Valkeinen
2011-11-23 10:47       ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 36/65] OMAPDSS: APPLY: rename dss_cache to dss_data Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 37/65] OMAPDSS: APPLY: move ovl funcs to apply.c Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 38/65] OMAPDSS: APPLY: move mgr " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 39/65] OMAPDSS: remove ovl/mgr check-code temporarily Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 40/65] OMAPDSS: APPLY: add mutex Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-23  9:48   ` Archit Taneja
2011-11-23  9:49     ` Archit Taneja
2011-11-23 10:17     ` Tomi Valkeinen
2011-11-23 10:17       ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 41/65] OMAPDSS: APPLY: add missing uses of spinlock Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-23  9:56   ` Archit Taneja
2011-11-23  9:57     ` Archit Taneja
2011-11-23 10:12     ` Tomi Valkeinen
2011-11-23 10:12       ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode displays Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-23 10:10   ` Archit Taneja
2011-11-23 10:22     ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode Archit Taneja
2011-11-23 10:42     ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd Tomi Valkeinen
2011-11-23 10:42       ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode displays Tomi Valkeinen
2011-11-23 11:08       ` Archit Taneja
2011-11-23 11:20         ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode Archit Taneja
2011-11-23 11:27         ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd Tomi Valkeinen
2011-11-23 11:27           ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode displays Tomi Valkeinen
2011-11-23 12:13           ` Archit Taneja
2011-11-23 12:25             ` [PATCH 42/65] OMAPDSS: DSI: call mgr_enable/disable for cmd mode Archit Taneja
2011-11-22  9:21 ` [PATCH 43/65] OMAPDSS: APPLY: move mgr->enabled to mgr_priv_data Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 44/65] OMAPDSS: APPLY: add busy field " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 45/65] OMAPDSS: APPLY: rewrite overlay enable/disable Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 46/65] OMAPDSS: APPLY: rewrite register writing Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 47/65] OMAPDSS: DISPC: add dispc_mgr_get_framedone_irq Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 48/65] OMAPDSS: APPLY: add updating flag Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 49/65] OMAPDSS: APPLY: clean up isr_handler Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 50/65] OMAPDSS: APPLY: move mgr->info to apply.c Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 51/65] OMAPDSS: APPLY: move ovl->info " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 52/65] OMAPDSS: APPLY: move channel-field to extra_info set Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 53/65] OMAPDSS: APPLY: move fifo thresholds " Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 54/65] OMAPDSS: APPLY: rename dirty & shadow_dirty Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 55/65] OMAPDSS: APPLY: remove device_changed field Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 56/65] OMAPDSS: APPLY: add dss_apply_ovl_enable() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 57/65] OMAPDSS: APPLY: skip enable/disable if already enabled/disabled Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 58/65] OMAPDSS: APPLY: add wait_pending_extra_info_updates() Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-12-07 13:07   ` Archit Taneja
2011-12-07 13:19     ` Archit Taneja
2011-12-07 13:15     ` [PATCH 58/65] OMAPDSS: APPLY: add Tomi Valkeinen
2011-12-07 13:15       ` [PATCH 58/65] OMAPDSS: APPLY: add wait_pending_extra_info_updates() Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 59/65] OMAPDSS: APPLY: remove runtime_get Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:21 ` [PATCH 60/65] OMAPDSS: Add comments about blocking of ovl/mgr functions Tomi Valkeinen
2011-11-22  9:21   ` Tomi Valkeinen
2011-11-22  9:22 ` [PATCH 61/65] OMAPDSS: APPLY: add dss_ovl_simple_check() Tomi Valkeinen
2011-11-22  9:22   ` Tomi Valkeinen
2011-11-22  9:22 ` [PATCH 62/65] OMAPDSS: APPLY: add dss_mgr_simple_check() Tomi Valkeinen
2011-11-22  9:22   ` Tomi Valkeinen
2011-11-22  9:22 ` [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs settings Tomi Valkeinen
2011-11-22  9:22   ` Tomi Valkeinen
2011-12-07 13:05   ` Archit Taneja [this message]
2011-12-07 13:17     ` Archit Taneja
2011-12-08  8:29     ` [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs Tomi Valkeinen
2011-12-08  8:29       ` [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs settings Tomi Valkeinen
2011-12-13 10:02       ` Archit Taneja
2011-12-13 10:14         ` Archit Taneja
2011-12-13 11:16         ` [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs Tomi Valkeinen
2011-12-13 11:16           ` [PATCH 63/65] OMAPDSS: APPLY: add checking of ovls/mgrs settings Tomi Valkeinen
2011-11-22  9:22 ` [PATCH 64/65] OMAPDSS: APPLY: add return value to dss_mgr_enable() Tomi Valkeinen
2011-11-22  9:22   ` Tomi Valkeinen
2011-11-22  9:22 ` [PATCH 65/65] OMAPDSS: check the return value of dss_mgr_enable() Tomi Valkeinen
2011-11-22  9:22   ` Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EDF64AF.6040008@ti.com \
    --to=a0393947@ti.com \
    --cc=archit@ti.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.