From nobody Wed Sep 10 05:57:21 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAC7DC6FD1E for ; Tue, 7 Mar 2023 22:47:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230516AbjCGWrY (ORCPT ); Tue, 7 Mar 2023 17:47:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229772AbjCGWrB (ORCPT ); Tue, 7 Mar 2023 17:47:01 -0500 Received: from hosting.gsystem.sk (hosting.gsystem.sk [212.5.213.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3E2A57288; Tue, 7 Mar 2023 14:46:49 -0800 (PST) Received: from gsql.ggedos.sk (off-20.infotel.telecom.sk [212.5.213.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by hosting.gsystem.sk (Postfix) with ESMTPSA id 3CBE07A05AB; Tue, 7 Mar 2023 23:46:48 +0100 (CET) From: Ondrej Zary To: Damien Le Moal , Sudip Mukherjee Cc: Christoph Hellwig , Sergey Shtylyov , Jens Axboe , Tim Waugh , linux-block@vger.kernel.org, linux-parport@lists.infradead.org, linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/32] pata_parport-bpck6: pass around struct pi_adapter * Date: Tue, 7 Mar 2023 23:45:59 +0100 Message-Id: <20230307224627.28011-5-linux@zary.sk> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20230307224627.28011-1-linux@zary.sk> References: <20230307224627.28011-1-linux@zary.sk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove Interface typedef, pass around struct pi_adapter * down to all functions instead. Remove PPCSTRUCT define. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov --- drivers/ata/pata_parport/bpck6.c | 43 ++++----- drivers/ata/pata_parport/ppc6lnx.c | 139 +++++++++++++++-------------- 2 files changed, 96 insertions(+), 86 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bp= ck6.c index fa1f7d4fe3cb..bc128a2c444e 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -18,67 +18,67 @@ #include #include #include -#include "ppc6lnx.c" #include "pata_parport.h" - -#define PPCSTRUCT(pi) ((Interface *)(pi->private)) +#include "ppc6lnx.c" =20 static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { - return ppc6_rd_port(PPCSTRUCT(pi), cont?reg|8:reg); + return ppc6_rd_port(pi, cont?reg|8:reg); } =20 static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int= val) { - ppc6_wr_port(PPCSTRUCT(pi), cont?reg|8:reg, val); + ppc6_wr_port(pi, cont?reg|8:reg, val); } =20 static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_wr_port16_blk(PPCSTRUCT(pi), ATA_REG_DATA, buf, (u32)len>>1); + ppc6_wr_port16_blk(pi, ATA_REG_DATA, buf, (u32)len>>1); } =20 static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_rd_port16_blk(PPCSTRUCT(pi), ATA_REG_DATA, buf, (u32)len>>1); + ppc6_rd_port16_blk(pi, ATA_REG_DATA, buf, (u32)len>>1); } =20 static void bpck6_connect(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); dev_dbg(&pi->dev, "connect\n"); =20 if(pi->mode >=3D2) { - PPCSTRUCT(pi)->mode=3D4+pi->mode-2;=09 + ppc->mode =3D 4+pi->mode-2; } else if(pi->mode=3D=3D1) { - PPCSTRUCT(pi)->mode=3D3;=09 + ppc->mode =3D 3; } else { - PPCSTRUCT(pi)->mode=3D1; =09 + ppc->mode =3D 1; } =20 - ppc6_open(PPCSTRUCT(pi)); =20 - ppc6_wr_extout(PPCSTRUCT(pi),0x3); + ppc6_open(pi); + ppc6_wr_extout(pi, 0x3); } =20 static void bpck6_disconnect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "disconnect\n"); - ppc6_wr_extout(PPCSTRUCT(pi),0x0); - ppc6_close(PPCSTRUCT(pi)); + ppc6_wr_extout(pi, 0x0); + ppc6_close(pi); } =20 static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit por= t */ { + struct ppc_storage *ppc =3D (void *)(pi->private); dev_dbg(&pi->dev, "PARPORT indicates modes=3D%x for lp=3D0x%lx\n", pi->pardev->port->modes, pi->pardev->port->base); =20 /*copy over duplicate stuff.. initialize state info*/ - PPCSTRUCT(pi)->ppc_id=3Dpi->unit; - PPCSTRUCT(pi)->lpt_addr=3Dpi->port; + ppc->ppc_id =3D pi->unit; + ppc->lpt_addr =3D pi->port; =20 /* look at the parport device to see what modes we can use */ if (pi->pardev->port->modes & PARPORT_MODE_EPP) @@ -90,23 +90,24 @@ static int bpck6_test_port(struct pi_adapter *pi) /* = check for 8-bit port */ =20 static int bpck6_probe_unit(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); int out; =20 dev_dbg(&pi->dev, "PROBE UNIT %x on port:%x\n", pi->unit, pi->port); =20 /*SET PPC UNIT NUMBER*/ - PPCSTRUCT(pi)->ppc_id=3Dpi->unit; + ppc->ppc_id =3D pi->unit; =20 /*LOWER DOWN TO UNIDIRECTIONAL*/ - PPCSTRUCT(pi)->mode=3D1; =09 + ppc->mode =3D 1; =20 - out=3Dppc6_open(PPCSTRUCT(pi)); + out =3D ppc6_open(pi); =20 dev_dbg(&pi->dev, "ppc_open returned %2x\n", out); =20 if(out) { - ppc6_close(PPCSTRUCT(pi)); + ppc6_close(pi); dev_dbg(&pi->dev, "leaving probe\n"); return(1); } @@ -128,7 +129,7 @@ static void bpck6_log_adapter(struct pi_adapter *pi) =20 static int bpck6_init_proto(struct pi_adapter *pi) { - Interface *p =3D kzalloc(sizeof(Interface), GFP_KERNEL); + struct ppc_storage *p =3D kzalloc(sizeof(struct ppc_storage), GFP_KERNEL); =20 if (p) { pi->private =3D (unsigned long)p; diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/= ppc6lnx.c index 5e5521d3b1dd..f12bb019fc61 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -64,7 +64,7 @@ =20 //************************************************************************= *** =20 -typedef struct ppc_storage { +struct ppc_storage { u16 lpt_addr; // LPT base address u8 ppc_id; u8 mode; // operating mode @@ -79,7 +79,7 @@ typedef struct ppc_storage { u8 org_data; // original LPT data port contents u8 org_ctrl; // original LPT control port contents u8 cur_ctrl; // current control port contents -} Interface; +}; =20 //************************************************************************= *** =20 @@ -101,26 +101,27 @@ typedef struct ppc_storage { =20 //************************************************************************= *** =20 -static int ppc6_select(Interface *ppc); -static void ppc6_deselect(Interface *ppc); -static void ppc6_send_cmd(Interface *ppc, u8 cmd); -static void ppc6_wr_data_byte(Interface *ppc, u8 data); -static u8 ppc6_rd_data_byte(Interface *ppc); -static u8 ppc6_rd_port(Interface *ppc, u8 port); -static void ppc6_wr_port(Interface *ppc, u8 port, u8 data); -static void ppc6_rd_data_blk(Interface *ppc, u8 *data, long count); -static void ppc6_wait_for_fifo(Interface *ppc); -static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count); -static void ppc6_rd_port16_blk(Interface *ppc, u8 port, u8 *data, long len= gth); -static void ppc6_wr_port16_blk(Interface *ppc, u8 port, u8 *data, long len= gth); -static void ppc6_wr_extout(Interface *ppc, u8 regdata); -static int ppc6_open(Interface *ppc); -static void ppc6_close(Interface *ppc); +static int ppc6_select(struct pi_adapter *pi); +static void ppc6_deselect(struct pi_adapter *pi); +static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd); +static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data); +static u8 ppc6_rd_data_byte(struct pi_adapter *pi); +static u8 ppc6_rd_port(struct pi_adapter *pi, u8 port); +static void ppc6_wr_port(struct pi_adapter *pi, u8 port, u8 data); +static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count); +static void ppc6_wait_for_fifo(struct pi_adapter *pi); +static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count); +static void ppc6_rd_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, l= ong length); +static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, l= ong length); +static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata); +static int ppc6_open(struct pi_adapter *pi); +static void ppc6_close(struct pi_adapter *pi); =20 //************************************************************************= *** =20 -static int ppc6_select(Interface *ppc) +static int ppc6_select(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); u8 i, j, k; =20 i =3D inb(ppc->lpt_addr + 1); @@ -205,8 +206,9 @@ static int ppc6_select(Interface *ppc) =20 //************************************************************************= *** =20 -static void ppc6_deselect(Interface *ppc) +static void ppc6_deselect(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); if (ppc->mode & 4) // EPP ppc->cur_ctrl |=3D port_init; else // PPC/ECP @@ -223,8 +225,9 @@ static void ppc6_deselect(Interface *ppc) =20 //************************************************************************= *** =20 -static void ppc6_send_cmd(Interface *ppc, u8 cmd) +static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { + struct ppc_storage *ppc =3D (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -254,8 +257,9 @@ static void ppc6_send_cmd(Interface *ppc, u8 cmd) =20 //************************************************************************= *** =20 -static void ppc6_wr_data_byte(Interface *ppc, u8 data) +static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { + struct ppc_storage *ppc =3D (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -285,8 +289,9 @@ static void ppc6_wr_data_byte(Interface *ppc, u8 data) =20 //************************************************************************= *** =20 -static u8 ppc6_rd_data_byte(Interface *ppc) +static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); u8 data =3D 0; =20 switch(ppc->mode) @@ -358,26 +363,27 @@ static u8 ppc6_rd_data_byte(Interface *ppc) =20 //************************************************************************= *** =20 -static u8 ppc6_rd_port(Interface *ppc, u8 port) +static u8 ppc6_rd_port(struct pi_adapter *pi, u8 port) { - ppc6_send_cmd(ppc,(u8)(port | ACCESS_PORT | ACCESS_READ)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); =20 - return(ppc6_rd_data_byte(ppc)); + return ppc6_rd_data_byte(pi); } =20 //************************************************************************= *** =20 -static void ppc6_wr_port(Interface *ppc, u8 port, u8 data) +static void ppc6_wr_port(struct pi_adapter *pi, u8 port, u8 data) { - ppc6_send_cmd(ppc,(u8)(port | ACCESS_PORT | ACCESS_WRITE)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); =20 - ppc6_wr_data_byte(ppc, data); + ppc6_wr_data_byte(pi, data); } =20 //************************************************************************= *** =20 -static void ppc6_rd_data_blk(Interface *ppc, u8 *data, long count) +static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { + struct ppc_storage *ppc =3D (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -512,8 +518,9 @@ static void ppc6_rd_data_blk(Interface *ppc, u8 *data, = long count) =20 //************************************************************************= *** =20 -static void ppc6_wait_for_fifo(Interface *ppc) +static void ppc6_wait_for_fifo(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); int i; =20 if (ppc->ppc_flags & fifo_wait) @@ -525,8 +532,9 @@ static void ppc6_wait_for_fifo(Interface *ppc) =20 //************************************************************************= *** =20 -static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count) +static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { + struct ppc_storage *ppc =3D (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -549,7 +557,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, = long count) { u8 this, last; =20 - ppc6_send_cmd(ppc,(CMD_PREFIX_SET | PREFIX_FASTWR)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); =20 ppc->cur_ctrl |=3D port_stb; =20 @@ -582,7 +590,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, = long count) =20 outb(ppc->cur_ctrl, ppc->lpt_addr + 2); =20 - ppc6_send_cmd(ppc,(CMD_PREFIX_RESET | PREFIX_FASTWR)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); =20 break; } @@ -595,7 +603,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, = long count) count--; } =20 - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); =20 break; } @@ -615,7 +623,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, = long count) count--; } =20 - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); =20 break; } @@ -635,7 +643,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, = long count) count--; } =20 - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); =20 break; } @@ -644,72 +652,73 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data= , long count) =20 //************************************************************************= *** =20 -static void ppc6_rd_port16_blk(Interface *ppc, u8 port, u8 *data, long len= gth) +static void ppc6_rd_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, l= ong length) { length =3D length << 1; =20 - ppc6_send_cmd(ppc, (REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE)); - ppc6_wr_data_byte(ppc,(u8)length); - ppc6_wr_data_byte(ppc,(u8)(length >> 8)); - ppc6_wr_data_byte(ppc,0); + ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + ppc6_wr_data_byte(pi, (u8)length); + ppc6_wr_data_byte(pi, (u8)(length >> 8)); + ppc6_wr_data_byte(pi, 0); =20 - ppc6_send_cmd(ppc, (CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); =20 - ppc6_send_cmd(ppc, (u8)(port | ACCESS_PORT | ACCESS_READ)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); =20 - ppc6_rd_data_blk(ppc, data, length); + ppc6_rd_data_blk(pi, data, length); =20 - ppc6_send_cmd(ppc, (CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } =20 //************************************************************************= *** =20 -static void ppc6_wr_port16_blk(Interface *ppc, u8 port, u8 *data, long len= gth) +static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, l= ong length) { length =3D length << 1; =20 - ppc6_send_cmd(ppc, (REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE)); - ppc6_wr_data_byte(ppc,(u8)length); - ppc6_wr_data_byte(ppc,(u8)(length >> 8)); - ppc6_wr_data_byte(ppc,0); + ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + ppc6_wr_data_byte(pi, (u8)length); + ppc6_wr_data_byte(pi, (u8)(length >> 8)); + ppc6_wr_data_byte(pi, 0); =20 - ppc6_send_cmd(ppc, (CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); =20 - ppc6_send_cmd(ppc, (u8)(port | ACCESS_PORT | ACCESS_WRITE)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); =20 - ppc6_wr_data_blk(ppc, data, length); + ppc6_wr_data_blk(pi, data, length); =20 - ppc6_send_cmd(ppc, (CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } =20 //************************************************************************= *** =20 -static void ppc6_wr_extout(Interface *ppc, u8 regdata) +static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) { - ppc6_send_cmd(ppc,(REG_VERSION | ACCESS_REG | ACCESS_WRITE)); + ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); =20 - ppc6_wr_data_byte(ppc, (u8)((regdata & 0x03) << 6)); + ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); } =20 //************************************************************************= *** =20 -static int ppc6_open(Interface *ppc) +static int ppc6_open(struct pi_adapter *pi) { + struct ppc_storage *ppc =3D (void *)(pi->private); int ret; =20 - ret =3D ppc6_select(ppc); + ret =3D ppc6_select(pi); =20 if (ret =3D=3D 0) return(ret); =20 ppc->ppc_flags &=3D ~fifo_wait; =20 - ppc6_send_cmd(ppc, (ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE)); - ppc6_wr_data_byte(ppc, RAMSIZE_128K); + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); + ppc6_wr_data_byte(pi, RAMSIZE_128K); =20 - ppc6_send_cmd(ppc, (ACCESS_REG | ACCESS_READ | REG_VERSION)); + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); =20 - if ((ppc6_rd_data_byte(ppc) & 0x3F) =3D=3D 0x0C) + if ((ppc6_rd_data_byte(pi) & 0x3F) =3D=3D 0x0C) ppc->ppc_flags |=3D fifo_wait; =20 return(ret); @@ -717,9 +726,9 @@ static int ppc6_open(Interface *ppc) =20 //************************************************************************= *** =20 -static void ppc6_close(Interface *ppc) +static void ppc6_close(struct pi_adapter *pi) { - ppc6_deselect(ppc); + ppc6_deselect(pi); } =20 //************************************************************************= *** --=20 Ondrej Zary