From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915: constify find_section in VBT parsing
Date: Tue, 12 May 2015 15:06:13 +0300 [thread overview]
Message-ID: <20150512120613.GW18908@intel.com> (raw)
In-Reply-To: <1429100309-21983-1-git-send-email-jani.nikula@intel.com>
On Wed, Apr 15, 2015 at 03:18:28PM +0300, Jani Nikula wrote:
> Make input and output of find_section const, and fix the fallout. We
> shouldn't modify the VBT, so make the compiler help us here.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_bios.c | 60 ++++++++++++++++++++-------------------
> 1 file changed, 31 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index c08368c03dad..4e3f3f427178 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -36,10 +36,11 @@
>
> static int panel_type;
>
> -static void *
> -find_section(struct bdb_header *bdb, int section_id)
> +static const void *
> +find_section(const void *_bdb, int section_id)
> {
> - u8 *base = (u8 *)bdb;
> + const struct bdb_header *bdb = _bdb;
> + const u8 *base = _bdb;
> int index = 0;
> u16 total, current_size;
> u8 current_id;
> @@ -53,7 +54,7 @@ find_section(struct bdb_header *bdb, int section_id)
> current_id = *(base + index);
> index++;
>
> - current_size = *((u16 *)(base + index));
> + current_size = *((const u16 *)(base + index));
> index += 2;
>
> if (index + current_size > total)
> @@ -69,7 +70,7 @@ find_section(struct bdb_header *bdb, int section_id)
> }
>
> static u16
> -get_blocksize(void *p)
> +get_blocksize(const void *p)
> {
> u16 *block_ptr, block_size;
>
> @@ -350,7 +351,7 @@ static void
> parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> - struct lvds_dvo_timing *dvo_timing;
> + const struct lvds_dvo_timing *dvo_timing;
> struct drm_display_mode *panel_fixed_mode;
> int index;
>
> @@ -361,7 +362,7 @@ parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
> }
>
> if (index == -1) {
> - struct bdb_sdvo_lvds_options *sdvo_lvds_options;
> + const struct bdb_sdvo_lvds_options *sdvo_lvds_options;
>
> sdvo_lvds_options = find_section(bdb, BDB_SDVO_LVDS_OPTIONS);
> if (!sdvo_lvds_options)
> @@ -405,7 +406,7 @@ parse_general_features(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> struct drm_device *dev = dev_priv->dev;
> - struct bdb_general_features *general;
> + const struct bdb_general_features *general;
>
> general = find_section(bdb, BDB_GENERAL_FEATURES);
> if (general) {
> @@ -430,7 +431,7 @@ static void
> parse_general_definitions(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> - struct bdb_general_definitions *general;
> + const struct bdb_general_definitions *general;
>
> general = find_section(bdb, BDB_GENERAL_DEFINITIONS);
> if (general) {
> @@ -447,10 +448,10 @@ parse_general_definitions(struct drm_i915_private *dev_priv,
> }
> }
>
> -static union child_device_config *
> -child_device_ptr(struct bdb_general_definitions *p_defs, int i)
> +static const union child_device_config *
> +child_device_ptr(const struct bdb_general_definitions *p_defs, int i)
> {
> - return (void *) &p_defs->devices[i * p_defs->child_dev_size];
> + return (const void *) &p_defs->devices[i * p_defs->child_dev_size];
> }
>
> static void
> @@ -458,8 +459,8 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> struct sdvo_device_mapping *p_mapping;
> - struct bdb_general_definitions *p_defs;
> - union child_device_config *p_child;
> + const struct bdb_general_definitions *p_defs;
> + const union child_device_config *p_child;
> int i, child_device_num, count;
> u16 block_size;
>
> @@ -547,7 +548,7 @@ static void
> parse_driver_features(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> - struct bdb_driver_features *driver;
> + const struct bdb_driver_features *driver;
>
> driver = find_section(bdb, BDB_DRIVER_FEATURES);
> if (!driver)
> @@ -573,9 +574,9 @@ parse_driver_features(struct drm_i915_private *dev_priv,
> static void
> parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
> {
> - struct bdb_edp *edp;
> - struct edp_power_seq *edp_pps;
> - struct edp_link_params *edp_link_params;
> + const struct bdb_edp *edp;
> + const struct edp_power_seq *edp_pps;
> + const struct edp_link_params *edp_link_params;
>
> edp = find_section(bdb, BDB_EDP);
> if (!edp) {
> @@ -680,8 +681,8 @@ parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
> static void
> parse_psr(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
> {
> - struct bdb_psr *psr;
> - struct psr_table *psr_table;
> + const struct bdb_psr *psr;
> + const struct psr_table *psr_table;
>
> psr = find_section(bdb, BDB_PSR);
> if (!psr) {
> @@ -791,11 +792,12 @@ static u8 *goto_next_sequence(u8 *data, int *size)
> static void
> parse_mipi(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
> {
> - struct bdb_mipi_config *start;
> - struct bdb_mipi_sequence *sequence;
> - struct mipi_config *config;
> - struct mipi_pps_data *pps;
> - u8 *data, *seq_data;
> + const struct bdb_mipi_config *start;
> + const struct bdb_mipi_sequence *sequence;
> + const struct mipi_config *config;
> + const struct mipi_pps_data *pps;
> + u8 *data;
It would seem this guy could be constified as well, with a bit of extra
effort that is.
But the patch as is looks reasonable so:
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> + const u8 *seq_data;
> int i, panel_id, seq_size;
> u16 block_size;
>
> @@ -1063,8 +1065,9 @@ static void
> parse_device_mapping(struct drm_i915_private *dev_priv,
> struct bdb_header *bdb)
> {
> - struct bdb_general_definitions *p_defs;
> - union child_device_config *p_child, *child_dev_ptr;
> + const struct bdb_general_definitions *p_defs;
> + const union child_device_config *p_child;
> + union child_device_config *child_dev_ptr;
> int i, child_device_num, count;
> u16 block_size;
>
> @@ -1121,8 +1124,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>
> child_dev_ptr = dev_priv->vbt.child_dev + count;
> count++;
> - memcpy((void *)child_dev_ptr, (void *)p_child,
> - sizeof(*p_child));
> + memcpy(child_dev_ptr, p_child, sizeof(*p_child));
> }
> return;
> }
> --
> 2.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-05-12 12:06 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-15 12:18 [PATCH 1/2] drm/i915: constify find_section in VBT parsing Jani Nikula
2015-04-15 12:18 ` [PATCH 2/2] drm/i915: constify validate_vbt " Jani Nikula
2015-05-12 12:09 ` Ville Syrjälä
2015-05-12 12:41 ` [PATCH v2] " Jani Nikula
2015-05-12 12:53 ` Ville Syrjälä
2015-05-12 13:07 ` Daniel Vetter
2015-05-12 12:06 ` Ville Syrjälä [this message]
2015-05-12 12:30 ` [PATCH 1/2] drm/i915: constify find_section " Jani Nikula
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=20150512120613.GW18908@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.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.