[PATCH 08/16] net: dm9000: Reorder and staticize
Ramon Fried
rfried.dev at gmail.com
Tue Apr 12 21:48:14 CEST 2022
On Mon, Apr 11, 2022 at 8:56 PM Marek Vasut <marex at denx.de> wrote:
>
> Reorder the driver functions to get rid of forward declarations.
> Staticize whatever is possible. No functional change.
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Ramon Fried <rfried.dev at gmail.com>
> ---
> drivers/net/dm9000x.c | 122 +++++++++++++++++++-----------------------
> 1 file changed, 55 insertions(+), 67 deletions(-)
>
> diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
> index becf7aec828..85f3c079ec1 100644
> --- a/drivers/net/dm9000x.c
> +++ b/drivers/net/dm9000x.c
> @@ -79,13 +79,6 @@ struct board_info {
>
> static struct board_info dm9000_info;
>
> -/* function declaration ------------------------------------- */
> -static int dm9000_probe(void);
> -static u16 dm9000_phy_read(int);
> -static void dm9000_phy_write(int, u16);
> -static u8 dm9000_ior(int);
> -static void dm9000_iow(int reg, u8 value);
> -
> /* DM9000 network board routine ---------------------------- */
> #ifndef CONFIG_DM9000_BYTE_SWAPPED
> #define dm9000_outb(d, r) writeb((d), (r))
> @@ -205,11 +198,64 @@ static void dm9000_rx_status_8bit(u16 *rxstatus, u16 *rxlen)
> (dm9000_inb(DM9000_DATA) << 8));
> }
>
> +/*
> + * Read a byte from I/O port
> + */
> +static u8 dm9000_ior(int reg)
> +{
> + dm9000_outb(reg, DM9000_IO);
> + return dm9000_inb(DM9000_DATA);
> +}
> +
> +/*
> + * Write a byte to I/O port
> + */
> +static void dm9000_iow(int reg, u8 value)
> +{
> + dm9000_outb(reg, DM9000_IO);
> + dm9000_outb(value, DM9000_DATA);
> +}
> +
> +/*
> + * Read a word from phyxcer
> + */
> +static u16 dm9000_phy_read(int reg)
> +{
> + u16 val;
> +
> + /* Fill the phyxcer register into REG_0C */
> + dm9000_iow(DM9000_EPAR, DM9000_PHY | reg);
> + dm9000_iow(DM9000_EPCR, 0xc); /* Issue phyxcer read command */
> + udelay(100); /* Wait read complete */
> + dm9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer read command */
> + val = (dm9000_ior(DM9000_EPDRH) << 8) | dm9000_ior(DM9000_EPDRL);
> +
> + /* The read data keeps on REG_0D & REG_0E */
> + debug("%s(0x%x): 0x%x\n", __func__, reg, val);
> + return val;
> +}
> +
> +/*
> + * Write a word to phyxcer
> + */
> +static void dm9000_phy_write(int reg, u16 value)
> +{
> + /* Fill the phyxcer register into REG_0C */
> + dm9000_iow(DM9000_EPAR, DM9000_PHY | reg);
> +
> + /* Fill the written data into REG_0D & REG_0E */
> + dm9000_iow(DM9000_EPDRL, (value & 0xff));
> + dm9000_iow(DM9000_EPDRH, ((value >> 8) & 0xff));
> + dm9000_iow(DM9000_EPCR, 0xa); /* Issue phyxcer write command */
> + udelay(500); /* Wait write complete */
> + dm9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer write command */
> + debug("%s(reg:0x%x, value:0x%x)\n", __func__, reg, value);
> +}
> +
> /*
> * Search DM9000 board, allocate space and register it
> */
> -int
> -dm9000_probe(void)
> +static int dm9000_probe(void)
> {
> u32 id_val;
>
> @@ -543,64 +589,6 @@ static void dm9000_get_enetaddr(struct eth_device *dev)
> static void dm9000_get_enetaddr(struct eth_device *dev) {}
> #endif
>
> -/*
> - * Read a byte from I/O port
> - */
> -static u8
> -dm9000_ior(int reg)
> -{
> - dm9000_outb(reg, DM9000_IO);
> - return dm9000_inb(DM9000_DATA);
> -}
> -
> -/*
> - * Write a byte to I/O port
> - */
> -static void
> -dm9000_iow(int reg, u8 value)
> -{
> - dm9000_outb(reg, DM9000_IO);
> - dm9000_outb(value, DM9000_DATA);
> -}
> -
> -/*
> - * Read a word from phyxcer
> - */
> -static u16
> -dm9000_phy_read(int reg)
> -{
> - u16 val;
> -
> - /* Fill the phyxcer register into REG_0C */
> - dm9000_iow(DM9000_EPAR, DM9000_PHY | reg);
> - dm9000_iow(DM9000_EPCR, 0xc); /* Issue phyxcer read command */
> - udelay(100); /* Wait read complete */
> - dm9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer read command */
> - val = (dm9000_ior(DM9000_EPDRH) << 8) | dm9000_ior(DM9000_EPDRL);
> -
> - /* The read data keeps on REG_0D & REG_0E */
> - debug("%s(0x%x): 0x%x\n", __func__, reg, val);
> - return val;
> -}
> -
> -/*
> - * Write a word to phyxcer
> - */
> -static void
> -dm9000_phy_write(int reg, u16 value)
> -{
> - /* Fill the phyxcer register into REG_0C */
> - dm9000_iow(DM9000_EPAR, DM9000_PHY | reg);
> -
> - /* Fill the written data into REG_0D & REG_0E */
> - dm9000_iow(DM9000_EPDRL, (value & 0xff));
> - dm9000_iow(DM9000_EPDRH, ((value >> 8) & 0xff));
> - dm9000_iow(DM9000_EPCR, 0xa); /* Issue phyxcer write command */
> - udelay(500); /* Wait write complete */
> - dm9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer write command */
> - debug("%s(reg:0x%x, value:0x%x)\n", __func__, reg, value);
> -}
> -
> int dm9000_initialize(struct bd_info *bis)
> {
> struct eth_device *dev = &dm9000_info.netdev;
> --
> 2.35.1
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>
More information about the U-Boot
mailing list