lkml.org 
[lkml]   [2022]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 15/23] ata: ahci: Convert __ahci_port_base to accepting hpriv as arguments
    Date
    It may get required to retrieve the port-base address even before the
    ata_host instance is initialized and activated, for instance in the
    ahci_save_initial_config() method which we about to update (consider this
    modification as a preparation for that one). Seeing the __ahci_port_base()
    function isn't used much it's the best candidate to provide the required
    functionality. So let's convert it to accepting the ahci_host_priv
    structure pointer.

    Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    ---
    drivers/ata/ahci.c | 2 +-
    drivers/ata/ahci.h | 7 ++++---
    2 files changed, 5 insertions(+), 4 deletions(-)

    diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
    index 9bc8fa77e92f..d14d74649e0e 100644
    --- a/drivers/ata/ahci.c
    +++ b/drivers/ata/ahci.c
    @@ -689,7 +689,7 @@ static void ahci_pci_init_controller(struct ata_host *host)
    mv = 2;
    else
    mv = 4;
    - port_mmio = __ahci_port_base(host, mv);
    + port_mmio = __ahci_port_base(hpriv, mv);

    writel(0, port_mmio + PORT_IRQ_MASK);

    diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
    index 0e66446a5883..8b9826533ae5 100644
    --- a/drivers/ata/ahci.h
    +++ b/drivers/ata/ahci.h
    @@ -431,10 +431,9 @@ int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht);
    void ahci_error_handler(struct ata_port *ap);
    u32 ahci_handle_port_intr(struct ata_host *host, u32 irq_masked);

    -static inline void __iomem *__ahci_port_base(struct ata_host *host,
    +static inline void __iomem *__ahci_port_base(struct ahci_host_priv *hpriv,
    unsigned int port_no)
    {
    - struct ahci_host_priv *hpriv = host->private_data;
    void __iomem *mmio = hpriv->mmio;

    return mmio + 0x100 + (port_no * 0x80);
    @@ -442,7 +441,9 @@ static inline void __iomem *__ahci_port_base(struct ata_host *host,

    static inline void __iomem *ahci_port_base(struct ata_port *ap)
    {
    - return __ahci_port_base(ap->host, ap->port_no);
    + struct ahci_host_priv *hpriv = ap->host->private_data;
    +
    + return __ahci_port_base(hpriv, ap->port_no);
    }

    static inline int ahci_nr_ports(u32 cap)
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-06-10 10:21    [W:4.180 / U:0.408 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site