Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp423123imm; Fri, 14 Sep 2018 00:09:10 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZqd4dxwUAsHZABOhEnv+oopJDjnRrleAC5l/6B0x2P2nvnUMbsN9ndjc7CaEvPpP5ReU+t X-Received: by 2002:a17:902:c7:: with SMTP id a65-v6mr10554380pla.264.1536908950320; Fri, 14 Sep 2018 00:09:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536908950; cv=none; d=google.com; s=arc-20160816; b=YzOrDqPJEdHo2RCzK2mIKlW3cUi72IMq+0zQzl0np7AA5CE8Y8/yEIVDO6LM1QLt7Y TlZRGKJK4bZUbCQYFu+xdc003KZLnHUbgg2vSfBXiUIqbJgOyZIh5DbP572Y9/fo3ImI 0q60ysh24PPXPMvMgQ6F3RUumBjOfIv4bq+aikBoFj0cga2OZ3q2YnvRb71G2WT5UOnU N3MtgI3HUbMygwOUBhFs58FF099etlgtnVWn0YrP67Cq1ke4JFPYUY9QL+o1wiMO5zpd ZAz3vmN1/c5vBKWM49UtYCv68xJje4pKa7vf2KX0xF/iYvBJqLdDpPe7qh5CZvxhfhsX LEZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=GDMzW0owNfyQlN8zdH+gJ6i0JsuBrOsnv6NBr8vU6wE=; b=gqenj68zf9PanfE5BKiYivQrOsiJycMbu7EeVkbd0AM7fKkMyXQwGcwX3fp1d1f36x qUnDWxR/P7glGk3DHcRxcX7XYtbHAjY24C2krgBgBJ6cT5gzF4mxOb8J6+RAtQKOSI7O rkL4Lw0zTc2VKJI5vmfwZ/toGxlM2KCVZJJ5qG5SawiU2sDHnYRUXb0wrnbtdxeHIPdc dgXoGRAB2B58NfJjky2oRNBxMpy4Wiub1AiZmOqDYHiA1W/Yc/CVoGfSpDeNVJ2Afpnp OKjDb6F5wNHEpJyzPJ/5pWG8lbdD864uDB+v799AH2EkwxQnrjskc+ciSLDAFEJ2h7Tx b7OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pFUKLViH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q4-v6si6493695pgh.412.2018.09.14.00.08.54; Fri, 14 Sep 2018 00:09:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pFUKLViH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727853AbeINMVw (ORCPT + 99 others); Fri, 14 Sep 2018 08:21:52 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:34045 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727691AbeINMVw (ORCPT ); Fri, 14 Sep 2018 08:21:52 -0400 Received: by mail-ed1-f66.google.com with SMTP id u1-v6so6610038eds.1; Fri, 14 Sep 2018 00:08:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GDMzW0owNfyQlN8zdH+gJ6i0JsuBrOsnv6NBr8vU6wE=; b=pFUKLViHzQt9HN8pp0QnWvq94ytCVEXgmhmpLqIZQBdTnAqvROQJzt36KxJhPWMl9o YTFLL/UzWTAHz7NjfQPBK+qJf3M+fgj350tFZ8DkCTMLnAPMpkAZj7Asg1Cs1yJeItbb 0Xur86WHUeNZnrSVViBtKIb28dAAecF7PGiJ7/Tf02ZznsSTpbSQVCWDOqJh5VCSo+jz pcNy5evffFYIEI2copQmcxdAv8TqdZKV/WOhPMvZZxSF5J4RdLMr3udjBLbgG/5MCDRy LE9AGA8WzWGhJSTc04rwcv0JVRC0IO1pePVZaqAOlhCMFEjJphTgRP4PJroIfYFfhuAU AZHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GDMzW0owNfyQlN8zdH+gJ6i0JsuBrOsnv6NBr8vU6wE=; b=H1Mzqn8cmRJtCbVFg8/WnNVj5HWehPtPvkSrIoPhHSflxJHjm1jPXftcmbuNcsth8D vL+s8gFJGuUC0tukNCMNaceV4QZHzAwwwUUDPKTcS9oU0Wuaix17/n89doz6UQ6zRcdy AOgtwt9HP+zRsPN4W0qB2q0GP//PNdTAg5xx4S4dLoHFt4iFmKOP0IgIq1eHi4iQtQUr fgrNZ0x6kQyS6kiL8pFVFBAiwunxQKjFimFd4kyiKGgyZOgQqZwRQAX+AuVqPKq/WPsj uf8XcEaQVBUh6eud6bO2FWFkuRn2WxxpFRnDa/N6XHaB4h6YkUsY6inGG05I+ziZUdAs fc3w== X-Gm-Message-State: APzg51CPMUusggZJXhMVkhVy0gOvWA5meVjdIS07zKCrmph32dKn9oSB b7CTUW/aYsbSQvuggpkK6Tw= X-Received: by 2002:aa7:ca51:: with SMTP id j17-v6mr18345226edt.45.1536908924624; Fri, 14 Sep 2018 00:08:44 -0700 (PDT) Received: from neopili.qtec.com (cpe.xe-3-0-1-778.vbrnqe10.dk.customer.tdc.net. [80.197.57.18]) by smtp.gmail.com with ESMTPSA id x48-v6sm4186111edm.18.2018.09.14.00.08.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Sep 2018 00:08:43 -0700 (PDT) From: Ricardo Ribalda Delgado To: Linus Walleij , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ricardo Ribalda Delgado Subject: [PATCH] gpiolib: Show correct direction from the beginning Date: Fri, 14 Sep 2018 09:08:39 +0200 Message-Id: <20180914070839.4667-2-ricardo.ribalda@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180914070839.4667-1-ricardo.ribalda@gmail.com> References: <20180914070839.4667-1-ricardo.ribalda@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Current code assumes that the direction is input if direction_input function is set. This might not be the case on GPIOs with programmable direction. Signed-off-by: Ricardo Ribalda Delgado --- drivers/gpio/gpiolib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index a57300c1d649..af853749e0bb 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1352,7 +1352,12 @@ int gpiochip_add_data_with_key(struct gpio_chip *chip, void *data, * it does, and in case chip->get_direction is not set, we may * expose the wrong direction in sysfs. */ - desc->flags = !chip->direction_input ? (1 << FLAG_IS_OUT) : 0; + if (chip->get_direction) + desc->flags = !chip->get_direction(chip, i) ? + (1 << FLAG_IS_OUT) : 0; + else + desc->flags = !chip->direction_input ? + (1 << FLAG_IS_OUT) : 0; } #ifdef CONFIG_PINCTRL -- 2.18.0