Re: [PATCH 1/2] OMAP: DSS2: Introduce dss_features files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, 2010-08-26 at 14:43 +0200, ext Archit Taneja wrote:
> Add dss_features.c and dss_features.h for the dss_features framework
> 
> Signed-off-by: Archit Taneja <archit@xxxxxx>

And some more comments inline

> ---
>  drivers/video/omap2/dss/dss_features.c |  197 ++++++++++++++++++++++++++++++++
>  drivers/video/omap2/dss/dss_features.h |   48 ++++++++
>  2 files changed, 245 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/video/omap2/dss/dss_features.c
>  create mode 100644 drivers/video/omap2/dss/dss_features.h
> 
> diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
> new file mode 100644
> index 0000000..0ac18d2
> --- /dev/null
> +++ b/drivers/video/omap2/dss/dss_features.c
> @@ -0,0 +1,197 @@
> +/*
> + * linux/drivers/video/omap2/dss/dss_features.c
> + *
> + * Copyright (C) 2010 Texas Instruments
> + * Author: Archit Taneja <archit@xxxxxx>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published by
> + * the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License along with
> + * this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/types.h>
> +#include <linux/err.h>
> +#include <linux/slab.h>
> +
> +#include <plat/display.h>
> +#include <plat/cpu.h>
> +
> +#include "dss_features.h"
> +
> +static struct list_head reg_field_list;
> +static int num_reg_fields;
> +
> +/* Defines a generic omap register field */
> +struct dss_reg_field {
> +	struct list_head list;
> +	int id;
> +	u8 start, end;
> +};
> +
> +/* This struct is divided into 2 sets: the first gives a value corresponding
> + * to a feature, the second tells if a dss feature exists or not */
> +static struct
> +{
> +	int num_mgrs;
> +	int num_ovls;
> +	enum omap_display_type supported_displays[MAX_DSS_MANAGERS];
> +	enum omap_color_mode supported_color_modes[MAX_DSS_OVERLAYS];
> +
> +	bool has_feature[MAX_DSS_FEATURES];
> +} omap_dss_features;
> +
> +/* Functions to add/fetch the start and end bits of a DSS register field */
> +static void dss_add_reg_field(int id, u8 start, u8 end)
> +{
> +	struct dss_reg_field *field;
> +	field = kzalloc(sizeof(*field), GFP_KERNEL);
> +
> +	++num_reg_fields;
> +
> +	field->id = id;
> +	field->start = start;
> +	field->end = end;
> +
> +	list_add_tail(&field->list, &reg_field_list);
> +}
> +
> +void omap_dss_get_reg_field(int id, u8 *start, u8 *end)
> +{
> +	struct dss_reg_field *field;
> +
> +	list_for_each_entry(field, &reg_field_list, list) {
> +		if (field->id == id) {
> +			*start = field->start;
> +			*end = field->end;
> +			return;
> +		}
> +	}
> +	BUG();
> +}
> +EXPORT_SYMBOL(omap_dss_get_reg_field);

I don't think these need to be exported. The only users for these should
be inside DSS driver. And, as you've probably noticed, I've been using
(usually) omap_dss_* prefix for exported functions, and (usually) dss_*
prefix for non-exported, non-static functions.

Although the naming convention inside DSS is sadly quite inconsistent...
=)

> +/* Functions returning values related to a DSS feature */
> +int omap_dss_num_mgrs(void)
> +{
> +	return omap_dss_features.num_mgrs;
> +}
> +EXPORT_SYMBOL(omap_dss_num_mgrs);

Perhaps this should be dss_get_num_mgrs().

> +
> +int omap_dss_num_ovls(void)
> +{
> +	return omap_dss_features.num_ovls;
> +}
> +EXPORT_SYMBOL(omap_dss_num_ovls);

And "get" here too. And for the functions below.

> +enum omap_display_type omap_dss_supported_displays(int id)
> +{
> +	return omap_dss_features.supported_displays[id];
> +}
> +EXPORT_SYMBOL(omap_dss_supported_displays);
> +
> +enum omap_color_mode omap_dss_supported_color_modes(int id)
> +{
> +	return omap_dss_features.supported_color_modes[id];
> +}
> +EXPORT_SYMBOL(omap_dss_supported_color_modes);
> +
> +/* DSS has_feature check */
> +bool omap_dss_has_feature(int id)
> +{
> +	return omap_dss_features.has_feature[id];
> +}
> +EXPORT_SYMBOL(omap_dss_has_feature);

 Tomi

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux