Subject: Re: [PATCH 02/10] sdhci: Add support for bus-specific IO memory accessors

From: Arnd Bergmann <[email-masked]>
Date: Thu, 22 Jan 2009 12:55:48 +0100

On Thursday 22 January 2009, Anton Vorontsov wrote:
> +       /*
> +        * These accessors duplicate sdhci_ops, but there are two reasons for
> +        * this:
> +        * 1. sdhci_ops are const, so the sdhci driver won't able to assign
> +        *    default ops;

You could assign the pointer to a const default_sdhci_ops structure,
which IMHO would be cleaner than copying the function pointers
separately.

> +        * 2. Using host->X instead of host->ops->X saves us one dereference.
> +        *    This can be useful in PIO mode. (Though the benefit of this
> +        *    is negligibly small).
> +        */

I doubt that this is even measurable. If it was, you could still use a copy
of that structure, like

struct sdhci_host {
	...
	struct sdhci_ops ops; /* not struct sdhci_ops *ops */
	...
};

and do an assignment of the structure, like

static void assign_ops(struct sdhci_host *host, struct sdhci_ops *ops)
{
	host->ops = *ops;
}

	Arnd <><