From: Michael Schmitz <schmitzmic@gmail.com>
To: linux-m68k@vger.kernel.org, geert@linux-m68k.org
Cc: alex@kazik.de, Michael Schmitz <schmitzmic@gmail.com>,
netdev@vger.kernel.org
Subject: [PATCH netdev v6 2/3] net/8390: apne.c - add 100 Mbit support to apne.c driver
Date: Sun, 20 Jun 2021 11:24:32 +1200 [thread overview]
Message-ID: <1624145073-12674-3-git-send-email-schmitzmic@gmail.com> (raw)
In-Reply-To: <1624145073-12674-1-git-send-email-schmitzmic@gmail.com>
Add module parameter and PCMCIA reset code required to
support 100 Mbit PCMCIA ethernet cards on Amiga.
10 Mbit and 100 Mbit mode are supported by the same module.
A module parameter switches Amiga ISA IO accessors to word
access by changing isa_type at runtime. Code to reset the
PCMCIA hardware required for 16 bit cards is also added to
the driver probe.
This patch depends on patch "m68k: io_mm.h - add APNE 100
MBit support" sent to linux-m68k, and must not be applied
before that one!
Patch modified after patch "[PATCH RFC net-next] Amiga PCMCIA
100 MBit card support" submitted to netdev 2018/09/16 by Alex
Kazik <alex@kazik.de>.
CC: netdev@vger.kernel.org
Link: https://lore.kernel.org/r/1622958877-2026-1-git-send-email-schmitzmic@gmail.com
Tested-by: Alex Kazik <alex@kazik.de>
Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
--
Changes from v5:
- move autoprobe code to new patch in this series
Geert Uytterhoeven:
- reword Kconfig help text
Finn Thain:
- style fixes, use msec_to_jiffies in timeout calc
Alex Kazik:
- revert module parameter permission change
Changes from v4:
Geert Uytterhoeven:
- remove APNE100MBIT config option, always include 16 bit support
- change module parameter permissions
- try autoprobing for 16 bit mode early on in device probe
Changes from v3:
- change module parameter name to match Kconfig help
Finn Thain:
- fix coding style in new card reset code block
- allow reset of isa_type by module parameter
Changes from v1:
- fix module parameter name in Kconfig help text
Alex Kazik:
- change module parameter type to bool, fix module parameter
permission
Changes from RFC:
Geert Uytterhoeven:
- change APNE_100MBIT to depend on APNE
- change '---help---' to 'help' (former no longer supported)
- fix whitespace errors
- fix module_param_named() arg count
- protect all added code by #ifdef CONFIG_APNE_100MBIT
---
drivers/net/ethernet/8390/Kconfig | 5 +++++
drivers/net/ethernet/8390/apne.c | 18 ++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig
index 9f4b302..4c3f7b6 100644
--- a/drivers/net/ethernet/8390/Kconfig
+++ b/drivers/net/ethernet/8390/Kconfig
@@ -143,6 +143,11 @@ config APNE
To compile this driver as a module, choose M here: the module
will be called apne.
+ The driver also supports 10/100Mbit cards (e.g. Netgear FA411,
+ CNet Singlepoint). To activate 100 Mbit support, use the kernel
+ option apne.100mbit=1 (builtin) at boot time, or the apne.100mbit
+ module parameter.
+
config PCMCIA_PCNET
tristate "NE2000 compatible PCMCIA support"
depends on PCMCIA
diff --git a/drivers/net/ethernet/8390/apne.c b/drivers/net/ethernet/8390/apne.c
index fe6c834..4dd721e 100644
--- a/drivers/net/ethernet/8390/apne.c
+++ b/drivers/net/ethernet/8390/apne.c
@@ -120,6 +120,10 @@ static u32 apne_msg_enable;
module_param_named(msg_enable, apne_msg_enable, uint, 0444);
MODULE_PARM_DESC(msg_enable, "Debug message level (see linux/netdevice.h for bitmap)");
+static bool apne_100_mbit;
+module_param_named(100_mbit, apne_100_mbit, bool, 0444);
+MODULE_PARM_DESC(100_mbit, "Enable 100 Mbit support");
+
struct net_device * __init apne_probe(int unit)
{
struct net_device *dev;
@@ -139,6 +143,11 @@ struct net_device * __init apne_probe(int unit)
if ( !(AMIGAHW_PRESENT(PCMCIA)) )
return ERR_PTR(-ENODEV);
+ if (apne_100_mbit)
+ isa_type = ISA_TYPE_AG16;
+ else
+ isa_type = ISA_TYPE_AG;
+
pr_info("Looking for PCMCIA ethernet card : ");
/* check if a card is inserted */
@@ -590,6 +599,15 @@ static int init_pcmcia(void)
#endif
u_long offset;
+ /* reset card (idea taken from CardReset by Artur Pogoda) */
+ if (isa_type == ISA_TYPE_AG16) {
+ u_char tmp = gayle.intreq;
+ gayle.intreq = 0xff;
+ mdelay(1);
+ gayle.intreq = tmp;
+ mdelay(300);
+ }
+
pcmcia_reset();
pcmcia_program_voltage(PCMCIA_0V);
pcmcia_access_speed(PCMCIA_SPEED_250NS);
--
2.7.4
next prev parent reply other threads:[~2021-06-19 23:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-19 23:24 [PATCH v6 0/3] Add APNE PCMCIA 100 Mbit support Michael Schmitz
2021-06-19 23:24 ` [PATCH v6 1/3] m68k: io_mm.h - add APNE 100 MBit support Michael Schmitz
2021-06-19 23:24 ` Michael Schmitz [this message]
2021-06-19 23:24 ` [PATCH netdev v6 3/3] net/8390: apne.c - autoprobe 100 Mbit mode in apne.c driver Michael Schmitz
2021-06-20 8:30 ` [PATCH v6 0/3] Add APNE PCMCIA 100 Mbit support ALeX Kazik
2021-06-20 19:27 ` Michael Schmitz
2021-06-20 21:55 ` ALeX Kazik
2021-06-20 23:47 ` Michael Schmitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1624145073-12674-3-git-send-email-schmitzmic@gmail.com \
--to=schmitzmic@gmail.com \
--cc=alex@kazik.de \
--cc=geert@linux-m68k.org \
--cc=linux-m68k@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox