Hi, On Wed, Sep 24, 2014 at 10:14:53PM +0200, Robert Jarzmik wrote: > Felipe Balbi <[email protected]> writes: > > > On Wed, Sep 24, 2014 at 09:41:12PM +0200, Robert Jarzmik wrote: > >> For this preparation, a preliminary cleanup is done : > >> - convert the probing of pxa27x_udc to gpio_desc. > >> The conversion is partial because : > >> - the platform data still provides a gpio number, not a gpio desc > >> - the "invert" attribute is lost, hence a loss in the translation > > > > I asked for gpio to gpiod conversion to be a separate patch. It'll make > > things a lot easier to review. > > What does patch 1/2 do then ? There are 2 lines for udc_command (1 in .h and > 1.c), and all the remaining is the gpiod conversion. > > Is it difficult for you to review a "51 lines changed" patch you asked for ? > Do > you want me to ask other people to help you ?
if you reply like this again I'll start ignoring your patches. Settle
down, I'm trying to help you get your patches merged.
With that said:
patch 1 should *ONLY* convert gpio_* to gpiod_*. That turns the patch
into a clear cleanup where people don't need to spend too much time
reviewing details.
> >> - convert the mach info, and store the udc_command in the pxa_udc
> >> control structure
this is patch 2.
> >> - loose the udc_is_connected() in mach info
> >> This was not really used, as mioa701 machine doesn't need it,
> >> balloon3 doesn't really use it, and most importantly the current
> >> driver never uses it.
and this is patch 3.
> >> The drawback with the gpio_desc conversion is that the "inverted" gpio
> >> attribute is lost, as no gpiod_*() function exists to set the
> >
> > it's not lost, it's handled for you by the gpio library. Look at how
> > GPIO_ACTIVE_LOW is used.
> It is so, the above assertion "no gpiod_*() function exists" is
> false. Therefore, which is the right function in the gpio library accessible
> to
> a driver ?
look at the implementation of gpiod_set_value:
1271 void gpiod_set_value(struct gpio_desc *desc, int value)
1272 {
1273 if (!desc)
1274 return;
1275 /* Should be using gpio_set_value_cansleep() */
1276 WARN_ON(desc->chip->can_sleep);
1277 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags))
1278 value = !value;
1279 _gpiod_set_raw_value(desc, value);
1280 }
1281 EXPORT_SYMBOL_GPL(gpiod_set_value);
do you see how it handles our "inverted" flag internally. It seems like
what you're missing is a helper to set FLAG_ACTIVE_LOW when !OF &&
!ACPI. If that's really not part of the framework yet, propose a patch
as that would help many others convert to gpio descs and, later, DT.
--
balbi
signature.asc
Description: Digital signature
