Skip to content
  • Grant Likely's avatar
    of/gpio: stop using device_node data pointer to find gpio_chip · 594fa265
    Grant Likely authored
    
    
    Currently the kernel uses the struct device_node.data pointer to resolve
    a struct gpio_chip pointer from a device tree node.  However, the .data
    member doesn't provide any type checking and there aren't any rules
    enforced on what it should be used for.  There's no guarantee that the
    data stored in it actually points to an gpio_chip pointer.
    
    Instead of relying on the .data pointer, this patch modifies the code
    to add a lookup function which scans through the registered gpio_chips
    and returns the gpio_chip that has a pointer to the specified
    device_node.
    
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    CC: Andrew Morton <akpm@linux-foundation.org>
    CC: Anton Vorontsov <avorontsov@ru.mvista.com>
    CC: Grant Likely <grant.likely@secretlab.ca>
    CC: David Brownell <dbrownell@users.sourceforge.net>
    CC: Bill Gatliff <bgat@billgatliff.com>
    CC: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    CC: Jean Delvare <khali@linux-fr.org>
    CC: linux-kernel@vger.kernel.org
    CC: devicetree-discuss@lists.ozlabs.org
    594fa265