Re: [PATCH] pinctrl: baytrail: show output gpio state correctly on Intel Baytrail

Linus Walleij
2014-11-03T15:33:18Z

On Fri, Oct 31, 2014 at 2:20 PM, Felipe Balbi <balbi@ti.com> wrote:
> [Me]

>> But another way to get rid of the dilemma is to set
>> .suppress_bind_attrs = true on the .driver field of the
>> device driver. The one can't unbind it through sysfs anymore.
>>
>> .driver = {
>> .name = "foo",
>> .suppress_bind_attrs = true,
>> },
>>
>> So one of them need to be done.
>>
>> I suspect this is a kind of common problem...
>
> so instead of taking of taking a three-liner which just makes sure this
> can be used as "intended" you prefer to:
>
> diff --git a/drivers/pinctrl/pinctrl-baytrail.c b/drivers/pinctrl/pinctrl-baytrail.c
> index e12e5b0..254ba81 100644
> --- a/drivers/pinctrl/pinctrl-baytrail.c
> +++ b/drivers/pinctrl/pinctrl-baytrail.c
> @@ -587,16 +587,6 @@ static const struct acpi_device_id byt_gpio_acpi_match[] = {
> };
> MODULE_DEVICE_TABLE(acpi, byt_gpio_acpi_match);
>
> -static int byt_gpio_remove(struct platform_device *pdev)
> -{
> - struct byt_gpio *vg = platform_get_drvdata(pdev);
> -
> - pm_runtime_disable(&pdev->dev);
> - gpiochip_remove(&vg->chip);
> -
> - return 0;
> -}
> -
> static struct platform_driver byt_gpio_driver = {
> .probe = byt_gpio_probe,
> .remove = byt_gpio_remove,
> @@ -605,6 +595,7 @@ static struct platform_driver byt_gpio_driver = {
> .owner = THIS_MODULE,
> .pm = &byt_gpio_pm_ops,
> .acpi_match_table = ACPI_PTR(byt_gpio_acpi_match),
> + .suppress_bind_attrs = true,
> },
> };

I don't know, if the driver *really* cannot be removed from sysfs
it is actually the right solution don't you think?

Else we're just leaving a nicely designed self-destruct
mechanism around.

Yours,
Linus Walleij