Subject: [PATCH 00/20] iPAQ h3100/h3600 work for 2.6.33

From: [email-masked] (Dmitry Artamonow)
Date: Sun, 25 Oct 2009 18:36:03 +0300

On 22:10 Sat 24 Oct     , Russell King - ARM Linux wrote:
> 
> That's fine, and the patches to me at least look fine as well.  The only
> thing which gives me slight concern is the:
> 
> 	if (!gpio_request()) {
> 		gpio_direction_output();
> 		gpio_free();
> 	}
> 
> stuff, but I guess you can't get around that easily, especially if those
> GPIOs only become available at some time later.  It is something that
> eventually needs to be addressed though - consider that this can lead
> to unexpected (and silent) failures if the GPIOs aren't available when
> another driver initializes, and can't (eg) turn on the IrDA tranceiver.

Yes, you right here about silent failures. I think they could be made less
silent by inserting some pr_err()-s , though it would bloat code a
bit (I'd like to see request_gpio() itself emitting error message,
but currectly it does that only when CONFIG_DEBUG_GPIO is set).
Ok, here's incremental patch adding pr_err-s in attachment - if you're
OK with it I will roll it into [09/20] and rebase all following patches.

Also perhaps it's a good idea to always built-in htc-egpio driver
(by adding "select HTC_EGPIO" to h3100/h3600 Kconfig options) - that should
decrease probability of gpio_request failures a lot. Patch also
attached.

Anyway these gpio_requests in callbacks is temporary solution.
In a long term I'd really like to see proper init/exit hooks in
corresponding drivers, but it's hard to say how much work it will
require.

-- 
Best regards,
Dmitry "MAD" Artamonow