From patchwork Sat Mar 2 00:15:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Pylypiv X-Patchwork-Id: 209132 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp233903dyc; Fri, 1 Mar 2024 16:19:06 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW7MyylCmdrH/0dWIoYuvqVxbnY2XEygLQskSYXCm/D3rC6zyIeMeTPiZRApI8LVWdYBNbTXw2bCS8YsP+rcoQWCWI0Fg== X-Google-Smtp-Source: AGHT+IF/ON5nF3eqezMFZc/kkZbvJbg7OHIsKCwVoo1K9vEehyOBG//3EISfKrFbzB+qGvmLdJaz X-Received: by 2002:a05:6a00:929d:b0:6e5:8cc1:f75b with SMTP id jw29-20020a056a00929d00b006e58cc1f75bmr4376566pfb.4.1709338745947; Fri, 01 Mar 2024 16:19:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709338745; cv=pass; d=google.com; s=arc-20160816; b=tpAAjlqvNH7+bHti+XbdHGiTz1cP1JYkNoGJia/gUacUNkMAFTz6fu9ojruEyLNzG4 3lncj51TWeakjZb6HVTITOkRPYpilf0NABUM/C2tpaZwP6BeSv/FnQI4ojZcp8v3O83q KNK8uKnzwqMFFM6LUvo5GJ+5hne0iVIOuMcaqiv/B3bIt4GATnWXPfEiW+8Rk40BI9OC HR4yzBb6pp1BoNrR9hHlgK9m+804iiwYQMiWfHM8qA9wJyigQ5rtCnpUUIjN+KJC9u0F 8u+n8ius6US8oIpSVgzm4nheNA+XyWV4DeTyGYelpjySl8bNlw5CkDtsuK1Tzd9HLMpG ua0Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=z4qRVCwUT6U2lE1it/3KAP9Dql1inh3yxdaUzH18pmU=; fh=X7hFhzJ1ya92HE4i+e0XJ7ybKB3rpHhnwYyeO7XDAkM=; b=oyW/ItAL9qoYYzlYzLbU3BZQZ5qDRFt9zRkysUZLpnUXer0wGMcu/Bw4meFW4Zj2Pz 8e1MsTEMpvRqz0UPMJO2zem8HA7MzfygP/eu9ZZAupaZZB/a7ACubcw8UuUcH9WT6tnc YU+FvHiUF3mT70DR04SkkDnx8FMB5T3mPMuVW/40+MQpoAMZD/IvJMK0n98MpMP0UjDb NhDRQWaV+xIKaZ1A9fAuI8gPPkOiD5Tl1xIX3oulNv81BWBxpSRB/opd6AuZFtcDy8sG gXWsSFSEygt2F40LoxsqKtYhTMY19LO381JYFl5tKyR642IMuc5EwFUOftHatw7RfWaT jSyw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=INwPm8bn; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89259-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89259-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id z19-20020a63c053000000b005dcbda499c9si4344260pgi.261.2024.03.01.16.19.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 16:19:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89259-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=INwPm8bn; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89259-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89259-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id A6DBCB24ADD for ; Sat, 2 Mar 2024 00:18:24 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5F1701119A; Sat, 2 Mar 2024 00:17:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="INwPm8bn" Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B88F78C04 for ; Sat, 2 Mar 2024 00:16:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338618; cv=none; b=RcI8XTyhl6db8MK0Bj7rC8SH0eA/QdIJLzbTtYGjWPAD2JJcTesroqXyIFlEVwroHYKdGe6FYb3W09CY1Ozp5xK6cLyVm1SohcouwIY53rIE5RQEufu6KEw/JhV3Ryw7zUtAD1E+4IUXdYD+OJ8oj2hvU1egI3b+Wi9Gf47Sdm4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338618; c=relaxed/simple; bh=Dr1gHME6UhZzljl3CDtFvx0fMB3rr1EwYhk4f6Q7U3s=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Rf1qJgj/rk4jnSilX5O1ylSPvYVutrQpPcH2+Z0P4JJaT1OM3fGe4G+9EomYcySrecfmGqezl7Gv1nQ1McH7a1UsNcxImdeZQ6hRH+i04NvANQwEsTDfCZNvHx8B6G02zHWs131qnKCDv9nnV6Ra5m/b0zvoz2H2V+YCspnvl9E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=INwPm8bn; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-60957b52eecso44542097b3.2 for ; Fri, 01 Mar 2024 16:16:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709338616; x=1709943416; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=z4qRVCwUT6U2lE1it/3KAP9Dql1inh3yxdaUzH18pmU=; b=INwPm8bnvPkpvRrvkTM4Bblov2tYt9jMtyrcQhRMME/0Fz5GeeRBGncU9ZoF28hIuF 5DGNPwVvqhYp6t9zBgFcsuN0+xxWQYMhxze4ITYrtc2z5it9uWV7j3RGYCXhlPJkkOuH M+1shUfmIMPPQfRufboRWNyn4mLsKPzs/ScAtzHy19dCVr3az0hLlzLL41KuAmhwHOjP t1jVjfDGvVqV4QSGqmDtz8yVtrr357ydZN275emYt8bzfXymD50QNTwO11WRROLed5Uv 7UuFu9pLZD+bUyE8qknXj2flGc3wMLB4JIn5UYPo2u8oD8VhCVuaRkuGUbTS04jXNDYP VatA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709338616; x=1709943416; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=z4qRVCwUT6U2lE1it/3KAP9Dql1inh3yxdaUzH18pmU=; b=n3Dhp08cp/kZJUMae2NW/0HC5DUL9yeQ/Xiva9nco9P4UTLpdFhoXpS+lIUOwRg5Dv uX3m7KmJu0nH1iEHjo9M2rQWZWtLZz0TM/02K9+Uu3wSjUw97L31crqfkXdQoCkEI2qH ZFzHpYNgQGZ4HtBsNKusMKhvoqbm26k1m7+4uPaNcHPvW+smthVDz85zUacXv0m/r2p1 zkK0b3viOZblw3sliuv9D+cBnRQ/f7lHcAhZ0vFOM9zbcBYs4BLUhVFiT+8ADiUPumOP cRFWzJGeo7aa1+ZuWIY0HmbIz2A/mymw8/dkFVthEgdYHwW9zOJUVaFPVTFKVjchcpZZ 1MCw== X-Forwarded-Encrypted: i=1; AJvYcCXHZU0OoYfK2uTq1JYGoIzz+S3rG78Ay3+XLL46dRKd6gleZZNST/Vd7OiIkzMpiJlXBr3q6xI5BOV5FwYh8ApeVvprJqe3mnh9sVnz X-Gm-Message-State: AOJu0YzIvXaBN4J8v/7BpJ1wcH4A12KoPD6nKRrYaQFRdOmJB7xSjJvD OqXzu6M/8I9OzXaroJRC5j7NLzWJaIjQmZwQXynnVPdxAc0xohDUqfyax78OFXJZOitllY3rAik 5kqLsqss27w== X-Received: from ipylypiv.svl.corp.google.com ([2620:15c:2c5:13:2afe:1a8e:f846:999f]) (user=ipylypiv job=sendgmr) by 2002:a05:690c:3612:b0:607:a30d:8cf with SMTP id ft18-20020a05690c361200b00607a30d08cfmr636509ywb.4.1709338615938; Fri, 01 Mar 2024 16:16:55 -0800 (PST) Date: Fri, 1 Mar 2024 16:15:58 -0800 In-Reply-To: <20240302001603.1012084-1-ipylypiv@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240302001603.1012084-1-ipylypiv@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Message-ID: <20240302001603.1012084-2-ipylypiv@google.com> Subject: [PATCH v2 1/5] ata: libata-sata: Factor out NCQ Priority configuration helpers From: Igor Pylypiv To: Damien Le Moal , Niklas Cassel , John Garry , Jason Yan , "James E.J. Bottomley" , "Martin K. Petersen" , Jack Wang , Hannes Reinecke Cc: TJ Adams , linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Pylypiv X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792371584866939361 X-GMAIL-MSGID: 1792371584866939361 Export libata NCQ Priority configuration helpers to be reused for libsas managed SATA devices. Signed-off-by: Igor Pylypiv --- drivers/ata/libata-sata.c | 139 +++++++++++++++++++++++++++----------- include/linux/libata.h | 4 ++ 2 files changed, 103 insertions(+), 40 deletions(-) diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c index 0fb1934875f2..a8d5e36d5211 100644 --- a/drivers/ata/libata-sata.c +++ b/drivers/ata/libata-sata.c @@ -848,29 +848,73 @@ DEVICE_ATTR(link_power_management_policy, S_IRUGO | S_IWUSR, ata_scsi_lpm_show, ata_scsi_lpm_store); EXPORT_SYMBOL_GPL(dev_attr_link_power_management_policy); +/** + * ata_ncq_prio_supported - Check if device supports NCQ Priority + * @ap: ATA port of the target device + * @sdev: SCSI device + * + * Helper to check if device supports NCQ Priority feature, + * usable with both libsas and libata. + */ +int ata_ncq_prio_supported(struct ata_port *ap, struct scsi_device *sdev) +{ + struct ata_device *dev; + unsigned long flags; + int rc; + + spin_lock_irqsave(ap->lock, flags); + dev = ata_scsi_find_dev(ap, sdev); + if (!dev) + rc = -ENODEV; + else + rc = !!(dev->flags & ATA_DFLAG_NCQ_PRIO); + spin_unlock_irqrestore(ap->lock, flags); + return rc; +} +EXPORT_SYMBOL_GPL(ata_ncq_prio_supported); + static ssize_t ata_ncq_prio_supported_show(struct device *device, struct device_attribute *attr, char *buf) { struct scsi_device *sdev = to_scsi_device(device); struct ata_port *ap = ata_shost_to_port(sdev->host); + int rc; + + rc = ata_ncq_prio_supported(ap, sdev); + if (rc < 0) + return rc; + + return sysfs_emit(buf, "%d\n", rc); +} + +DEVICE_ATTR(ncq_prio_supported, S_IRUGO, ata_ncq_prio_supported_show, NULL); +EXPORT_SYMBOL_GPL(dev_attr_ncq_prio_supported); + +/** + * ata_ncq_prio_enabled - Check if NCQ Priority is enabled + * @ap: ATA port of the target device + * @sdev: SCSI device + * + * Helper to check if NCQ Priority feature is enabled, + * usable with both libsas and libata. + */ +int ata_ncq_prio_enabled(struct ata_port *ap, struct scsi_device *sdev) +{ struct ata_device *dev; - bool ncq_prio_supported; - int rc = 0; + unsigned long flags; + int rc; - spin_lock_irq(ap->lock); + spin_lock_irqsave(ap->lock, flags); dev = ata_scsi_find_dev(ap, sdev); if (!dev) rc = -ENODEV; else - ncq_prio_supported = dev->flags & ATA_DFLAG_NCQ_PRIO; - spin_unlock_irq(ap->lock); - - return rc ? rc : sysfs_emit(buf, "%u\n", ncq_prio_supported); + rc = !!(dev->flags & ATA_DFLAG_NCQ_PRIO_ENABLED); + spin_unlock_irqrestore(ap->lock, flags); + return rc; } - -DEVICE_ATTR(ncq_prio_supported, S_IRUGO, ata_ncq_prio_supported_show, NULL); -EXPORT_SYMBOL_GPL(dev_attr_ncq_prio_supported); +EXPORT_SYMBOL_GPL(ata_ncq_prio_enabled); static ssize_t ata_ncq_prio_enable_show(struct device *device, struct device_attribute *attr, @@ -878,50 +922,45 @@ static ssize_t ata_ncq_prio_enable_show(struct device *device, { struct scsi_device *sdev = to_scsi_device(device); struct ata_port *ap = ata_shost_to_port(sdev->host); - struct ata_device *dev; - bool ncq_prio_enable; - int rc = 0; + int rc; - spin_lock_irq(ap->lock); - dev = ata_scsi_find_dev(ap, sdev); - if (!dev) - rc = -ENODEV; - else - ncq_prio_enable = dev->flags & ATA_DFLAG_NCQ_PRIO_ENABLED; - spin_unlock_irq(ap->lock); + rc = ata_ncq_prio_enabled(ap, sdev); + if (rc < 0) + return rc; - return rc ? rc : sysfs_emit(buf, "%u\n", ncq_prio_enable); + return sysfs_emit(buf, "%d\n", rc); } -static ssize_t ata_ncq_prio_enable_store(struct device *device, - struct device_attribute *attr, - const char *buf, size_t len) +/** + * ata_ncq_prio_enable - Enable/disable NCQ Priority + * @ap: ATA port of the target device + * @sdev: SCSI device + * @enable: true - enable NCQ Priority, false - disable NCQ Priority + * + * Helper to enable/disable NCQ Priority feature, usable with both + * libsas and libata. + */ +int ata_ncq_prio_enable(struct ata_port *ap, struct scsi_device *sdev, + bool enable) { - struct scsi_device *sdev = to_scsi_device(device); - struct ata_port *ap; struct ata_device *dev; - long int input; + unsigned long flags; int rc = 0; - rc = kstrtol(buf, 10, &input); - if (rc) - return rc; - if ((input < 0) || (input > 1)) - return -EINVAL; + spin_lock_irqsave(ap->lock, flags); - ap = ata_shost_to_port(sdev->host); dev = ata_scsi_find_dev(ap, sdev); - if (unlikely(!dev)) - return -ENODEV; - - spin_lock_irq(ap->lock); + if (unlikely(!dev)) { + rc = -ENODEV; + goto unlock; + } if (!(dev->flags & ATA_DFLAG_NCQ_PRIO)) { rc = -EINVAL; goto unlock; } - if (input) { + if (enable) { if (dev->flags & ATA_DFLAG_CDL_ENABLED) { ata_dev_err(dev, "CDL must be disabled to enable NCQ priority\n"); @@ -934,9 +973,29 @@ static ssize_t ata_ncq_prio_enable_store(struct device *device, } unlock: - spin_unlock_irq(ap->lock); + spin_unlock_irqrestore(ap->lock, flags); + return rc; +} +EXPORT_SYMBOL_GPL(ata_ncq_prio_enable); + +static ssize_t ata_ncq_prio_enable_store(struct device *device, + struct device_attribute *attr, + const char *buf, size_t len) +{ + struct scsi_device *sdev = to_scsi_device(device); + struct ata_port *ap = ata_shost_to_port(sdev->host); + bool enable; + int rc; + + rc = kstrtobool(buf, &enable); + if (rc) + return rc; + + rc = ata_ncq_prio_enable(ap, sdev, enable); + if (rc) + return rc; - return rc ? rc : len; + return len; } DEVICE_ATTR(ncq_prio_enable, S_IRUGO | S_IWUSR, diff --git a/include/linux/libata.h b/include/linux/libata.h index 26d68115afb8..f3ff2bf3ec6b 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -1157,6 +1157,10 @@ extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth); extern int ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev, int queue_depth); +extern int ata_ncq_prio_supported(struct ata_port *ap, struct scsi_device *sdev); +extern int ata_ncq_prio_enabled(struct ata_port *ap, struct scsi_device *sdev); +extern int ata_ncq_prio_enable(struct ata_port *ap, struct scsi_device *sdev, + bool enable); extern struct ata_device *ata_dev_pair(struct ata_device *adev); extern int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev); extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap); From patchwork Sat Mar 2 00:15:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Pylypiv X-Patchwork-Id: 209144 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp236919dyc; Fri, 1 Mar 2024 16:27:47 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUnUVwJnBBex2KG0i+AmX9YWHzzk3yufcf1wkGPLuBjgYyQjP6jQEv50zFW0IyNp/g/oGzLdNiIGd0I3BPXf0SKLjEY2w== X-Google-Smtp-Source: AGHT+IFVoSaEJUqs/sS4YvN8OtAQ+TSmUBI/BfbQrRy1uQGuRCN/GIzSLI4dNQCLSwdavl2SgQ8z X-Received: by 2002:a05:6e02:1649:b0:365:c567:6ef6 with SMTP id v9-20020a056e02164900b00365c5676ef6mr4585946ilu.8.1709339267713; Fri, 01 Mar 2024 16:27:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709339267; cv=pass; d=google.com; s=arc-20160816; b=LmFz13BgLPv1XNKJnXTlQdtSTnsjaNnTwbxjDwr1XMz3B5VIV6iwFpD16UT1Fk17hi nCvFDXpVfPQrD2fr8FdxTJXH5Ud9SIrV8HawYirQ/qwN9j30CjeY74cpJZVYM0Pr8hSx IljISAkEjtx6ifmWWWOTkoHxdMCx5Icnnn0zTthiaMkXyZH91nvIGDMFo2yhxlD2FHhg LXzs30EyNk24k315UW6Yi9/QfPZL4q8ACQ0QHnEZsjzo3gDAsKCNTGrF4+A6nXvI2Gjs ZShKR7MDEhgModaSr37gUaBHJq7NG6vh0VSJSuDMRi0O/kBepR7fqQ8qtHMWCCUc2Gw1 odMQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=SBbBICcO6IvwKDEiRI+I7rx8MULu52MOhujWx/5/qGw=; fh=hkVOdPXaF26vAwoIH92ViwEviZzBq48yfGn1MvhSRw0=; b=PAmWZnqWnEUAPlaVfNaCjUqXDPbVul7z+4XcWu4MuqKIF1sAa4u4XZvHRfbmqwviNy FkVCaHm0BSMdb0sCS90/f+d1eQP9zNRU49/gqNy4hxI95Z2bRgNHPU706NLb35xDoJzW H6EM4mLpeXT4oyrrWMV2rDjPsqJbw3aB20tfjIqOwupB3uDZ4PuOcvt6Y01Lf480TzRr pAa5qdB5QabKOZKUs+ah0fyd/1efMn23Bp5IuscaOH6CSbmVEdDBUdfzU+lykAz505cd XEidGKwLshovqp5pnJYoiImPaLFc/TWb7IozJa7A4mqUjbS3bl3eDXxDXtmz2Lme9X4R NbMQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0yuguYux; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89260-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89260-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id cb4-20020a056a02070400b005dc071d13c7si4805858pgb.273.2024.03.01.16.27.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 16:27:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89260-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0yuguYux; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89260-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89260-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 2D6E4289102 for ; Sat, 2 Mar 2024 00:18:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 26BE9125D7; Sat, 2 Mar 2024 00:17:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="0yuguYux" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 133B2BA57 for ; Sat, 2 Mar 2024 00:16:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338620; cv=none; b=gqPIKdEY91rtqiFwRWIKCiwWeT/gT+vwCteHCuCm/qVWtVCe8xZaoB6wtGLiuxJ8DSV7lmCwyqXEhy941+o7SCsVr6fGfrcCREjYAWvRkqzv5oFL4ugA/heTrP4zjRtePMc8OeLdbWVrltswiVQ6qiZh//3WayhzEpHMfA7RAmk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338620; c=relaxed/simple; bh=0GrvhQMeDiqnvSKKSLm4FXuympZbNYitH8oNM1c1K2M=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=l9y5zRsVzEpcUd2/QD4AFSO+G+5H+itKdZIw490nmbhvIgP5rS5zMOdZhuGomMiZiMjfCFVTXtzhTOTTbiXIxJ4GMpVhIipWey+LKyaKTVEdIlNfg6i055eZpXFpIbV4u4TysmQu3/iPtGTbFe+5aI+JfmGWxMNqaNbcfMk2TNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=0yuguYux; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6097d323c70so28703647b3.0 for ; Fri, 01 Mar 2024 16:16:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709338618; x=1709943418; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=SBbBICcO6IvwKDEiRI+I7rx8MULu52MOhujWx/5/qGw=; b=0yuguYux9axl8wuUNIB9ZYosscBR4VWPmEC2qpbpdU39IR/aOzgFxhOxA53xi652js yBK94hTwqpCWRIcmMDEUVyuyT2INDr+TSi8LuQqOfKC1DGFUeOAWDZcbIHjTg2xctgBs WdoHq76TAc/zd9WdTH2bQ5NdmNRPDbUa2ZTLzoBrxP0q7GDXexrANykLO0i5CGA0MvJh NimvdR+BTk2FvChV8tsQpZAkPJ+B4jAgHUhdcEDLAEcv5OTCj03yLLB4wWbG5/k6zSAb bV0z4iamg2qGPFGReNKFRXLaWeRtRKylW/dzAeBy1HtQL++B4QKMXjr7bth+dFofVUEs eEuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709338618; x=1709943418; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SBbBICcO6IvwKDEiRI+I7rx8MULu52MOhujWx/5/qGw=; b=s09JfW15coU2rvy/RVgyZWHWJbYohUBJizcTvvSXWHy19RE7z2gxNjXSIVdSsCtIx2 LgzJVRIkWuuIGL22HSEPTPx/AuDMTBCnHPu1hQKJhx0IIPF7PKQW5uI1Y4roa3InCZbW x3uNniNNi3rzfygMXuH78JesJFU+JZtm9iprF827PZwg4XCBnU3UWm1WC43tXYuvR+ID Kn0mZGkAwS1/urv8zjEmagl86H4M7goJS0fCAo1TdSlOp8b+kNZ1e8IZNfHOLE8V52HH BW6BIW5rfYIxmeUUAp1bJENiVrlUG4lpCPcPFsWZIXoa2HNpLA9GHLr5Enm9YF2Kcjab fE5w== X-Forwarded-Encrypted: i=1; AJvYcCUJzSZufrKGMRNWchE+CH3tkxru57RODpr0wTJBGUoLFhn8RBd6K0vyTAAvG9GWKtHANYj/YmZfViNr2nLj29xvcmkTeOL7TgFdKTfa X-Gm-Message-State: AOJu0Yxqh5QX313C1elP/LLnLaZ6nvceAJCFjPWvsYdmnsmzze2GXGzl V6qrqNkonpdti5bUy2uZ1yZfrR1vutFe5w2OZe1VQLUdx8Fo8Cd31LMHvfPSsvIyk8JeyV9WqP3 cjBQTbAtSXA== X-Received: from ipylypiv.svl.corp.google.com ([2620:15c:2c5:13:2afe:1a8e:f846:999f]) (user=ipylypiv job=sendgmr) by 2002:a05:6902:18d3:b0:dc7:865b:22c6 with SMTP id ck19-20020a05690218d300b00dc7865b22c6mr117555ybb.8.1709338618166; Fri, 01 Mar 2024 16:16:58 -0800 (PST) Date: Fri, 1 Mar 2024 16:15:59 -0800 In-Reply-To: <20240302001603.1012084-1-ipylypiv@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240302001603.1012084-1-ipylypiv@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Message-ID: <20240302001603.1012084-3-ipylypiv@google.com> Subject: [PATCH v2 2/5] scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices From: Igor Pylypiv To: Damien Le Moal , Niklas Cassel , John Garry , Jason Yan , "James E.J. Bottomley" , "Martin K. Petersen" , Jack Wang , Hannes Reinecke Cc: TJ Adams , linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Pylypiv X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792372132139539913 X-GMAIL-MSGID: 1792372132139539913 Libata sysfs attributes cannot be used for libsas managed SATA devices because the ata_port location is different for libsas. Defined sysfs attributes (visible for SATA devices only): - /sys/block/sda/device/ncq_prio_enable - /sys/block/sda/device/ncq_prio_supported The newly defined attributes will pass the correct ata_port to libata helper functions. Signed-off-by: Igor Pylypiv --- drivers/scsi/libsas/sas_ata.c | 92 +++++++++++++++++++++++++++++++++++ include/scsi/sas_ata.h | 6 +++ 2 files changed, 98 insertions(+) diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 12e2653846e3..e4d07134a0e4 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -964,3 +964,95 @@ int sas_execute_ata_cmd(struct domain_device *device, u8 *fis, int force_phy_id) force_phy_id, &tmf_task); } EXPORT_SYMBOL_GPL(sas_execute_ata_cmd); + +static ssize_t sas_ncq_prio_supported_show(struct device *device, + struct device_attribute *attr, + char *buf) +{ + struct scsi_device *sdev = to_scsi_device(device); + struct domain_device *ddev = sdev_to_domain_dev(sdev); + int rc; + + /* This attribute shall be visible for SATA devices only */ + if (WARN_ON(!dev_is_sata(ddev))) + return -EINVAL; + + rc = ata_ncq_prio_supported(ddev->sata_dev.ap, sdev); + if (rc < 0) + return rc; + + return sysfs_emit(buf, "%d\n", rc); +} + +DEVICE_ATTR(ncq_prio_supported, S_IRUGO, sas_ncq_prio_supported_show, NULL); + +static ssize_t sas_ncq_prio_enable_show(struct device *device, + struct device_attribute *attr, + char *buf) +{ + struct scsi_device *sdev = to_scsi_device(device); + struct domain_device *ddev = sdev_to_domain_dev(sdev); + int rc; + + /* This attribute shall be visible for SATA devices only */ + if (WARN_ON(!dev_is_sata(ddev))) + return -EINVAL; + + rc = ata_ncq_prio_enabled(ddev->sata_dev.ap, sdev); + if (rc < 0) + return rc; + + return sysfs_emit(buf, "%d\n", rc); +} + +static ssize_t sas_ncq_prio_enable_store(struct device *device, + struct device_attribute *attr, + const char *buf, size_t len) +{ + struct scsi_device *sdev = to_scsi_device(device); + struct domain_device *ddev = sdev_to_domain_dev(sdev); + bool enable; + int rc; + + /* This attribute shall be visible for SATA devices only */ + if (WARN_ON(!dev_is_sata(ddev))) + return -EINVAL; + + rc = kstrtobool(buf, &enable); + if (rc) + return rc; + + rc = ata_ncq_prio_enable(ddev->sata_dev.ap, sdev, enable); + if (rc) + return rc; + + return len; +} + +DEVICE_ATTR(ncq_prio_enable, S_IRUGO | S_IWUSR, + sas_ncq_prio_enable_show, sas_ncq_prio_enable_store); + +static struct attribute *sas_ata_sdev_attrs[] = { + &dev_attr_ncq_prio_supported.attr, + &dev_attr_ncq_prio_enable.attr, + NULL +}; + +static umode_t sas_ata_attr_is_visible(struct kobject *kobj, + struct attribute *attr, int i) +{ + struct device *dev = kobj_to_dev(kobj); + struct scsi_device *sdev = to_scsi_device(dev); + struct domain_device *ddev = sdev_to_domain_dev(sdev); + + if (!dev_is_sata(ddev)) + return 0; + + return attr->mode; +} + +const struct attribute_group sas_ata_sdev_attr_group = { + .attrs = sas_ata_sdev_attrs, + .is_visible = sas_ata_attr_is_visible, +}; +EXPORT_SYMBOL_GPL(sas_ata_sdev_attr_group); diff --git a/include/scsi/sas_ata.h b/include/scsi/sas_ata.h index 2f8c719840a6..cded782fdf33 100644 --- a/include/scsi/sas_ata.h +++ b/include/scsi/sas_ata.h @@ -39,6 +39,8 @@ int smp_ata_check_ready_type(struct ata_link *link); int sas_discover_sata(struct domain_device *dev); int sas_ata_add_dev(struct domain_device *parent, struct ex_phy *phy, struct domain_device *child, int phy_id); + +extern const struct attribute_group sas_ata_sdev_attr_group; #else static inline void sas_ata_disabled_notice(void) @@ -123,6 +125,10 @@ static inline int sas_ata_add_dev(struct domain_device *parent, struct ex_phy *p sas_ata_disabled_notice(); return -ENODEV; } + +static const struct attribute_group sas_ata_sdev_attr_group = { + .attrs = NULL, +}; #endif #endif /* _SAS_ATA_H_ */ From patchwork Sat Mar 2 00:16:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Pylypiv X-Patchwork-Id: 209134 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp234040dyc; Fri, 1 Mar 2024 16:19:33 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXjJVAHycWKofE8i72+A0bQcGLAw1WMqgvic74PumOjiJPpqJWA5bbAFgog5e/HeP9Rrvfw2g0QxYGW/qKAcRqJtknZmQ== X-Google-Smtp-Source: AGHT+IGOckkhBmlSxdDBMNzrWhVuhiXoMsPVQQd8HRmi81Gvnf3QJlzYu+/LCSAbJ8MBsS0fmhBE X-Received: by 2002:a17:90b:4d8d:b0:29a:83da:efd1 with SMTP id oj13-20020a17090b4d8d00b0029a83daefd1mr3184446pjb.6.1709338773681; Fri, 01 Mar 2024 16:19:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709338773; cv=pass; d=google.com; s=arc-20160816; b=N8qe0fEjtTztRoY+7eh4z9Q426zr7u6bdtLbb+ok+SF1li6URvNLRRTMV5JBnMhJFK AU5acQOAii1FhkuakUvb66TONvjmDH1QUptDQY8GfsEY3GXXqNWEBeoIUfYg+2cwvTmS JhOH/t7yoIBgWo9AT5SvqcHzhSI/+H+i4Kd3lKAeScplX8YXm0EsVnWJDSXQgu7WVrXj +GMPZ7jobpt5KPhcIG0iTINDuaNKKAv0cmt4je16kQoUonYuE5lIBXkFBxs+Yg7oJFj+ WhkaTU1ptCISGsHhBknVGohROIIJgFuFZAkGweutnmMN0wzfd1HqZjKW4xDkHsv25p2g UfwA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=jZVgry90rEYwnQ29s3Mz+RKBDNtmCmbKQoUc6PEOd2Y=; fh=8S4yxS4kN94meou5RHToSOITy+kNAVIII1wuWwN85xY=; b=rfbMg/hRvksO9j4fpZttOaxqZo/ub7GAuW1X6DXxomDvvVHVPjyOfSq1l422Zg/n3i qbCafM7WwdcBW5VdqLNDNwsvGcHXxzMtwf1TVecDKcz1+/xE4krCO/DjCEjER/rKQtg9 TgRHj4WJgm1+lILBu45WYAGjc/NEJOPsEX02SZvPdYVZYMN+2YBuafl1xLeXQhp17aua E2284MWk4o+9Yi3EiOBVNi+OO14KSp0MOqObGQ2L8zwYojiWhLyBCLIWBbM2h4Tq7gxt peJ26Oq29veP20CnO09H+LoxlP2+QTRKYFXAHiKPvkoDwu/+k4NljYl0SyMXZZt0YYaX rqSg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=PPcCR5CE; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89261-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89261-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id oh8-20020a17090b3a4800b0029b2fd9a5f2si920752pjb.80.2024.03.01.16.19.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 16:19:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89261-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=PPcCR5CE; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89261-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89261-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 3A9D7B252F5 for ; Sat, 2 Mar 2024 00:18:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1C7B713AE8; Sat, 2 Mar 2024 00:17:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="PPcCR5CE" Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 695FC10A16 for ; Sat, 2 Mar 2024 00:17:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338622; cv=none; b=VBgrAWK7RrAHojoq3MooTT4P+TaL4m/zahhjbGVTmNru6mp0NWBCQGDse0Sa37sUjKVfujm4ak2IW/ybWYZNFdJdkwAUfLB25mV8qA48qV5I92ISZYW35ZNi53LSldBVtWZ8xIm9wCyj/9lbFZLUL/htq0H/ZFO1uwFyidffbqE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338622; c=relaxed/simple; bh=KWCF/wRFo5DDf67uvUwFxQaljHz80tfPANfuy0kjn8k=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=GJNo8aTxB0r6kIUk+6jZgR14bq3RDLdVnGEbyMVh7wmSeoCPBhzc11qPESozzfD1jdSoYeV+AeNou0gULFFZQl+RwQFY28LyaQULL5r0DovX1Ca8PqHImoJbbn+wyCIndc5UrsqHNFnz7dIB0abgqyJQVIhZyCWghg0GdT20QBs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=PPcCR5CE; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-dd001f821caso1473413276.0 for ; Fri, 01 Mar 2024 16:17:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709338620; x=1709943420; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=jZVgry90rEYwnQ29s3Mz+RKBDNtmCmbKQoUc6PEOd2Y=; b=PPcCR5CEhwa0igG15qOeDKade+YVH33V+GStmueu6YH5qGA3tH4ZqBlo2/XdZ+EJUv WG8rglQlpML/1MyFJXYK1W7r4FeX+GhaGDeAPyHqpNPNjuBTamFp1gzMJWI5YZ8zV0w1 mZ4KJsmXNkuinhEXPO4WmRrHF04fS//fG+ZFHdZpPB0KgyrBM6Vn0W6IUBzRMR5vtuxi DyfiqEKujt3wn1Wua03zsYWpp5weiXFdED7VRifzic0u8GZbni1HD4UTDn3bbUDyEDhp TMwkLekUaYUSyUgF3WMZB8ASjvk4hPTwyz/0jhLOYo1qHNtInjtBHDy8/yp+xqaz/o7l rq/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709338620; x=1709943420; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jZVgry90rEYwnQ29s3Mz+RKBDNtmCmbKQoUc6PEOd2Y=; b=idKTLipGeWe4E4bXYJjzX01KyRZBOvG5OiEk/X4m1GyxuIIafONEODZZH3FXkiQvo8 PBkLT8gXVDoM1lVWhs9QwSFdPxFOODNfAet5SazAPOclcg1PYB/5F5s0rcZ2FkcJ/hag x6eWdjsXsx2EjNrCisiTmBH1vNykb+0DkFpPGoypD8z+4hkkXa1osPVhQBnHvrDiBC2f ASy7a8z0oAHbUI/oT1UMgyQjeYhsbjpTHw2bzlK5qrGa0vbC92r4TKToGWGw7mfIj2tO ++dFj6ZtJBNCrVUKR+xt7Ip8G/qRxIzxj8di5A4J/wvfmzPEcREyaooMU28g6QFbZgdf thSw== X-Forwarded-Encrypted: i=1; AJvYcCV53uk2lA7kD5Z+fSFP1bDSZjD68u5ps8lPdS4WsUa2l/neJX7xDVioK1eIJhIPjoKhaIV+fiKZsgP0zvF+dCsAAapCMWtVBuo9iwEJ X-Gm-Message-State: AOJu0Yz540ogEZS9aCl3DFo/VtgdgPXhralWpCqGug0+dSkZD2m8wx0q 4NPamYQCy3E4TRb6lFZFxCXUCiCbspVCkJA78glJTZKQLLLlI+tRQJSG+Eyfq0OmcGoP1fyVHi1 G6+kruqVCpg== X-Received: from ipylypiv.svl.corp.google.com ([2620:15c:2c5:13:2afe:1a8e:f846:999f]) (user=ipylypiv job=sendgmr) by 2002:a05:6902:505:b0:dc7:4ca0:cbf0 with SMTP id x5-20020a056902050500b00dc74ca0cbf0mr1203600ybs.3.1709338620711; Fri, 01 Mar 2024 16:17:00 -0800 (PST) Date: Fri, 1 Mar 2024 16:16:00 -0800 In-Reply-To: <20240302001603.1012084-1-ipylypiv@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240302001603.1012084-1-ipylypiv@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Message-ID: <20240302001603.1012084-4-ipylypiv@google.com> Subject: [PATCH v2 3/5] scsi: pm80xx: Add libsas SATA sysfs attributes group From: Igor Pylypiv To: Damien Le Moal , Niklas Cassel , John Garry , Jason Yan , "James E.J. Bottomley" , "Martin K. Petersen" , Jack Wang , Hannes Reinecke Cc: TJ Adams , linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Pylypiv X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792371613900825297 X-GMAIL-MSGID: 1792371613900825297 The added sysfs attributes group enables the configuration of NCQ Priority feature for HBAs that rely on libsas to manage SATA devices. Signed-off-by: Igor Pylypiv --- drivers/scsi/pm8001/pm8001_ctl.c | 5 +++++ drivers/scsi/pm8001/pm8001_init.c | 1 + drivers/scsi/pm8001/pm8001_sas.h | 1 + 3 files changed, 7 insertions(+) diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c index 5c26a13ffbd2..9ffe1a868d0f 100644 --- a/drivers/scsi/pm8001/pm8001_ctl.c +++ b/drivers/scsi/pm8001/pm8001_ctl.c @@ -1039,3 +1039,8 @@ const struct attribute_group *pm8001_host_groups[] = { &pm8001_host_attr_group, NULL }; + +const struct attribute_group *pm8001_sdev_groups[] = { + &sas_ata_sdev_attr_group, + NULL +}; diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c index ed6b7d954dda..e6b1108f6117 100644 --- a/drivers/scsi/pm8001/pm8001_init.c +++ b/drivers/scsi/pm8001/pm8001_init.c @@ -134,6 +134,7 @@ static const struct scsi_host_template pm8001_sht = { .compat_ioctl = sas_ioctl, #endif .shost_groups = pm8001_host_groups, + .sdev_groups = pm8001_sdev_groups, .track_queue_depth = 1, .cmd_per_lun = 32, .map_queues = pm8001_map_queues, diff --git a/drivers/scsi/pm8001/pm8001_sas.h b/drivers/scsi/pm8001/pm8001_sas.h index 3ccb7371902f..ced6721380a8 100644 --- a/drivers/scsi/pm8001/pm8001_sas.h +++ b/drivers/scsi/pm8001/pm8001_sas.h @@ -717,6 +717,7 @@ int pm80xx_fatal_errors(struct pm8001_hba_info *pm8001_ha); void pm8001_free_dev(struct pm8001_device *pm8001_dev); /* ctl shared API */ extern const struct attribute_group *pm8001_host_groups[]; +extern const struct attribute_group *pm8001_sdev_groups[]; #define PM8001_INVALID_TAG ((u32)-1) From patchwork Sat Mar 2 00:16:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Pylypiv X-Patchwork-Id: 209143 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp236717dyc; Fri, 1 Mar 2024 16:27:12 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXghS0mEKjR4AvfgpZN1yczG5RpZa/DvJxq8grrqbwJdOVSDzHms9OHK8AIwtXt2LO44VFR/Dk+D5/HFolPF/zrLwR1Og== X-Google-Smtp-Source: AGHT+IGO9QRwWWg914bSEKnL/TYVapsA5soh7vozOviqXJN4TMT+mOw1bYjGyFv0tTeRMwOB1NEF X-Received: by 2002:a05:6a00:181f:b0:6e5:96de:d659 with SMTP id y31-20020a056a00181f00b006e596ded659mr3875195pfa.28.1709339232652; Fri, 01 Mar 2024 16:27:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709339232; cv=pass; d=google.com; s=arc-20160816; b=gIzg2jlJ0HdWzZ3HeZ4XEki1+G0UD3eKDZ0HpIP7hTVwFex2F/wRbi1Ex16vh5p5vB dChTJ3UPXeumF95LKPAINZeDd+Drko/Qj90iuvMspwlZC2vQeO5tCw2YG/kkpPLa9iA1 tljzB6Vb9kjwRZWpuwlnvQNAjiWqzfhgttkLLb3R9C5JKqi8D5w2gkGJn01Muq9xF7eK z3rIBtiXMuEOL97PFIt8eGkcC/LjNFXCq24G/4m8mQ97J9dZ6wkD7voSEyH/pX1YaC2H Za2r/q1DiAPKVFrkhQGKCifWjpm6h9PQilmWQOaRXhIcmI9ttbK63IUq2N9ukzb+hlOO C1cw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=cz+zzq0hSSZv+LNtbHhOy76RrAuTvZz0C7UUtpPGk5c=; fh=ZikTuHPfYHxk4f++uCgEkkNsH5q6qu3Xw0KACZe6jUI=; b=mmVHHAFjgsXMF9luCsGQakHRC0F0/aJ4QKMLmC9Oa096X7NkgJDIJt1iT/ONnUdTWk 7SdUAH9XM+CHZYnkbQ4Rq8jRrsyvIL7tRQjCYZZVDgmZcwT+qj8mkbf6/sj+9m5X2Ixo yLJdMA+vrHkDzqShOXMvWG8M8436bcmXQpqLCtlkvtnUOVHxZwwBvwjhuVBWA8LRMK5t Vp4XNYkUB2NFYIlSOJJ2l/pnunUdJK9Geh0d/YqmitZlVuf/95fMqfqMNYvgYgeCMzpK 6l6FspOhojL6dJiwtI+iveHcuFU2hEOcJtf/X/CyhMj1TNKY0+lLZ3BWE+9lUf1rksgX fMmQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=NqBmaVw+; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89262-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id f15-20020a63f10f000000b005dc0b1b0116si4518896pgi.119.2024.03.01.16.27.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 16:27:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=NqBmaVw+; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89262-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D5377289AC4 for ; Sat, 2 Mar 2024 00:19:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 08C591642B; Sat, 2 Mar 2024 00:17:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="NqBmaVw+" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ABC5C125AC for ; Sat, 2 Mar 2024 00:17:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338625; cv=none; b=fBWhql0/uFW3c2DuKSdoWRwGIuqLx6fCSIptc9oD81iRp5hZU+P6m3NYIlXQyoKdf0rKyuJJRvak6DT2bTvJ5ABuA+N1WkJhJ6TLH328I1OEPPBa5p0h5UX7w+lSryLuGS+UpjZ9xEk+dwvVR+JlkEeYUuoRRfX9wuXeURuik/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338625; c=relaxed/simple; bh=bjPtSxZSirainXwWirJU3J0oe9KNdxmW81tZ+T9YgIw=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=VpFk0TyqV5+/RV0qZz2Tvu6qjGD0jQV05QoAVmb1hIQ1Gln4A6VgwZ49MAhnBho8IUbn7w8jrApCyCceHsRc0a5WFT/nXd3gajwV/fIgR6ETxqU3sxroMX0kwghwJsjjTPac3qlkYQUmVmCQtV5ZSTeWSdU09/QiB4ngvSy2FqM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=NqBmaVw+; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-60802b0afd2so25855297b3.1 for ; Fri, 01 Mar 2024 16:17:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709338623; x=1709943423; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=cz+zzq0hSSZv+LNtbHhOy76RrAuTvZz0C7UUtpPGk5c=; b=NqBmaVw+4RQgYIfxwns4Hj+hw6aLAd179C/AdDV+zJb5Ml9Ia8IoMrgg/bTv7AGBOh TdaCIHLiwFDjLEdIL0k9rTHyTAzlnyvZKETtyaw6u681mM0tX1Eke+jo+M5fsjYJd9qd SSp3zJ/+BDfWcqU4/gMgvAzgzc5ddKPIKQ1s12C2gA37TQ4xN8AIIZOfv0TUix8cgZ9y YGDZnAS2GI/0/oZ9Jty2qxx6H2C3e7cZ6kZKnQuwnietELKVpPoxjng86RCHx2+BS5eg YQDWzvo/qX+gL49oA8MTSylTKwAvcUSLqCO8qCZvvMdoC1AoYqSFplW9VcsBcgqaFeP9 goig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709338623; x=1709943423; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cz+zzq0hSSZv+LNtbHhOy76RrAuTvZz0C7UUtpPGk5c=; b=Ah3Cgi44+pbcAf54ZL9/8D0CCWM5nV6ZFavNQY00tDCC2/4fd6ZY6S+O0MOsOC6mMH mFVuZv8450TWd9h9Vms4Gk9MR+gvgFriIRVzUpwr4LUXTdxUD/xoOb+XyqDcCF4gQzV0 OWQdcui0vf/jbnp6PslPsEYL2cYAxq6edyWyrpRgan4IPq/FPvpcPZwjwsddTX3tVO3E OczdU0itL/e13qOJDejsqwePKh7MLwCyo9OWmBG7UpdLUptng/beR66ztvHPiv4za7yX Rwcae3FObzPoCVSX3Br+5jv7hr+5gif0DDEO+gRmgA8xBiSkYiOZuK7U4rlxv0xkD6kD YPAQ== X-Forwarded-Encrypted: i=1; AJvYcCUKGZHsWEiLUccDg5dq7Um0KxFGWZHo2U3vDH1qj+HsEW8CtYeB31axCKWIw/19pn+67AzipiyR6vpE+HW1QYXEKpwHBH1p9TYGuzpG X-Gm-Message-State: AOJu0YwKwBMRqu8b/7OP1MUi8lDRZlTazmIsOH8TEs4lDb8LLW+zC+Q/ +RLNPqtBFLnDutLmkSwEGbuE1QTzehwTD+xKrq0IFKXflpHpAyT1zBaHPVM1gTx7ilZGWaz+PeP rSkQ6hLSPCQ== X-Received: from ipylypiv.svl.corp.google.com ([2620:15c:2c5:13:2afe:1a8e:f846:999f]) (user=ipylypiv job=sendgmr) by 2002:a81:9808:0:b0:607:8f65:5433 with SMTP id p8-20020a819808000000b006078f655433mr688164ywg.4.1709338622812; Fri, 01 Mar 2024 16:17:02 -0800 (PST) Date: Fri, 1 Mar 2024 16:16:01 -0800 In-Reply-To: <20240302001603.1012084-1-ipylypiv@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240302001603.1012084-1-ipylypiv@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Message-ID: <20240302001603.1012084-5-ipylypiv@google.com> Subject: [PATCH v2 4/5] scsi: mvsas: Add libsas SATA sysfs attributes group From: Igor Pylypiv To: Damien Le Moal , Niklas Cassel , John Garry , Jason Yan , "James E.J. Bottomley" , "Martin K. Petersen" , Jack Wang , Hannes Reinecke Cc: TJ Adams , linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Pylypiv X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792372095139951332 X-GMAIL-MSGID: 1792372095139951332 The added sysfs attributes group enables the configuration of NCQ Priority feature for HBAs that rely on libsas to manage SATA devices. Signed-off-by: Igor Pylypiv --- drivers/scsi/mvsas/mv_init.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c index 43ebb331e216..80cbe030ac53 100644 --- a/drivers/scsi/mvsas/mv_init.c +++ b/drivers/scsi/mvsas/mv_init.c @@ -26,6 +26,7 @@ static const struct mvs_chip_info mvs_chips[] = { }; static const struct attribute_group *mvst_host_groups[]; +static const struct attribute_group *mvst_sdev_groups[]; #define SOC_SAS_NUM 2 @@ -53,6 +54,7 @@ static const struct scsi_host_template mvs_sht = { .compat_ioctl = sas_ioctl, #endif .shost_groups = mvst_host_groups, + .sdev_groups = mvst_sdev_groups, .track_queue_depth = 1, }; @@ -779,6 +781,11 @@ static struct attribute *mvst_host_attrs[] = { ATTRIBUTE_GROUPS(mvst_host); +static const struct attribute_group *mvst_sdev_groups[] = { + &sas_ata_sdev_attr_group, + NULL, +}; + module_init(mvs_init); module_exit(mvs_exit); From patchwork Sat Mar 2 00:16:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Pylypiv X-Patchwork-Id: 209133 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp233980dyc; Fri, 1 Mar 2024 16:19:17 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX22rORtaVbzthpgHOtghQ5GpEbBVwYbW1y5i7FixT/VSj8FTx8ccjmlqdLzQSKADX8fPy9sucLKlKQ9wlqKWrV42YazQ== X-Google-Smtp-Source: AGHT+IFASX/tCNKyyoyJWixFfDADNP0Eb92ccQqUv3gHSvFewaCNhER9Qy1DS1h0gA0vShhNi9dx X-Received: by 2002:a05:6214:2b46:b0:690:45c2:3190 with SMTP id jy6-20020a0562142b4600b0069045c23190mr3522990qvb.10.1709338757114; Fri, 01 Mar 2024 16:19:17 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709338757; cv=pass; d=google.com; s=arc-20160816; b=LkX+ksv2JoX/UfYZ11ycgn6zidIZ8zcTw52PRXkkOAc1nkIFpZ1E5bwfCzsP0d05vn z6m6FefAtWEjnsKz/SaZOEBgRm4K/Axj5zprykRxr5C8eltZ603W0thPath7RlNNDZXe P6Vud7d72QN339ppkkyLCwvzWY8Foz9Ky9adqcBvLjod31sPjYlR94GKkRRiBu+SLGcx OVDJJ8xdayxcMpiT9Bf0ce+L976I+Vv58MD0DZhgbmzXVZRS3D1moOcWSs2yOdTw2/Xj xcgPyjEm94EV52jogFAUXieaW7EDMQPgrusqk526Pa55Mufj+YLjX5SoMof2IMQUHRhj ucgw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=aUX3zhIus5O92bJYySj4+GAcqh6w/58AkwOdnSqPEQ8=; fh=XS6aX1GCTW8lEuLQ7iQrYT9attoxyoEHr0GQqbsY+js=; b=NUqZyhMyp4kKj6vTg/4XnnNHySkIOe64OahO66+X4Jya7XRfjaQuoVs6eb8wBRBeuk XWlM208BhWCW/X3ApEPCG+bHncxYAn1KVDc1EQFh91Etii2dmxVCOLnf2BXVfoYJvz7V jCuk6p5Eojq5i0sNLKAagO+Znjqjj6kYrF9g5mBgy/8sLbcwKjO8YwNUij2HYv+kGeWf ZfP9p0juc1Y6NxJI1POha38cEqJKLPvqN99UkBXI2CBfnQHk4v0fyi3KoLkaRfNNIg5+ pgNim3t9abC8m9OM3Spba/WfysRv6WrdCfJbE9vuW2LjFuf84+j4XO8ARGkySfTQ+sac dJUQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=jYVAZdBK; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89263-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id m9-20020a0562141bc900b0068f3a8597f2si4623284qvc.333.2024.03.01.16.19.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 16:19:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=jYVAZdBK; arc=pass (i=1 spf=pass spfdomain=flex--ipylypiv.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-89263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89263-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id D2FA61C21C69 for ; Sat, 2 Mar 2024 00:19:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 40081125B4; Sat, 2 Mar 2024 00:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jYVAZdBK" Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C225E134B9 for ; Sat, 2 Mar 2024 00:17:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338627; cv=none; b=d/vC7EAgNhw4DM6ANkr7M9pE1QZfLPLD+RQUOS/wyY6MJGjCCaK3xyJ3cSvJKyAPMm53pCxEbFqWVx/zMrjqyu3AQtfZc7/i4dQJ00NbMex6CdSQ8U8yCe6bgnJcyhV1OdlM8hq+i3tzO1bayBfqx6ADFYyz3QP5zVXqWCNkbf0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709338627; c=relaxed/simple; bh=oCEOlszWbRebAJRFgYlHh9o1ZpJRj0ce/17rkZ3A3M8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=V520abw8mtFRt408K06VoOEo6vq4LFXOa+dN5zJ1p0UNzQv5UqMw6H91/7m3XPT7matsFKOsc38rN+4Y9nFrQ0Dq6sYoY9gkU6kaWl3KQGqSXpi389twVWmB6gwVptOdJP3i1KLsnKvd8NLAgQmMAiaYEcYuQUoQqodOuXNaWEs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jYVAZdBK; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dc6b26ce0bbso5587374276.1 for ; Fri, 01 Mar 2024 16:17:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709338625; x=1709943425; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=aUX3zhIus5O92bJYySj4+GAcqh6w/58AkwOdnSqPEQ8=; b=jYVAZdBKuXRtcp4BjBWfmc5UDZO96hwuu7bUwh+4e/ozYcVOBeE0yUhlatuICmexaR BL3rGl6HsgBqVKrB+MqxxcTwmo4qCZsv6aSA4/Tb4r1gLOOfdzCc45r0bmVaPwDMeXyy cd6pKDsC5vyHpFXQ0EpPcwMTtUP6iftDzMP9wDKX1BZcoepB90aKJMZJV6Cf7imyJPWE u4RDK1vYJn0Ca0PXvbKMVbCzsJVl06PhL8y9Qho92KAjibmuXYKqMb87lftrISsQNNXu OfLw4dIpo+tywywhLbYXmcdTHJnGaPqm+vXQC12rdBspVUFKlAwIK3U19QC288L6YXx6 4M7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709338625; x=1709943425; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=aUX3zhIus5O92bJYySj4+GAcqh6w/58AkwOdnSqPEQ8=; b=EKYm48pgAuy+PhCAMh2ZtE8nR6iX5P3VhIjouJACWT63Bh/BbzzI1bjmvtpuq4qk1M 8/21fgMbXo1BJsbyYus/5MywoY3H10oFKQTASifuY1+w4gWvGhyLaQFc1LXJv50VBcgB VTU3nKUli91Ztn173DgqzZjvRjfYJKbBNmmupKK/kdQyLTFoFZqu4xssFb/n8lcA9S0m l2wkJe4RYYf2vIXRekLE9WDzX3R+Lh8yBEv/G7B6/O4YpW8JQK0T/9se4QgxdS7PMn6l RN8GeAaJnsb7krKnSJj/o2KlCS3RaIGu00bm7ZT/h3nvV6JIMB+HcWzGpbkeFCTzu31A 6xiQ== X-Forwarded-Encrypted: i=1; AJvYcCXqRfxNbdwOJhFMFihQvGVWut8Ts6WIK87DmKKPYfK3ApX3LwSS7cX2h/IGjyLJvXiVZMZondUfxItNjcirqlhtcwrTU4cAwd7HsnO1 X-Gm-Message-State: AOJu0Yx97wLVNRriWe7j0B1YKfFuZgKZRA7d0f8t+pcCjfRqbxcR7xcb tjLtM1QrSX50m0/llPdTxNN08ryZlQzEg7V/wvSP2yMXjE+npYD6hRGan1N044jgVQapKiVIxDY RRhFQYCywaA== X-Received: from ipylypiv.svl.corp.google.com ([2620:15c:2c5:13:2afe:1a8e:f846:999f]) (user=ipylypiv job=sendgmr) by 2002:a05:6902:2492:b0:dcb:b9d7:2760 with SMTP id ds18-20020a056902249200b00dcbb9d72760mr751756ybb.13.1709338624882; Fri, 01 Mar 2024 16:17:04 -0800 (PST) Date: Fri, 1 Mar 2024 16:16:02 -0800 In-Reply-To: <20240302001603.1012084-1-ipylypiv@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240302001603.1012084-1-ipylypiv@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Message-ID: <20240302001603.1012084-6-ipylypiv@google.com> Subject: [PATCH v2 5/5] scsi: hisi_sas: Add libsas SATA sysfs attributes group From: Igor Pylypiv To: Damien Le Moal , Niklas Cassel , John Garry , Jason Yan , "James E.J. Bottomley" , "Martin K. Petersen" , Jack Wang , Hannes Reinecke Cc: TJ Adams , linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Pylypiv X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792371596293574926 X-GMAIL-MSGID: 1792371596293574926 The added sysfs attributes group enables the configuration of NCQ Priority feature for HBAs that rely on libsas to manage SATA devices. Signed-off-by: Igor Pylypiv --- drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 6 ++++++ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 6 ++++++ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c index 3c555579f9a1..97864b56a71f 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c @@ -1734,6 +1734,11 @@ static struct attribute *host_v1_hw_attrs[] = { ATTRIBUTE_GROUPS(host_v1_hw); +static const struct attribute_group *sdev_groups_v1_hw[] = { + &sas_ata_sdev_attr_group, + NULL +}; + static const struct scsi_host_template sht_v1_hw = { .name = DRV_NAME, .proc_name = DRV_NAME, @@ -1758,6 +1763,7 @@ static const struct scsi_host_template sht_v1_hw = { .compat_ioctl = sas_ioctl, #endif .shost_groups = host_v1_hw_groups, + .sdev_groups = sdev_groups_v1_hw, .host_reset = hisi_sas_host_reset, }; diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c index 73b378837da7..b5d379ebe05d 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c @@ -3544,6 +3544,11 @@ static struct attribute *host_v2_hw_attrs[] = { ATTRIBUTE_GROUPS(host_v2_hw); +static const struct attribute_group *sdev_groups_v2_hw[] = { + &sas_ata_sdev_attr_group, + NULL +}; + static void map_queues_v2_hw(struct Scsi_Host *shost) { struct hisi_hba *hisi_hba = shost_priv(shost); @@ -3585,6 +3590,7 @@ static const struct scsi_host_template sht_v2_hw = { .compat_ioctl = sas_ioctl, #endif .shost_groups = host_v2_hw_groups, + .sdev_groups = sdev_groups_v2_hw, .host_reset = hisi_sas_host_reset, .map_queues = map_queues_v2_hw, .host_tagset = 1, diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c index b56fbc61a15a..9b69ea16a1e6 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -2929,6 +2929,11 @@ static struct attribute *host_v3_hw_attrs[] = { ATTRIBUTE_GROUPS(host_v3_hw); +static const struct attribute_group *sdev_groups_v3_hw[] = { + &sas_ata_sdev_attr_group, + NULL +}; + #define HISI_SAS_DEBUGFS_REG(x) {#x, x} struct hisi_sas_debugfs_reg_lu { @@ -3340,6 +3345,7 @@ static const struct scsi_host_template sht_v3_hw = { .compat_ioctl = sas_ioctl, #endif .shost_groups = host_v3_hw_groups, + .sdev_groups = sdev_groups_v3_hw, .tag_alloc_policy = BLK_TAG_ALLOC_RR, .host_reset = hisi_sas_host_reset, .host_tagset = 1,