[PATCH v3] input: MXC: add mxc-keypad driver to support the Keypad Port present in the mxc application processors family.

Alberto Panizzo maramaopercheseimorto at gmail.com
Wed Jan 27 10:29:19 EST 2010


On mer, 2010-01-27 at 15:52 +0100, Lothar Waßmann wrote:
> Hi,
> 
> Alberto Panizzo writes:
> > On mer, 2010-01-27 at 13:18 +0100, Lothar Waßmann wrote:
> > > Hi,
> > > 
> > > Alberto Panizzo writes:
> > > > > > +	irq = platform_get_irq(pdev, 0);
> > > > > > +	if (irq < 0) {
> > > > > > +		dev_err(&pdev->dev, "failed to get keypad irq\n");
> > > > > > +		return -ENXIO;
> > > > > > +	}
> > > > > >
> > > > > This should be -ENODEV.
> > > > > 
> > > > Lot of reference keyboard driver use -ENXIO..
> > > > May should be better: return irq ?
> > > > 
> > > Yes, of course. If a function returns an error code that should be
> > > promoted to the caller instead of inventing a new error code.
> > > 
> > > 
> > > Lothar Waßmann
> > 
> > But, errno.h say:
> > #define ENXIO           6                // Device not configured
> > #define ENODEV          19               // Operation not supported by device
> > 
> What errno.h file is that?
> I have:
> ./include/asm-generic/errno-base.h:#define      ENXIO            6      /* No such device or address */
> ./include/asm-generic/errno-base.h:#define      ENODEV          19      /* No such device */
> 
> AFAIK ENXIO is used when actual I/O has been attempted. But in this
> case the driver is still being configured and did not do any I/O yet.
> 
> 
> Lothar Waßmann

The errno.h that I propose is a googled one and the kernel-one do not explain well..
Not for fighting, I wont understand.

In drivers/base/platform.c:

/**
 * platform_get_irq - get an IRQ for a device
 * @dev: platform device
 * @num: IRQ number index
 */
int platform_get_irq(struct platform_device *dev, unsigned int num)
{
	struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num);

	return r ? r->start : -ENXIO;
}

If there isn't the irq resource asked platform_get_irq return ENXIO.

Alberto




More information about the linux-arm-kernel mailing list