On Tue, Jul 23, 2019 at 08:28:00AM +0200, Bartosz Golaszewski wrote:
pon., 22 lip 2019 o 18:06 Andy Shevchenko andriy.shevchenko@linux.intel.com napisaĆ(a):
On Mon, Jul 22, 2019 at 05:02:57PM +0200, Bartosz Golaszewski wrote:
From: Bartosz Golaszewski bgolaszewski@baylibre.com
Now that the last user of platform data (sh ecovec24) defines a proper GPIO lookup and sets the 'default-on' device property, we can drop the platform_data-specific GPIO handling and unify a big chunk of code.
The only field used from the platform data is now the fbdev pointer.
-static int gpio_backlight_probe_dt(struct platform_device *pdev,
struct gpio_backlight *gbl)
-{
struct device *dev = &pdev->dev;
enum gpiod_flags flags;
int ret;
gbl->def_value = device_property_read_bool(dev, "default-on");
flags = gbl->def_value ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW;
gbl->gpiod = devm_gpiod_get(dev, NULL, flags);
if (IS_ERR(gbl->gpiod)) {
ret = PTR_ERR(gbl->gpiod);
if (ret != -EPROBE_DEFER) {
dev_err(dev,
"Error: The gpios parameter is missing or invalid.\n");
}
return ret;
}
return 0;
-}
Why not leave this function (perhaps with different name)?
Why would we do that if the entire probe() function is now less than 50 lines long? Also: it gets inlined by the compiler anyway. It doesn't make sense IMO.
I'm not against this, perhaps, dropping and moving can be split to two changes.