[PATCH 16/46] davinci: Add MMC/SD support for DA830/OMAP-L137 EVM

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Oct 19 12:56:07 EDT 2009


On Mon, Oct 19, 2009 at 09:39:37AM -0700, Mark A. Greer wrote:
> On Mon, Oct 19, 2009 at 03:07:52PM +0100, Russell King - ARM Linux wrote:
> > On Fri, Oct 16, 2009 at 12:09:20PM -0700, Kevin Hilman wrote:
> > > +static int da830_evm_mmc_get_ro(int index)
> > > +{
> > > +	int val, status, gpio_num = 33;
> > > +
> > > +	status = gpio_request(gpio_num, "MMC WP\n");
> > > +	if (status < 0) {
> > > +		pr_warning("%s can not open GPIO %d\n", __func__, gpio_num);
> > > +		return 0;
> > > +	}
> > > +	gpio_direction_input(gpio_num);
> > > +	val = gpio_get_value(gpio_num);
> > > +	gpio_free(gpio_num);
> > 
> > Should this really be requesting the gpio every time it wants to be
> > read?  This approach sounds wrong.  Why not just request the GPIO in
> > the platform initialisation code, setting its direction, and merely
> > reading it in this function?
> 
> This routine doesn't get called on every read.  AFAICT, its only called
> by mmc_sd_init_card() which is called during init and resume.  That seems
> like the logical time to check if the card is set to read-only since cards
> can be inserted and removed while the system is running.

My complaint is not about when this function is called, it's about what
is being done inside this function.



More information about the linux-arm-kernel mailing list