From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932238AbcJLCWA (ORCPT ); Tue, 11 Oct 2016 22:22:00 -0400 Received: from mail-pf0-f171.google.com ([209.85.192.171]:34976 "EHLO mail-pf0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932260AbcJLCVw (ORCPT ); Tue, 11 Oct 2016 22:21:52 -0400 Date: Wed, 12 Oct 2016 07:51:37 +0530 From: Viresh Kumar To: Linus Walleij Cc: gregkh@linuxfoundation.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Axel Haslam , Johan Hovold , Sandeep Patil , Rui Miguel Silva Subject: Re: [PATCH v2] RFC: staging: greybus: shape up greybus GPIO Message-ID: <20161012022137.GB19385@vireshk-i7> References: <1476088772-6834-1-git-send-email-linus.walleij@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1476088772-6834-1-git-send-email-linus.walleij@linaro.org> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I was looking to exactly do thanks, thanks for doing it before us :) On 10-10-16, 10:39, Linus Walleij wrote: > static int gb_gpio_probe(struct gbphy_device *gbphy_dev, > const struct gbphy_device_id *id) > { > @@ -690,7 +556,6 @@ static int gb_gpio_probe(struct gbphy_device *gbphy_dev, > gpio->get = gb_gpio_get; > gpio->set = gb_gpio_set; > gpio->set_debounce = gb_gpio_set_debounce; > - gpio->to_irq = gb_gpio_to_irq; > gpio->base = -1; /* Allocate base dynamically */ > gpio->ngpio = ggc->line_max + 1; > gpio->can_sleep = true; > @@ -699,26 +564,26 @@ static int gb_gpio_probe(struct gbphy_device *gbphy_dev, > if (ret) > goto exit_line_free; > > - ret = gb_gpio_irqchip_add(gpio, irqc, 0, > - handle_level_irq, IRQ_TYPE_NONE); > + ret = devm_gpiochip_add_data(&connection->bundle->dev, We should be using gbphy_dev->dev here instead. > + gpio, ggc); > if (ret) { > dev_err(&connection->bundle->dev, And also at these places. I will send a patch to fix these separately though. > - "failed to add irq chip: %d\n", ret); > + "failed to add gpio chip: %d\n", ret); > goto exit_line_free; > } > > - ret = gpiochip_add(gpio); > + ret = gpiochip_irqchip_add(gpio, irqc, > + 0, handle_level_irq, > + IRQ_TYPE_NONE); > if (ret) { > dev_err(&connection->bundle->dev, > - "failed to add gpio chip: %d\n", ret); > - goto exit_gpio_irqchip_remove; > + "failed to add gpio irqchip: %d\n", ret); > + goto exit_line_free; > } > > gbphy_runtime_put_autosuspend(gbphy_dev); > return 0; > > -exit_gpio_irqchip_remove: > - gb_gpio_irqchip_remove(ggc); > exit_line_free: > kfree(ggc->lines); > exit_connection_disable: > @@ -741,8 +606,6 @@ static void gb_gpio_remove(struct gbphy_device *gbphy_dev) > gbphy_runtime_get_noresume(gbphy_dev); > > gb_connection_disable_rx(connection); > - gpiochip_remove(&ggc->chip); This should stay as is, right? > - gb_gpio_irqchip_remove(ggc); > gb_connection_disable(connection); > gb_connection_destroy(connection); > kfree(ggc->lines); -- viresh