From d0b3f883c4046642c65bfd5997ef76dbd6b71ab9 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:21 +0100 Subject: [PATCH 01/57] ata: pata_parport: fix EPAT C7/C8 Kconfig CONFIG_PARIDE_EPATC8 was renamed to CONFIG_PATA_PARPORT_EPATC8 but epat.c was not updated to reflect that. Update it. Reported-by: Sergey Shtylyov Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/epat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 6ce2dee7657f1..93ee91d9338b0 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -324,7 +324,7 @@ static struct pi_protocol epat = { static int __init epat_init(void) { -#ifdef CONFIG_PARIDE_EPATC8 +#ifdef CONFIG_PATA_PARPORT_EPATC8 epatc8 = 1; #endif return paride_register(&epat); From 4f747dc1af38fe0f9db9d49e76c303c42eef1dbe Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:22 +0100 Subject: [PATCH 02/57] ata: pata_parport: probe all units automatically Only unit 0 is probed after registering a protocol driver or attaching a new parport. This causes bpck and bpck6 devices to be not detected automatically. Probe all units just like in manual device creation (using sysfs). Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/pata_parport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index c1576d943b436..58bbed1074036 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -534,7 +534,7 @@ int pata_parport_register_driver(struct pi_protocol *pr) if (probe) { /* probe all parports using this protocol */ idr_for_each_entry(&parport_list, parport, port_num) - pi_init_one(parport, pr, -1, 0, -1); + pi_init_one(parport, pr, -1, -1, -1); } mutex_unlock(&pi_mutex); @@ -669,7 +669,7 @@ static void pata_parport_attach(struct parport *port) if (probe) { /* probe this port using all protocols */ idr_for_each_entry(&protocols, pr, pr_num) - pi_init_one(port, pr, -1, 0, -1); + pi_init_one(port, pr, -1, -1, -1); } mutex_unlock(&pi_mutex); } From e02c625de580a1bc8166c5f95f23a50fa59ee1bf Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:23 +0100 Subject: [PATCH 03/57] ata: pata_parport: Remove pi_swab16 and pi_swab32 Convert comm and kbic drivers to use standard swab16. Remove pi_swab16 and pi_swab32. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/comm.c | 7 +++++-- drivers/ata/pata_parport/kbic.c | 7 +++++-- include/linux/pata_parport.h | 17 ----------------- 3 files changed, 10 insertions(+), 21 deletions(-) diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 1775e7ed9336b..11ed9fb57744c 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -165,11 +165,14 @@ static void comm_write_block( PIA *pi, char * buf, int count ) break; case 3: w3(0x48); (void)r1(); - for (k=0;kport + 4)) #define r4l() (delay_p, inl(pi->port + 4)) -static inline u16 pi_swab16(char *b, int k) -{ - union { u16 u; char t[2]; } r; - - r.t[0] = b[2 * k + 1]; r.t[1] = b[2 * k]; - return r.u; -} - -static inline u32 pi_swab32(char *b, int k) -{ - union { u32 u; char f[4]; } r; - - r.f[0] = b[4 * k + 1]; r.f[1] = b[4 * k]; - r.f[2] = b[4 * k + 3]; r.f[3] = b[4 * k + 2]; - return r.u; -} - struct pi_protocol { char name[8]; From cfe1e6323265413d8ea4f08505fc307ec8eaa1fc Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:24 +0100 Subject: [PATCH 04/57] ata: pata_parport: remove useless printks at module_init of bpck6 bpck6 prints some useless messages on module_init. Remove them. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index d897e2a28efe0..3b3a40e48b212 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -247,10 +247,6 @@ static struct pi_protocol bpck6 = { static int __init bpck6_init(void) { - printk(KERN_INFO "bpck6: BACKPACK Protocol Driver V"BACKPACK_VERSION"\n"); - printk(KERN_INFO "bpck6: Copyright 2001 by Micro Solutions, Inc., DeKalb IL. USA\n"); - if(verbose) - printk(KERN_DEBUG "bpck6: verbose debug enabled.\n"); return paride_register(&bpck6); } From 2c08ec0f06a6ac71b78e26f82a88093094d70dc4 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:25 +0100 Subject: [PATCH 05/57] ata: pata_parport: Introduce module_pata_parport_driver macro Introduce module_pata_parport_driver macro and use it in protocol drivers to reduce boilerplate code. Remove paride_(un)register compatibility defines. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 13 +------------ drivers/ata/pata_parport/bpck.c | 13 +------------ drivers/ata/pata_parport/bpck6.c | 13 +------------ drivers/ata/pata_parport/comm.c | 13 +------------ drivers/ata/pata_parport/dstr.c | 13 +------------ drivers/ata/pata_parport/epat.c | 4 ++-- drivers/ata/pata_parport/epia.c | 13 +------------ drivers/ata/pata_parport/fit2.c | 13 +------------ drivers/ata/pata_parport/fit3.c | 13 +------------ drivers/ata/pata_parport/friq.c | 13 +------------ drivers/ata/pata_parport/frpw.c | 13 +------------ drivers/ata/pata_parport/kbic.c | 10 +++++----- drivers/ata/pata_parport/ktti.c | 13 +------------ drivers/ata/pata_parport/on20.c | 13 +------------ drivers/ata/pata_parport/on26.c | 13 +------------ include/linux/pata_parport.h | 14 +++++++++++--- 16 files changed, 31 insertions(+), 166 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index b66508bedbd02..9e6098f90162a 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -147,16 +147,5 @@ static struct pi_protocol aten = { .log_adapter = aten_log_adapter, }; -static int __init aten_init(void) -{ - return paride_register(&aten); -} - -static void __exit aten_exit(void) -{ - paride_unregister( &aten ); -} - MODULE_LICENSE("GPL"); -module_init(aten_init) -module_exit(aten_exit) +module_pata_parport_driver(aten); diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 5fb3cf9ba11dc..b9174cf8863c2 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -462,16 +462,5 @@ static struct pi_protocol bpck = { .log_adapter = bpck_log_adapter, }; -static int __init bpck_init(void) -{ - return paride_register(&bpck); -} - -static void __exit bpck_exit(void) -{ - paride_unregister(&bpck); -} - MODULE_LICENSE("GPL"); -module_init(bpck_init) -module_exit(bpck_exit) +module_pata_parport_driver(bpck); diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 3b3a40e48b212..3c358e66db257 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -245,19 +245,8 @@ static struct pi_protocol bpck6 = { .release_proto = bpck6_release_proto, }; -static int __init bpck6_init(void) -{ - return paride_register(&bpck6); -} - -static void __exit bpck6_exit(void) -{ - paride_unregister(&bpck6); -} - MODULE_LICENSE("GPL"); MODULE_AUTHOR("Micro Solutions Inc."); MODULE_DESCRIPTION("BACKPACK Protocol module, compatible with PARIDE"); module_param(verbose, bool, 0644); -module_init(bpck6_init) -module_exit(bpck6_exit) +module_pata_parport_driver(bpck6); diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 11ed9fb57744c..47f0fbccc3aa0 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -206,16 +206,5 @@ static struct pi_protocol comm = { .log_adapter = comm_log_adapter, }; -static int __init comm_init(void) -{ - return paride_register(&comm); -} - -static void __exit comm_exit(void) -{ - paride_unregister(&comm); -} - MODULE_LICENSE("GPL"); -module_init(comm_init) -module_exit(comm_exit) +module_pata_parport_driver(comm); diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index edf414d186a6b..e733a2512e17b 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -218,16 +218,5 @@ static struct pi_protocol dstr = { .log_adapter = dstr_log_adapter, }; -static int __init dstr_init(void) -{ - return paride_register(&dstr); -} - -static void __exit dstr_exit(void) -{ - paride_unregister(&dstr); -} - MODULE_LICENSE("GPL"); -module_init(dstr_init) -module_exit(dstr_exit) +module_pata_parport_driver(dstr); diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 93ee91d9338b0..7583d07083a8b 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -327,12 +327,12 @@ static int __init epat_init(void) #ifdef CONFIG_PATA_PARPORT_EPATC8 epatc8 = 1; #endif - return paride_register(&epat); + return pata_parport_register_driver(&epat); } static void __exit epat_exit(void) { - paride_unregister(&epat); + pata_parport_unregister_driver(&epat); } MODULE_LICENSE("GPL"); diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 417d5a3c7f720..2bcb18a6845aa 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -301,16 +301,5 @@ static struct pi_protocol epia = { .log_adapter = epia_log_adapter, }; -static int __init epia_init(void) -{ - return paride_register(&epia); -} - -static void __exit epia_exit(void) -{ - paride_unregister(&epia); -} - MODULE_LICENSE("GPL"); -module_init(epia_init) -module_exit(epia_exit) +module_pata_parport_driver(epia); diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 3c7a1069b026d..c63f0cd2ea528 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -136,16 +136,5 @@ static struct pi_protocol fit2 = { .log_adapter = fit2_log_adapter, }; -static int __init fit2_init(void) -{ - return paride_register(&fit2); -} - -static void __exit fit2_exit(void) -{ - paride_unregister(&fit2); -} - MODULE_LICENSE("GPL"); -module_init(fit2_init) -module_exit(fit2_exit) +module_pata_parport_driver(fit2); diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index cd95f4f0edc2d..adbef142c88fb 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -196,16 +196,5 @@ static struct pi_protocol fit3 = { .log_adapter = fit3_log_adapter, }; -static int __init fit3_init(void) -{ - return paride_register(&fit3); -} - -static void __exit fit3_exit(void) -{ - paride_unregister(&fit3); -} - MODULE_LICENSE("GPL"); -module_init(fit3_init) -module_exit(fit3_exit) +module_pata_parport_driver(fit3); diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index da1d0cb016d66..e740fe933e204 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -261,16 +261,5 @@ static struct pi_protocol friq = { .release_proto = friq_release_proto, }; -static int __init friq_init(void) -{ - return paride_register(&friq); -} - -static void __exit friq_exit(void) -{ - paride_unregister(&friq); -} - MODULE_LICENSE("GPL"); -module_init(friq_init) -module_exit(friq_exit) +module_pata_parport_driver(friq); diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 7bc8fa16d5d85..8c8681812beda 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -298,16 +298,5 @@ static struct pi_protocol frpw = { .log_adapter = frpw_log_adapter, }; -static int __init frpw_init(void) -{ - return paride_register(&frpw); -} - -static void __exit frpw_exit(void) -{ - paride_unregister(&frpw); -} - MODULE_LICENSE("GPL"); -module_init(frpw_init) -module_exit(frpw_exit) +module_pata_parport_driver(frpw); diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index 93430ca32a52c..b120597043ccc 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -288,19 +288,19 @@ static int __init kbic_init(void) { int rv; - rv = paride_register(&k951); + rv = pata_parport_register_driver(&k951); if (rv < 0) return rv; - rv = paride_register(&k971); + rv = pata_parport_register_driver(&k971); if (rv < 0) - paride_unregister(&k951); + pata_parport_unregister_driver(&k951); return rv; } static void __exit kbic_exit(void) { - paride_unregister(&k951); - paride_unregister(&k971); + pata_parport_unregister_driver(&k951); + pata_parport_unregister_driver(&k971); } MODULE_LICENSE("GPL"); diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index fc4f707fed1f2..15463cd189682 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -113,16 +113,5 @@ static struct pi_protocol ktti = { .log_adapter = ktti_log_adapter, }; -static int __init ktti_init(void) -{ - return paride_register(&ktti); -} - -static void __exit ktti_exit(void) -{ - paride_unregister(&ktti); -} - MODULE_LICENSE("GPL"); -module_init(ktti_init) -module_exit(ktti_exit) +module_pata_parport_driver(ktti); diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index 995fc41e3122b..f2a601e778420 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -138,16 +138,5 @@ static struct pi_protocol on20 = { .log_adapter = on20_log_adapter, }; -static int __init on20_init(void) -{ - return paride_register(&on20); -} - -static void __exit on20_exit(void) -{ - paride_unregister(&on20); -} - MODULE_LICENSE("GPL"); -module_init(on20_init) -module_exit(on20_exit) +module_pata_parport_driver(on20); diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 35f1c481a782f..66f04015f19a0 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -304,16 +304,5 @@ static struct pi_protocol on26 = { .log_adapter = on26_log_adapter, }; -static int __init on26_init(void) -{ - return paride_register(&on26); -} - -static void __exit on26_exit(void) -{ - paride_unregister(&on26); -} - MODULE_LICENSE("GPL"); -module_init(on26_init) -module_exit(on26_exit) +module_pata_parport_driver(on26); diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index 458544fe5e6c3..9614ce53470ac 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -87,8 +87,16 @@ struct pi_protocol { int pata_parport_register_driver(struct pi_protocol *pr); void pata_parport_unregister_driver(struct pi_protocol *pr); -/* defines for old paride protocol modules */ -#define paride_register pata_parport_register_driver -#define paride_unregister pata_parport_unregister_driver + +/** + * module_pata_parport_driver() - Helper macro for registering a pata_parport driver + * @__pi_protocol: pi_protocol struct + * + * Helper macro for pata_parport drivers which do not do anything special in module + * init/exit. This eliminates a lot of boilerplate. Each module may only + * use this macro once, and calling it replaces module_init() and module_exit() + */ +#define module_pata_parport_driver(__pi_protocol) \ + module_driver(__pi_protocol, pata_parport_register_driver, pata_parport_unregister_driver) #endif /* LINUX_PATA_PARPORT_H */ From ec6e7a51d9eb1cd27840f7d8d5d05328631c9a15 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:26 +0100 Subject: [PATCH 06/57] ata: pata_parport: remove devtype from struct pi_adapter Only bpck driver uses devtype but it never gets set in pata_parport. Remove it. As most bpck devices are CD-ROMs, always run the code that depends on devtype == PI_PCD. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck.c | 4 ++-- include/linux/pata_parport.h | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index b9174cf8863c2..96386a10c22fb 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -241,14 +241,14 @@ static void bpck_connect ( PIA *pi ) WR(5,8); - if (pi->devtype == PI_PCD) { +/* if (pi->devtype == PI_PCD) { possibly wrong, purpose unknown */ WR(0x46,0x10); /* fiddle with ESS logic ??? */ WR(0x4c,0x38); WR(0x4d,0x88); WR(0x46,0xa0); WR(0x41,0); WR(0x4e,8); - } +/* }*/ } static void bpck_disconnect ( PIA *pi ) diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index 9614ce53470ac..3fc6b002c7c8b 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -11,15 +11,12 @@ #include -#define PI_PCD 1 /* dummy for paride protocol modules */ - struct pi_adapter { struct device dev; struct pi_protocol *proto; /* adapter protocol */ int port; /* base address of parallel port */ int mode; /* transfer mode in use */ int delay; /* adapter delay setting */ - int devtype; /* dummy for paride protocol modules */ char *device; /* dummy for paride protocol modules */ int unit; /* unit number for chained adapters */ int saved_r0; /* saved port state */ From a4f2ff92ed4a0305920a46aba0ae8d50139548c0 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:27 +0100 Subject: [PATCH 07/57] ata: pata_parport: remove device from struct pi_adapter device is never set in pata_parport, remove it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 3 +-- drivers/ata/pata_parport/bpck.c | 12 ++++++------ drivers/ata/pata_parport/bpck6.c | 10 ++++------ drivers/ata/pata_parport/comm.c | 3 +-- drivers/ata/pata_parport/dstr.c | 3 +-- drivers/ata/pata_parport/epat.c | 8 ++++---- drivers/ata/pata_parport/epia.c | 7 +++---- drivers/ata/pata_parport/fit2.c | 5 +++-- drivers/ata/pata_parport/fit3.c | 4 ++-- drivers/ata/pata_parport/friq.c | 6 +++--- drivers/ata/pata_parport/frpw.c | 12 +++++------- drivers/ata/pata_parport/kbic.c | 3 +-- drivers/ata/pata_parport/ktti.c | 5 +++-- drivers/ata/pata_parport/on20.c | 3 +-- drivers/ata/pata_parport/on26.c | 3 +-- include/linux/pata_parport.h | 1 - 16 files changed, 39 insertions(+), 49 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index 9e6098f90162a..bf83e4188c23a 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -124,8 +124,7 @@ static void aten_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[2] = {"4-bit","8-bit"}; - printk("%s: aten %s, ATEN EH-100 at 0x%x, ", - pi->device,ATEN_VERSION,pi->port); + printk("aten %s, ATEN EH-100 at 0x%x, ", ATEN_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 96386a10c22fb..c33ca1cb72acb 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -335,8 +335,8 @@ static int bpck_test_proto( PIA *pi, char * scratch, int verbose ) } if (verbose) { - printk("%s: bpck: 0x%x unit %d mode %d: ", - pi->device,pi->port,pi->unit,pi->mode); + printk("bpck: 0x%x unit %d mode %d: ", + pi->port, pi->unit, pi->mode); for (i=0;i '~')) scratch[i] = '.'; - printk("%s: bpck EEPROM: %64.64s\n",pi->device,scratch); - printk("%s: %64.64s\n",pi->device,&scratch[64]); + printk("bpck EEPROM: %64.64s\n", scratch); + printk(" %64.64s\n", &scratch[64]); } #endif - printk("%s: bpck %s, backpack %8.8s unit %d", - pi->device,BPCK_VERSION,&scratch[110],pi->unit); + printk("bpck %s, backpack %8.8s unit %d", + BPCK_VERSION, &scratch[110], pi->unit); printk(" at 0x%x, mode %d (%s), delay %d\n",pi->port, pi->mode,mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 3c358e66db257..13bfd60655dd8 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -200,11 +200,9 @@ static void bpck6_log_adapter( PIA *pi, char * scratch, int verbose ) char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - printk("%s: BACKPACK Protocol Driver V"BACKPACK_VERSION"\n",pi->device); - printk("%s: Copyright 2001 by Micro Solutions, Inc., DeKalb IL.\n",pi->device); - printk("%s: BACKPACK %s, Micro Solutions BACKPACK Drive at 0x%x\n", - pi->device,BACKPACK_VERSION,pi->port); - printk("%s: Unit: %d Mode:%d (%s) Delay %d\n",pi->device, + printk("BACKPACK %s, Micro Solutions BACKPACK Drive at 0x%x\n", + BACKPACK_VERSION, pi->port); + printk("Unit: %d Mode:%d (%s) Delay %d\n", pi->unit,pi->mode,mode_string[pi->mode],pi->delay); } @@ -217,7 +215,7 @@ static int bpck6_init_proto(PIA *pi) return 0; } - printk(KERN_ERR "%s: ERROR COULDN'T ALLOCATE MEMORY\n", pi->device); + printk(KERN_ERR "ERROR COULDN'T ALLOCATE MEMORY\n"); return -1; } diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 47f0fbccc3aa0..908f6c44548b4 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -183,8 +183,7 @@ static void comm_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - printk("%s: comm %s, DataStor Commuter at 0x%x, ", - pi->device,COMM_VERSION,pi->port); + printk("comm %s, DataStor Commuter at 0x%x, ", COMM_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index e733a2512e17b..3732e9b794297 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -195,8 +195,7 @@ static void dstr_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - printk("%s: dstr %s, DataStor EP2000 at 0x%x, ", - pi->device,DSTR_VERSION,pi->port); + printk("dstr %s, DataStor EP2000 at 0x%x, ", DSTR_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 7583d07083a8b..59720daa9c196 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -280,8 +280,8 @@ static int epat_test_proto( PIA *pi, char * scratch, int verbose ) epat_disconnect(pi); if (verbose) { - printk("%s: epat: port 0x%x, mode %d, ccr %x, test=(%d,%d,%d)\n", - pi->device,pi->port,pi->mode,cc,e[0],e[1],f); + printk("epat: port 0x%x, mode %d, ccr %x, test=(%d,%d,%d)\n", + pi->port, pi->mode, cc, e[0], e[1], f); } return (e[0] && e[1]) || f; @@ -298,8 +298,8 @@ static void epat_log_adapter( PIA *pi, char * scratch, int verbose ) ver = RR(0xb); epat_disconnect(pi); - printk("%s: epat %s, Shuttle EPAT chip %x at 0x%x, ", - pi->device,EPAT_VERSION,ver,pi->port); + printk("epat %s, Shuttle EPAT chip %x at 0x%x, ", + EPAT_VERSION, ver, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 2bcb18a6845aa..610269083441e 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -263,8 +263,8 @@ static int epia_test_proto( PIA *pi, char * scratch, int verbose ) epia_disconnect(pi); if (verbose) { - printk("%s: epia: port 0x%x, mode %d, test=(%d,%d,%d)\n", - pi->device,pi->port,pi->mode,e[0],e[1],f); + printk("epia: port 0x%x, mode %d, test=(%d,%d,%d)\n", + pi->port, pi->mode, e[0], e[1], f); } return (e[0] && e[1]) || f; @@ -277,8 +277,7 @@ static void epia_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; - printk("%s: epia %s, Shuttle EPIA at 0x%x, ", - pi->device,EPIA_VERSION,pi->port); + printk("epia %s, Shuttle EPIA at 0x%x, ", EPIA_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index c63f0cd2ea528..28de8e4e41c36 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -115,8 +115,9 @@ static void fit2_disconnect ( PIA *pi ) static void fit2_log_adapter( PIA *pi, char * scratch, int verbose ) -{ printk("%s: fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", - pi->device,FIT2_VERSION,pi->port,pi->delay); +{ + printk("fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", + FIT2_VERSION, pi->port, pi->delay); } diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index adbef142c88fb..0366f31235086 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -173,9 +173,9 @@ static void fit3_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; - printk("%s: fit3 %s, FIT 3000 adapter at 0x%x, " + printk("fit3 %s, FIT 3000 adapter at 0x%x, " "mode %d (%s), delay %d\n", - pi->device,FIT3_VERSION,pi->port, + FIT3_VERSION, pi->port, pi->mode,mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index e740fe933e204..9306a2c78d90f 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -208,8 +208,8 @@ static int friq_test_proto( PIA *pi, char * scratch, int verbose ) friq_disconnect(pi); if (verbose) { - printk("%s: friq: port 0x%x, mode %d, test=(%d,%d,%d)\n", - pi->device,pi->port,pi->mode,e[0],e[1],r); + printk("friq: port 0x%x, mode %d, test=(%d,%d,%d)\n", + pi->port, pi->mode, e[0], e[1], r); } return (r || (e[0] && e[1])); @@ -221,7 +221,7 @@ static void friq_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; - printk("%s: friq %s, Freecom IQ ASIC-2 adapter at 0x%x, ", pi->device, + printk("friq %s, Freecom IQ ASIC-2 adapter at 0x%x, ", FRIQ_VERSION,pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 8c8681812beda..63f2165fec636 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -231,15 +231,13 @@ static int frpw_test_proto( PIA *pi, char * scratch, int verbose ) if (((pi->private%2) == 0) && (pi->mode > 2)) { if (verbose) - printk("%s: frpw: Xilinx does not support mode %d\n", - pi->device, pi->mode); + printk("frpw: Xilinx does not support mode %d\n", pi->mode); return 1; } if (((pi->private%2) == 1) && (pi->mode == 2)) { if (verbose) - printk("%s: frpw: ASIC does not support mode 2\n", - pi->device); + printk("frpw: ASIC does not support mode 2\n"); return 1; } @@ -261,8 +259,8 @@ static int frpw_test_proto( PIA *pi, char * scratch, int verbose ) frpw_disconnect(pi); if (verbose) { - printk("%s: frpw: port 0x%x, chip %ld, mode %d, test=(%d,%d,%d)\n", - pi->device,pi->port,(pi->private%2),pi->mode,e[0],e[1],r); + printk("frpw: port 0x%x, chip %ld, mode %d, test=(%d,%d,%d)\n", + pi->port, (pi->private%2), pi->mode, e[0], e[1], r); } return (r || (e[0] && e[1])); @@ -274,7 +272,7 @@ static void frpw_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; - printk("%s: frpw %s, Freecom (%s) adapter at 0x%x, ", pi->device, + printk("frpw %s, Freecom (%s) adapter at 0x%x, ", FRPW_VERSION,((pi->private%2) == 0)?"Xilinx":"ASIC",pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index b120597043ccc..9a99b9e35d413 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -235,8 +235,7 @@ static void kbic_log_adapter( PIA *pi, char * scratch, { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; - printk("%s: kbic %s, KingByte %s at 0x%x, ", - pi->device,KBIC_VERSION,chip,pi->port); + printk("kbic %s, KingByte %s at 0x%x, ", KBIC_VERSION, chip, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index 15463cd189682..d87eb3c139bce 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -92,8 +92,9 @@ static void ktti_disconnect ( PIA *pi ) static void ktti_log_adapter( PIA *pi, char * scratch, int verbose ) -{ printk("%s: ktti %s, KT adapter at 0x%x, delay %d\n", - pi->device,KTTI_VERSION,pi->port,pi->delay); +{ + printk("ktti %s, KT adapter at 0x%x, delay %d\n", + KTTI_VERSION, pi->port, pi->delay); } diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index f2a601e778420..0a1e60e20656b 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -115,8 +115,7 @@ static void on20_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[2] = {"4-bit","8-bit"}; - printk("%s: on20 %s, OnSpec 90c20 at 0x%x, ", - pi->device,ON20_VERSION,pi->port); + printk("on20 %s, OnSpec 90c20 at 0x%x, ", ON20_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 66f04015f19a0..ceb5018caeecc 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -280,8 +280,7 @@ static void on26_log_adapter( PIA *pi, char * scratch, int verbose ) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - printk("%s: on26 %s, OnSpec 90c26 at 0x%x, ", - pi->device,ON26_VERSION,pi->port); + printk("on26 %s, OnSpec 90c26 at 0x%x, ", ON26_VERSION, pi->port); printk("mode %d (%s), delay %d\n",pi->mode, mode_string[pi->mode],pi->delay); diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index 3fc6b002c7c8b..dcab769aa6393 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -17,7 +17,6 @@ struct pi_adapter { int port; /* base address of parallel port */ int mode; /* transfer mode in use */ int delay; /* adapter delay setting */ - char *device; /* dummy for paride protocol modules */ int unit; /* unit number for chained adapters */ int saved_r0; /* saved port state */ int saved_r2; /* saved port state */ From 882ff0ca354ada5f52e26d74039b2210b3070dcc Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:28 +0100 Subject: [PATCH 08/57] ata: pata_parport: remove typedef struct PIA Remove typedef struct PIA and use struct pi_adapter directly. Fix formatting (excessive spaces) while at it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 14 +++++++------- drivers/ata/pata_parport/bpck.c | 24 ++++++++++++------------ drivers/ata/pata_parport/bpck6.c | 22 +++++++++++----------- drivers/ata/pata_parport/comm.c | 14 +++++++------- drivers/ata/pata_parport/dstr.c | 14 +++++++------- drivers/ata/pata_parport/epat.c | 16 ++++++++-------- drivers/ata/pata_parport/epia.c | 16 ++++++++-------- drivers/ata/pata_parport/fit2.c | 14 +++++++------- drivers/ata/pata_parport/fit3.c | 14 +++++++------- drivers/ata/pata_parport/friq.c | 20 ++++++++++---------- drivers/ata/pata_parport/frpw.c | 20 ++++++++++---------- drivers/ata/pata_parport/kbic.c | 24 ++++++++++++------------ drivers/ata/pata_parport/ktti.c | 14 +++++++------- drivers/ata/pata_parport/on20.c | 14 +++++++------- drivers/ata/pata_parport/on26.c | 16 ++++++++-------- include/linux/pata_parport.h | 2 -- 16 files changed, 128 insertions(+), 130 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index bf83e4188c23a..4579e554fbad0 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -35,7 +35,7 @@ static int cont_map[2] = { 0x08, 0x20 }; -static void aten_write_regr( PIA *pi, int cont, int regr, int val) +static void aten_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -44,7 +44,7 @@ static void aten_write_regr( PIA *pi, int cont, int regr, int val) w0(r); w2(0xe); w2(6); w0(val); w2(7); w2(6); w2(0xc); } -static int aten_read_regr( PIA *pi, int cont, int regr ) +static int aten_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -67,7 +67,7 @@ static int aten_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void aten_read_block( PIA *pi, char * buf, int count ) +static void aten_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b, c, d; @@ -95,7 +95,7 @@ static void aten_read_block( PIA *pi, char * buf, int count ) } } -static void aten_write_block( PIA *pi, char * buf, int count ) +static void aten_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -107,20 +107,20 @@ static void aten_write_block( PIA *pi, char * buf, int count ) w2(0xc); } -static void aten_connect ( PIA *pi ) +static void aten_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(0xc); } -static void aten_disconnect ( PIA *pi ) +static void aten_disconnect(struct pi_adapter *pi) { w0(pi->saved_r0); w2(pi->saved_r2); } -static void aten_log_adapter( PIA *pi, char * scratch, int verbose ) +static void aten_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index c33ca1cb72acb..46805c584730b 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -46,7 +46,7 @@ static int cont_map[3] = { 0x40, 0x48, 0 }; -static int bpck_read_regr( PIA *pi, int cont, int regr ) +static int bpck_read_regr(struct pi_adapter *pi, int cont, int regr) { int r, l, h; @@ -77,7 +77,7 @@ static int bpck_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void bpck_write_regr( PIA *pi, int cont, int regr, int val ) +static void bpck_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -106,7 +106,7 @@ static void bpck_write_regr( PIA *pi, int cont, int regr, int val ) #define WR(r,v) bpck_write_regr(pi,2,r,v) #define RR(r) (bpck_read_regr(pi,2,r)) -static void bpck_write_block( PIA *pi, char * buf, int count ) +static void bpck_write_block(struct pi_adapter *pi, char *buf, int count) { int i; @@ -147,7 +147,7 @@ static void bpck_write_block( PIA *pi, char * buf, int count ) } } -static void bpck_read_block( PIA *pi, char * buf, int count ) +static void bpck_read_block(struct pi_adapter *pi, char *buf, int count) { int i, l, h; @@ -194,7 +194,7 @@ static void bpck_read_block( PIA *pi, char * buf, int count ) } } -static int bpck_probe_unit ( PIA *pi ) +static int bpck_probe_unit(struct pi_adapter *pi) { int o1, o0, f7, id; int t, s; @@ -217,7 +217,7 @@ static int bpck_probe_unit ( PIA *pi ) return 1; } -static void bpck_connect ( PIA *pi ) +static void bpck_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); w0(0xff-pi->unit); w2(4); w0(pi->unit); @@ -251,14 +251,14 @@ static void bpck_connect ( PIA *pi ) /* }*/ } -static void bpck_disconnect ( PIA *pi ) +static void bpck_disconnect(struct pi_adapter *pi) { w0(0); if (pi->mode >= 2) { w2(9); w2(0); } else t2(2); w2(0x4c); w0(pi->saved_r0); } -static void bpck_force_spp ( PIA *pi ) +static void bpck_force_spp(struct pi_adapter *pi) /* This fakes the EPP protocol to turn off EPP ... */ @@ -276,7 +276,7 @@ static void bpck_force_spp ( PIA *pi ) #define TEST_LEN 16 -static int bpck_test_proto( PIA *pi, char * scratch, int verbose ) +static int bpck_test_proto(struct pi_adapter *pi, char *scratch, int verbose) { int i, e, l, h, om; char buf[TEST_LEN]; @@ -346,7 +346,7 @@ static int bpck_test_proto( PIA *pi, char * scratch, int verbose ) return e; } -static void bpck_read_eeprom ( PIA *pi, char * buf ) +static void bpck_read_eeprom(struct pi_adapter *pi, char *buf) { int i, j, k, p, v, f, om, od; @@ -397,7 +397,7 @@ static void bpck_read_eeprom ( PIA *pi, char * buf ) pi->mode = om; pi->delay = od; } -static int bpck_test_port ( PIA *pi ) /* check for 8-bit port */ +static int bpck_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { int i, r, m; @@ -416,7 +416,7 @@ static int bpck_test_port ( PIA *pi ) /* check for 8-bit port */ return 5; } -static void bpck_log_adapter( PIA *pi, char * scratch, int verbose ) +static void bpck_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[5] = { "4-bit","8-bit","EPP-8", "EPP-16","EPP-32" }; diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 13bfd60655dd8..8ed3cf3b627e7 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -56,7 +56,7 @@ static bool verbose; /* set this to 1 to see debugging messages and whatnot */ #define ATAPI_DEVICE_CONTROL 0x0e /* device control (write) */ /****************************************************************/ -static int bpck6_read_regr(PIA *pi, int cont, int reg) +static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { unsigned int out; @@ -69,7 +69,7 @@ static int bpck6_read_regr(PIA *pi, int cont, int reg) return(out); } -static void bpck6_write_regr(PIA *pi, int cont, int reg, int val) +static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) { /* check for bad settings */ if (reg>=0 && reg<=7 && cont>=0 && cont<=1) @@ -78,17 +78,17 @@ static void bpck6_write_regr(PIA *pi, int cont, int reg, int val) } } -static void bpck6_write_block( PIA *pi, char * buf, int len ) +static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { ppc6_wr_port16_blk(PPCSTRUCT(pi),ATAPI_DATA,buf,(u32)len>>1); } -static void bpck6_read_block( PIA *pi, char * buf, int len ) +static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { ppc6_rd_port16_blk(PPCSTRUCT(pi),ATAPI_DATA,buf,(u32)len>>1); } -static void bpck6_connect ( PIA *pi ) +static void bpck6_connect(struct pi_adapter *pi) { if(verbose) { @@ -112,7 +112,7 @@ static void bpck6_connect ( PIA *pi ) ppc6_wr_extout(PPCSTRUCT(pi),0x3); } -static void bpck6_disconnect ( PIA *pi ) +static void bpck6_disconnect(struct pi_adapter *pi) { if(verbose) { @@ -122,7 +122,7 @@ static void bpck6_disconnect ( PIA *pi ) ppc6_close(PPCSTRUCT(pi)); } -static int bpck6_test_port ( PIA *pi ) /* check for 8-bit port */ +static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { if(verbose) { @@ -154,7 +154,7 @@ static int bpck6_test_port ( PIA *pi ) /* check for 8-bit port */ } } -static int bpck6_probe_unit ( PIA *pi ) +static int bpck6_probe_unit(struct pi_adapter *pi) { int out; @@ -195,7 +195,7 @@ static int bpck6_probe_unit ( PIA *pi ) } } -static void bpck6_log_adapter( PIA *pi, char * scratch, int verbose ) +static void bpck6_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; @@ -206,7 +206,7 @@ static void bpck6_log_adapter( PIA *pi, char * scratch, int verbose ) pi->unit,pi->mode,mode_string[pi->mode],pi->delay); } -static int bpck6_init_proto(PIA *pi) +static int bpck6_init_proto(struct pi_adapter *pi) { Interface *p = kzalloc(sizeof(Interface), GFP_KERNEL); @@ -219,7 +219,7 @@ static int bpck6_init_proto(PIA *pi) return -1; } -static void bpck6_release_proto(PIA *pi) +static void bpck6_release_proto(struct pi_adapter *pi) { kfree((void *)(pi->private)); } diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 908f6c44548b4..06c6fa29295be 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -42,7 +42,7 @@ static int cont_map[2] = { 0x08, 0x10 }; -static int comm_read_regr( PIA *pi, int cont, int regr ) +static int comm_read_regr(struct pi_adapter *pi, int cont, int regr) { int l, h, r; @@ -68,7 +68,7 @@ static int comm_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void comm_write_regr( PIA *pi, int cont, int regr, int val ) +static void comm_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -87,7 +87,7 @@ static void comm_write_regr( PIA *pi, int cont, int regr, int val ) } } -static void comm_connect ( PIA *pi ) +static void comm_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -98,14 +98,14 @@ static void comm_connect ( PIA *pi ) w2(4); w0(0xe0); w2(0xc); w2(0xc); w2(4); } -static void comm_disconnect ( PIA *pi ) +static void comm_disconnect(struct pi_adapter *pi) { w2(0); w2(0); w2(0); w2(4); w0(pi->saved_r0); w2(pi->saved_r2); } -static void comm_read_block( PIA *pi, char * buf, int count ) +static void comm_read_block(struct pi_adapter *pi, char *buf, int count) { int i, l, h; @@ -146,7 +146,7 @@ static void comm_read_block( PIA *pi, char * buf, int count ) /* NB: Watch out for the byte swapped writes ! */ -static void comm_write_block( PIA *pi, char * buf, int count ) +static void comm_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -179,7 +179,7 @@ static void comm_write_block( PIA *pi, char * buf, int count ) } } -static void comm_log_adapter( PIA *pi, char * scratch, int verbose ) +static void comm_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index 3732e9b794297..8cac71eb9c032 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -44,7 +44,7 @@ static int cont_map[2] = { 0x20, 0x40 }; -static int dstr_read_regr( PIA *pi, int cont, int regr ) +static int dstr_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -71,7 +71,7 @@ static int dstr_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void dstr_write_regr( PIA *pi, int cont, int regr, int val ) +static void dstr_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -98,21 +98,21 @@ static void dstr_write_regr( PIA *pi, int cont, int regr, int val ) w0(0xaa);w0(0x55);w0(0);w0(0xff);w0(0x87);w0(0x78);\ w0(x);w2(5);w2(4); -static void dstr_connect ( PIA *pi ) +static void dstr_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(4); CCP(0xe0); w0(0xff); } -static void dstr_disconnect ( PIA *pi ) +static void dstr_disconnect(struct pi_adapter *pi) { CCP(0x30); w0(pi->saved_r0); w2(pi->saved_r2); } -static void dstr_read_block( PIA *pi, char * buf, int count ) +static void dstr_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b; @@ -154,7 +154,7 @@ static void dstr_read_block( PIA *pi, char * buf, int count ) } } -static void dstr_write_block( PIA *pi, char * buf, int count ) +static void dstr_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -190,7 +190,7 @@ static void dstr_write_block( PIA *pi, char * buf, int count ) } -static void dstr_log_adapter( PIA *pi, char * scratch, int verbose ) +static void dstr_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 59720daa9c196..9276dcb261d87 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -44,7 +44,7 @@ MODULE_PARM_DESC(epatc8, "support for the Shuttle EP1284 chip, " static int cont_map[3] = { 0x18, 0x10, 0 }; -static void epat_write_regr( PIA *pi, int cont, int regr, int val) +static void epat_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -65,7 +65,7 @@ static void epat_write_regr( PIA *pi, int cont, int regr, int val) } } -static int epat_read_regr( PIA *pi, int cont, int regr ) +static int epat_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -94,7 +94,7 @@ static int epat_read_regr( PIA *pi, int cont, int regr ) return -1; /* never gets here */ } -static void epat_read_block( PIA *pi, char * buf, int count ) +static void epat_read_block(struct pi_adapter *pi, char *buf, int count) { int k, ph, a, b; @@ -159,7 +159,7 @@ static void epat_read_block( PIA *pi, char * buf, int count ) } } -static void epat_write_block( PIA *pi, char * buf, int count ) +static void epat_write_block(struct pi_adapter *pi, char *buf, int count) { int ph, k; @@ -210,7 +210,7 @@ static void epat_write_block( PIA *pi, char * buf, int count ) #define CPP(x) w2(4);w0(0x22);w0(0xaa);w0(0x55);w0(0);w0(0xff);\ w0(0x87);w0(0x78);w0(x);w2(4);w2(5);w2(4);w0(0xff); -static void epat_connect ( PIA *pi ) +static void epat_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -242,13 +242,13 @@ static void epat_connect ( PIA *pi ) } } -static void epat_disconnect (PIA *pi) +static void epat_disconnect(struct pi_adapter *pi) { CPP(0x30); w0(pi->saved_r0); w2(pi->saved_r2); } -static int epat_test_proto( PIA *pi, char * scratch, int verbose ) +static int epat_test_proto(struct pi_adapter *pi, char *scratch, int verbose) { int k, j, f, cc; int e[2] = {0,0}; @@ -287,7 +287,7 @@ static int epat_test_proto( PIA *pi, char * scratch, int verbose ) return (e[0] && e[1]) || f; } -static void epat_log_adapter( PIA *pi, char * scratch, int verbose ) +static void epat_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { int ver; char *mode_string[6] = diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 610269083441e..85b1aba995e1e 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -46,7 +46,7 @@ static int cont_map[2] = { 0, 0x80 }; -static int epia_read_regr( PIA *pi, int cont, int regr ) +static int epia_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -79,7 +79,7 @@ static int epia_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void epia_write_regr( PIA *pi, int cont, int regr, int val) +static void epia_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -110,7 +110,7 @@ static void epia_write_regr( PIA *pi, int cont, int regr, int val) 2048 byte reads (the last two being used in the CDrom drivers. */ -static void epia_connect ( PIA *pi ) +static void epia_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -124,7 +124,7 @@ static void epia_connect ( PIA *pi ) WR(0x86,8); } -static void epia_disconnect ( PIA *pi ) +static void epia_disconnect(struct pi_adapter *pi) { /* WR(0x84,0x10); */ w0(pi->saved_r0); @@ -133,7 +133,7 @@ static void epia_disconnect ( PIA *pi ) w2(pi->saved_r2); } -static void epia_read_block( PIA *pi, char * buf, int count ) +static void epia_read_block(struct pi_adapter *pi, char *buf, int count) { int k, ph, a, b; @@ -193,7 +193,7 @@ static void epia_read_block( PIA *pi, char * buf, int count ) } } -static void epia_write_block( PIA *pi, char * buf, int count ) +static void epia_write_block(struct pi_adapter *pi, char *buf, int count) { int ph, k, last, d; @@ -234,7 +234,7 @@ static void epia_write_block( PIA *pi, char * buf, int count ) } -static int epia_test_proto( PIA *pi, char * scratch, int verbose ) +static int epia_test_proto(struct pi_adapter *pi, char *scratch, int verbose) { int j, k, f; int e[2] = {0,0}; @@ -272,7 +272,7 @@ static int epia_test_proto( PIA *pi, char * scratch, int verbose ) } -static void epia_log_adapter( PIA *pi, char * scratch, int verbose ) +static void epia_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 28de8e4e41c36..67e095d6a718a 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -37,13 +37,13 @@ devices. */ -static void fit2_write_regr( PIA *pi, int cont, int regr, int val) +static void fit2_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { if (cont == 1) return; w2(0xc); w0(regr); w2(4); w0(val); w2(5); w0(0); w2(4); } -static int fit2_read_regr( PIA *pi, int cont, int regr ) +static int fit2_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -61,7 +61,7 @@ static int fit2_read_regr( PIA *pi, int cont, int regr ) } -static void fit2_read_block( PIA *pi, char * buf, int count ) +static void fit2_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b, c, d; @@ -87,7 +87,7 @@ static void fit2_read_block( PIA *pi, char * buf, int count ) } -static void fit2_write_block( PIA *pi, char * buf, int count ) +static void fit2_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -100,20 +100,20 @@ static void fit2_write_block( PIA *pi, char * buf, int count ) w2(4); } -static void fit2_connect ( PIA *pi ) +static void fit2_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(0xcc); } -static void fit2_disconnect ( PIA *pi ) +static void fit2_disconnect(struct pi_adapter *pi) { w0(pi->saved_r0); w2(pi->saved_r2); } -static void fit2_log_adapter( PIA *pi, char * scratch, int verbose ) +static void fit2_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { printk("fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index 0366f31235086..01e862a94b96b 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -39,7 +39,7 @@ */ -static void fit3_write_regr( PIA *pi, int cont, int regr, int val) +static void fit3_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { if (cont == 1) return; @@ -59,7 +59,7 @@ static void fit3_write_regr( PIA *pi, int cont, int regr, int val) } } -static int fit3_read_regr( PIA *pi, int cont, int regr ) +static int fit3_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b; @@ -92,7 +92,7 @@ static int fit3_read_regr( PIA *pi, int cont, int regr ) } -static void fit3_read_block( PIA *pi, char * buf, int count ) +static void fit3_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b, c, d; @@ -131,7 +131,7 @@ static void fit3_read_block( PIA *pi, char * buf, int count ) } } -static void fit3_write_block( PIA *pi, char * buf, int count ) +static void fit3_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -152,7 +152,7 @@ static void fit3_write_block( PIA *pi, char * buf, int count ) } } -static void fit3_connect ( PIA *pi ) +static void fit3_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -162,14 +162,14 @@ static void fit3_connect ( PIA *pi ) } } -static void fit3_disconnect ( PIA *pi ) +static void fit3_disconnect(struct pi_adapter *pi) { w2(0xc); w0(0xa); w2(0x8); w2(0xc); w0(pi->saved_r0); w2(pi->saved_r2); } -static void fit3_log_adapter( PIA *pi, char * scratch, int verbose ) +static void fit3_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index 9306a2c78d90f..9f8f4e6b1a7c5 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -48,7 +48,7 @@ static int cont_map[2] = { 0x08, 0x10 }; -static int friq_read_regr( PIA *pi, int cont, int regr ) +static int friq_read_regr(struct pi_adapter *pi, int cont, int regr) { int h,l,r; @@ -63,7 +63,7 @@ static int friq_read_regr( PIA *pi, int cont, int regr ) } -static void friq_write_regr( PIA *pi, int cont, int regr, int val) +static void friq_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -74,7 +74,7 @@ static void friq_write_regr( PIA *pi, int cont, int regr, int val) w2(5);w2(7);w2(5);w2(4); } -static void friq_read_block_int( PIA *pi, char * buf, int count, int regr ) +static void friq_read_block_int(struct pi_adapter *pi, char *buf, int count, int regr) { int h, l, k, ph; @@ -129,12 +129,12 @@ static void friq_read_block_int( PIA *pi, char * buf, int count, int regr ) } } -static void friq_read_block( PIA *pi, char * buf, int count) +static void friq_read_block(struct pi_adapter *pi, char *buf, int count) { friq_read_block_int(pi,buf,count,0x08); } -static void friq_write_block( PIA *pi, char * buf, int count ) +static void friq_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -166,21 +166,21 @@ static void friq_write_block( PIA *pi, char * buf, int count ) } } -static void friq_connect ( PIA *pi ) +static void friq_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(4); } -static void friq_disconnect ( PIA *pi ) +static void friq_disconnect(struct pi_adapter *pi) { CMD(0x20); w0(pi->saved_r0); w2(pi->saved_r2); } -static int friq_test_proto( PIA *pi, char * scratch, int verbose ) +static int friq_test_proto(struct pi_adapter *pi, char *scratch, int verbose) { int j, k, r; int e[2] = {0,0}; @@ -216,7 +216,7 @@ static int friq_test_proto( PIA *pi, char * scratch, int verbose ) } -static void friq_log_adapter( PIA *pi, char * scratch, int verbose ) +static void friq_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; @@ -233,7 +233,7 @@ static void friq_log_adapter( PIA *pi, char * scratch, int verbose ) } -static void friq_release_proto( PIA *pi) +static void friq_release_proto(struct pi_adapter *pi) { if (pi->private) { /* turn off the power */ friq_connect(pi); diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 63f2165fec636..e93570190dab5 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -44,7 +44,7 @@ static int cont_map[2] = { 0x08, 0x10 }; -static int frpw_read_regr( PIA *pi, int cont, int regr ) +static int frpw_read_regr(struct pi_adapter *pi, int cont, int regr) { int h,l,r; @@ -60,7 +60,7 @@ static int frpw_read_regr( PIA *pi, int cont, int regr ) } -static void frpw_write_regr( PIA *pi, int cont, int regr, int val) +static void frpw_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -71,7 +71,7 @@ static void frpw_write_regr( PIA *pi, int cont, int regr, int val) w2(5);w2(7);w2(5);w2(4); } -static void frpw_read_block_int( PIA *pi, char * buf, int count, int regr ) +static void frpw_read_block_int(struct pi_adapter *pi, char *buf, int count, int regr) { int h, l, k, ph; @@ -132,12 +132,12 @@ static void frpw_read_block_int( PIA *pi, char * buf, int count, int regr ) } } -static void frpw_read_block( PIA *pi, char * buf, int count) +static void frpw_read_block(struct pi_adapter *pi, char *buf, int count) { frpw_read_block_int(pi,buf,count,0x08); } -static void frpw_write_block( PIA *pi, char * buf, int count ) +static void frpw_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -170,14 +170,14 @@ static void frpw_write_block( PIA *pi, char * buf, int count ) } } -static void frpw_connect ( PIA *pi ) +static void frpw_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(4); } -static void frpw_disconnect ( PIA *pi ) +static void frpw_disconnect(struct pi_adapter *pi) { w2(4); w0(0x20); cec4; w0(pi->saved_r0); @@ -188,7 +188,7 @@ static void frpw_disconnect ( PIA *pi ) between the Xilinx and ASIC implementations of the Freecom adapter. */ -static int frpw_test_pnp ( PIA *pi ) +static int frpw_test_pnp(struct pi_adapter *pi) /* returns chip_type: 0 = Xilinx, 1 = ASIC */ @@ -221,7 +221,7 @@ static int frpw_test_pnp ( PIA *pi ) a hack :-( */ -static int frpw_test_proto( PIA *pi, char * scratch, int verbose ) +static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) { int j, k, r; int e[2] = {0,0}; @@ -267,7 +267,7 @@ static int frpw_test_proto( PIA *pi, char * scratch, int verbose ) } -static void frpw_log_adapter( PIA *pi, char * scratch, int verbose ) +static void frpw_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index 9a99b9e35d413..fffb79054144a 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -42,7 +42,7 @@ static int cont_map[2] = { 0x80, 0x40 }; -static int kbic_read_regr( PIA *pi, int cont, int regr ) +static int kbic_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, s; @@ -72,7 +72,7 @@ static int kbic_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void kbic_write_regr( PIA *pi, int cont, int regr, int val) +static void kbic_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int s; @@ -96,14 +96,14 @@ static void kbic_write_regr( PIA *pi, int cont, int regr, int val) } } -static void k951_connect ( PIA *pi ) +static void k951_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(4); } -static void k951_disconnect ( PIA *pi ) +static void k951_disconnect(struct pi_adapter *pi) { w0(pi->saved_r0); w2(pi->saved_r2); @@ -112,7 +112,7 @@ static void k951_disconnect ( PIA *pi ) #define CCP(x) w2(0xc4);w0(0xaa);w0(0x55);w0(0);w0(0xff);w0(0x87);\ w0(0x78);w0(x);w2(0xc5);w2(0xc4);w0(0xff); -static void k971_connect ( PIA *pi ) +static void k971_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -120,7 +120,7 @@ static void k971_connect ( PIA *pi ) w2(4); } -static void k971_disconnect ( PIA *pi ) +static void k971_disconnect(struct pi_adapter *pi) { CCP(0x30); w0(pi->saved_r0); @@ -131,7 +131,7 @@ static void k971_disconnect ( PIA *pi ) have this property. */ -static void kbic_read_block( PIA *pi, char * buf, int count ) +static void kbic_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b; @@ -189,7 +189,7 @@ static void kbic_read_block( PIA *pi, char * buf, int count ) } } -static void kbic_write_block( PIA *pi, char * buf, int count ) +static void kbic_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -229,8 +229,8 @@ static void kbic_write_block( PIA *pi, char * buf, int count ) } -static void kbic_log_adapter( PIA *pi, char * scratch, - int verbose, char * chip ) +static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, + int verbose, char *chip) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; @@ -241,12 +241,12 @@ static void kbic_log_adapter( PIA *pi, char * scratch, } -static void k951_log_adapter( PIA *pi, char * scratch, int verbose ) +static void k951_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { kbic_log_adapter(pi,scratch,verbose,"KBIC-951A"); } -static void k971_log_adapter( PIA *pi, char * scratch, int verbose ) +static void k971_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { kbic_log_adapter(pi,scratch,verbose,"KBIC-971A"); } diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index d87eb3c139bce..ffb2af0ce0456 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -29,7 +29,7 @@ static int cont_map[2] = { 0x10, 0x08 }; -static void ktti_write_regr( PIA *pi, int cont, int regr, int val) +static void ktti_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -39,7 +39,7 @@ static void ktti_write_regr( PIA *pi, int cont, int regr, int val) w0(val); w2(3); w0(0); w2(6); w2(0xb); } -static int ktti_read_regr( PIA *pi, int cont, int regr ) +static int ktti_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -51,7 +51,7 @@ static int ktti_read_regr( PIA *pi, int cont, int regr ) } -static void ktti_read_block( PIA *pi, char * buf, int count ) +static void ktti_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b; @@ -64,7 +64,7 @@ static void ktti_read_block( PIA *pi, char * buf, int count ) } } -static void ktti_write_block( PIA *pi, char * buf, int count ) +static void ktti_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -76,21 +76,21 @@ static void ktti_write_block( PIA *pi, char * buf, int count ) } } -static void ktti_connect ( PIA *pi ) +static void ktti_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); w2(0xb); w2(0xa); w0(0); w2(3); w2(6); } -static void ktti_disconnect ( PIA *pi ) +static void ktti_disconnect(struct pi_adapter *pi) { w2(0xb); w2(0xa); w0(0xa0); w2(3); w2(4); w0(pi->saved_r0); w2(pi->saved_r2); } -static void ktti_log_adapter( PIA *pi, char * scratch, int verbose ) +static void ktti_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { printk("ktti %s, KT adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index 0a1e60e20656b..fb3399329fb6f 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -33,7 +33,7 @@ cont = 1 - access the IDE command set */ -static int on20_read_regr( PIA *pi, int cont, int regr ) +static int on20_read_regr(struct pi_adapter *pi, int cont, int regr) { int h,l, r ; @@ -56,7 +56,7 @@ static int on20_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void on20_write_regr( PIA *pi, int cont, int regr, int val ) +static void on20_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -67,7 +67,7 @@ static void on20_write_regr( PIA *pi, int cont, int regr, int val ) op(0); vl(val); } -static void on20_connect ( PIA *pi) +static void on20_connect(struct pi_adapter *pi) { pi->saved_r0 = r0(); pi->saved_r2 = r2(); @@ -77,14 +77,14 @@ static void on20_connect ( PIA *pi) else { op(2); vl(0); op(2); vl(8); } } -static void on20_disconnect ( PIA *pi ) +static void on20_disconnect(struct pi_adapter *pi) { w2(4);w0(7);w2(4);w2(0xc);w2(4); w0(pi->saved_r0); w2(pi->saved_r2); } -static void on20_read_block( PIA *pi, char * buf, int count ) +static void on20_read_block(struct pi_adapter *pi, char *buf, int count) { int k, l, h; @@ -101,7 +101,7 @@ static void on20_read_block( PIA *pi, char * buf, int count ) w2(4); } -static void on20_write_block( PIA *pi, char * buf, int count ) +static void on20_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -111,7 +111,7 @@ static void on20_write_block( PIA *pi, char * buf, int count ) w2(4); } -static void on20_log_adapter( PIA *pi, char * scratch, int verbose ) +static void on20_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index ceb5018caeecc..7e5fc499fcc5f 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -44,7 +44,7 @@ cont = 1 - access the IDE command set */ -static int on26_read_regr( PIA *pi, int cont, int regr ) +static int on26_read_regr(struct pi_adapter *pi, int cont, int regr) { int a, b, r; @@ -73,7 +73,7 @@ static int on26_read_regr( PIA *pi, int cont, int regr ) return -1; } -static void on26_write_regr( PIA *pi, int cont, int regr, int val ) +static void on26_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { int r; @@ -99,7 +99,7 @@ static void on26_write_regr( PIA *pi, int cont, int regr, int val ) #define CCP(x) w0(0xfe);w0(0xaa);w0(0x55);w0(0);w0(0xff);\ w0(0x87);w0(0x78);w0(x);w2(4);w2(5);w2(4);w0(0xff); -static void on26_connect ( PIA *pi ) +static void on26_connect(struct pi_adapter *pi) { int x; @@ -113,7 +113,7 @@ static void on26_connect ( PIA *pi ) w0(2); P1; w0(x); P2; } -static void on26_disconnect ( PIA *pi ) +static void on26_disconnect(struct pi_adapter *pi) { if (pi->mode >= 2) { w3(4); w3(4); w3(4); w3(4); } else { w0(4); P1; w0(4); P1; } @@ -124,7 +124,7 @@ static void on26_disconnect ( PIA *pi ) #define RESET_WAIT 200 -static int on26_test_port( PIA *pi) /* hard reset */ +static int on26_test_port(struct pi_adapter *pi) /* hard reset */ { int i, m, d, x=0, y=0; @@ -183,7 +183,7 @@ static int on26_test_port( PIA *pi) /* hard reset */ } -static void on26_read_block( PIA *pi, char * buf, int count ) +static void on26_read_block(struct pi_adapter *pi, char *buf, int count) { int k, a, b; @@ -232,7 +232,7 @@ static void on26_read_block( PIA *pi, char * buf, int count ) } } -static void on26_write_block( PIA *pi, char * buf, int count ) +static void on26_write_block(struct pi_adapter *pi, char *buf, int count) { int k; @@ -275,7 +275,7 @@ static void on26_write_block( PIA *pi, char * buf, int count ) } -static void on26_log_adapter( PIA *pi, char * scratch, int verbose ) +static void on26_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index dcab769aa6393..381b4d0e35746 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -24,8 +24,6 @@ struct pi_adapter { struct pardevice *pardev; /* pointer to pardevice */ }; -typedef struct pi_adapter PIA; /* for paride protocol modules */ - /* registers are addressed as (cont,regr) * cont: 0 for command register file, 1 for control register(s) * regr: 0-7 for register number. From 3a7474ba54ef29233af3de8b1f97ec006c2f902a Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:29 +0100 Subject: [PATCH 09/57] ata: pata_parport: remove verbose parameter from log_adapter() verbose parameter of log_adapter() is unused, remove it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 2 +- drivers/ata/pata_parport/bpck.c | 4 +--- drivers/ata/pata_parport/bpck6.c | 2 +- drivers/ata/pata_parport/comm.c | 2 +- drivers/ata/pata_parport/dstr.c | 2 +- drivers/ata/pata_parport/epat.c | 2 +- drivers/ata/pata_parport/epia.c | 2 +- drivers/ata/pata_parport/fit2.c | 2 +- drivers/ata/pata_parport/fit3.c | 2 +- drivers/ata/pata_parport/friq.c | 2 +- drivers/ata/pata_parport/frpw.c | 2 +- drivers/ata/pata_parport/kbic.c | 15 +++++++-------- drivers/ata/pata_parport/ktti.c | 2 +- drivers/ata/pata_parport/on20.c | 2 +- drivers/ata/pata_parport/on26.c | 2 +- drivers/ata/pata_parport/pata_parport.c | 2 +- include/linux/pata_parport.h | 2 +- 17 files changed, 23 insertions(+), 26 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index 4579e554fbad0..0a98954f380f6 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -120,7 +120,7 @@ static void aten_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void aten_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void aten_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 46805c584730b..1a3e3d5b1b258 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -416,7 +416,7 @@ static int bpck_test_port(struct pi_adapter *pi) /* check for 8-bit port */ return 5; } -static void bpck_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void bpck_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[5] = { "4-bit","8-bit","EPP-8", "EPP-16","EPP-32" }; @@ -428,13 +428,11 @@ static void bpck_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) bpck_read_eeprom(pi,scratch); #ifdef DUMP_EEPROM - if (verbose) { for(i=0;i<128;i++) if ((scratch[i] < ' ') || (scratch[i] > '~')) scratch[i] = '.'; printk("bpck EEPROM: %64.64s\n", scratch); printk(" %64.64s\n", &scratch[64]); - } #endif printk("bpck %s, backpack %8.8s unit %d", diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 8ed3cf3b627e7..68f7fdcab9bee 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -195,7 +195,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) } } -static void bpck6_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void bpck6_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 06c6fa29295be..69a66658aa293 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -179,7 +179,7 @@ static void comm_write_block(struct pi_adapter *pi, char *buf, int count) } } -static void comm_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void comm_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index 8cac71eb9c032..17b1a7cb0a157 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -190,7 +190,7 @@ static void dstr_write_block(struct pi_adapter *pi, char *buf, int count) } -static void dstr_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void dstr_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 9276dcb261d87..b125df16f1608 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -287,7 +287,7 @@ static int epat_test_proto(struct pi_adapter *pi, char *scratch, int verbose) return (e[0] && e[1]) || f; } -static void epat_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void epat_log_adapter(struct pi_adapter *pi, char *scratch) { int ver; char *mode_string[6] = diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 85b1aba995e1e..452d3a8e17af7 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -272,7 +272,7 @@ static int epia_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void epia_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void epia_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 67e095d6a718a..632c51af84d76 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -113,7 +113,7 @@ static void fit2_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void fit2_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void fit2_log_adapter(struct pi_adapter *pi, char *scratch) { printk("fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index 01e862a94b96b..bdf90cb536c24 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -169,7 +169,7 @@ static void fit3_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void fit3_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void fit3_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index 9f8f4e6b1a7c5..ee922b40bc95b 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -216,7 +216,7 @@ static int friq_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void friq_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void friq_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index e93570190dab5..f17e0a4f66c29 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -267,7 +267,7 @@ static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void frpw_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void frpw_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index fffb79054144a..3718441f60aae 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -229,8 +229,7 @@ static void kbic_write_block(struct pi_adapter *pi, char *buf, int count) } -static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, - int verbose, char *chip) +static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, char *chip) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; @@ -241,14 +240,14 @@ static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, } -static void k951_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) - -{ kbic_log_adapter(pi,scratch,verbose,"KBIC-951A"); +static void k951_log_adapter(struct pi_adapter *pi, char *scratch) +{ + kbic_log_adapter(pi, scratch, "KBIC-951A"); } -static void k971_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) - -{ kbic_log_adapter(pi,scratch,verbose,"KBIC-971A"); +static void k971_log_adapter(struct pi_adapter *pi, char *scratch) +{ + kbic_log_adapter(pi, scratch, "KBIC-971A"); } static struct pi_protocol k951 = { diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index ffb2af0ce0456..ad7f0314f962d 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -90,7 +90,7 @@ static void ktti_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void ktti_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void ktti_log_adapter(struct pi_adapter *pi, char *scratch) { printk("ktti %s, KT adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index fb3399329fb6f..12a423f619962 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -111,7 +111,7 @@ static void on20_write_block(struct pi_adapter *pi, char *buf, int count) w2(4); } -static void on20_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void on20_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 7e5fc499fcc5f..ee5a0cc74900e 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -275,7 +275,7 @@ static void on26_write_block(struct pi_adapter *pi, char *buf, int count) } -static void on26_log_adapter(struct pi_adapter *pi, char *scratch, int verbose) +static void on26_log_adapter(struct pi_adapter *pi, char *scratch) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index 58bbed1074036..41180039f17d0 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -478,7 +478,7 @@ static struct pi_adapter *pi_init_one(struct parport *parport, goto out_unreg_parport; } - pi->proto->log_adapter(pi, scratch, 1); + pi->proto->log_adapter(pi, scratch); host = ata_host_alloc_pinfo(&pi->pardev->dev, ppi, 1); if (!host) diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index 381b4d0e35746..033cabede51c4 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -68,7 +68,7 @@ struct pi_protocol { int (*test_port)(struct pi_adapter *pi); int (*probe_unit)(struct pi_adapter *pi); int (*test_proto)(struct pi_adapter *pi, char *scratch, int verbose); - void (*log_adapter)(struct pi_adapter *pi, char *scratch, int verbose); + void (*log_adapter)(struct pi_adapter *pi, char *scratch); int (*init_proto)(struct pi_adapter *pi); void (*release_proto)(struct pi_adapter *pi); From 5b77db9ccff444ddd3755e43b7bfa8782a5ac125 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:30 +0100 Subject: [PATCH 10/57] ata: pata_parport: remove scratch parameter from log_adapter() scratch parameter of log_adapter() is only used by bpck driver. Remove it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 2 +- drivers/ata/pata_parport/bpck.c | 4 ++-- drivers/ata/pata_parport/bpck6.c | 2 +- drivers/ata/pata_parport/comm.c | 2 +- drivers/ata/pata_parport/dstr.c | 2 +- drivers/ata/pata_parport/epat.c | 2 +- drivers/ata/pata_parport/epia.c | 2 +- drivers/ata/pata_parport/fit2.c | 2 +- drivers/ata/pata_parport/fit3.c | 2 +- drivers/ata/pata_parport/friq.c | 2 +- drivers/ata/pata_parport/frpw.c | 2 +- drivers/ata/pata_parport/kbic.c | 10 +++++----- drivers/ata/pata_parport/ktti.c | 2 +- drivers/ata/pata_parport/on20.c | 2 +- drivers/ata/pata_parport/on26.c | 2 +- drivers/ata/pata_parport/pata_parport.c | 2 +- include/linux/pata_parport.h | 2 +- 17 files changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index 0a98954f380f6..3f5c50c2c43ab 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -120,7 +120,7 @@ static void aten_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void aten_log_adapter(struct pi_adapter *pi, char *scratch) +static void aten_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 1a3e3d5b1b258..f475a25769f0d 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -416,11 +416,11 @@ static int bpck_test_port(struct pi_adapter *pi) /* check for 8-bit port */ return 5; } -static void bpck_log_adapter(struct pi_adapter *pi, char *scratch) +static void bpck_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = { "4-bit","8-bit","EPP-8", "EPP-16","EPP-32" }; - + char scratch[128]; #ifdef DUMP_EEPROM int i; #endif diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 68f7fdcab9bee..41395a97d77c1 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -195,7 +195,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) } } -static void bpck6_log_adapter(struct pi_adapter *pi, char *scratch) +static void bpck6_log_adapter(struct pi_adapter *pi) { char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 69a66658aa293..88476072b7085 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -179,7 +179,7 @@ static void comm_write_block(struct pi_adapter *pi, char *buf, int count) } } -static void comm_log_adapter(struct pi_adapter *pi, char *scratch) +static void comm_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index 17b1a7cb0a157..a8b238828061c 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -190,7 +190,7 @@ static void dstr_write_block(struct pi_adapter *pi, char *buf, int count) } -static void dstr_log_adapter(struct pi_adapter *pi, char *scratch) +static void dstr_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index b125df16f1608..a30313a2c3d78 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -287,7 +287,7 @@ static int epat_test_proto(struct pi_adapter *pi, char *scratch, int verbose) return (e[0] && e[1]) || f; } -static void epat_log_adapter(struct pi_adapter *pi, char *scratch) +static void epat_log_adapter(struct pi_adapter *pi) { int ver; char *mode_string[6] = diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 452d3a8e17af7..ece7862dc0582 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -272,7 +272,7 @@ static int epia_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void epia_log_adapter(struct pi_adapter *pi, char *scratch) +static void epia_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 632c51af84d76..056e92d8e015f 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -113,7 +113,7 @@ static void fit2_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void fit2_log_adapter(struct pi_adapter *pi, char *scratch) +static void fit2_log_adapter(struct pi_adapter *pi) { printk("fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index bdf90cb536c24..fa37f7f17fb27 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -169,7 +169,7 @@ static void fit3_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void fit3_log_adapter(struct pi_adapter *pi, char *scratch) +static void fit3_log_adapter(struct pi_adapter *pi) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index ee922b40bc95b..bf597ee520b7d 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -216,7 +216,7 @@ static int friq_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void friq_log_adapter(struct pi_adapter *pi, char *scratch) +static void friq_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index f17e0a4f66c29..9b8db1122154f 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -267,7 +267,7 @@ static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } -static void frpw_log_adapter(struct pi_adapter *pi, char *scratch) +static void frpw_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index 3718441f60aae..b23632c1da392 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -229,7 +229,7 @@ static void kbic_write_block(struct pi_adapter *pi, char *buf, int count) } -static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, char *chip) +static void kbic_log_adapter(struct pi_adapter *pi, char *chip) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; @@ -240,14 +240,14 @@ static void kbic_log_adapter(struct pi_adapter *pi, char *scratch, char *chip) } -static void k951_log_adapter(struct pi_adapter *pi, char *scratch) +static void k951_log_adapter(struct pi_adapter *pi) { - kbic_log_adapter(pi, scratch, "KBIC-951A"); + kbic_log_adapter(pi, "KBIC-951A"); } -static void k971_log_adapter(struct pi_adapter *pi, char *scratch) +static void k971_log_adapter(struct pi_adapter *pi) { - kbic_log_adapter(pi, scratch, "KBIC-971A"); + kbic_log_adapter(pi, "KBIC-971A"); } static struct pi_protocol k951 = { diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index ad7f0314f962d..62b0692d1b946 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -90,7 +90,7 @@ static void ktti_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static void ktti_log_adapter(struct pi_adapter *pi, char *scratch) +static void ktti_log_adapter(struct pi_adapter *pi) { printk("ktti %s, KT adapter at 0x%x, delay %d\n", diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index 12a423f619962..a3b0708aed712 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -111,7 +111,7 @@ static void on20_write_block(struct pi_adapter *pi, char *buf, int count) w2(4); } -static void on20_log_adapter(struct pi_adapter *pi, char *scratch) +static void on20_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index ee5a0cc74900e..8dc8296d50e60 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -275,7 +275,7 @@ static void on26_write_block(struct pi_adapter *pi, char *buf, int count) } -static void on26_log_adapter(struct pi_adapter *pi, char *scratch) +static void on26_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index 41180039f17d0..95a99051470cc 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -478,7 +478,7 @@ static struct pi_adapter *pi_init_one(struct parport *parport, goto out_unreg_parport; } - pi->proto->log_adapter(pi, scratch); + pi->proto->log_adapter(pi); host = ata_host_alloc_pinfo(&pi->pardev->dev, ppi, 1); if (!host) diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index 033cabede51c4..c44d30b3e8862 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -68,7 +68,7 @@ struct pi_protocol { int (*test_port)(struct pi_adapter *pi); int (*probe_unit)(struct pi_adapter *pi); int (*test_proto)(struct pi_adapter *pi, char *scratch, int verbose); - void (*log_adapter)(struct pi_adapter *pi, char *scratch); + void (*log_adapter)(struct pi_adapter *pi); int (*init_proto)(struct pi_adapter *pi); void (*release_proto)(struct pi_adapter *pi); From 5f1145d8304f93286be774482db6298c40dfe812 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:31 +0100 Subject: [PATCH 11/57] ata: pata_parport: use dev_* instead of printk Use dev_info/dev_err/dev_dbg instead of printk. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 4 +-- drivers/ata/pata_parport/bpck.c | 4 +-- drivers/ata/pata_parport/bpck6.c | 45 +++++++++----------------------- drivers/ata/pata_parport/comm.c | 4 +-- drivers/ata/pata_parport/dstr.c | 4 +-- drivers/ata/pata_parport/epat.c | 10 +++---- drivers/ata/pata_parport/epia.c | 10 +++---- drivers/ata/pata_parport/fit2.c | 2 +- drivers/ata/pata_parport/fit3.c | 2 +- drivers/ata/pata_parport/friq.c | 10 +++---- drivers/ata/pata_parport/frpw.c | 16 +++++------- drivers/ata/pata_parport/kbic.c | 4 +-- drivers/ata/pata_parport/ktti.c | 2 +- drivers/ata/pata_parport/on20.c | 4 +-- drivers/ata/pata_parport/on26.c | 6 ++--- 15 files changed, 48 insertions(+), 79 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index 3f5c50c2c43ab..ccbba14ccab10 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -124,8 +124,8 @@ static void aten_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; - printk("aten %s, ATEN EH-100 at 0x%x, ", ATEN_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "aten %s, ATEN EH-100 at 0x%x, ", ATEN_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index f475a25769f0d..1cba098b4b828 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -435,9 +435,9 @@ static void bpck_log_adapter(struct pi_adapter *pi) printk(" %64.64s\n", &scratch[64]); #endif - printk("bpck %s, backpack %8.8s unit %d", + dev_info(&pi->dev, "bpck %s, backpack %8.8s unit %d", BPCK_VERSION, &scratch[110], pi->unit); - printk(" at 0x%x, mode %d (%s), delay %d\n",pi->port, + dev_info(&pi->dev, " at 0x%x, mode %d (%s), delay %d\n", pi->port, pi->mode,mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 41395a97d77c1..4770e29bfdeb4 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -90,10 +90,7 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) static void bpck6_connect(struct pi_adapter *pi) { - if(verbose) - { - printk(KERN_DEBUG "connect\n"); - } + dev_dbg(&pi->dev, "connect\n"); if(pi->mode >=2) { @@ -114,22 +111,16 @@ static void bpck6_connect(struct pi_adapter *pi) static void bpck6_disconnect(struct pi_adapter *pi) { - if(verbose) - { - printk("disconnect\n"); - } + dev_dbg(&pi->dev, "disconnect\n"); ppc6_wr_extout(PPCSTRUCT(pi),0x0); ppc6_close(PPCSTRUCT(pi)); } static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { - if(verbose) - { - printk(KERN_DEBUG "PARPORT indicates modes=%x for lp=0x%lx\n", - ((struct pardevice*)(pi->pardev))->port->modes, - ((struct pardevice *)(pi->pardev))->port->base); - } + dev_dbg(&pi->dev, "PARPORT indicates modes=%x for lp=0x%lx\n", + ((struct pardevice *)(pi->pardev))->port->modes, + ((struct pardevice *)(pi->pardev))->port->base); /*copy over duplicate stuff.. initialize state info*/ PPCSTRUCT(pi)->ppc_id=pi->unit; @@ -158,10 +149,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) { int out; - if(verbose) - { - printk(KERN_DEBUG "PROBE UNIT %x on port:%x\n",pi->unit,pi->port); - } + dev_dbg(&pi->dev, "PROBE UNIT %x on port:%x\n", pi->unit, pi->port); /*SET PPC UNIT NUMBER*/ PPCSTRUCT(pi)->ppc_id=pi->unit; @@ -171,26 +159,17 @@ static int bpck6_probe_unit(struct pi_adapter *pi) out=ppc6_open(PPCSTRUCT(pi)); - if(verbose) - { - printk(KERN_DEBUG "ppc_open returned %2x\n",out); - } + dev_dbg(&pi->dev, "ppc_open returned %2x\n", out); if(out) { ppc6_close(PPCSTRUCT(pi)); - if(verbose) - { - printk(KERN_DEBUG "leaving probe\n"); - } + dev_dbg(&pi->dev, "leaving probe\n"); return(1); } else { - if(verbose) - { - printk(KERN_DEBUG "Failed open\n"); - } + dev_dbg(&pi->dev, "Failed open\n"); return(0); } } @@ -200,9 +179,9 @@ static void bpck6_log_adapter(struct pi_adapter *pi) char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - printk("BACKPACK %s, Micro Solutions BACKPACK Drive at 0x%x\n", + dev_info(&pi->dev, "BACKPACK %s, Micro Solutions BACKPACK Drive at 0x%x\n", BACKPACK_VERSION, pi->port); - printk("Unit: %d Mode:%d (%s) Delay %d\n", + dev_info(&pi->dev, "Unit: %d Mode:%d (%s) Delay %d\n", pi->unit,pi->mode,mode_string[pi->mode],pi->delay); } @@ -215,7 +194,7 @@ static int bpck6_init_proto(struct pi_adapter *pi) return 0; } - printk(KERN_ERR "ERROR COULDN'T ALLOCATE MEMORY\n"); + dev_err(&pi->dev, "ERROR COULDN'T ALLOCATE MEMORY\n"); return -1; } diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 88476072b7085..7b59eca52185c 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -183,8 +183,8 @@ static void comm_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - printk("comm %s, DataStor Commuter at 0x%x, ", COMM_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "comm %s, DataStor Commuter at 0x%x, ", COMM_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index a8b238828061c..eb6ddceaeb839 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -195,8 +195,8 @@ static void dstr_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - printk("dstr %s, DataStor EP2000 at 0x%x, ", DSTR_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "dstr %s, DataStor EP2000 at 0x%x, ", DSTR_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index a30313a2c3d78..389faa6ae49d0 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -279,10 +279,8 @@ static int epat_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } epat_disconnect(pi); - if (verbose) { - printk("epat: port 0x%x, mode %d, ccr %x, test=(%d,%d,%d)\n", - pi->port, pi->mode, cc, e[0], e[1], f); - } + dev_dbg(&pi->dev, "epat: port 0x%x, mode %d, ccr %x, test=(%d,%d,%d)\n", + pi->port, pi->mode, cc, e[0], e[1], f); return (e[0] && e[1]) || f; } @@ -298,9 +296,9 @@ static void epat_log_adapter(struct pi_adapter *pi) ver = RR(0xb); epat_disconnect(pi); - printk("epat %s, Shuttle EPAT chip %x at 0x%x, ", + dev_info(&pi->dev, "epat %s, Shuttle EPAT chip %x at 0x%x, ", EPAT_VERSION, ver, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index ece7862dc0582..48d12f56c5017 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -262,10 +262,8 @@ static int epia_test_proto(struct pi_adapter *pi, char *scratch, int verbose) WR(0x84,0); epia_disconnect(pi); - if (verbose) { - printk("epia: port 0x%x, mode %d, test=(%d,%d,%d)\n", - pi->port, pi->mode, e[0], e[1], f); - } + dev_dbg(&pi->dev, "epia: port 0x%x, mode %d, test=(%d,%d,%d)\n", + pi->port, pi->mode, e[0], e[1], f); return (e[0] && e[1]) || f; @@ -277,8 +275,8 @@ static void epia_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; - printk("epia %s, Shuttle EPIA at 0x%x, ", EPIA_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "epia %s, Shuttle EPIA at 0x%x, ", EPIA_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 056e92d8e015f..d0a781f04411a 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -116,7 +116,7 @@ static void fit2_disconnect(struct pi_adapter *pi) static void fit2_log_adapter(struct pi_adapter *pi) { - printk("fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", + dev_info(&pi->dev, "fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", FIT2_VERSION, pi->port, pi->delay); } diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index fa37f7f17fb27..f86da2d478cbb 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -173,7 +173,7 @@ static void fit3_log_adapter(struct pi_adapter *pi) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; - printk("fit3 %s, FIT 3000 adapter at 0x%x, " + dev_info(&pi->dev, "fit3 %s, FIT 3000 adapter at 0x%x, " "mode %d (%s), delay %d\n", FIT3_VERSION, pi->port, pi->mode,mode_string[pi->mode],pi->delay); diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index bf597ee520b7d..ec564e7cb9308 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -207,10 +207,8 @@ static int friq_test_proto(struct pi_adapter *pi, char *scratch, int verbose) for (k=0;k<128;k++) if (scratch[k] != k) r++; friq_disconnect(pi); - if (verbose) { - printk("friq: port 0x%x, mode %d, test=(%d,%d,%d)\n", - pi->port, pi->mode, e[0], e[1], r); - } + dev_dbg(&pi->dev, "friq: port 0x%x, mode %d, test=(%d,%d,%d)\n", + pi->port, pi->mode, e[0], e[1], r); return (r || (e[0] && e[1])); } @@ -221,9 +219,9 @@ static void friq_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; - printk("friq %s, Freecom IQ ASIC-2 adapter at 0x%x, ", + dev_info(&pi->dev, "friq %s, Freecom IQ ASIC-2 adapter at 0x%x, ", FRIQ_VERSION,pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); pi->private = 1; diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 9b8db1122154f..5ea16a2472578 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -230,14 +230,12 @@ static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) pi->private = frpw_test_pnp(pi) + 2*pi->port; if (((pi->private%2) == 0) && (pi->mode > 2)) { - if (verbose) - printk("frpw: Xilinx does not support mode %d\n", pi->mode); + dev_dbg(&pi->dev, "frpw: Xilinx does not support mode %d\n", pi->mode); return 1; } if (((pi->private%2) == 1) && (pi->mode == 2)) { - if (verbose) - printk("frpw: ASIC does not support mode 2\n"); + dev_dbg(&pi->dev, "frpw: ASIC does not support mode 2\n"); return 1; } @@ -258,10 +256,8 @@ static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) for (k=0;k<128;k++) if (scratch[k] != k) r++; frpw_disconnect(pi); - if (verbose) { - printk("frpw: port 0x%x, chip %ld, mode %d, test=(%d,%d,%d)\n", - pi->port, (pi->private%2), pi->mode, e[0], e[1], r); - } + dev_dbg(&pi->dev, "frpw: port 0x%x, chip %ld, mode %d, test=(%d,%d,%d)\n", + pi->port, (pi->private%2), pi->mode, e[0], e[1], r); return (r || (e[0] && e[1])); } @@ -272,9 +268,9 @@ static void frpw_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; - printk("frpw %s, Freecom (%s) adapter at 0x%x, ", + dev_info(&pi->dev, "frpw %s, Freecom (%s) adapter at 0x%x, ", FRPW_VERSION,((pi->private%2) == 0)?"Xilinx":"ASIC",pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index b23632c1da392..ea1b931ce20da 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -234,8 +234,8 @@ static void kbic_log_adapter(struct pi_adapter *pi, char *chip) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; - printk("kbic %s, KingByte %s at 0x%x, ", KBIC_VERSION, chip, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "kbic %s, KingByte %s at 0x%x, ", KBIC_VERSION, chip, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index 62b0692d1b946..b22c283709dec 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -93,7 +93,7 @@ static void ktti_disconnect(struct pi_adapter *pi) static void ktti_log_adapter(struct pi_adapter *pi) { - printk("ktti %s, KT adapter at 0x%x, delay %d\n", + dev_info(&pi->dev, "ktti %s, KT adapter at 0x%x, delay %d\n", KTTI_VERSION, pi->port, pi->delay); } diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index a3b0708aed712..c76d4fb84c611 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -115,8 +115,8 @@ static void on20_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; - printk("on20 %s, OnSpec 90c20 at 0x%x, ", ON20_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "on20 %s, OnSpec 90c20 at 0x%x, ", ON20_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 8dc8296d50e60..5406e76ea7277 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -167,7 +167,7 @@ static int on26_test_port(struct pi_adapter *pi) /* hard reset */ } if (i == RESET_WAIT) - printk("on26: Device reset failed (%x,%x)\n",x,y); + dev_err(&pi->dev, "on26: Device reset failed (%x,%x)\n", x, y); w0(4); P1; w0(4); P1; } @@ -280,8 +280,8 @@ static void on26_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - printk("on26 %s, OnSpec 90c26 at 0x%x, ", ON26_VERSION, pi->port); - printk("mode %d (%s), delay %d\n",pi->mode, + dev_info(&pi->dev, "on26 %s, OnSpec 90c26 at 0x%x, ", ON26_VERSION, pi->port); + dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, mode_string[pi->mode],pi->delay); } From 68f28e4177623a05da44f076a952d0704e7baa05 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:32 +0100 Subject: [PATCH 12/57] ata: pata_parport: use print_hex_* Use print_hex_* for debug dumps. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 1cba098b4b828..dec24983d1409 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -334,12 +334,9 @@ static int bpck_test_proto(struct pi_adapter *pi, char *scratch, int verbose) } - if (verbose) { - printk("bpck: 0x%x unit %d mode %d: ", - pi->port, pi->unit, pi->mode); - for (i=0;idev, "bpck: 0x%x unit %d mode %d: ", + pi->port, pi->unit, pi->mode); + print_hex_dump_debug("bpck: ", DUMP_PREFIX_NONE, TEST_LEN, 1, buf, TEST_LEN, false); e = 0; for (i=0;i '~')) - scratch[i] = '.'; - printk("bpck EEPROM: %64.64s\n", scratch); - printk(" %64.64s\n", &scratch[64]); -#endif - + print_hex_dump_bytes("bpck EEPROM: ", DUMP_PREFIX_NONE, scratch, 128); dev_info(&pi->dev, "bpck %s, backpack %8.8s unit %d", BPCK_VERSION, &scratch[110], pi->unit); dev_info(&pi->dev, " at 0x%x, mode %d (%s), delay %d\n", pi->port, From 426eb3c567d3369e20d7ff4e7e8e1049946d0272 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:33 +0100 Subject: [PATCH 13/57] ata: pata_parport: simplify log_adapter prints, remove VERSION defines Merge log_adapter prints to single one, remove version print and meaningless VERSION defines. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 8 ++------ drivers/ata/pata_parport/bpck.c | 9 +++------ drivers/ata/pata_parport/bpck6.c | 9 ++------- drivers/ata/pata_parport/comm.c | 8 ++------ drivers/ata/pata_parport/dstr.c | 8 ++------ drivers/ata/pata_parport/epat.c | 9 ++------- drivers/ata/pata_parport/epia.c | 8 ++------ drivers/ata/pata_parport/fit2.c | 6 ++---- drivers/ata/pata_parport/fit3.c | 9 ++------- drivers/ata/pata_parport/friq.c | 8 ++------ drivers/ata/pata_parport/frpw.c | 10 +++------- drivers/ata/pata_parport/kbic.c | 8 ++------ drivers/ata/pata_parport/ktti.c | 7 ++----- drivers/ata/pata_parport/on20.c | 8 ++------ drivers/ata/pata_parport/on26.c | 8 ++------ 15 files changed, 32 insertions(+), 91 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index ccbba14ccab10..8995a4a08b76e 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -15,8 +15,6 @@ */ -#define ATEN_VERSION "1.01" - #include #include #include @@ -124,10 +122,8 @@ static void aten_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; - dev_info(&pi->dev, "aten %s, ATEN EH-100 at 0x%x, ", ATEN_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "ATEN EH-100 at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol aten = { diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index dec24983d1409..793ef2c7849ed 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -14,8 +14,6 @@ */ -#define BPCK_VERSION "1.02" - #include #include #include @@ -421,10 +419,9 @@ static void bpck_log_adapter(struct pi_adapter *pi) bpck_read_eeprom(pi,scratch); print_hex_dump_bytes("bpck EEPROM: ", DUMP_PREFIX_NONE, scratch, 128); - dev_info(&pi->dev, "bpck %s, backpack %8.8s unit %d", - BPCK_VERSION, &scratch[110], pi->unit); - dev_info(&pi->dev, " at 0x%x, mode %d (%s), delay %d\n", pi->port, - pi->mode,mode_string[pi->mode],pi->delay); + dev_info(&pi->dev, "backpack %8.8s unit %d at 0x%x, mode %d (%s), delay %d\n", + &scratch[110], pi->unit, pi->port, pi->mode, + mode_string[pi->mode], pi->delay); } static struct pi_protocol bpck = { diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 4770e29bfdeb4..f144e1b3cacb7 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -19,9 +19,6 @@ Version 2.0.2 - fixed version string usage, and made ppc functions static */ - -#define BACKPACK_VERSION "2.0.2" - #include #include #include @@ -179,10 +176,8 @@ static void bpck6_log_adapter(struct pi_adapter *pi) char *mode_string[5]= {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - dev_info(&pi->dev, "BACKPACK %s, Micro Solutions BACKPACK Drive at 0x%x\n", - BACKPACK_VERSION, pi->port); - dev_info(&pi->dev, "Unit: %d Mode:%d (%s) Delay %d\n", - pi->unit,pi->mode,mode_string[pi->mode],pi->delay); + dev_info(&pi->dev, "Micro Solutions BACKPACK Drive unit %d at 0x%x, mode:%d (%s), delay %d\n", + pi->unit, pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static int bpck6_init_proto(struct pi_adapter *pi) diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 7b59eca52185c..6e05b50c322c7 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -14,8 +14,6 @@ */ -#define COMM_VERSION "1.01" - #include #include #include @@ -183,10 +181,8 @@ static void comm_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8","EPP-16","EPP-32"}; - dev_info(&pi->dev, "comm %s, DataStor Commuter at 0x%x, ", COMM_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "DataStor Commuter at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol comm = { diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index eb6ddceaeb839..64e45eed95881 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -13,8 +13,6 @@ */ -#define DSTR_VERSION "1.01" - #include #include #include @@ -195,10 +193,8 @@ static void dstr_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - dev_info(&pi->dev, "dstr %s, DataStor EP2000 at 0x%x, ", DSTR_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "DataStor EP2000 at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol dstr = { diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 389faa6ae49d0..12dd53a06dd0b 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -16,8 +16,6 @@ */ -#define EPAT_VERSION "1.02" - #include #include #include @@ -296,11 +294,8 @@ static void epat_log_adapter(struct pi_adapter *pi) ver = RR(0xb); epat_disconnect(pi); - dev_info(&pi->dev, "epat %s, Shuttle EPAT chip %x at 0x%x, ", - EPAT_VERSION, ver, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "Shuttle EPAT chip %x at 0x%x, mode %d (%s), delay %d\n", + ver, pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol epat = { diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 48d12f56c5017..1216763d0c6d4 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -17,8 +17,6 @@ */ -#define EPIA_VERSION "1.02" - #include #include #include @@ -275,10 +273,8 @@ static void epia_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP-16","EPP-32"}; - dev_info(&pi->dev, "epia %s, Shuttle EPIA at 0x%x, ", EPIA_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "Shuttle EPIA at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol epia = { diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index d0a781f04411a..3536d8c07955f 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -13,8 +13,6 @@ */ -#define FIT2_VERSION "1.0" - #include #include #include @@ -116,8 +114,8 @@ static void fit2_disconnect(struct pi_adapter *pi) static void fit2_log_adapter(struct pi_adapter *pi) { - dev_info(&pi->dev, "fit2 %s, FIT 2000 adapter at 0x%x, delay %d\n", - FIT2_VERSION, pi->port, pi->delay); + dev_info(&pi->dev, "FIT 2000 adapter at 0x%x, delay %d\n", + pi->port, pi->delay); } diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index f86da2d478cbb..9f5320c750e29 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -17,8 +17,6 @@ */ -#define FIT3_VERSION "1.0" - #include #include #include @@ -173,11 +171,8 @@ static void fit3_log_adapter(struct pi_adapter *pi) { char *mode_string[3] = {"4-bit","8-bit","EPP"}; - dev_info(&pi->dev, "fit3 %s, FIT 3000 adapter at 0x%x, " - "mode %d (%s), delay %d\n", - FIT3_VERSION, pi->port, - pi->mode,mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "FIT 3000 adapter at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol fit3 = { diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index ec564e7cb9308..ed05e6503147a 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -25,8 +25,6 @@ 1.01 GRG 1998.12.20 Added support for soft power switch */ -#define FRIQ_VERSION "1.01" - #include #include #include @@ -219,10 +217,8 @@ static void friq_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit", "EPP-8","EPP-16","EPP-32"}; - dev_info(&pi->dev, "friq %s, Freecom IQ ASIC-2 adapter at 0x%x, ", - FRIQ_VERSION,pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); + dev_info(&pi->dev, "Freecom IQ ASIC-2 adapter at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); pi->private = 1; friq_connect(pi); diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 5ea16a2472578..c0d50e2ed57d0 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -23,8 +23,6 @@ */ -#define FRPW_VERSION "1.03" - #include #include #include @@ -268,11 +266,9 @@ static void frpw_log_adapter(struct pi_adapter *pi) { char *mode_string[6] = {"4-bit","8-bit","EPP", "EPP-8","EPP-16","EPP-32"}; - dev_info(&pi->dev, "frpw %s, Freecom (%s) adapter at 0x%x, ", - FRPW_VERSION,((pi->private%2) == 0)?"Xilinx":"ASIC",pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "Freecom (%s) adapter at 0x%x, mode %d (%s), delay %d\n", + ((pi->private % 2) == 0) ? "Xilinx" : "ASIC", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol frpw = { diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index ea1b931ce20da..3fab7a896e796 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -18,8 +18,6 @@ */ -#define KBIC_VERSION "1.01" - #include #include #include @@ -234,10 +232,8 @@ static void kbic_log_adapter(struct pi_adapter *pi, char *chip) { char *mode_string[6] = {"4-bit","5/3","8-bit", "EPP-8","EPP_16","EPP-32"}; - dev_info(&pi->dev, "kbic %s, KingByte %s at 0x%x, ", KBIC_VERSION, chip, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "KingByte %s at 0x%x, mode %d (%s), delay %d\n", + chip, pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static void k951_log_adapter(struct pi_adapter *pi) diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index b22c283709dec..742051f6ea10d 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -9,8 +9,6 @@ */ -#define KTTI_VERSION "1.0" - #include #include #include @@ -93,9 +91,8 @@ static void ktti_disconnect(struct pi_adapter *pi) static void ktti_log_adapter(struct pi_adapter *pi) { - dev_info(&pi->dev, "ktti %s, KT adapter at 0x%x, delay %d\n", - KTTI_VERSION, pi->port, pi->delay); - + dev_info(&pi->dev, "KT adapter at 0x%x, delay %d\n", + pi->port, pi->delay); } static struct pi_protocol ktti = { diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index c76d4fb84c611..9cc8be9fa5629 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -12,8 +12,6 @@ */ -#define ON20_VERSION "1.01" - #include #include #include @@ -115,10 +113,8 @@ static void on20_log_adapter(struct pi_adapter *pi) { char *mode_string[2] = {"4-bit","8-bit"}; - dev_info(&pi->dev, "on20 %s, OnSpec 90c20 at 0x%x, ", ON20_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "OnSpec 90c20 at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol on20 = { diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 5406e76ea7277..e37f69db5f769 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -16,8 +16,6 @@ */ -#define ON26_VERSION "1.04" - #include #include #include @@ -280,10 +278,8 @@ static void on26_log_adapter(struct pi_adapter *pi) { char *mode_string[5] = {"4-bit","8-bit","EPP-8", "EPP-16","EPP-32"}; - dev_info(&pi->dev, "on26 %s, OnSpec 90c26 at 0x%x, ", ON26_VERSION, pi->port); - dev_info(&pi->dev, "mode %d (%s), delay %d\n", pi->mode, - mode_string[pi->mode],pi->delay); - + dev_info(&pi->dev, "OnSpec 90c26 at 0x%x, mode %d (%s), delay %d\n", + pi->port, pi->mode, mode_string[pi->mode], pi->delay); } static struct pi_protocol on26 = { From a36a7068274fc9c4f2a4ea97156425b609f276ca Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:34 +0100 Subject: [PATCH 14/57] ata: pata_parport: remove bpck6 verbose parameter Remove now useless verbose parameter of bpck6 module. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index f144e1b3cacb7..f0ab30fa739ae 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -30,10 +30,6 @@ #include "ppc6lnx.c" #include -/* PARAMETERS */ -static bool verbose; /* set this to 1 to see debugging messages and whatnot */ - - #define PPCSTRUCT(pi) ((Interface *)(pi->private)) /****************************************************************/ @@ -220,5 +216,4 @@ static struct pi_protocol bpck6 = { MODULE_LICENSE("GPL"); MODULE_AUTHOR("Micro Solutions Inc."); MODULE_DESCRIPTION("BACKPACK Protocol module, compatible with PARIDE"); -module_param(verbose, bool, 0644); module_pata_parport_driver(bpck6); From 8d7494a06a14ce8e2d792b95f28c839367a8ebdc Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:35 +0100 Subject: [PATCH 15/57] ata: pata_parport: remove verbose parameter from test_proto() verbose parameter of test_proto() is now unused, remove it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck.c | 2 +- drivers/ata/pata_parport/epat.c | 2 +- drivers/ata/pata_parport/epia.c | 2 +- drivers/ata/pata_parport/friq.c | 2 +- drivers/ata/pata_parport/frpw.c | 2 +- drivers/ata/pata_parport/pata_parport.c | 2 +- include/linux/pata_parport.h | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 793ef2c7849ed..2072e291fd168 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -274,7 +274,7 @@ static void bpck_force_spp(struct pi_adapter *pi) #define TEST_LEN 16 -static int bpck_test_proto(struct pi_adapter *pi, char *scratch, int verbose) +static int bpck_test_proto(struct pi_adapter *pi, char *scratch) { int i, e, l, h, om; char buf[TEST_LEN]; diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 12dd53a06dd0b..4877b39ed04cd 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -246,7 +246,7 @@ static void epat_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static int epat_test_proto(struct pi_adapter *pi, char *scratch, int verbose) +static int epat_test_proto(struct pi_adapter *pi, char *scratch) { int k, j, f, cc; int e[2] = {0,0}; diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 1216763d0c6d4..e7401351463a5 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -232,7 +232,7 @@ static void epia_write_block(struct pi_adapter *pi, char *buf, int count) } -static int epia_test_proto(struct pi_adapter *pi, char *scratch, int verbose) +static int epia_test_proto(struct pi_adapter *pi, char *scratch) { int j, k, f; int e[2] = {0,0}; diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index ed05e6503147a..df15b210f355b 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -178,7 +178,7 @@ static void friq_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static int friq_test_proto(struct pi_adapter *pi, char *scratch, int verbose) +static int friq_test_proto(struct pi_adapter *pi, char *scratch) { int j, k, r; int e[2] = {0,0}; diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index c0d50e2ed57d0..0d4e848063500 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -219,7 +219,7 @@ static int frpw_test_pnp(struct pi_adapter *pi) a hack :-( */ -static int frpw_test_proto(struct pi_adapter *pi, char *scratch, int verbose) +static int frpw_test_proto(struct pi_adapter *pi, char *scratch) { int j, k, r; int e[2] = {0,0}; diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index 95a99051470cc..c855937889517 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -306,7 +306,7 @@ static int pi_test_proto(struct pi_adapter *pi, char *scratch) parport_claim_or_block(pi->pardev); if (pi->proto->test_proto) - res = pi->proto->test_proto(pi, scratch, 1); + res = pi->proto->test_proto(pi, scratch); else res = default_test_proto(pi, scratch); parport_release(pi->pardev); diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index c44d30b3e8862..e45bb18960032 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -67,7 +67,7 @@ struct pi_protocol { int (*test_port)(struct pi_adapter *pi); int (*probe_unit)(struct pi_adapter *pi); - int (*test_proto)(struct pi_adapter *pi, char *scratch, int verbose); + int (*test_proto)(struct pi_adapter *pi, char *scratch); void (*log_adapter)(struct pi_adapter *pi); int (*init_proto)(struct pi_adapter *pi); From b42251a867a9859a57228c0eadd6f342a339b83d Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:36 +0100 Subject: [PATCH 16/57] ata: pata_parport: remove scratch parameter from test_proto() Don't pass around a pointer to scratch buffer. Use local buffers in protocols that need it. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck.c | 2 +- drivers/ata/pata_parport/epat.c | 3 ++- drivers/ata/pata_parport/epia.c | 3 ++- drivers/ata/pata_parport/friq.c | 3 ++- drivers/ata/pata_parport/frpw.c | 3 ++- drivers/ata/pata_parport/pata_parport.c | 23 +++++++++++------------ include/linux/pata_parport.h | 2 +- 7 files changed, 21 insertions(+), 18 deletions(-) diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 2072e291fd168..ecb98bf0e6deb 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -274,7 +274,7 @@ static void bpck_force_spp(struct pi_adapter *pi) #define TEST_LEN 16 -static int bpck_test_proto(struct pi_adapter *pi, char *scratch) +static int bpck_test_proto(struct pi_adapter *pi) { int i, e, l, h, om; char buf[TEST_LEN]; diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 4877b39ed04cd..609614b2c69e7 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -246,10 +246,11 @@ static void epat_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static int epat_test_proto(struct pi_adapter *pi, char *scratch) +static int epat_test_proto(struct pi_adapter *pi) { int k, j, f, cc; int e[2] = {0,0}; + char scratch[512]; epat_connect(pi); cc = RR(0xd); diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index e7401351463a5..970532619aeb5 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -232,10 +232,11 @@ static void epia_write_block(struct pi_adapter *pi, char *buf, int count) } -static int epia_test_proto(struct pi_adapter *pi, char *scratch) +static int epia_test_proto(struct pi_adapter *pi) { int j, k, f; int e[2] = {0,0}; + char scratch[512]; epia_connect(pi); for (j=0;j<2;j++) { diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index df15b210f355b..1888e8bcb8843 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -178,10 +178,11 @@ static void friq_disconnect(struct pi_adapter *pi) w2(pi->saved_r2); } -static int friq_test_proto(struct pi_adapter *pi, char *scratch) +static int friq_test_proto(struct pi_adapter *pi) { int j, k, r; int e[2] = {0,0}; + char scratch[512]; pi->saved_r0 = r0(); w0(0xff); udelay(20); CMD(0x3d); /* turn the power on */ diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 0d4e848063500..484b5b9d31eba 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -219,10 +219,11 @@ static int frpw_test_pnp(struct pi_adapter *pi) a hack :-( */ -static int frpw_test_proto(struct pi_adapter *pi, char *scratch) +static int frpw_test_proto(struct pi_adapter *pi) { int j, k, r; int e[2] = {0,0}; + char scratch[512]; if ((pi->private>>1) != pi->port) pi->private = frpw_test_pnp(pi) + 2*pi->port; diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index c855937889517..b6499f2160da8 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -276,7 +276,7 @@ static void pi_release(struct pi_adapter *pi) module_put(pi->proto->owner); } -static int default_test_proto(struct pi_adapter *pi, char *scratch) +static int default_test_proto(struct pi_adapter *pi) { int j, k; int e[2] = { 0, 0 }; @@ -300,21 +300,21 @@ static int default_test_proto(struct pi_adapter *pi, char *scratch) return e[0] && e[1]; /* not here if both > 0 */ } -static int pi_test_proto(struct pi_adapter *pi, char *scratch) +static int pi_test_proto(struct pi_adapter *pi) { int res; parport_claim_or_block(pi->pardev); if (pi->proto->test_proto) - res = pi->proto->test_proto(pi, scratch); + res = pi->proto->test_proto(pi); else - res = default_test_proto(pi, scratch); + res = default_test_proto(pi); parport_release(pi->pardev); return res; } -static bool pi_probe_mode(struct pi_adapter *pi, int max, char *scratch) +static bool pi_probe_mode(struct pi_adapter *pi, int max) { int best, range; @@ -326,7 +326,7 @@ static bool pi_probe_mode(struct pi_adapter *pi, int max, char *scratch) range = 8; if (range == 8 && pi->port % 8) return false; - return !pi_test_proto(pi, scratch); + return !pi_test_proto(pi); } best = -1; for (pi->mode = 0; pi->mode < max; pi->mode++) { @@ -335,14 +335,14 @@ static bool pi_probe_mode(struct pi_adapter *pi, int max, char *scratch) range = 8; if (range == 8 && pi->port % 8) break; - if (!pi_test_proto(pi, scratch)) + if (!pi_test_proto(pi)) best = pi->mode; } pi->mode = best; return best > -1; } -static bool pi_probe_unit(struct pi_adapter *pi, int unit, char *scratch) +static bool pi_probe_unit(struct pi_adapter *pi, int unit) { int max, s, e; @@ -367,14 +367,14 @@ static bool pi_probe_unit(struct pi_adapter *pi, int unit, char *scratch) for (pi->unit = s; pi->unit < e; pi->unit++) { if (pi->proto->probe_unit(pi)) { parport_release(pi->pardev); - return pi_probe_mode(pi, max, scratch); + return pi_probe_mode(pi, max); } } parport_release(pi->pardev); return false; } - return pi_probe_mode(pi, max, scratch); + return pi_probe_mode(pi, max); } static void pata_parport_dev_release(struct device *dev) @@ -420,7 +420,6 @@ static struct pi_adapter *pi_init_one(struct parport *parport, struct pi_protocol *pr, int mode, int unit, int delay) { struct pardev_cb par_cb = { }; - char scratch[512]; const struct ata_port_info *ppi[] = { &pata_parport_port_info }; struct ata_host *host; struct pi_adapter *pi; @@ -473,7 +472,7 @@ static struct pi_adapter *pi_init_one(struct parport *parport, if (!pi->pardev) goto out_module_put; - if (!pi_probe_unit(pi, unit, scratch)) { + if (!pi_probe_unit(pi, unit)) { dev_info(&pi->dev, "Adapter not found\n"); goto out_unreg_parport; } diff --git a/include/linux/pata_parport.h b/include/linux/pata_parport.h index e45bb18960032..bbfa4e63ee859 100644 --- a/include/linux/pata_parport.h +++ b/include/linux/pata_parport.h @@ -67,7 +67,7 @@ struct pi_protocol { int (*test_port)(struct pi_adapter *pi); int (*probe_unit)(struct pi_adapter *pi); - int (*test_proto)(struct pi_adapter *pi, char *scratch); + int (*test_proto)(struct pi_adapter *pi); void (*log_adapter)(struct pi_adapter *pi); int (*init_proto)(struct pi_adapter *pi); From 01985290f61aecd0de191476f77b5dd6b2d15971 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:37 +0100 Subject: [PATCH 17/57] ata: pata_parport: remove obsolete changelogs Remove obsolete changelogs from protocol drivers. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 6 ------ drivers/ata/pata_parport/bpck.c | 7 ------- drivers/ata/pata_parport/bpck6.c | 8 -------- drivers/ata/pata_parport/comm.c | 6 ------ drivers/ata/pata_parport/dstr.c | 6 ------ drivers/ata/pata_parport/epat.c | 7 ------- drivers/ata/pata_parport/epia.c | 7 ------- drivers/ata/pata_parport/friq.c | 5 ----- drivers/ata/pata_parport/frpw.c | 10 ---------- drivers/ata/pata_parport/kbic.c | 6 ------ drivers/ata/pata_parport/on20.c | 6 ------ drivers/ata/pata_parport/on26.c | 9 --------- 12 files changed, 83 deletions(-) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index 8995a4a08b76e..f0d63b8513e0d 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -9,12 +9,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.05 init_proto, release_proto - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index ecb98bf0e6deb..472029a21d59d 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -7,13 +7,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.05 init_proto, release_proto, pi->delay - 1.02 GRG 1998.08.15 default pi->delay returned to 4 - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index f0ab30fa739ae..683a11131acdb 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -11,14 +11,6 @@ */ -/* - This is Ken's linux wrapper for the PPC library - Version 1.0.0 is the backpack driver for which source is not available - Version 2.0.0 is the first to have source released - Version 2.0.1 is the "Cox-ified" source code - Version 2.0.2 - fixed version string usage, and made ppc functions static -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 6e05b50c322c7..0483caa805445 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -8,12 +8,6 @@ use this adapter. */ -/* Changes: - - 1.01 GRG 1998.05.05 init_proto, release_proto - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index 64e45eed95881..c5af7a5fa636a 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -7,12 +7,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 609614b2c69e7..0315f98326f8c 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -9,13 +9,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - 1.02 Joshua b. Jore CPP(renamed), epat_connect, epat_disconnect - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 970532619aeb5..77869639773d8 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -10,13 +10,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - 1.02 GRG 1998.06.17 support older versions of EPIA - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index 1888e8bcb8843..8883b3c509ccc 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -20,11 +20,6 @@ */ -/* Changes: - - 1.01 GRG 1998.12.20 Added support for soft power switch -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 484b5b9d31eba..1ef8be79d793a 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -13,16 +13,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - fix chip detect - added EPP-16 and EPP-32 - 1.02 GRG 1998.09.23 added hard reset to initialisation process - 1.03 GRG 1998.12.14 made hard reset conditional - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index 3fab7a896e796..29f4f1e14d219 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -12,12 +12,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index 9cc8be9fa5629..6956b91efb479 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -6,12 +6,6 @@ Onspec 90c20 parallel to IDE adapter. */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - -*/ - #include #include #include diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index e37f69db5f769..1d90eb9b541ed 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -7,15 +7,6 @@ */ -/* Changes: - - 1.01 GRG 1998.05.06 init_proto, release_proto - 1.02 GRG 1998.09.23 updates for the -E rev chip - 1.03 GRG 1998.12.14 fix for slave drives - 1.04 GRG 1998.12.20 yet another bug fix - -*/ - #include #include #include From fe027ff984c61f4ac5e79823fef30ced4f46d23d Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Sat, 18 Feb 2023 23:01:38 +0100 Subject: [PATCH 18/57] ata: pata_parport: move pata_parport.h to drivers/ata/pata_parport Now that paride is gone, pata_parport.h does not need to be in include/linux. Move it to drivers/ata/pata_parport. Reviewed-by: Sergey Shtylyov Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/aten.c | 3 +-- drivers/ata/pata_parport/bpck.c | 3 +-- drivers/ata/pata_parport/bpck6.c | 3 +-- drivers/ata/pata_parport/comm.c | 3 +-- drivers/ata/pata_parport/dstr.c | 3 +-- drivers/ata/pata_parport/epat.c | 3 +-- drivers/ata/pata_parport/epia.c | 3 +-- drivers/ata/pata_parport/fit2.c | 3 +-- drivers/ata/pata_parport/fit3.c | 3 +-- drivers/ata/pata_parport/friq.c | 3 +-- drivers/ata/pata_parport/frpw.c | 3 +-- drivers/ata/pata_parport/kbic.c | 3 +-- drivers/ata/pata_parport/ktti.c | 3 +-- drivers/ata/pata_parport/on20.c | 3 +-- drivers/ata/pata_parport/on26.c | 3 +-- drivers/ata/pata_parport/pata_parport.c | 2 +- {include/linux => drivers/ata/pata_parport}/pata_parport.h | 0 17 files changed, 16 insertions(+), 31 deletions(-) rename {include/linux => drivers/ata/pata_parport}/pata_parport.h (100%) diff --git a/drivers/ata/pata_parport/aten.c b/drivers/ata/pata_parport/aten.c index f0d63b8513e0d..1bd248c42f8b7 100644 --- a/drivers/ata/pata_parport/aten.c +++ b/drivers/ata/pata_parport/aten.c @@ -16,8 +16,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define j44(a,b) ((((a>>4)&0x0f)|(b&0xf0))^0x88) diff --git a/drivers/ata/pata_parport/bpck.c b/drivers/ata/pata_parport/bpck.c index 472029a21d59d..1c5035a09554a 100644 --- a/drivers/ata/pata_parport/bpck.c +++ b/drivers/ata/pata_parport/bpck.c @@ -14,8 +14,7 @@ #include #include #include - -#include +#include "pata_parport.h" #undef r2 #undef w2 diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 683a11131acdb..964bc688e2809 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -18,9 +18,8 @@ #include #include #include - #include "ppc6lnx.c" -#include +#include "pata_parport.h" #define PPCSTRUCT(pi) ((Interface *)(pi->private)) diff --git a/drivers/ata/pata_parport/comm.c b/drivers/ata/pata_parport/comm.c index 0483caa805445..4c2f9ad60ad8a 100644 --- a/drivers/ata/pata_parport/comm.c +++ b/drivers/ata/pata_parport/comm.c @@ -15,8 +15,7 @@ #include #include #include - -#include +#include "pata_parport.h" /* mode codes: 0 nybble reads, 8-bit writes 1 8-bit reads and writes diff --git a/drivers/ata/pata_parport/dstr.c b/drivers/ata/pata_parport/dstr.c index c5af7a5fa636a..2524684be206d 100644 --- a/drivers/ata/pata_parport/dstr.c +++ b/drivers/ata/pata_parport/dstr.c @@ -14,8 +14,7 @@ #include #include #include - -#include +#include "pata_parport.h" /* mode codes: 0 nybble reads, 8-bit writes 1 8-bit reads and writes diff --git a/drivers/ata/pata_parport/epat.c b/drivers/ata/pata_parport/epat.c index 0315f98326f8c..b146999368ae8 100644 --- a/drivers/ata/pata_parport/epat.c +++ b/drivers/ata/pata_parport/epat.c @@ -16,8 +16,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define j44(a,b) (((a>>4)&0x0f)+(b&0xf0)) #define j53(a,b) (((a>>3)&0x1f)+((b<<4)&0xe0)) diff --git a/drivers/ata/pata_parport/epia.c b/drivers/ata/pata_parport/epia.c index 77869639773d8..f6db2f79fe999 100644 --- a/drivers/ata/pata_parport/epia.c +++ b/drivers/ata/pata_parport/epia.c @@ -17,8 +17,7 @@ #include #include #include - -#include +#include "pata_parport.h" /* mode codes: 0 nybble reads on port 1, 8-bit writes 1 5/3 reads on ports 1 & 2, 8-bit writes diff --git a/drivers/ata/pata_parport/fit2.c b/drivers/ata/pata_parport/fit2.c index 3536d8c07955f..fd3b2ce426a5f 100644 --- a/drivers/ata/pata_parport/fit2.c +++ b/drivers/ata/pata_parport/fit2.c @@ -20,8 +20,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define j44(a,b) (((a>>4)&0x0f)|(b&0xf0)) diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c index 9f5320c750e29..75df656ac472e 100644 --- a/drivers/ata/pata_parport/fit3.c +++ b/drivers/ata/pata_parport/fit3.c @@ -24,8 +24,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define j44(a,b) (((a>>3)&0x0f)|((b<<1)&0xf0)) diff --git a/drivers/ata/pata_parport/friq.c b/drivers/ata/pata_parport/friq.c index 8883b3c509ccc..1647264cd9a8d 100644 --- a/drivers/ata/pata_parport/friq.c +++ b/drivers/ata/pata_parport/friq.c @@ -27,8 +27,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define CMD(x) w2(4);w0(0xff);w0(0xff);w0(0x73);w0(0x73);\ w0(0xc9);w0(0xc9);w0(0x26);w0(0x26);w0(x);w0(x); diff --git a/drivers/ata/pata_parport/frpw.c b/drivers/ata/pata_parport/frpw.c index 1ef8be79d793a..3ec0abf16fa6f 100644 --- a/drivers/ata/pata_parport/frpw.c +++ b/drivers/ata/pata_parport/frpw.c @@ -20,8 +20,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define cec4 w2(0xc);w2(0xe);w2(0xe);w2(0xc);w2(4);w2(4);w2(4); #define j44(l,h) (((l>>4)&0x0f)|(h&0xf0)) diff --git a/drivers/ata/pata_parport/kbic.c b/drivers/ata/pata_parport/kbic.c index 29f4f1e14d219..8213e62f8f007 100644 --- a/drivers/ata/pata_parport/kbic.c +++ b/drivers/ata/pata_parport/kbic.c @@ -19,8 +19,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define r12w() (delay_p,inw(pi->port+1)&0xffff) diff --git a/drivers/ata/pata_parport/ktti.c b/drivers/ata/pata_parport/ktti.c index 742051f6ea10d..4890b1f123487 100644 --- a/drivers/ata/pata_parport/ktti.c +++ b/drivers/ata/pata_parport/ktti.c @@ -16,8 +16,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define j44(a,b) (((a>>4)&0x0f)|(b&0xf0)) diff --git a/drivers/ata/pata_parport/on20.c b/drivers/ata/pata_parport/on20.c index 6956b91efb479..276ace12d4908 100644 --- a/drivers/ata/pata_parport/on20.c +++ b/drivers/ata/pata_parport/on20.c @@ -13,8 +13,7 @@ #include #include #include - -#include +#include "pata_parport.h" #define op(f) w2(4);w0(f);w2(5);w2(0xd);w2(5);w2(0xd);w2(5);w2(4); #define vl(v) w2(4);w0(v);w2(5);w2(7);w2(5);w2(4); diff --git a/drivers/ata/pata_parport/on26.c b/drivers/ata/pata_parport/on26.c index 1d90eb9b541ed..dc47a54b121ff 100644 --- a/drivers/ata/pata_parport/on26.c +++ b/drivers/ata/pata_parport/on26.c @@ -14,8 +14,7 @@ #include #include #include - -#include +#include "pata_parport.h" /* mode codes: 0 nybble reads, 8-bit writes 1 8-bit reads and writes diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index b6499f2160da8..b02a7d16551c0 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include "pata_parport.h" #define DRV_NAME "pata_parport" diff --git a/include/linux/pata_parport.h b/drivers/ata/pata_parport/pata_parport.h similarity index 100% rename from include/linux/pata_parport.h rename to drivers/ata/pata_parport/pata_parport.h From 8d857540f517501d34e5810a369707a8181d1bbf Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Fri, 24 Feb 2023 23:40:23 +0300 Subject: [PATCH 19/57] ata: drop unused ata_id_to_hd_driveid() This function was renamed from ide_id_to_hd_driveid() and moved from drivers/ide/ to but it never got used by libata, thus it became useless after drivers/ide/ removal... Signed-off-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- include/linux/ata.h | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/include/linux/ata.h b/include/linux/ata.h index 0c18499f60b6e..3240116647d50 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h @@ -16,7 +16,6 @@ #include #include #include -#include /* defines only for the constants which don't work well as enums */ #define ATA_DMA_BOUNDARY 0xffffUL @@ -1067,26 +1066,6 @@ static inline bool ata_id_is_lba_capacity_ok(u16 *id) return false; /* LBA capacity value may be bad */ } -static inline void ata_id_to_hd_driveid(u16 *id) -{ -#ifdef __BIG_ENDIAN - /* accessed in struct hd_driveid as 8-bit values */ - id[ATA_ID_MAX_MULTSECT] = __cpu_to_le16(id[ATA_ID_MAX_MULTSECT]); - id[ATA_ID_CAPABILITY] = __cpu_to_le16(id[ATA_ID_CAPABILITY]); - id[ATA_ID_OLD_PIO_MODES] = __cpu_to_le16(id[ATA_ID_OLD_PIO_MODES]); - id[ATA_ID_OLD_DMA_MODES] = __cpu_to_le16(id[ATA_ID_OLD_DMA_MODES]); - id[ATA_ID_MULTSECT] = __cpu_to_le16(id[ATA_ID_MULTSECT]); - - /* as 32-bit values */ - *(u32 *)&id[ATA_ID_LBA_CAPACITY] = ata_id_u32(id, ATA_ID_LBA_CAPACITY); - *(u32 *)&id[ATA_ID_SPG] = ata_id_u32(id, ATA_ID_SPG); - - /* as 64-bit value */ - *(u64 *)&id[ATA_ID_LBA_CAPACITY_2] = - ata_id_u64(id, ATA_ID_LBA_CAPACITY_2); -#endif -} - static inline bool ata_ok(u8 status) { return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR)) From dc2e107e2d48ebe629985a080d457896ccf18f84 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Fri, 24 Feb 2023 23:40:24 +0300 Subject: [PATCH 20/57] ata: drop unused ata_id_is_lba_capacity_ok() This function was renamed from lba_capacity_is_ok()() and moved from drivers/ide/ to but it never got used by libata, thus it became useless after drivers/ide/ removal... Signed-off-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- include/linux/ata.h | 50 --------------------------------------------- 1 file changed, 50 deletions(-) diff --git a/include/linux/ata.h b/include/linux/ata.h index 3240116647d50..c224dbddb9b2b 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h @@ -1016,56 +1016,6 @@ static inline bool atapi_id_dmadir(const u16 *dev_id) return ata_id_major_version(dev_id) >= 7 && (dev_id[62] & 0x8000); } -/* - * ata_id_is_lba_capacity_ok() performs a sanity check on - * the claimed LBA capacity value for the device. - * - * Returns 1 if LBA capacity looks sensible, 0 otherwise. - * - * It is called only once for each device. - */ -static inline bool ata_id_is_lba_capacity_ok(u16 *id) -{ - unsigned long lba_sects, chs_sects, head, tail; - - /* No non-LBA info .. so valid! */ - if (id[ATA_ID_CYLS] == 0) - return true; - - lba_sects = ata_id_u32(id, ATA_ID_LBA_CAPACITY); - - /* - * The ATA spec tells large drives to return - * C/H/S = 16383/16/63 independent of their size. - * Some drives can be jumpered to use 15 heads instead of 16. - * Some drives can be jumpered to use 4092 cyls instead of 16383. - */ - if ((id[ATA_ID_CYLS] == 16383 || - (id[ATA_ID_CYLS] == 4092 && id[ATA_ID_CUR_CYLS] == 16383)) && - id[ATA_ID_SECTORS] == 63 && - (id[ATA_ID_HEADS] == 15 || id[ATA_ID_HEADS] == 16) && - (lba_sects >= 16383 * 63 * id[ATA_ID_HEADS])) - return true; - - chs_sects = id[ATA_ID_CYLS] * id[ATA_ID_HEADS] * id[ATA_ID_SECTORS]; - - /* perform a rough sanity check on lba_sects: within 10% is OK */ - if (lba_sects - chs_sects < chs_sects/10) - return true; - - /* some drives have the word order reversed */ - head = (lba_sects >> 16) & 0xffff; - tail = lba_sects & 0xffff; - lba_sects = head | (tail << 16); - - if (lba_sects - chs_sects < chs_sects/10) { - *(__le32 *)&id[ATA_ID_LBA_CAPACITY] = __cpu_to_le32(lba_sects); - return true; /* LBA capacity is (now) good */ - } - - return false; /* LBA capacity value may be bad */ -} - static inline bool ata_ok(u8 status) { return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR)) From 69e32a7070fb1a84eff77c49905d0c85c6e0260b Mon Sep 17 00:00:00 2001 From: Kunihiko Hayashi Date: Thu, 23 Feb 2023 00:59:06 +0900 Subject: [PATCH 21/57] dt-bindings: ata: Add UniPhier controller binding Add UniPhier SATA controller compatible string to the platform binding. This controller needs three reset controls for Pro4 SoC, or two reset controls for PXs2 and PXs3 SoCs. Signed-off-by: Kunihiko Hayashi Reviewed-by: Krzysztof Kozlowski Signed-off-by: Damien Le Moal --- .../bindings/ata/ahci-platform.yaml | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.yaml b/Documentation/devicetree/bindings/ata/ahci-platform.yaml index 7dc2a2e8f598b..358617115bb8e 100644 --- a/Documentation/devicetree/bindings/ata/ahci-platform.yaml +++ b/Documentation/devicetree/bindings/ata/ahci-platform.yaml @@ -30,12 +30,12 @@ select: - marvell,armada-3700-ahci - marvell,armada-8k-ahci - marvell,berlin2q-ahci + - socionext,uniphier-pro4-ahci + - socionext,uniphier-pxs2-ahci + - socionext,uniphier-pxs3-ahci required: - compatible -allOf: - - $ref: "ahci-common.yaml#" - properties: compatible: oneOf: @@ -45,6 +45,9 @@ properties: - marvell,armada-8k-ahci - marvell,berlin2-ahci - marvell,berlin2q-ahci + - socionext,uniphier-pro4-ahci + - socionext,uniphier-pxs2-ahci + - socionext,uniphier-pxs3-ahci - const: generic-ahci - enum: - cavium,octeon-7130-ahci @@ -74,7 +77,8 @@ properties: maxItems: 1 resets: - maxItems: 1 + minItems: 1 + maxItems: 3 patternProperties: "^sata-port@[0-9a-f]+$": @@ -91,6 +95,43 @@ required: - reg - interrupts +allOf: + - $ref: ahci-common.yaml# + - if: + properties: + compatible: + contains: + const: socionext,uniphier-pro4-ahci + then: + properties: + resets: + items: + - description: reset line for the parent + - description: reset line for the glue logic + - description: reset line for the controller + required: + - resets + else: + if: + properties: + compatible: + contains: + enum: + - socionext,uniphier-pxs2-ahci + - socionext,uniphier-pxs3-ahci + then: + properties: + resets: + items: + - description: reset for the glue logic + - description: reset for the controller + required: + - resets + else: + properties: + resets: + maxItems: 1 + unevaluatedProperties: false examples: From 71424f059c423bdb83f0bcc06644f29fe89b50cc Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 8 Mar 2023 13:49:34 +0100 Subject: [PATCH 22/57] ahci: qoriq: Add platform dependencies The Freescale QorIQ AHCI SATA controller is only present on Freescale Layerscape SoCs. Add platform dependencies to the AHCI_QORIQ config symbol, to avoid asking the user about it when configuring a kernel without Layerscape support. Signed-off-by: Geert Uytterhoeven Acked-by: Arnd Bergmann Acked-by: Li Yang Signed-off-by: Damien Le Moal --- drivers/ata/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index b56fba76b43f4..42b51c9812a0e 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -276,6 +276,7 @@ config AHCI_XGENE config AHCI_QORIQ tristate "Freescale QorIQ AHCI SATA support" depends on OF + depends on SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST select SATA_HOST help This option enables support for the Freescale QorIQ AHCI SoC's From e1e0a32eae7fd9566769c612f0b074eaf64b9cea Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Fri, 10 Mar 2023 08:47:00 -0600 Subject: [PATCH 23/57] ata: Use of_property_present() for testing DT property presence It is preferred to use typed property access functions (i.e. of_property_read_ functions) rather than low-level of_get_property/of_find_property functions for reading properties. As part of this, convert of_get_property/of_find_property calls to the recently added of_property_present() helper when we just want to test for presence of a property and nothing more. Signed-off-by: Rob Herring Signed-off-by: Damien Le Moal --- drivers/ata/ahci_mtk.c | 2 +- drivers/ata/libahci_platform.c | 2 +- drivers/ata/sata_dwc_460ex.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/ata/ahci_mtk.c b/drivers/ata/ahci_mtk.c index c056378e3e721..5714efe3f8e7d 100644 --- a/drivers/ata/ahci_mtk.c +++ b/drivers/ata/ahci_mtk.c @@ -106,7 +106,7 @@ static int mtk_ahci_parse_property(struct ahci_host_priv *hpriv, struct device_node *np = dev->of_node; /* enable SATA function if needed */ - if (of_find_property(np, "mediatek,phy-mode", NULL)) { + if (of_property_present(np, "mediatek,phy-mode")) { plat->mode = syscon_regmap_lookup_by_phandle( np, "mediatek,phy-mode"); if (IS_ERR(plat->mode)) { diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c index b9e336bacf179..f00da19670b04 100644 --- a/drivers/ata/libahci_platform.c +++ b/drivers/ata/libahci_platform.c @@ -363,7 +363,7 @@ static int ahci_platform_get_phy(struct ahci_host_priv *hpriv, u32 port, switch (rc) { case -ENOSYS: /* No PHY support. Check if PHY is required. */ - if (of_find_property(node, "phys", NULL)) { + if (of_property_present(node, "phys")) { dev_err(dev, "couldn't get PHY in node %pOFn: ENOSYS\n", node); diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 21d77633a98f3..3a30e6eff8a88 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -810,7 +810,7 @@ static int sata_dwc_dma_get_channel(struct sata_dwc_device_port *hsdevp) struct device *dev = hsdev->dev; #ifdef CONFIG_SATA_DWC_OLD_DMA - if (!of_find_property(dev->of_node, "dmas", NULL)) + if (!of_property_present(dev->of_node, "dmas")) return sata_dwc_dma_get_channel_old(hsdevp); #endif @@ -1180,7 +1180,7 @@ static int sata_dwc_probe(struct platform_device *ofdev) } #ifdef CONFIG_SATA_DWC_OLD_DMA - if (!of_find_property(np, "dmas", NULL)) { + if (!of_property_present(np, "dmas")) { err = sata_dwc_dma_init_old(ofdev, hsdev); if (err) return err; From 7ec02c5e9974099f9fe0394fd2cbd53448da703f Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:45:56 +0100 Subject: [PATCH 24/57] ata: pata_parport-bpck6: remove useless defines Almost all the ATAPI_ defines are unused. Remove them and use ATA_REG_DATA instead of ATAPI_DATA. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 964bc688e2809..842e8116b6497 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -23,23 +23,6 @@ #define PPCSTRUCT(pi) ((Interface *)(pi->private)) -/****************************************************************/ -/* - ATAPI CDROM DRIVE REGISTERS -*/ -#define ATAPI_DATA 0 /* data port */ -#define ATAPI_ERROR 1 /* error register (read) */ -#define ATAPI_FEATURES 1 /* feature register (write) */ -#define ATAPI_INT_REASON 2 /* interrupt reason register */ -#define ATAPI_COUNT_LOW 4 /* byte count register (low) */ -#define ATAPI_COUNT_HIGH 5 /* byte count register (high) */ -#define ATAPI_DRIVE_SEL 6 /* drive select register */ -#define ATAPI_STATUS 7 /* status port (read) */ -#define ATAPI_COMMAND 7 /* command port (write) */ -#define ATAPI_ALT_STATUS 0x0e /* alternate status reg (read) */ -#define ATAPI_DEVICE_CONTROL 0x0e /* device control (write) */ -/****************************************************************/ - static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { unsigned int out; @@ -64,12 +47,12 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_wr_port16_blk(PPCSTRUCT(pi),ATAPI_DATA,buf,(u32)len>>1); + ppc6_wr_port16_blk(PPCSTRUCT(pi), ATA_REG_DATA, buf, (u32)len>>1); } static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_rd_port16_blk(PPCSTRUCT(pi),ATAPI_DATA,buf,(u32)len>>1); + ppc6_rd_port16_blk(PPCSTRUCT(pi), ATA_REG_DATA, buf, (u32)len>>1); } static void bpck6_connect(struct pi_adapter *pi) From 84d890fc0997106a2a1f7157c152b7f6b6592c39 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:45:57 +0100 Subject: [PATCH 25/57] ata: pata_parport-bpck6: remove useless range check from read/write_regr bpck6_read_regr() and bpck6_write_regr() check values of cont and reg but there's no point in doing that. They can only be called with a fixed set of values. Remove the checks. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 842e8116b6497..4d6edb9c1245e 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -25,24 +25,12 @@ static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { - unsigned int out; - - /* check for bad settings */ - if (reg<0 || reg>7 || cont<0 || cont>2) - { - return(-1); - } - out=ppc6_rd_port(PPCSTRUCT(pi),cont?reg|8:reg); - return(out); + return ppc6_rd_port(PPCSTRUCT(pi), cont?reg|8:reg); } static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) { - /* check for bad settings */ - if (reg>=0 && reg<=7 && cont>=0 && cont<=1) - { - ppc6_wr_port(PPCSTRUCT(pi),cont?reg|8:reg,(u8)val); - } + ppc6_wr_port(PPCSTRUCT(pi), cont?reg|8:reg, val); } static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) From 629722855391598325a3e7545ebcf23a4f8e6acb Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:45:58 +0100 Subject: [PATCH 26/57] ata: pata_parport-bpck6: don't cast pi->pardev to struct pardevice * pi->pardev is struct pardevice *, no need to cast it to the same type. Also clean up the return mess. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 4d6edb9c1245e..fa1f7d4fe3cb9 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -74,30 +74,18 @@ static void bpck6_disconnect(struct pi_adapter *pi) static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { dev_dbg(&pi->dev, "PARPORT indicates modes=%x for lp=0x%lx\n", - ((struct pardevice *)(pi->pardev))->port->modes, - ((struct pardevice *)(pi->pardev))->port->base); + pi->pardev->port->modes, pi->pardev->port->base); /*copy over duplicate stuff.. initialize state info*/ PPCSTRUCT(pi)->ppc_id=pi->unit; PPCSTRUCT(pi)->lpt_addr=pi->port; - /* look at the parport device to see if what modes we can use */ - if(((struct pardevice *)(pi->pardev))->port->modes & - (PARPORT_MODE_EPP) - ) - { - return 5; /* Can do EPP*/ - } - else if(((struct pardevice *)(pi->pardev))->port->modes & - (PARPORT_MODE_TRISTATE) - ) - { + /* look at the parport device to see what modes we can use */ + if (pi->pardev->port->modes & PARPORT_MODE_EPP) + return 5; /* Can do EPP */ + if (pi->pardev->port->modes & PARPORT_MODE_TRISTATE) return 2; - } - else /*Just flat SPP*/ - { - return 1; - } + return 1; /* Just flat SPP */ } static int bpck6_probe_unit(struct pi_adapter *pi) From 65f527f245e19f49221b93bae2763359f15c5fb0 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:45:59 +0100 Subject: [PATCH 27/57] ata: pata_parport-bpck6: pass around struct pi_adapter * 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 Signed-off-by: Damien Le Moal --- 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/bpck6.c index fa1f7d4fe3cb9..bc128a2c444e8 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" 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); } 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); } 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); } 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); } static void bpck6_connect(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); dev_dbg(&pi->dev, "connect\n"); if(pi->mode >=2) { - PPCSTRUCT(pi)->mode=4+pi->mode-2; + ppc->mode = 4+pi->mode-2; } else if(pi->mode==1) { - PPCSTRUCT(pi)->mode=3; + ppc->mode = 3; } else { - PPCSTRUCT(pi)->mode=1; + ppc->mode = 1; } - ppc6_open(PPCSTRUCT(pi)); - ppc6_wr_extout(PPCSTRUCT(pi),0x3); + ppc6_open(pi); + ppc6_wr_extout(pi, 0x3); } 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); } static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { + struct ppc_storage *ppc = (void *)(pi->private); dev_dbg(&pi->dev, "PARPORT indicates modes=%x for lp=0x%lx\n", pi->pardev->port->modes, pi->pardev->port->base); /*copy over duplicate stuff.. initialize state info*/ - PPCSTRUCT(pi)->ppc_id=pi->unit; - PPCSTRUCT(pi)->lpt_addr=pi->port; + ppc->ppc_id = pi->unit; + ppc->lpt_addr = pi->port; /* 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 */ static int bpck6_probe_unit(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); int out; dev_dbg(&pi->dev, "PROBE UNIT %x on port:%x\n", pi->unit, pi->port); /*SET PPC UNIT NUMBER*/ - PPCSTRUCT(pi)->ppc_id=pi->unit; + ppc->ppc_id = pi->unit; /*LOWER DOWN TO UNIDIRECTIONAL*/ - PPCSTRUCT(pi)->mode=1; + ppc->mode = 1; - out=ppc6_open(PPCSTRUCT(pi)); + out = ppc6_open(pi); dev_dbg(&pi->dev, "ppc_open returned %2x\n", out); 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) static int bpck6_init_proto(struct pi_adapter *pi) { - Interface *p = kzalloc(sizeof(Interface), GFP_KERNEL); + struct ppc_storage *p = kzalloc(sizeof(struct ppc_storage), GFP_KERNEL); if (p) { pi->private = (unsigned long)p; diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 5e5521d3b1dde..f12bb019fc610 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -64,7 +64,7 @@ //*************************************************************************** -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; +}; //*************************************************************************** @@ -101,26 +101,27 @@ typedef struct ppc_storage { //*************************************************************************** -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 length); -static void ppc6_wr_port16_blk(Interface *ppc, u8 port, u8 *data, long length); -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, long length); +static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long 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); //*************************************************************************** -static int ppc6_select(Interface *ppc) +static int ppc6_select(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); u8 i, j, k; i = inb(ppc->lpt_addr + 1); @@ -205,8 +206,9 @@ static int ppc6_select(Interface *ppc) //*************************************************************************** -static void ppc6_deselect(Interface *ppc) +static void ppc6_deselect(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); if (ppc->mode & 4) // EPP ppc->cur_ctrl |= port_init; else // PPC/ECP @@ -223,8 +225,9 @@ static void ppc6_deselect(Interface *ppc) //*************************************************************************** -static void ppc6_send_cmd(Interface *ppc, u8 cmd) +static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { + struct ppc_storage *ppc = (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -254,8 +257,9 @@ static void ppc6_send_cmd(Interface *ppc, u8 cmd) //*************************************************************************** -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 = (void *)(pi->private); switch(ppc->mode) { case PPCMODE_UNI_SW : @@ -285,8 +289,9 @@ static void ppc6_wr_data_byte(Interface *ppc, u8 data) //*************************************************************************** -static u8 ppc6_rd_data_byte(Interface *ppc) +static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); u8 data = 0; switch(ppc->mode) @@ -358,26 +363,27 @@ static u8 ppc6_rd_data_byte(Interface *ppc) //*************************************************************************** -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); - return(ppc6_rd_data_byte(ppc)); + return ppc6_rd_data_byte(pi); } //*************************************************************************** -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); - ppc6_wr_data_byte(ppc, data); + ppc6_wr_data_byte(pi, data); } //*************************************************************************** -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 = (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) //*************************************************************************** -static void ppc6_wait_for_fifo(Interface *ppc) +static void ppc6_wait_for_fifo(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); int i; if (ppc->ppc_flags & fifo_wait) @@ -525,8 +532,9 @@ static void ppc6_wait_for_fifo(Interface *ppc) //*************************************************************************** -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 = (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; - ppc6_send_cmd(ppc,(CMD_PREFIX_SET | PREFIX_FASTWR)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); ppc->cur_ctrl |= port_stb; @@ -582,7 +590,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count) outb(ppc->cur_ctrl, ppc->lpt_addr + 2); - ppc6_send_cmd(ppc,(CMD_PREFIX_RESET | PREFIX_FASTWR)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); break; } @@ -595,7 +603,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count) count--; } - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); break; } @@ -615,7 +623,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count) count--; } - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); break; } @@ -635,7 +643,7 @@ static void ppc6_wr_data_blk(Interface *ppc, u8 *data, long count) count--; } - ppc6_wait_for_fifo(ppc); + ppc6_wait_for_fifo(pi); break; } @@ -644,72 +652,73 @@ 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 length) +static void ppc6_rd_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length) { length = length << 1; - 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); - ppc6_send_cmd(ppc, (CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - ppc6_send_cmd(ppc, (u8)(port | ACCESS_PORT | ACCESS_READ)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); - ppc6_rd_data_blk(ppc, data, length); + ppc6_rd_data_blk(pi, data, length); - ppc6_send_cmd(ppc, (CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } //*************************************************************************** -static void ppc6_wr_port16_blk(Interface *ppc, u8 port, u8 *data, long length) +static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length) { length = length << 1; - 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); - ppc6_send_cmd(ppc, (CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - ppc6_send_cmd(ppc, (u8)(port | ACCESS_PORT | ACCESS_WRITE)); + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); - ppc6_wr_data_blk(ppc, data, length); + ppc6_wr_data_blk(pi, data, length); - ppc6_send_cmd(ppc, (CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK)); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } //*************************************************************************** -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); - ppc6_wr_data_byte(ppc, (u8)((regdata & 0x03) << 6)); + ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); } //*************************************************************************** -static int ppc6_open(Interface *ppc) +static int ppc6_open(struct pi_adapter *pi) { + struct ppc_storage *ppc = (void *)(pi->private); int ret; - ret = ppc6_select(ppc); + ret = ppc6_select(pi); if (ret == 0) return(ret); ppc->ppc_flags &= ~fifo_wait; - 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); - ppc6_send_cmd(ppc, (ACCESS_REG | ACCESS_READ | REG_VERSION)); + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); - if ((ppc6_rd_data_byte(ppc) & 0x3F) == 0x0C) + if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) ppc->ppc_flags |= fifo_wait; return(ret); @@ -717,9 +726,9 @@ static int ppc6_open(Interface *ppc) //*************************************************************************** -static void ppc6_close(Interface *ppc) +static void ppc6_close(struct pi_adapter *pi) { - ppc6_deselect(ppc); + ppc6_deselect(pi); } //*************************************************************************** From 617aecc2b3e75ef1d3deedbd1869bb83f1a2778f Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:00 +0100 Subject: [PATCH 28/57] ata: pata_parport-bpck6: remove lpt_addr from struct ppc_storage lpt_addr duplicates pi->port. Remove it. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 1 - drivers/ata/pata_parport/ppc6lnx.c | 153 ++++++++++++++--------------- 2 files changed, 76 insertions(+), 78 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index bc128a2c444e8..50d313fc529ec 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -78,7 +78,6 @@ static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ /*copy over duplicate stuff.. initialize state info*/ ppc->ppc_id = pi->unit; - ppc->lpt_addr = pi->port; /* look at the parport device to see what modes we can use */ if (pi->pardev->port->modes & PARPORT_MODE_EPP) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index f12bb019fc610..c00e561cc8334 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -65,7 +65,6 @@ //*************************************************************************** struct ppc_storage { - u16 lpt_addr; // LPT base address u8 ppc_id; u8 mode; // operating mode // 0 = PPC Uni SW @@ -124,65 +123,65 @@ static int ppc6_select(struct pi_adapter *pi) struct ppc_storage *ppc = (void *)(pi->private); u8 i, j, k; - i = inb(ppc->lpt_addr + 1); + i = inb(pi->port + 1); if (i & 1) - outb(i, ppc->lpt_addr + 1); + outb(i, pi->port + 1); - ppc->org_data = inb(ppc->lpt_addr); + ppc->org_data = inb(pi->port); - ppc->org_ctrl = inb(ppc->lpt_addr + 2) & 0x5F; // readback ctrl + ppc->org_ctrl = inb(pi->port + 2) & 0x5F; // readback ctrl ppc->cur_ctrl = ppc->org_ctrl; ppc->cur_ctrl |= port_sel; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); if (ppc->org_data == 'b') - outb('x', ppc->lpt_addr); + outb('x', pi->port); - outb('b', ppc->lpt_addr); - outb('p', ppc->lpt_addr); - outb(ppc->ppc_id, ppc->lpt_addr); - outb(~ppc->ppc_id,ppc->lpt_addr); + outb('b', pi->port); + outb('p', pi->port); + outb(ppc->ppc_id, pi->port); + outb(~ppc->ppc_id, pi->port); ppc->cur_ctrl &= ~port_sel; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc->cur_ctrl = (ppc->cur_ctrl & port_int) | port_init; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); i = ppc->mode & 0x0C; if (i == 0) i = (ppc->mode & 2) | 1; - outb(i, ppc->lpt_addr); + outb(i, pi->port); ppc->cur_ctrl |= port_sel; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); // DELAY ppc->cur_ctrl |= port_afd; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); j = ((i & 0x08) << 4) | ((i & 0x07) << 3); - k = inb(ppc->lpt_addr + 1) & 0xB8; + k = inb(pi->port + 1) & 0xB8; if (j == k) { ppc->cur_ctrl &= ~port_afd; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); - k = (inb(ppc->lpt_addr + 1) & 0xB8) ^ 0xB8; + k = (inb(pi->port + 1) & 0xB8) ^ 0xB8; if (j == k) { @@ -191,15 +190,15 @@ static int ppc6_select(struct pi_adapter *pi) else // PPC/ECP ppc->cur_ctrl &= ~port_sel; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); return(1); } } - outb(ppc->org_ctrl, ppc->lpt_addr + 2); + outb(ppc->org_ctrl, pi->port + 2); - outb(ppc->org_data, ppc->lpt_addr); + outb(ppc->org_data, pi->port); return(0); // FAIL } @@ -214,13 +213,13 @@ static void ppc6_deselect(struct pi_adapter *pi) else // PPC/ECP ppc->cur_ctrl |= port_sel; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); - outb(ppc->org_data, ppc->lpt_addr); + outb(ppc->org_data, pi->port); - outb((ppc->org_ctrl | port_sel), ppc->lpt_addr + 2); + outb((ppc->org_ctrl | port_sel), pi->port + 2); - outb(ppc->org_ctrl, ppc->lpt_addr + 2); + outb(ppc->org_ctrl, pi->port + 2); } //*************************************************************************** @@ -235,11 +234,11 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - outb(cmd, ppc->lpt_addr); + outb(cmd, pi->port); ppc->cur_ctrl ^= cmd_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } @@ -248,7 +247,7 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb(cmd, ppc->lpt_addr + 3); + outb(cmd, pi->port + 3); break; } @@ -267,11 +266,11 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - outb(data, ppc->lpt_addr); + outb(data, pi->port); ppc->cur_ctrl ^= data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } @@ -280,7 +279,7 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb(data, ppc->lpt_addr + 4); + outb(data, pi->port + 4); break; } @@ -301,21 +300,21 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { ppc->cur_ctrl = (ppc->cur_ctrl & ~port_stb) ^ data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); // DELAY - data = inb(ppc->lpt_addr + 1); + data = inb(pi->port + 1); data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); ppc->cur_ctrl |= port_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); // DELAY - data |= inb(ppc->lpt_addr + 1) & 0xB8; + data |= inb(pi->port + 1) & 0xB8; break; } @@ -325,21 +324,21 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { ppc->cur_ctrl |= port_dir; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc->cur_ctrl = (ppc->cur_ctrl | port_stb) ^ data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); - data = inb(ppc->lpt_addr); + data = inb(pi->port); ppc->cur_ctrl &= ~port_stb; - outb(ppc->cur_ctrl,ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc->cur_ctrl &= ~port_dir; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } @@ -348,11 +347,11 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb((ppc->cur_ctrl | port_dir),ppc->lpt_addr + 2); + outb((ppc->cur_ctrl | port_dir), pi->port + 2); - data = inb(ppc->lpt_addr + 4); + data = inb(pi->port + 4); - outb(ppc->cur_ctrl,ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } @@ -395,21 +394,21 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc->cur_ctrl = (ppc->cur_ctrl & ~port_stb) ^ data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); // DELAY - d = inb(ppc->lpt_addr + 1); + d = inb(pi->port + 1); d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); ppc->cur_ctrl |= port_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); // DELAY - d |= inb(ppc->lpt_addr + 1) & 0xB8; + d |= inb(pi->port + 1) & 0xB8; *data++ = d; count--; @@ -423,7 +422,7 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { ppc->cur_ctrl |= port_dir; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc->cur_ctrl |= port_stb; @@ -431,84 +430,84 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { ppc->cur_ctrl ^= data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); - *data++ = inb(ppc->lpt_addr); + *data++ = inb(pi->port); count--; } ppc->cur_ctrl &= ~port_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc->cur_ctrl &= ~port_dir; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } case PPCMODE_EPP_BYTE : { - outb((ppc->cur_ctrl | port_dir), ppc->lpt_addr + 2); + outb((ppc->cur_ctrl | port_dir), pi->port + 2); // DELAY while(count) { - *data++ = inb(ppc->lpt_addr + 4); + *data++ = inb(pi->port + 4); count--; } - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } case PPCMODE_EPP_WORD : { - outb((ppc->cur_ctrl | port_dir), ppc->lpt_addr + 2); + outb((ppc->cur_ctrl | port_dir), pi->port + 2); // DELAY while(count > 1) { - *((u16 *)data) = inw(ppc->lpt_addr + 4); + *((u16 *)data) = inw(pi->port + 4); data += 2; count -= 2; } while(count) { - *data++ = inb(ppc->lpt_addr + 4); + *data++ = inb(pi->port + 4); count--; } - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } case PPCMODE_EPP_DWORD : { - outb((ppc->cur_ctrl | port_dir),ppc->lpt_addr + 2); + outb((ppc->cur_ctrl | port_dir), pi->port + 2); // DELAY while(count > 3) { - *((u32 *)data) = inl(ppc->lpt_addr + 4); + *((u32 *)data) = inl(pi->port + 4); data += 4; count -= 4; } while(count) { - *data++ = inb(ppc->lpt_addr + 4); + *data++ = inb(pi->port + 4); count--; } - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); break; } @@ -526,7 +525,7 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) if (ppc->ppc_flags & fifo_wait) { for(i=0; i<20; i++) - inb(ppc->lpt_addr + 1); + inb(pi->port + 1); } } @@ -542,11 +541,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { while(count--) { - outb(*data++, ppc->lpt_addr); + outb(*data++, pi->port); ppc->cur_ctrl ^= data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); } break; @@ -561,11 +560,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc->cur_ctrl |= port_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); last = *data; - outb(last, ppc->lpt_addr); + outb(last, pi->port); while(count) { @@ -576,11 +575,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { ppc->cur_ctrl ^= data_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); } else { - outb(this, ppc->lpt_addr); + outb(this, pi->port); last = this; } @@ -588,7 +587,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc->cur_ctrl &= ~port_stb; - outb(ppc->cur_ctrl, ppc->lpt_addr + 2); + outb(ppc->cur_ctrl, pi->port + 2); ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); @@ -599,7 +598,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { while(count) { - outb(*data++,ppc->lpt_addr + 4); + outb(*data++, pi->port + 4); count--; } @@ -612,14 +611,14 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { while(count > 1) { - outw(*((u16 *)data),ppc->lpt_addr + 4); + outw(*((u16 *)data), pi->port + 4); data += 2; count -= 2; } while(count) { - outb(*data++,ppc->lpt_addr + 4); + outb(*data++, pi->port + 4); count--; } @@ -632,14 +631,14 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { while(count > 3) { - outl(*((u32 *)data),ppc->lpt_addr + 4); + outl(*((u32 *)data), pi->port + 4); data += 4; count -= 4; } while(count) { - outb(*data++,ppc->lpt_addr + 4); + outb(*data++, pi->port + 4); count--; } From 997b0ce28ad30fd97f3924ddaa88208babf95f05 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:01 +0100 Subject: [PATCH 29/57] ata: pata_parport-bpck6: remove ppc_id from struct ppc_storage ppc_id duplicates pi->unit. Remove it. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 7 ------- drivers/ata/pata_parport/ppc6lnx.c | 5 ++--- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 50d313fc529ec..176bf456c6987 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -72,13 +72,9 @@ static void bpck6_disconnect(struct pi_adapter *pi) static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ { - struct ppc_storage *ppc = (void *)(pi->private); dev_dbg(&pi->dev, "PARPORT indicates modes=%x for lp=0x%lx\n", pi->pardev->port->modes, pi->pardev->port->base); - /*copy over duplicate stuff.. initialize state info*/ - ppc->ppc_id = pi->unit; - /* look at the parport device to see what modes we can use */ if (pi->pardev->port->modes & PARPORT_MODE_EPP) return 5; /* Can do EPP */ @@ -94,9 +90,6 @@ static int bpck6_probe_unit(struct pi_adapter *pi) dev_dbg(&pi->dev, "PROBE UNIT %x on port:%x\n", pi->unit, pi->port); - /*SET PPC UNIT NUMBER*/ - ppc->ppc_id = pi->unit; - /*LOWER DOWN TO UNIDIRECTIONAL*/ ppc->mode = 1; diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index c00e561cc8334..dd9f3040f9a73 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -65,7 +65,6 @@ //*************************************************************************** struct ppc_storage { - u8 ppc_id; u8 mode; // operating mode // 0 = PPC Uni SW // 1 = PPC Uni FW @@ -143,8 +142,8 @@ static int ppc6_select(struct pi_adapter *pi) outb('b', pi->port); outb('p', pi->port); - outb(ppc->ppc_id, pi->port); - outb(~ppc->ppc_id, pi->port); + outb(pi->unit, pi->port); + outb(~pi->unit, pi->port); ppc->cur_ctrl &= ~port_sel; From f5031656e4c45951c2f96fb8fda5e0b75b2330f8 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:02 +0100 Subject: [PATCH 30/57] ata: pata_parport-bpck6: remove org_* from struct ppc_storage org_data duplicates saved_r0 and org_ctrl duplicates saved_r2 in pi->unit. Remove them. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/ppc6lnx.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index dd9f3040f9a73..7ea8e8a31aeb4 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -74,8 +74,6 @@ struct ppc_storage { // 5 = EPP Word // 6 = EPP Dword u8 ppc_flags; - u8 org_data; // original LPT data port contents - u8 org_ctrl; // original LPT control port contents u8 cur_ctrl; // current control port contents }; @@ -127,17 +125,17 @@ static int ppc6_select(struct pi_adapter *pi) if (i & 1) outb(i, pi->port + 1); - ppc->org_data = inb(pi->port); + pi->saved_r0 = inb(pi->port); - ppc->org_ctrl = inb(pi->port + 2) & 0x5F; // readback ctrl + pi->saved_r2 = inb(pi->port + 2) & 0x5F; // readback ctrl - ppc->cur_ctrl = ppc->org_ctrl; + ppc->cur_ctrl = pi->saved_r2; ppc->cur_ctrl |= port_sel; outb(ppc->cur_ctrl, pi->port + 2); - if (ppc->org_data == 'b') + if (pi->saved_r0 == 'b') outb('x', pi->port); outb('b', pi->port); @@ -195,9 +193,9 @@ static int ppc6_select(struct pi_adapter *pi) } } - outb(ppc->org_ctrl, pi->port + 2); + outb(pi->saved_r2, pi->port + 2); - outb(ppc->org_data, pi->port); + outb(pi->saved_r0, pi->port); return(0); // FAIL } @@ -214,11 +212,11 @@ static void ppc6_deselect(struct pi_adapter *pi) outb(ppc->cur_ctrl, pi->port + 2); - outb(ppc->org_data, pi->port); + outb(pi->saved_r0, pi->port); - outb((ppc->org_ctrl | port_sel), pi->port + 2); + outb((pi->saved_r2 | port_sel), pi->port + 2); - outb(ppc->org_ctrl, pi->port + 2); + outb(pi->saved_r2, pi->port + 2); } //*************************************************************************** From baa6f0f875063b637628391935987b4db995072b Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:03 +0100 Subject: [PATCH 31/57] ata: pata_parport-bpck6: remove mode from struct ppc_storage introduce mode_map[] that maps bpck6 modes to ppc6 modes and use it to replace mode in ppc_storage Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 22 +++++----------------- drivers/ata/pata_parport/ppc6lnx.c | 27 +++++++++++---------------- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 176bf456c6987..fe97d1dee51c8 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -43,22 +43,8 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) static void bpck6_connect(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); dev_dbg(&pi->dev, "connect\n"); - if(pi->mode >=2) - { - ppc->mode = 4+pi->mode-2; - } - else if(pi->mode==1) - { - ppc->mode = 3; - } - else - { - ppc->mode = 1; - } - ppc6_open(pi); ppc6_wr_extout(pi, 0x3); } @@ -85,13 +71,13 @@ static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ static int bpck6_probe_unit(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); - int out; + int out, saved_mode; dev_dbg(&pi->dev, "PROBE UNIT %x on port:%x\n", pi->unit, pi->port); + saved_mode = pi->mode; /*LOWER DOWN TO UNIDIRECTIONAL*/ - ppc->mode = 1; + pi->mode = 0; out = ppc6_open(pi); @@ -101,11 +87,13 @@ static int bpck6_probe_unit(struct pi_adapter *pi) { ppc6_close(pi); dev_dbg(&pi->dev, "leaving probe\n"); + pi->mode = saved_mode; return(1); } else { dev_dbg(&pi->dev, "Failed open\n"); + pi->mode = saved_mode; return(0); } } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 7ea8e8a31aeb4..75f9748d8de50 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -65,14 +65,6 @@ //*************************************************************************** struct ppc_storage { - u8 mode; // operating mode - // 0 = PPC Uni SW - // 1 = PPC Uni FW - // 2 = PPC Bi SW - // 3 = PPC Bi FW - // 4 = EPP Byte - // 5 = EPP Word - // 6 = EPP Dword u8 ppc_flags; u8 cur_ctrl; // current control port contents }; @@ -115,6 +107,9 @@ static void ppc6_close(struct pi_adapter *pi); //*************************************************************************** +int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, + PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; + static int ppc6_select(struct pi_adapter *pi) { struct ppc_storage *ppc = (void *)(pi->private); @@ -151,10 +146,10 @@ static int ppc6_select(struct pi_adapter *pi) outb(ppc->cur_ctrl, pi->port + 2); - i = ppc->mode & 0x0C; + i = mode_map[pi->mode] & 0x0C; if (i == 0) - i = (ppc->mode & 2) | 1; + i = (mode_map[pi->mode] & 2) | 1; outb(i, pi->port); @@ -205,7 +200,7 @@ static int ppc6_select(struct pi_adapter *pi) static void ppc6_deselect(struct pi_adapter *pi) { struct ppc_storage *ppc = (void *)(pi->private); - if (ppc->mode & 4) // EPP + if (mode_map[pi->mode] & 4) // EPP ppc->cur_ctrl |= port_init; else // PPC/ECP ppc->cur_ctrl |= port_sel; @@ -224,7 +219,7 @@ static void ppc6_deselect(struct pi_adapter *pi) static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { struct ppc_storage *ppc = (void *)(pi->private); - switch(ppc->mode) + switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : @@ -256,7 +251,7 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { struct ppc_storage *ppc = (void *)(pi->private); - switch(ppc->mode) + switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : @@ -290,7 +285,7 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) struct ppc_storage *ppc = (void *)(pi->private); u8 data = 0; - switch(ppc->mode) + switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : @@ -380,7 +375,7 @@ 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) { struct ppc_storage *ppc = (void *)(pi->private); - switch(ppc->mode) + switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : @@ -531,7 +526,7 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { struct ppc_storage *ppc = (void *)(pi->private); - switch(ppc->mode) + switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : case PPCMODE_BI_SW : From f467fd0e1bb17850161091a6374a34445c8bec00 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:04 +0100 Subject: [PATCH 32/57] ata: pata_parport-bpck6: remove struct ppc_storage Store the remaining two variables (cur_ctrl and ppc_flags) in struct ppc_storage directly in pi->private and remove struct ppc_storage. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 21 ---- drivers/ata/pata_parport/ppc6lnx.c | 149 +++++++++++++---------------- 2 files changed, 69 insertions(+), 101 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index fe97d1dee51c8..dc0f71cc305ee 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -107,24 +106,6 @@ static void bpck6_log_adapter(struct pi_adapter *pi) pi->unit, pi->port, pi->mode, mode_string[pi->mode], pi->delay); } -static int bpck6_init_proto(struct pi_adapter *pi) -{ - struct ppc_storage *p = kzalloc(sizeof(struct ppc_storage), GFP_KERNEL); - - if (p) { - pi->private = (unsigned long)p; - return 0; - } - - dev_err(&pi->dev, "ERROR COULDN'T ALLOCATE MEMORY\n"); - return -1; -} - -static void bpck6_release_proto(struct pi_adapter *pi) -{ - kfree((void *)(pi->private)); -} - static struct pi_protocol bpck6 = { .owner = THIS_MODULE, .name = "bpck6", @@ -140,8 +121,6 @@ static struct pi_protocol bpck6 = { .test_port = bpck6_test_port, .probe_unit = bpck6_probe_unit, .log_adapter = bpck6_log_adapter, - .init_proto = bpck6_init_proto, - .release_proto = bpck6_release_proto, }; MODULE_LICENSE("GPL"); diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 75f9748d8de50..ee8cee6bae7c6 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -64,10 +64,8 @@ //*************************************************************************** -struct ppc_storage { - u8 ppc_flags; - u8 cur_ctrl; // current control port contents -}; +#define CUR_CTRL (((u8 *)&pi->private)[0]) +#define PPC_FLAGS (((u8 *)&pi->private)[1]) //*************************************************************************** @@ -112,7 +110,6 @@ int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, static int ppc6_select(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); u8 i, j, k; i = inb(pi->port + 1); @@ -124,11 +121,11 @@ static int ppc6_select(struct pi_adapter *pi) pi->saved_r2 = inb(pi->port + 2) & 0x5F; // readback ctrl - ppc->cur_ctrl = pi->saved_r2; + CUR_CTRL = pi->saved_r2; - ppc->cur_ctrl |= port_sel; + CUR_CTRL |= port_sel; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); if (pi->saved_r0 == 'b') outb('x', pi->port); @@ -138,13 +135,13 @@ static int ppc6_select(struct pi_adapter *pi) outb(pi->unit, pi->port); outb(~pi->unit, pi->port); - ppc->cur_ctrl &= ~port_sel; + CUR_CTRL &= ~port_sel; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); - ppc->cur_ctrl = (ppc->cur_ctrl & port_int) | port_init; + CUR_CTRL = (CUR_CTRL & port_int) | port_init; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); i = mode_map[pi->mode] & 0x0C; @@ -153,15 +150,15 @@ static int ppc6_select(struct pi_adapter *pi) outb(i, pi->port); - ppc->cur_ctrl |= port_sel; + CUR_CTRL |= port_sel; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); // DELAY - ppc->cur_ctrl |= port_afd; + CUR_CTRL |= port_afd; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); j = ((i & 0x08) << 4) | ((i & 0x07) << 3); @@ -169,20 +166,20 @@ static int ppc6_select(struct pi_adapter *pi) if (j == k) { - ppc->cur_ctrl &= ~port_afd; + CUR_CTRL &= ~port_afd; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); k = (inb(pi->port + 1) & 0xB8) ^ 0xB8; if (j == k) { if (i & 4) // EPP - ppc->cur_ctrl &= ~(port_sel | port_init); + CUR_CTRL &= ~(port_sel | port_init); else // PPC/ECP - ppc->cur_ctrl &= ~port_sel; + CUR_CTRL &= ~port_sel; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); return(1); } @@ -199,13 +196,12 @@ static int ppc6_select(struct pi_adapter *pi) static void ppc6_deselect(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); if (mode_map[pi->mode] & 4) // EPP - ppc->cur_ctrl |= port_init; + CUR_CTRL |= port_init; else // PPC/ECP - ppc->cur_ctrl |= port_sel; + CUR_CTRL |= port_sel; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); outb(pi->saved_r0, pi->port); @@ -218,7 +214,6 @@ static void ppc6_deselect(struct pi_adapter *pi) static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { - struct ppc_storage *ppc = (void *)(pi->private); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : @@ -228,9 +223,9 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { outb(cmd, pi->port); - ppc->cur_ctrl ^= cmd_stb; + CUR_CTRL ^= cmd_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } @@ -250,7 +245,6 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { - struct ppc_storage *ppc = (void *)(pi->private); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : @@ -260,9 +254,9 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { outb(data, pi->port); - ppc->cur_ctrl ^= data_stb; + CUR_CTRL ^= data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } @@ -282,7 +276,6 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); u8 data = 0; switch (mode_map[pi->mode]) @@ -290,9 +283,9 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : { - ppc->cur_ctrl = (ppc->cur_ctrl & ~port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL & ~port_stb) ^ data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); // DELAY @@ -300,9 +293,9 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); - ppc->cur_ctrl |= port_stb; + CUR_CTRL |= port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); // DELAY @@ -314,23 +307,23 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - ppc->cur_ctrl |= port_dir; + CUR_CTRL |= port_dir; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); - ppc->cur_ctrl = (ppc->cur_ctrl | port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL | port_stb) ^ data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); data = inb(pi->port); - ppc->cur_ctrl &= ~port_stb; + CUR_CTRL &= ~port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); - ppc->cur_ctrl &= ~port_dir; + CUR_CTRL &= ~port_dir; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } @@ -339,11 +332,11 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb((ppc->cur_ctrl | port_dir), pi->port + 2); + outb((CUR_CTRL | port_dir), pi->port + 2); data = inb(pi->port + 4); - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } @@ -374,7 +367,6 @@ 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) { - struct ppc_storage *ppc = (void *)(pi->private); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : @@ -384,9 +376,9 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { u8 d; - ppc->cur_ctrl = (ppc->cur_ctrl & ~port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL & ~port_stb) ^ data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); // DELAY @@ -394,9 +386,9 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); - ppc->cur_ctrl |= port_stb; + CUR_CTRL |= port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); // DELAY @@ -412,36 +404,36 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - ppc->cur_ctrl |= port_dir; + CUR_CTRL |= port_dir; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); - ppc->cur_ctrl |= port_stb; + CUR_CTRL |= port_stb; while(count) { - ppc->cur_ctrl ^= data_stb; + CUR_CTRL ^= data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); *data++ = inb(pi->port); count--; } - ppc->cur_ctrl &= ~port_stb; + CUR_CTRL &= ~port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); - ppc->cur_ctrl &= ~port_dir; + CUR_CTRL &= ~port_dir; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } case PPCMODE_EPP_BYTE : { - outb((ppc->cur_ctrl | port_dir), pi->port + 2); + outb((CUR_CTRL | port_dir), pi->port + 2); // DELAY @@ -451,14 +443,14 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) count--; } - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } case PPCMODE_EPP_WORD : { - outb((ppc->cur_ctrl | port_dir), pi->port + 2); + outb((CUR_CTRL | port_dir), pi->port + 2); // DELAY @@ -475,14 +467,14 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) count--; } - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } case PPCMODE_EPP_DWORD : { - outb((ppc->cur_ctrl | port_dir), pi->port + 2); + outb((CUR_CTRL | port_dir), pi->port + 2); // DELAY @@ -499,7 +491,7 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) count--; } - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); break; } @@ -511,10 +503,9 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) static void ppc6_wait_for_fifo(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); int i; - if (ppc->ppc_flags & fifo_wait) + if (PPC_FLAGS & fifo_wait) { for(i=0; i<20; i++) inb(pi->port + 1); @@ -525,7 +516,6 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { - struct ppc_storage *ppc = (void *)(pi->private); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW : @@ -535,9 +525,9 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { outb(*data++, pi->port); - ppc->cur_ctrl ^= data_stb; + CUR_CTRL ^= data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); } break; @@ -550,9 +540,9 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); - ppc->cur_ctrl |= port_stb; + CUR_CTRL |= port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); last = *data; @@ -565,9 +555,9 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) if (this == last) { - ppc->cur_ctrl ^= data_stb; + CUR_CTRL ^= data_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); } else { @@ -577,9 +567,9 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) } } - ppc->cur_ctrl &= ~port_stb; + CUR_CTRL &= ~port_stb; - outb(ppc->cur_ctrl, pi->port + 2); + outb(CUR_CTRL, pi->port + 2); ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); @@ -694,7 +684,6 @@ static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) static int ppc6_open(struct pi_adapter *pi) { - struct ppc_storage *ppc = (void *)(pi->private); int ret; ret = ppc6_select(pi); @@ -702,7 +691,7 @@ static int ppc6_open(struct pi_adapter *pi) if (ret == 0) return(ret); - ppc->ppc_flags &= ~fifo_wait; + PPC_FLAGS &= ~fifo_wait; ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); ppc6_wr_data_byte(pi, RAMSIZE_128K); @@ -710,7 +699,7 @@ static int ppc6_open(struct pi_adapter *pi) ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) - ppc->ppc_flags |= fifo_wait; + PPC_FLAGS |= fifo_wait; return(ret); } From 5e4696d5ed37e1b9128de9e557b2ae98e9699b52 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:05 +0100 Subject: [PATCH 33/57] ata: pata_parport-bpck6: remove parallel port bit defines Remove port_stb, port_afd, cmd_stb, port_init, data_stb and port_sel defines and use standard PARPORT_CONTROL_* instead. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/ppc6lnx.c | 59 ++++++++++++++---------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index ee8cee6bae7c6..09480a7fcaee2 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -16,12 +16,6 @@ //*************************************************************************** -#define port_stb 1 -#define port_afd 2 -#define cmd_stb port_afd -#define port_init 4 -#define data_stb port_init -#define port_sel 8 #define port_int 16 #define port_dir 0x20 @@ -123,7 +117,7 @@ static int ppc6_select(struct pi_adapter *pi) CUR_CTRL = pi->saved_r2; - CUR_CTRL |= port_sel; + CUR_CTRL |= PARPORT_CONTROL_SELECT; outb(CUR_CTRL, pi->port + 2); @@ -135,11 +129,11 @@ static int ppc6_select(struct pi_adapter *pi) outb(pi->unit, pi->port); outb(~pi->unit, pi->port); - CUR_CTRL &= ~port_sel; + CUR_CTRL &= ~PARPORT_CONTROL_SELECT; outb(CUR_CTRL, pi->port + 2); - CUR_CTRL = (CUR_CTRL & port_int) | port_init; + CUR_CTRL = (CUR_CTRL & port_int) | PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); @@ -150,13 +144,13 @@ static int ppc6_select(struct pi_adapter *pi) outb(i, pi->port); - CUR_CTRL |= port_sel; + CUR_CTRL |= PARPORT_CONTROL_SELECT; outb(CUR_CTRL, pi->port + 2); // DELAY - CUR_CTRL |= port_afd; + CUR_CTRL |= PARPORT_CONTROL_AUTOFD; outb(CUR_CTRL, pi->port + 2); @@ -166,7 +160,7 @@ static int ppc6_select(struct pi_adapter *pi) if (j == k) { - CUR_CTRL &= ~port_afd; + CUR_CTRL &= ~PARPORT_CONTROL_AUTOFD; outb(CUR_CTRL, pi->port + 2); @@ -175,9 +169,9 @@ static int ppc6_select(struct pi_adapter *pi) if (j == k) { if (i & 4) // EPP - CUR_CTRL &= ~(port_sel | port_init); + CUR_CTRL &= ~(PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT); else // PPC/ECP - CUR_CTRL &= ~port_sel; + CUR_CTRL &= ~PARPORT_CONTROL_SELECT; outb(CUR_CTRL, pi->port + 2); @@ -197,15 +191,15 @@ static int ppc6_select(struct pi_adapter *pi) static void ppc6_deselect(struct pi_adapter *pi) { if (mode_map[pi->mode] & 4) // EPP - CUR_CTRL |= port_init; + CUR_CTRL |= PARPORT_CONTROL_INIT; else // PPC/ECP - CUR_CTRL |= port_sel; + CUR_CTRL |= PARPORT_CONTROL_SELECT; outb(CUR_CTRL, pi->port + 2); outb(pi->saved_r0, pi->port); - outb((pi->saved_r2 | port_sel), pi->port + 2); + outb((pi->saved_r2 | PARPORT_CONTROL_SELECT), pi->port + 2); outb(pi->saved_r2, pi->port + 2); } @@ -223,7 +217,7 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { outb(cmd, pi->port); - CUR_CTRL ^= cmd_stb; + CUR_CTRL ^= PARPORT_CONTROL_AUTOFD; outb(CUR_CTRL, pi->port + 2); @@ -254,7 +248,7 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { outb(data, pi->port); - CUR_CTRL ^= data_stb; + CUR_CTRL ^= PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); @@ -283,7 +277,7 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : { - CUR_CTRL = (CUR_CTRL & ~port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); @@ -293,7 +287,7 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); - CUR_CTRL |= port_stb; + CUR_CTRL |= PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); @@ -311,13 +305,13 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) outb(CUR_CTRL, pi->port + 2); - CUR_CTRL = (CUR_CTRL | port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL | PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); data = inb(pi->port); - CUR_CTRL &= ~port_stb; + CUR_CTRL &= ~PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); @@ -376,7 +370,8 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { u8 d; - CUR_CTRL = (CUR_CTRL & ~port_stb) ^ data_stb; + CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) + ^ PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); @@ -386,7 +381,7 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); - CUR_CTRL |= port_stb; + CUR_CTRL |= PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); @@ -408,11 +403,11 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) outb(CUR_CTRL, pi->port + 2); - CUR_CTRL |= port_stb; + CUR_CTRL |= PARPORT_CONTROL_STROBE; while(count) { - CUR_CTRL ^= data_stb; + CUR_CTRL ^= PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); @@ -420,7 +415,7 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) count--; } - CUR_CTRL &= ~port_stb; + CUR_CTRL &= ~PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); @@ -525,7 +520,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { outb(*data++, pi->port); - CUR_CTRL ^= data_stb; + CUR_CTRL ^= PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); } @@ -540,7 +535,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); - CUR_CTRL |= port_stb; + CUR_CTRL |= PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); @@ -555,7 +550,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) if (this == last) { - CUR_CTRL ^= data_stb; + CUR_CTRL ^= PARPORT_CONTROL_INIT; outb(CUR_CTRL, pi->port + 2); } @@ -567,7 +562,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) } } - CUR_CTRL &= ~port_stb; + CUR_CTRL &= ~PARPORT_CONTROL_STROBE; outb(CUR_CTRL, pi->port + 2); From 05f0adefd48a2ccbd66b3793d220beb9dcaf6988 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:06 +0100 Subject: [PATCH 34/57] ata: parport_pc: add 16-bit and 8-bit fast EPP transfer flags PARPORT_EPP_FAST flag currently uses 32-bit I/O port access for data read/write (insl/outsl). Add PARPORT_EPP_FAST_16 and PARPORT_EPP_FAST_8 that use insw/outsw and insb/outsb (and PARPORT_EPP_FAST_32 as alias for PARPORT_EPP_FAST). Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/parport/parport_pc.c | 20 ++++++++++++++++---- include/uapi/linux/parport.h | 3 +++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index 88e125e362306..3bacbaf16f427 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c @@ -305,9 +305,15 @@ static size_t parport_pc_epp_read_data(struct parport *port, void *buf, } return got; } - if ((flags & PARPORT_EPP_FAST) && (length > 1)) { - if (!(((long)buf | length) & 0x03)) + if ((length > 1) && ((flags & PARPORT_EPP_FAST_32) + || flags & PARPORT_EPP_FAST_16 + || flags & PARPORT_EPP_FAST_8)) { + if ((flags & PARPORT_EPP_FAST_32) + && !(((long)buf | length) & 0x03)) insl(EPPDATA(port), buf, (length >> 2)); + else if ((flags & PARPORT_EPP_FAST_16) + && !(((long)buf | length) & 0x01)) + insw(EPPDATA(port), buf, length >> 1); else insb(EPPDATA(port), buf, length); if (inb(STATUS(port)) & 0x01) { @@ -334,9 +340,15 @@ static size_t parport_pc_epp_write_data(struct parport *port, const void *buf, { size_t written = 0; - if ((flags & PARPORT_EPP_FAST) && (length > 1)) { - if (!(((long)buf | length) & 0x03)) + if ((length > 1) && ((flags & PARPORT_EPP_FAST_32) + || flags & PARPORT_EPP_FAST_16 + || flags & PARPORT_EPP_FAST_8)) { + if ((flags & PARPORT_EPP_FAST_32) + && !(((long)buf | length) & 0x03)) outsl(EPPDATA(port), buf, (length >> 2)); + else if ((flags & PARPORT_EPP_FAST_16) + && !(((long)buf | length) & 0x01)) + outsw(EPPDATA(port), buf, length >> 1); else outsb(EPPDATA(port), buf, length); if (inb(STATUS(port)) & 0x01) { diff --git a/include/uapi/linux/parport.h b/include/uapi/linux/parport.h index f41388f88dc36..fe93e41fc2054 100644 --- a/include/uapi/linux/parport.h +++ b/include/uapi/linux/parport.h @@ -90,6 +90,9 @@ typedef enum { /* Flags for block transfer operations. */ #define PARPORT_EPP_FAST (1<<0) /* Unreliable counts. */ #define PARPORT_W91284PIC (1<<1) /* have a Warp9 w91284pic in the device */ +#define PARPORT_EPP_FAST_32 PARPORT_EPP_FAST /* 32-bit EPP transfers */ +#define PARPORT_EPP_FAST_16 (1<<2) /* 16-bit EPP transfers */ +#define PARPORT_EPP_FAST_8 (1<<3) /* 8-bit EPP transfers */ /* The rest is for the kernel only */ #endif /* _UAPI_PARPORT_H_ */ From e9090fd6ed363921be4fd3d824a0275f53f862ed Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:07 +0100 Subject: [PATCH 35/57] ata: pata_parport-bpck6: use parport access functions instead of port I/O Use parport access functions instead of inb/outb/inw/outw/inl/outl. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 1 - drivers/ata/pata_parport/ppc6lnx.c | 212 +++++++++-------------------- 2 files changed, 68 insertions(+), 145 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index dc0f71cc305ee..39ac6e1a0aeed 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include "pata_parport.h" #include "ppc6lnx.c" diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 09480a7fcaee2..89c40d6ab0367 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -17,7 +17,6 @@ #define port_int 16 -#define port_dir 0x20 #define ECR_EPP 0x80 #define ECR_BI 0x20 @@ -106,65 +105,60 @@ static int ppc6_select(struct pi_adapter *pi) { u8 i, j, k; - i = inb(pi->port + 1); + pi->saved_r0 = parport_read_data(pi->pardev->port); - if (i & 1) - outb(i, pi->port + 1); - - pi->saved_r0 = inb(pi->port); - - pi->saved_r2 = inb(pi->port + 2) & 0x5F; // readback ctrl + pi->saved_r2 = parport_read_control(pi->pardev->port) & 0x5F; // readback ctrl CUR_CTRL = pi->saved_r2; CUR_CTRL |= PARPORT_CONTROL_SELECT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); if (pi->saved_r0 == 'b') - outb('x', pi->port); + parport_write_data(pi->pardev->port, 'x'); - outb('b', pi->port); - outb('p', pi->port); - outb(pi->unit, pi->port); - outb(~pi->unit, pi->port); + parport_write_data(pi->pardev->port, 'b'); + parport_write_data(pi->pardev->port, 'p'); + parport_write_data(pi->pardev->port, pi->unit); + parport_write_data(pi->pardev->port, ~pi->unit); CUR_CTRL &= ~PARPORT_CONTROL_SELECT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); CUR_CTRL = (CUR_CTRL & port_int) | PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); i = mode_map[pi->mode] & 0x0C; if (i == 0) i = (mode_map[pi->mode] & 2) | 1; - outb(i, pi->port); + parport_write_data(pi->pardev->port, i); CUR_CTRL |= PARPORT_CONTROL_SELECT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); // DELAY CUR_CTRL |= PARPORT_CONTROL_AUTOFD; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); j = ((i & 0x08) << 4) | ((i & 0x07) << 3); - k = inb(pi->port + 1) & 0xB8; + k = parport_read_status(pi->pardev->port) & 0xB8; if (j == k) { CUR_CTRL &= ~PARPORT_CONTROL_AUTOFD; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); - k = (inb(pi->port + 1) & 0xB8) ^ 0xB8; + k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; if (j == k) { @@ -173,15 +167,15 @@ static int ppc6_select(struct pi_adapter *pi) else // PPC/ECP CUR_CTRL &= ~PARPORT_CONTROL_SELECT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); return(1); } } - outb(pi->saved_r2, pi->port + 2); + parport_write_control(pi->pardev->port, pi->saved_r2); - outb(pi->saved_r0, pi->port); + parport_write_data(pi->pardev->port, pi->saved_r0); return(0); // FAIL } @@ -195,13 +189,13 @@ static void ppc6_deselect(struct pi_adapter *pi) else // PPC/ECP CUR_CTRL |= PARPORT_CONTROL_SELECT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); - outb(pi->saved_r0, pi->port); + parport_write_data(pi->pardev->port, pi->saved_r0); - outb((pi->saved_r2 | PARPORT_CONTROL_SELECT), pi->port + 2); + parport_write_control(pi->pardev->port, (pi->saved_r2 | PARPORT_CONTROL_SELECT)); - outb(pi->saved_r2, pi->port + 2); + parport_write_control(pi->pardev->port, pi->saved_r2); } //*************************************************************************** @@ -215,11 +209,11 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - outb(cmd, pi->port); + parport_write_data(pi->pardev->port, cmd); CUR_CTRL ^= PARPORT_CONTROL_AUTOFD; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); break; } @@ -228,7 +222,7 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb(cmd, pi->port + 3); + pi->pardev->port->ops->epp_write_addr(pi->pardev->port, &cmd, 1, 0); break; } @@ -246,11 +240,11 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - outb(data, pi->port); + parport_write_data(pi->pardev->port, data); CUR_CTRL ^= PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); break; } @@ -259,7 +253,7 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb(data, pi->port + 4); + pi->pardev->port->ops->epp_write_data(pi->pardev->port, &data, 1, 0); break; } @@ -279,21 +273,21 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); // DELAY - data = inb(pi->port + 1); + data = parport_read_status(pi->pardev->port); data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); CUR_CTRL |= PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); // DELAY - data |= inb(pi->port + 1) & 0xB8; + data |= parport_read_status(pi->pardev->port) & 0xB8; break; } @@ -301,23 +295,19 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - CUR_CTRL |= port_dir; - - outb(CUR_CTRL, pi->port + 2); + parport_data_reverse(pi->pardev->port); CUR_CTRL = (CUR_CTRL | PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); - data = inb(pi->port); + data = parport_read_data(pi->pardev->port); CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); - - CUR_CTRL &= ~port_dir; + parport_write_control(pi->pardev->port, CUR_CTRL); - outb(CUR_CTRL, pi->port + 2); + parport_data_forward(pi->pardev->port); break; } @@ -326,11 +316,7 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_EPP_WORD : case PPCMODE_EPP_DWORD : { - outb((CUR_CTRL | port_dir), pi->port + 2); - - data = inb(pi->port + 4); - - outb(CUR_CTRL, pi->port + 2); + pi->pardev->port->ops->epp_read_data(pi->pardev->port, &data, 1, 0); break; } @@ -373,21 +359,21 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); // DELAY - d = inb(pi->port + 1); + d = parport_read_status(pi->pardev->port); d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); CUR_CTRL |= PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); // DELAY - d |= inb(pi->port + 1) & 0xB8; + d |= parport_read_status(pi->pardev->port) & 0xB8; *data++ = d; count--; @@ -399,9 +385,7 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) case PPCMODE_BI_SW : case PPCMODE_BI_FW : { - CUR_CTRL |= port_dir; - - outb(CUR_CTRL, pi->port + 2); + parport_data_reverse(pi->pardev->port); CUR_CTRL |= PARPORT_CONTROL_STROBE; @@ -409,84 +393,47 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { CUR_CTRL ^= PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); - *data++ = inb(pi->port); + *data++ = parport_read_data(pi->pardev->port); count--; } CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); - CUR_CTRL &= ~port_dir; - - outb(CUR_CTRL, pi->port + 2); + parport_data_forward(pi->pardev->port); break; } case PPCMODE_EPP_BYTE : { - outb((CUR_CTRL | port_dir), pi->port + 2); - // DELAY - while(count) - { - *data++ = inb(pi->port + 4); - count--; - } - - outb(CUR_CTRL, pi->port + 2); + pi->pardev->port->ops->epp_read_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_8); break; } case PPCMODE_EPP_WORD : { - outb((CUR_CTRL | port_dir), pi->port + 2); - // DELAY - while(count > 1) - { - *((u16 *)data) = inw(pi->port + 4); - data += 2; - count -= 2; - } - - while(count) - { - *data++ = inb(pi->port + 4); - count--; - } - - outb(CUR_CTRL, pi->port + 2); + pi->pardev->port->ops->epp_read_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_16); break; } case PPCMODE_EPP_DWORD : { - outb((CUR_CTRL | port_dir), pi->port + 2); - // DELAY - while(count > 3) - { - *((u32 *)data) = inl(pi->port + 4); - data += 4; - count -= 4; - } - - while(count) - { - *data++ = inb(pi->port + 4); - count--; - } - - outb(CUR_CTRL, pi->port + 2); + pi->pardev->port->ops->epp_read_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_32); break; } @@ -503,7 +450,7 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) if (PPC_FLAGS & fifo_wait) { for(i=0; i<20; i++) - inb(pi->port + 1); + parport_read_status(pi->pardev->port); } } @@ -518,11 +465,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { while(count--) { - outb(*data++, pi->port); + parport_write_data(pi->pardev->port, *data++); CUR_CTRL ^= PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); } break; @@ -537,11 +484,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) CUR_CTRL |= PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); last = *data; - outb(last, pi->port); + parport_write_data(pi->pardev->port, last); while(count) { @@ -552,11 +499,11 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { CUR_CTRL ^= PARPORT_CONTROL_INIT; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); } else { - outb(this, pi->port); + parport_write_data(pi->pardev->port, this); last = this; } @@ -564,7 +511,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - outb(CUR_CTRL, pi->port + 2); + parport_write_control(pi->pardev->port, CUR_CTRL); ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); @@ -573,11 +520,8 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) case PPCMODE_EPP_BYTE : { - while(count) - { - outb(*data++, pi->port + 4); - count--; - } + pi->pardev->port->ops->epp_write_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_8); ppc6_wait_for_fifo(pi); @@ -586,18 +530,8 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) case PPCMODE_EPP_WORD : { - while(count > 1) - { - outw(*((u16 *)data), pi->port + 4); - data += 2; - count -= 2; - } - - while(count) - { - outb(*data++, pi->port + 4); - count--; - } + pi->pardev->port->ops->epp_write_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_16); ppc6_wait_for_fifo(pi); @@ -606,18 +540,8 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) case PPCMODE_EPP_DWORD : { - while(count > 3) - { - outl(*((u32 *)data), pi->port + 4); - data += 4; - count -= 4; - } - - while(count) - { - outb(*data++, pi->port + 4); - count--; - } + pi->pardev->port->ops->epp_write_data(pi->pardev->port, + data, count, PARPORT_EPP_FAST_32); ppc6_wait_for_fifo(pi); From f34536f5ecf04f9ce3bc11ecba31f2d24a6b0a8c Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:08 +0100 Subject: [PATCH 36/57] ata: pata_parport-bpck6: use parport_frob_control and remove CUR_CTRL Use parport_frob_control instead of manually maintaining control register state. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/ppc6lnx.c | 120 +++++++++-------------------- 1 file changed, 36 insertions(+), 84 deletions(-) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 89c40d6ab0367..fdc11875bf1bb 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -15,14 +15,6 @@ //*************************************************************************** - -#define port_int 16 - -#define ECR_EPP 0x80 -#define ECR_BI 0x20 - -//*************************************************************************** - // 60772 Commands #define ACCESS_REG 0x00 @@ -57,7 +49,6 @@ //*************************************************************************** -#define CUR_CTRL (((u8 *)&pi->private)[0]) #define PPC_FLAGS (((u8 *)&pi->private)[1]) //*************************************************************************** @@ -109,11 +100,7 @@ static int ppc6_select(struct pi_adapter *pi) pi->saved_r2 = parport_read_control(pi->pardev->port) & 0x5F; // readback ctrl - CUR_CTRL = pi->saved_r2; - - CUR_CTRL |= PARPORT_CONTROL_SELECT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); if (pi->saved_r0 == 'b') parport_write_data(pi->pardev->port, 'x'); @@ -123,13 +110,9 @@ static int ppc6_select(struct pi_adapter *pi) parport_write_data(pi->pardev->port, pi->unit); parport_write_data(pi->pardev->port, ~pi->unit); - CUR_CTRL &= ~PARPORT_CONTROL_SELECT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, 0); - CUR_CTRL = (CUR_CTRL & port_int) | PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_write_control(pi->pardev->port, PARPORT_CONTROL_INIT); i = mode_map[pi->mode] & 0x0C; @@ -138,15 +121,11 @@ static int ppc6_select(struct pi_adapter *pi) parport_write_data(pi->pardev->port, i); - CUR_CTRL |= PARPORT_CONTROL_SELECT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); // DELAY - CUR_CTRL |= PARPORT_CONTROL_AUTOFD; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, PARPORT_CONTROL_AUTOFD); j = ((i & 0x08) << 4) | ((i & 0x07) << 3); @@ -154,20 +133,18 @@ static int ppc6_select(struct pi_adapter *pi) if (j == k) { - CUR_CTRL &= ~PARPORT_CONTROL_AUTOFD; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, 0); k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; if (j == k) { if (i & 4) // EPP - CUR_CTRL &= ~(PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT, 0); else // PPC/ECP - CUR_CTRL &= ~PARPORT_CONTROL_SELECT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT, 0); return(1); } @@ -185,11 +162,11 @@ static int ppc6_select(struct pi_adapter *pi) static void ppc6_deselect(struct pi_adapter *pi) { if (mode_map[pi->mode] & 4) // EPP - CUR_CTRL |= PARPORT_CONTROL_INIT; + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_INIT, PARPORT_CONTROL_INIT); else // PPC/ECP - CUR_CTRL |= PARPORT_CONTROL_SELECT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); parport_write_data(pi->pardev->port, pi->saved_r0); @@ -210,10 +187,7 @@ static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) case PPCMODE_BI_FW : { parport_write_data(pi->pardev->port, cmd); - - CUR_CTRL ^= PARPORT_CONTROL_AUTOFD; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_AUTOFD); break; } @@ -241,10 +215,7 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) case PPCMODE_BI_FW : { parport_write_data(pi->pardev->port, data); - - CUR_CTRL ^= PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_INIT); break; } @@ -271,9 +242,8 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) case PPCMODE_UNI_SW : case PPCMODE_UNI_FW : { - CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, PARPORT_CONTROL_INIT); // DELAY @@ -281,9 +251,8 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); - CUR_CTRL |= PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); // DELAY @@ -297,15 +266,12 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) { parport_data_reverse(pi->pardev->port); - CUR_CTRL = (CUR_CTRL | PARPORT_CONTROL_STROBE) ^ PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); data = parport_read_data(pi->pardev->port); - CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); parport_data_forward(pi->pardev->port); @@ -356,10 +322,8 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { u8 d; - CUR_CTRL = (CUR_CTRL & ~PARPORT_CONTROL_STROBE) - ^ PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, PARPORT_CONTROL_INIT); // DELAY @@ -367,9 +331,8 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); - CUR_CTRL |= PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); // DELAY @@ -387,21 +350,16 @@ static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { parport_data_reverse(pi->pardev->port); - CUR_CTRL |= PARPORT_CONTROL_STROBE; - while(count) { - CUR_CTRL ^= PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); *data++ = parport_read_data(pi->pardev->port); count--; } - CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); parport_data_forward(pi->pardev->port); @@ -467,9 +425,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) { parport_write_data(pi->pardev->port, *data++); - CUR_CTRL ^= PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_INIT); } break; @@ -482,9 +438,8 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); - CUR_CTRL |= PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); last = *data; @@ -497,9 +452,8 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) if (this == last) { - CUR_CTRL ^= PARPORT_CONTROL_INIT; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, + 0, PARPORT_CONTROL_INIT); } else { @@ -509,9 +463,7 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) } } - CUR_CTRL &= ~PARPORT_CONTROL_STROBE; - - parport_write_control(pi->pardev->port, CUR_CTRL); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); From 77c521d79a86593e9f249e2fead7cdbf9ca68189 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:09 +0100 Subject: [PATCH 37/57] ata: pata_parport-bpck6: remove PPC_FLAGS pi->private is now not used for any other purpose, so store wait_fifo flag directly there and remove PPC_FLAGS define. Signed-off-by: Ondrej Zary Reviewed-by: Sergey Shtylyov Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/ppc6lnx.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index fdc11875bf1bb..9a166f3961123 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -49,10 +49,6 @@ //*************************************************************************** -#define PPC_FLAGS (((u8 *)&pi->private)[1]) - -//*************************************************************************** - // ppc_flags #define fifo_wait 0x10 @@ -405,7 +401,7 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) { int i; - if (PPC_FLAGS & fifo_wait) + if (pi->private & fifo_wait) { for(i=0; i<20; i++) parport_read_status(pi->pardev->port); @@ -562,7 +558,7 @@ static int ppc6_open(struct pi_adapter *pi) if (ret == 0) return(ret); - PPC_FLAGS &= ~fifo_wait; + pi->private = 0; ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); ppc6_wr_data_byte(pi, RAMSIZE_128K); @@ -570,7 +566,7 @@ static int ppc6_open(struct pi_adapter *pi) ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) - PPC_FLAGS |= fifo_wait; + pi->private |= fifo_wait; return(ret); } From cd3b3944ac364beb05143a100e4ddf6601afad48 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:10 +0100 Subject: [PATCH 38/57] ata: pata_parport-bpck6: remove ppc6_close ppc6_close does not do anything except calling ppc6_deselect. Remove ppc6_close and call ppc6_deselect directly. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 4 ++-- drivers/ata/pata_parport/ppc6lnx.c | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 39ac6e1a0aeed..b8135a6eed162 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -51,7 +51,7 @@ static void bpck6_disconnect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "disconnect\n"); ppc6_wr_extout(pi, 0x0); - ppc6_close(pi); + ppc6_deselect(pi); } static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ @@ -83,7 +83,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) if(out) { - ppc6_close(pi); + ppc6_deselect(pi); dev_dbg(&pi->dev, "leaving probe\n"); pi->mode = saved_mode; return(1); diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 9a166f3961123..5b7796083e7e2 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -81,7 +81,6 @@ static void ppc6_rd_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long le static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long 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); //*************************************************************************** @@ -573,10 +572,3 @@ static int ppc6_open(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_close(struct pi_adapter *pi) -{ - ppc6_deselect(pi); -} - -//*************************************************************************** - From 2ee865ce041c15750745c60d4402defcfafcb412 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:11 +0100 Subject: [PATCH 39/57] ata: pata_parport-bpck6: merge ppc6_rd_port into bpck6_read_regr ppc6_rd_port is only called by bpck6_read_regr. Merge ppc6_rd_port into bpck6_read_regr. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 5 ++++- drivers/ata/pata_parport/ppc6lnx.c | 10 ---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index b8135a6eed162..2918fc9e9def7 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -21,7 +21,10 @@ static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { - return ppc6_rd_port(pi, cont?reg|8:reg); + u8 port = cont ? reg | 8 : reg; + + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); + return ppc6_rd_data_byte(pi); } static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 5b7796083e7e2..23dce177b7224 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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); @@ -288,15 +287,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) //*************************************************************************** -static u8 ppc6_rd_port(struct pi_adapter *pi, u8 port) -{ - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); - - return ppc6_rd_data_byte(pi); -} - -//*************************************************************************** - static void ppc6_wr_port(struct pi_adapter *pi, u8 port, u8 data) { ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); From ba98c5661d9aa3f4e7fd350f18d5f17e042b1b14 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:12 +0100 Subject: [PATCH 40/57] ata: pata_parport-bpck6: merge ppc6_wr_port into bpck6_write_regr ppc6_wr_port is only called by bpck6_write_regr. Merge ppc6_wr_port into bpck6_write_regr. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 5 ++++- drivers/ata/pata_parport/ppc6lnx.c | 10 ---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 2918fc9e9def7..8e0094e3b02b1 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -29,7 +29,10 @@ static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) { - ppc6_wr_port(pi, cont?reg|8:reg, val); + u8 port = cont ? reg | 8 : reg; + + ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); + ppc6_wr_data_byte(pi, val); } static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 23dce177b7224..35427742e4d35 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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 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); @@ -287,15 +286,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_wr_port(struct pi_adapter *pi, u8 port, u8 data) -{ - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); - - ppc6_wr_data_byte(pi, data); -} - -//*************************************************************************** - static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) { switch (mode_map[pi->mode]) From 3967def82f8d0884020928659d3084e686616373 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:13 +0100 Subject: [PATCH 41/57] ata: pata_parport-bpck6: merge ppc6_rd_port16_blk into bpck6_read_block ppc6_rd_port16_blk is only called by bpck6_read_block. Merge ppc6_rd_port16_blk into bpck6_read_block. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 10 +++++++++- drivers/ata/pata_parport/ppc6lnx.c | 21 --------------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 8e0094e3b02b1..aaf6737891a56 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -42,7 +42,15 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_rd_port16_blk(pi, ATA_REG_DATA, buf, (u32)len>>1); + ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + ppc6_wr_data_byte(pi, (u8)len); + ppc6_wr_data_byte(pi, (u8)(len >> 8)); + ppc6_wr_data_byte(pi, 0); + + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); + ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ); + ppc6_rd_data_blk(pi, buf, len); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } static void bpck6_connect(struct pi_adapter *pi) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 35427742e4d35..ac336ce1695bc 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -75,7 +75,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi); 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, long length); static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length); static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata); static int ppc6_open(struct pi_adapter *pi); @@ -479,26 +478,6 @@ 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, long length) -{ - length = length << 1; - - 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); - - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); - - ppc6_rd_data_blk(pi, data, length); - - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); -} - -//*************************************************************************** - static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length) { length = length << 1; From 4e21c863ea9b2ec65c3ea53136f568e62beb13f6 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:14 +0100 Subject: [PATCH 42/57] ata: pata_parport-bpck6: merge ppc6_wr_port16_blk into bpck6_write_block ppc6_wr_port16_blk is only called by bpck6_write_block. Merge ppc6_wr_port16_blk into bpck6_write_block. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 10 +++++++++- drivers/ata/pata_parport/ppc6lnx.c | 21 --------------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index aaf6737891a56..1c04fcaba74af 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -37,7 +37,15 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_wr_port16_blk(pi, ATA_REG_DATA, buf, (u32)len>>1); + ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + ppc6_wr_data_byte(pi, (u8)len); + ppc6_wr_data_byte(pi, (u8)(len >> 8)); + ppc6_wr_data_byte(pi, 0); + + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); + ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE); + ppc6_wr_data_blk(pi, buf, len); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index ac336ce1695bc..d275de3f1ead7 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -75,7 +75,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi); 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_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length); static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata); static int ppc6_open(struct pi_adapter *pi); @@ -478,26 +477,6 @@ static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) //*************************************************************************** -static void ppc6_wr_port16_blk(struct pi_adapter *pi, u8 port, u8 *data, long length) -{ - length = length << 1; - - 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); - - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); - - ppc6_wr_data_blk(pi, data, length); - - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); -} - -//*************************************************************************** - static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) { ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); From db24d7432494a3d51d71b4c127ba286c58c436fe Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:15 +0100 Subject: [PATCH 43/57] ata: pata_parport-bpck6: merge ppc6_rd_data_blk into bpck6_read_block ppc6_rd_data_blk is only called by bpck6_read_block. Merge ppc6_rd_data_blk into bpck6_read_block. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 49 +++++++++++++++- drivers/ata/pata_parport/ppc6lnx.c | 91 ------------------------------ 2 files changed, 48 insertions(+), 92 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 1c04fcaba74af..d379603424ffe 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -57,7 +57,54 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ); - ppc6_rd_data_blk(pi, buf, len); + + switch (mode_map[pi->mode]) { + case PPCMODE_UNI_SW: + case PPCMODE_UNI_FW: + while (len) { + u8 d; + + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_INIT); /* DATA STROBE */ + d = parport_read_status(pi->pardev->port); + d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE); + d |= parport_read_status(pi->pardev->port) & 0xB8; + *buf++ = d; + len--; + } + break; + case PPCMODE_BI_SW: + case PPCMODE_BI_FW: + parport_data_reverse(pi->pardev->port); + while (len) { + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); + *buf++ = parport_read_data(pi->pardev->port); + len--; + } + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + 0); + parport_data_forward(pi->pardev->port); + break; + case PPCMODE_EPP_BYTE: + pi->pardev->port->ops->epp_read_data(pi->pardev->port, buf, len, + PARPORT_EPP_FAST_8); + break; + case PPCMODE_EPP_WORD: + pi->pardev->port->ops->epp_read_data(pi->pardev->port, buf, len, + PARPORT_EPP_FAST_16); + break; + case PPCMODE_EPP_DWORD: + pi->pardev->port->ops->epp_read_data(pi->pardev->port, buf, len, + PARPORT_EPP_FAST_32); + break; + } + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index d275de3f1ead7..679261e19ac50 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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 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_wr_extout(struct pi_adapter *pi, u8 regdata); @@ -284,96 +283,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_rd_data_blk(struct pi_adapter *pi, u8 *data, long count) -{ - switch (mode_map[pi->mode]) - { - case PPCMODE_UNI_SW : - case PPCMODE_UNI_FW : - { - while(count) - { - u8 d; - - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_STROBE, PARPORT_CONTROL_INIT); - - // DELAY - - d = parport_read_status(pi->pardev->port); - - d = ((d & 0x80) >> 1) | ((d & 0x38) >> 3); - - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); - - // DELAY - - d |= parport_read_status(pi->pardev->port) & 0xB8; - - *data++ = d; - count--; - } - - break; - } - - case PPCMODE_BI_SW : - case PPCMODE_BI_FW : - { - parport_data_reverse(pi->pardev->port); - - while(count) - { - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, - PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); - - *data++ = parport_read_data(pi->pardev->port); - count--; - } - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); - - parport_data_forward(pi->pardev->port); - - break; - } - - case PPCMODE_EPP_BYTE : - { - // DELAY - - pi->pardev->port->ops->epp_read_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_8); - - break; - } - - case PPCMODE_EPP_WORD : - { - // DELAY - - pi->pardev->port->ops->epp_read_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_16); - - break; - } - - case PPCMODE_EPP_DWORD : - { - // DELAY - - pi->pardev->port->ops->epp_read_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_32); - - break; - } - } - -} - -//*************************************************************************** - static void ppc6_wait_for_fifo(struct pi_adapter *pi) { int i; From 99c40a70dd1e52c0fd62a875760f932ab06f96ad Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:16 +0100 Subject: [PATCH 44/57] ata: pata_parport-bpck6: merge ppc6_wr_data_blk into bpck6_write_block ppc6_wr_data_blk is only called by bpck6_write_block. Merge ppc6_wr_data_blk into bpck6_write_block. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 58 ++++++++++++++++++- drivers/ata/pata_parport/ppc6lnx.c | 91 ------------------------------ 2 files changed, 57 insertions(+), 92 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index d379603424ffe..27c1fa3bb336e 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -37,6 +37,8 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { + u8 this, last; + ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); ppc6_wr_data_byte(pi, (u8)len); ppc6_wr_data_byte(pi, (u8)(len >> 8)); @@ -44,7 +46,61 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE); - ppc6_wr_data_blk(pi, buf, len); + + switch (mode_map[pi->mode]) { + case PPCMODE_UNI_SW: + case PPCMODE_BI_SW: + while (len--) { + parport_write_data(pi->pardev->port, *buf++); + parport_frob_control(pi->pardev->port, 0, + PARPORT_CONTROL_INIT); + } + break; + case PPCMODE_UNI_FW: + case PPCMODE_BI_FW: + ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE); + + last = *buf; + + parport_write_data(pi->pardev->port, last); + + while (len) { + this = *buf++; + len--; + + if (this == last) { + parport_frob_control(pi->pardev->port, 0, + PARPORT_CONTROL_INIT); + } else { + parport_write_data(pi->pardev->port, this); + last = this; + } + } + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + 0); + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); + break; + case PPCMODE_EPP_BYTE: + pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, + len, PARPORT_EPP_FAST_8); + ppc6_wait_for_fifo(pi); + break; + case PPCMODE_EPP_WORD: + pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, + len, PARPORT_EPP_FAST_16); + ppc6_wait_for_fifo(pi); + break; + case PPCMODE_EPP_DWORD: + pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, + len, PARPORT_EPP_FAST_32); + ppc6_wait_for_fifo(pi); + break; + } + ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 679261e19ac50..3ba920251c1c0 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -73,7 +73,6 @@ 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 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_wr_extout(struct pi_adapter *pi, u8 regdata); static int ppc6_open(struct pi_adapter *pi); @@ -296,96 +295,6 @@ static void ppc6_wait_for_fifo(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_wr_data_blk(struct pi_adapter *pi, u8 *data, long count) -{ - switch (mode_map[pi->mode]) - { - case PPCMODE_UNI_SW : - case PPCMODE_BI_SW : - { - while(count--) - { - parport_write_data(pi->pardev->port, *data++); - - parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_INIT); - } - - break; - } - - case PPCMODE_UNI_FW : - case PPCMODE_BI_FW : - { - u8 this, last; - - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); - - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); - - last = *data; - - parport_write_data(pi->pardev->port, last); - - while(count) - { - this = *data++; - count--; - - if (this == last) - { - parport_frob_control(pi->pardev->port, - 0, PARPORT_CONTROL_INIT); - } - else - { - parport_write_data(pi->pardev->port, this); - - last = this; - } - } - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); - - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); - - break; - } - - case PPCMODE_EPP_BYTE : - { - pi->pardev->port->ops->epp_write_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_8); - - ppc6_wait_for_fifo(pi); - - break; - } - - case PPCMODE_EPP_WORD : - { - pi->pardev->port->ops->epp_write_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_16); - - ppc6_wait_for_fifo(pi); - - break; - } - - case PPCMODE_EPP_DWORD : - { - pi->pardev->port->ops->epp_write_data(pi->pardev->port, - data, count, PARPORT_EPP_FAST_32); - - ppc6_wait_for_fifo(pi); - - break; - } - } -} - -//*************************************************************************** - static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) { ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); From 144e7799ad1115c933c31138758d57646d4cbb44 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:17 +0100 Subject: [PATCH 45/57] ata: pata_parport-bpck6: move ppc6_wait_for_fifo to bpck6.c and rename Move ppc6_wait_for_fifo to bpck6.c and rename it to bpck6_wait_for_fifo Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 16 +++++++++++++--- drivers/ata/pata_parport/ppc6lnx.c | 14 -------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 27c1fa3bb336e..1f976ee04ef20 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -35,6 +35,16 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) ppc6_wr_data_byte(pi, val); } +static void bpck6_wait_for_fifo(struct pi_adapter *pi) +{ + int i; + + if (pi->private & fifo_wait) { + for (i = 0; i < 20; i++) + parport_read_status(pi->pardev->port); + } +} + static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { u8 this, last; @@ -87,17 +97,17 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) case PPCMODE_EPP_BYTE: pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, len, PARPORT_EPP_FAST_8); - ppc6_wait_for_fifo(pi); + bpck6_wait_for_fifo(pi); break; case PPCMODE_EPP_WORD: pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, len, PARPORT_EPP_FAST_16); - ppc6_wait_for_fifo(pi); + bpck6_wait_for_fifo(pi); break; case PPCMODE_EPP_DWORD: pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, len, PARPORT_EPP_FAST_32); - ppc6_wait_for_fifo(pi); + bpck6_wait_for_fifo(pi); break; } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 3ba920251c1c0..cd4fa31a5ff8b 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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 void ppc6_wait_for_fifo(struct pi_adapter *pi); static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata); static int ppc6_open(struct pi_adapter *pi); @@ -282,19 +281,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_wait_for_fifo(struct pi_adapter *pi) -{ - int i; - - if (pi->private & fifo_wait) - { - for(i=0; i<20; i++) - parport_read_status(pi->pardev->port); - } -} - -//*************************************************************************** - static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) { ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); From 9e75963a49a3b367f0e112c8f54ef2be438b0dc5 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:18 +0100 Subject: [PATCH 46/57] ata: pata_parport-bpck6: move ppc6_wr_extout to bpck6.c and rename Move ppc6_wr_extout to bpck6.c and rename it to bpck6_wr_extout Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 10 ++++++++-- drivers/ata/pata_parport/ppc6lnx.c | 10 ---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 1f976ee04ef20..968c9f3297e35 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -174,18 +174,24 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } +static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) +{ + ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); + ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); +} + static void bpck6_connect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "connect\n"); ppc6_open(pi); - ppc6_wr_extout(pi, 0x3); + bpck6_wr_extout(pi, 0x3); } static void bpck6_disconnect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "disconnect\n"); - ppc6_wr_extout(pi, 0x0); + bpck6_wr_extout(pi, 0x0); ppc6_deselect(pi); } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index cd4fa31a5ff8b..931bf67fabb97 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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 void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata); static int ppc6_open(struct pi_adapter *pi); //*************************************************************************** @@ -281,15 +280,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) //*************************************************************************** -static void ppc6_wr_extout(struct pi_adapter *pi, u8 regdata) -{ - ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); - - ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); -} - -//*************************************************************************** - static int ppc6_open(struct pi_adapter *pi) { int ret; From 7c97e4680a4f7888a843a0f37f0aeaaf7e9bb0de Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:19 +0100 Subject: [PATCH 47/57] ata: pata_parport-bpck6: move ppc6_open to bpck6.c and rename Move ppc6_open to bpck6.c and rename it to bpck6_open Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 23 +++++++++++++++++++++-- drivers/ata/pata_parport/ppc6lnx.c | 28 ---------------------------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 968c9f3297e35..02f16dedfd29b 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -174,6 +174,25 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } +static int bpck6_open(struct pi_adapter *pi) +{ + int ret = ppc6_select(pi); + + if (ret == 0) + return ret; + + pi->private = 0; + + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); + ppc6_wr_data_byte(pi, RAMSIZE_128K); + + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); + if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) + pi->private |= fifo_wait; + + return ret; +} + static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) { ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); @@ -184,7 +203,7 @@ static void bpck6_connect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "connect\n"); - ppc6_open(pi); + bpck6_open(pi); bpck6_wr_extout(pi, 0x3); } @@ -218,7 +237,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) /*LOWER DOWN TO UNIDIRECTIONAL*/ pi->mode = 0; - out = ppc6_open(pi); + out = bpck6_open(pi); dev_dbg(&pi->dev, "ppc_open returned %2x\n", out); diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 931bf67fabb97..a902ede5ecc5d 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -72,7 +72,6 @@ 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 int ppc6_open(struct pi_adapter *pi); //*************************************************************************** @@ -277,30 +276,3 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi) return(data); } - -//*************************************************************************** - -static int ppc6_open(struct pi_adapter *pi) -{ - int ret; - - ret = ppc6_select(pi); - - if (ret == 0) - return(ret); - - pi->private = 0; - - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); - ppc6_wr_data_byte(pi, RAMSIZE_128K); - - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); - - if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) - pi->private |= fifo_wait; - - return(ret); -} - -//*************************************************************************** - From cad40b2a009d7923a0c1a592ff7a0c629addc208 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:20 +0100 Subject: [PATCH 48/57] ata: pata_parport-bpck6: merge ppc6_select into bpck6_open ppc6_select is only called by bpck6_open. Merge ppc6_select into bpck6_open. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 68 ++++++++++++++++++++++++------ drivers/ata/pata_parport/ppc6lnx.c | 66 ----------------------------- 2 files changed, 55 insertions(+), 79 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 02f16dedfd29b..9b05e1c827cdd 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -176,21 +176,63 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) static int bpck6_open(struct pi_adapter *pi) { - int ret = ppc6_select(pi); - - if (ret == 0) - return ret; - - pi->private = 0; - - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); - ppc6_wr_data_byte(pi, RAMSIZE_128K); + u8 i, j, k; + + pi->saved_r0 = parport_read_data(pi->pardev->port); + pi->saved_r2 = parport_read_control(pi->pardev->port) & 0x5F; + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, + PARPORT_CONTROL_SELECT); + if (pi->saved_r0 == 'b') + parport_write_data(pi->pardev->port, 'x'); + parport_write_data(pi->pardev->port, 'b'); + parport_write_data(pi->pardev->port, 'p'); + parport_write_data(pi->pardev->port, pi->unit); + parport_write_data(pi->pardev->port, ~pi->unit); + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, 0); + parport_write_control(pi->pardev->port, PARPORT_CONTROL_INIT); + + i = mode_map[pi->mode] & 0x0C; + if (i == 0) + i = (mode_map[pi->mode] & 2) | 1; + parport_write_data(pi->pardev->port, i); + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, + PARPORT_CONTROL_SELECT); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, + PARPORT_CONTROL_AUTOFD); + + j = ((i & 0x08) << 4) | ((i & 0x07) << 3); + k = parport_read_status(pi->pardev->port) & 0xB8; + if (j == k) { + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, 0); + k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; + if (j == k) { + if (i & 4) // EPP + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT, 0); + else // PPC/ECP + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT, 0); + + pi->private = 0; + + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); + ppc6_wr_data_byte(pi, RAMSIZE_128K); + + ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); + if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) + pi->private |= fifo_wait; + + return 1; + } + } - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); - if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) - pi->private |= fifo_wait; + parport_write_control(pi->pardev->port, pi->saved_r2); + parport_write_data(pi->pardev->port, pi->saved_r0); - return ret; + return 0; // FAIL } static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index a902ede5ecc5d..16d0497dfeaa0 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -67,7 +67,6 @@ //*************************************************************************** -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); @@ -78,71 +77,6 @@ static u8 ppc6_rd_data_byte(struct pi_adapter *pi); int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; -static int ppc6_select(struct pi_adapter *pi) -{ - u8 i, j, k; - - pi->saved_r0 = parport_read_data(pi->pardev->port); - - pi->saved_r2 = parport_read_control(pi->pardev->port) & 0x5F; // readback ctrl - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); - - if (pi->saved_r0 == 'b') - parport_write_data(pi->pardev->port, 'x'); - - parport_write_data(pi->pardev->port, 'b'); - parport_write_data(pi->pardev->port, 'p'); - parport_write_data(pi->pardev->port, pi->unit); - parport_write_data(pi->pardev->port, ~pi->unit); - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, 0); - - parport_write_control(pi->pardev->port, PARPORT_CONTROL_INIT); - - i = mode_map[pi->mode] & 0x0C; - - if (i == 0) - i = (mode_map[pi->mode] & 2) | 1; - - parport_write_data(pi->pardev->port, i); - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); - - // DELAY - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, PARPORT_CONTROL_AUTOFD); - - j = ((i & 0x08) << 4) | ((i & 0x07) << 3); - - k = parport_read_status(pi->pardev->port) & 0xB8; - - if (j == k) - { - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, 0); - - k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; - - if (j == k) - { - if (i & 4) // EPP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT, 0); - else // PPC/ECP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_SELECT, 0); - - return(1); - } - } - - parport_write_control(pi->pardev->port, pi->saved_r2); - - parport_write_data(pi->pardev->port, pi->saved_r0); - - return(0); // FAIL -} - //*************************************************************************** static void ppc6_deselect(struct pi_adapter *pi) From 82e16f824e8517de9f532581814c9b56f8362b9e Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:21 +0100 Subject: [PATCH 49/57] ata: pata_parport-bpck6: move ppc6_deselect to bpck6.c and rename Move ppc6_deselect to bpck6.c and rename it to bpck6_deselect Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 19 +++++++++++++++++-- drivers/ata/pata_parport/ppc6lnx.c | 19 ------------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 9b05e1c827cdd..46a91b04aed33 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -235,6 +235,21 @@ static int bpck6_open(struct pi_adapter *pi) return 0; // FAIL } +static void bpck6_deselect(struct pi_adapter *pi) +{ + if (mode_map[pi->mode] & 4) // EPP + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_INIT, + PARPORT_CONTROL_INIT); + else // PPC/ECP + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, + PARPORT_CONTROL_SELECT); + + parport_write_data(pi->pardev->port, pi->saved_r0); + parport_write_control(pi->pardev->port, + pi->saved_r2 | PARPORT_CONTROL_SELECT); + parport_write_control(pi->pardev->port, pi->saved_r2); +} + static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) { ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); @@ -253,7 +268,7 @@ static void bpck6_disconnect(struct pi_adapter *pi) { dev_dbg(&pi->dev, "disconnect\n"); bpck6_wr_extout(pi, 0x0); - ppc6_deselect(pi); + bpck6_deselect(pi); } static int bpck6_test_port(struct pi_adapter *pi) /* check for 8-bit port */ @@ -285,7 +300,7 @@ static int bpck6_probe_unit(struct pi_adapter *pi) if(out) { - ppc6_deselect(pi); + bpck6_deselect(pi); dev_dbg(&pi->dev, "leaving probe\n"); pi->mode = saved_mode; return(1); diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 16d0497dfeaa0..6c34bbbdf6dbd 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -67,7 +67,6 @@ //*************************************************************************** -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); @@ -79,24 +78,6 @@ int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, //*************************************************************************** -static void ppc6_deselect(struct pi_adapter *pi) -{ - if (mode_map[pi->mode] & 4) // EPP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_INIT, PARPORT_CONTROL_INIT); - else // PPC/ECP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_SELECT, PARPORT_CONTROL_SELECT); - - parport_write_data(pi->pardev->port, pi->saved_r0); - - parport_write_control(pi->pardev->port, (pi->saved_r2 | PARPORT_CONTROL_SELECT)); - - parport_write_control(pi->pardev->port, pi->saved_r2); -} - -//*************************************************************************** - static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) { switch (mode_map[pi->mode]) From b04062789dd5ce2d39996a9a29de8febb771c73f Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:22 +0100 Subject: [PATCH 50/57] ata: pata_parport-bpck6: move ppc6_send_cmd to bpck6.c and rename Move ppc6_send_cmd to bpck6.c and rename it to bpck6_send_cmd Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 48 ++++++++++++++++++++---------- drivers/ata/pata_parport/ppc6lnx.c | 29 ------------------ 2 files changed, 33 insertions(+), 44 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 46a91b04aed33..32dc9e61e80c5 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -19,11 +19,29 @@ #include "pata_parport.h" #include "ppc6lnx.c" +static void bpck6_send_cmd(struct pi_adapter *pi, u8 cmd) +{ + switch (mode_map[pi->mode]) { + case PPCMODE_UNI_SW: + case PPCMODE_UNI_FW: + case PPCMODE_BI_SW: + case PPCMODE_BI_FW: + parport_write_data(pi->pardev->port, cmd); + parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_AUTOFD); + break; + case PPCMODE_EPP_BYTE: + case PPCMODE_EPP_WORD: + case PPCMODE_EPP_DWORD: + pi->pardev->port->ops->epp_write_addr(pi->pardev->port, &cmd, 1, 0); + break; + } +} + static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { u8 port = cont ? reg | 8 : reg; - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); + bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); return ppc6_rd_data_byte(pi); } @@ -31,7 +49,7 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) { u8 port = cont ? reg | 8 : reg; - ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); + bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); ppc6_wr_data_byte(pi, val); } @@ -49,13 +67,13 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) { u8 this, last; - ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); ppc6_wr_data_byte(pi, (u8)len); ppc6_wr_data_byte(pi, (u8)(len >> 8)); ppc6_wr_data_byte(pi, 0); - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE); + bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); + bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW: @@ -68,7 +86,7 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) break; case PPCMODE_UNI_FW: case PPCMODE_BI_FW: - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); + bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR); parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); @@ -92,7 +110,7 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); + bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR); break; case PPCMODE_EPP_BYTE: pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf, @@ -111,18 +129,18 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) break; } - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); + bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { - ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); + bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); ppc6_wr_data_byte(pi, (u8)len); ppc6_wr_data_byte(pi, (u8)(len >> 8)); ppc6_wr_data_byte(pi, 0); - ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); - ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ); + bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); + bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ); switch (mode_map[pi->mode]) { case PPCMODE_UNI_SW: @@ -171,7 +189,7 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) break; } - ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); + bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK); } static int bpck6_open(struct pi_adapter *pi) @@ -218,10 +236,10 @@ static int bpck6_open(struct pi_adapter *pi) pi->private = 0; - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); + bpck6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); ppc6_wr_data_byte(pi, RAMSIZE_128K); - ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); + bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) pi->private |= fifo_wait; @@ -252,7 +270,7 @@ static void bpck6_deselect(struct pi_adapter *pi) static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) { - ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); + bpck6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); } diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 6c34bbbdf6dbd..d3c3968fbfc8d 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -67,7 +67,6 @@ //*************************************************************************** -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); @@ -78,34 +77,6 @@ int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, //*************************************************************************** -static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd) -{ - switch (mode_map[pi->mode]) - { - case PPCMODE_UNI_SW : - case PPCMODE_UNI_FW : - case PPCMODE_BI_SW : - case PPCMODE_BI_FW : - { - parport_write_data(pi->pardev->port, cmd); - parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_AUTOFD); - - break; - } - - case PPCMODE_EPP_BYTE : - case PPCMODE_EPP_WORD : - case PPCMODE_EPP_DWORD : - { - pi->pardev->port->ops->epp_write_addr(pi->pardev->port, &cmd, 1, 0); - - break; - } - } -} - -//*************************************************************************** - static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) { switch (mode_map[pi->mode]) From 574197379327a55285da561996dfdf985b38d2ea Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:23 +0100 Subject: [PATCH 51/57] ata: pata_parport-bpck6: move ppc6_rd_data_byte to bpck6.c and rename Move ppc6_rd_data_byte to bpck6.c and rename it to bpck6_rd_data_byte Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 38 ++++++++++++++++++- drivers/ata/pata_parport/ppc6lnx.c | 61 ------------------------------ 2 files changed, 36 insertions(+), 63 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 32dc9e61e80c5..064696b6d68fb 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -37,12 +37,46 @@ static void bpck6_send_cmd(struct pi_adapter *pi, u8 cmd) } } +static u8 bpck6_rd_data_byte(struct pi_adapter *pi) +{ + u8 data = 0; + + switch (mode_map[pi->mode]) { + case PPCMODE_UNI_SW: + case PPCMODE_UNI_FW: + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_INIT); + data = parport_read_status(pi->pardev->port); + data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE); + data |= parport_read_status(pi->pardev->port) & 0xB8; + break; + case PPCMODE_BI_SW: + case PPCMODE_BI_FW: + parport_data_reverse(pi->pardev->port); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, + PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); + data = parport_read_data(pi->pardev->port); + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); + parport_data_forward(pi->pardev->port); + break; + case PPCMODE_EPP_BYTE: + case PPCMODE_EPP_WORD: + case PPCMODE_EPP_DWORD: + pi->pardev->port->ops->epp_read_data(pi->pardev->port, &data, 1, 0); + break; + } + + return data; +} + static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { u8 port = cont ? reg | 8 : reg; bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ); - return ppc6_rd_data_byte(pi); + return bpck6_rd_data_byte(pi); } static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) @@ -240,7 +274,7 @@ static int bpck6_open(struct pi_adapter *pi) ppc6_wr_data_byte(pi, RAMSIZE_128K); bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); - if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C) + if ((bpck6_rd_data_byte(pi) & 0x3F) == 0x0C) pi->private |= fifo_wait; return 1; diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index d3c3968fbfc8d..838af60a0d4d8 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -68,7 +68,6 @@ //*************************************************************************** static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data); -static u8 ppc6_rd_data_byte(struct pi_adapter *pi); //*************************************************************************** @@ -102,63 +101,3 @@ static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) } } } - -//*************************************************************************** - -static u8 ppc6_rd_data_byte(struct pi_adapter *pi) -{ - u8 data = 0; - - switch (mode_map[pi->mode]) - { - case PPCMODE_UNI_SW : - case PPCMODE_UNI_FW : - { - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_STROBE, PARPORT_CONTROL_INIT); - - // DELAY - - data = parport_read_status(pi->pardev->port); - - data = ((data & 0x80) >> 1) | ((data & 0x38) >> 3); - - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_STROBE, PARPORT_CONTROL_STROBE); - - // DELAY - - data |= parport_read_status(pi->pardev->port) & 0xB8; - - break; - } - - case PPCMODE_BI_SW : - case PPCMODE_BI_FW : - { - parport_data_reverse(pi->pardev->port); - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, - PARPORT_CONTROL_STROBE | PARPORT_CONTROL_INIT); - - data = parport_read_data(pi->pardev->port); - - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE, 0); - - parport_data_forward(pi->pardev->port); - - break; - } - - case PPCMODE_EPP_BYTE : - case PPCMODE_EPP_WORD : - case PPCMODE_EPP_DWORD : - { - pi->pardev->port->ops->epp_read_data(pi->pardev->port, &data, 1, 0); - - break; - } - } - - return(data); -} From 7cb352962163d038656b687072c8a0b79924591b Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:24 +0100 Subject: [PATCH 52/57] ata: pata_parport-bpck6: move ppc6_wr_data_byte to bpck6.c and rename Move ppc6_wr_data_byte to bpck6.c and rename it to bpck6_wr_data_byte Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 36 ++++++++++++++++++++++-------- drivers/ata/pata_parport/ppc6lnx.c | 32 -------------------------- 2 files changed, 27 insertions(+), 41 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 064696b6d68fb..f6d0916577b3e 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -71,6 +71,24 @@ static u8 bpck6_rd_data_byte(struct pi_adapter *pi) return data; } +static void bpck6_wr_data_byte(struct pi_adapter *pi, u8 data) +{ + switch (mode_map[pi->mode]) { + case PPCMODE_UNI_SW: + case PPCMODE_UNI_FW: + case PPCMODE_BI_SW: + case PPCMODE_BI_FW: + parport_write_data(pi->pardev->port, data); + parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_INIT); + break; + case PPCMODE_EPP_BYTE: + case PPCMODE_EPP_WORD: + case PPCMODE_EPP_DWORD: + pi->pardev->port->ops->epp_write_data(pi->pardev->port, &data, 1, 0); + break; + } +} + static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg) { u8 port = cont ? reg | 8 : reg; @@ -84,7 +102,7 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val) u8 port = cont ? reg | 8 : reg; bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE); - ppc6_wr_data_byte(pi, val); + bpck6_wr_data_byte(pi, val); } static void bpck6_wait_for_fifo(struct pi_adapter *pi) @@ -102,9 +120,9 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) u8 this, last; bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); - ppc6_wr_data_byte(pi, (u8)len); - ppc6_wr_data_byte(pi, (u8)(len >> 8)); - ppc6_wr_data_byte(pi, 0); + bpck6_wr_data_byte(pi, (u8)len); + bpck6_wr_data_byte(pi, (u8)(len >> 8)); + bpck6_wr_data_byte(pi, 0); bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE); @@ -169,9 +187,9 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len) static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len) { bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE); - ppc6_wr_data_byte(pi, (u8)len); - ppc6_wr_data_byte(pi, (u8)(len >> 8)); - ppc6_wr_data_byte(pi, 0); + bpck6_wr_data_byte(pi, (u8)len); + bpck6_wr_data_byte(pi, (u8)(len >> 8)); + bpck6_wr_data_byte(pi, 0); bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK); bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ); @@ -271,7 +289,7 @@ static int bpck6_open(struct pi_adapter *pi) pi->private = 0; bpck6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); - ppc6_wr_data_byte(pi, RAMSIZE_128K); + bpck6_wr_data_byte(pi, RAMSIZE_128K); bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); if ((bpck6_rd_data_byte(pi) & 0x3F) == 0x0C) @@ -305,7 +323,7 @@ static void bpck6_deselect(struct pi_adapter *pi) static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata) { bpck6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE); - ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); + bpck6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6)); } static void bpck6_connect(struct pi_adapter *pi) diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 838af60a0d4d8..9a763cbda1305 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -67,37 +67,5 @@ //*************************************************************************** -static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data); - -//*************************************************************************** - int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; - -//*************************************************************************** - -static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data) -{ - switch (mode_map[pi->mode]) - { - case PPCMODE_UNI_SW : - case PPCMODE_UNI_FW : - case PPCMODE_BI_SW : - case PPCMODE_BI_FW : - { - parport_write_data(pi->pardev->port, data); - parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_INIT); - - break; - } - - case PPCMODE_EPP_BYTE : - case PPCMODE_EPP_WORD : - case PPCMODE_EPP_DWORD : - { - pi->pardev->port->ops->epp_write_data(pi->pardev->port, &data, 1, 0); - - break; - } - } -} From a427ad2ac8c1422455164421352b9434653304c4 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:25 +0100 Subject: [PATCH 53/57] ata: pata_parport-bpck6: move defines and mode_map to bpck6.c Move all register definitions and mode_map to bpck6.c Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 44 ++++++++++++++++++++++++ drivers/ata/pata_parport/ppc6lnx.c | 54 ------------------------------ 2 files changed, 44 insertions(+), 54 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index f6d0916577b3e..0ed6a97ab04f2 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -19,6 +19,50 @@ #include "pata_parport.h" #include "ppc6lnx.c" +/* 60772 Commands */ +#define ACCESS_REG 0x00 +#define ACCESS_PORT 0x40 + +#define ACCESS_READ 0x00 +#define ACCESS_WRITE 0x20 + +/* 60772 Command Prefix */ +#define CMD_PREFIX_SET 0xe0 // Special command that modifies next command's operation +#define CMD_PREFIX_RESET 0xc0 // Resets current cmd modifier reg bits + #define PREFIX_IO16 0x01 // perform 16-bit wide I/O + #define PREFIX_FASTWR 0x04 // enable PPC mode fast-write + #define PREFIX_BLK 0x08 // enable block transfer mode + +/* 60772 Registers */ +#define REG_STATUS 0x00 // status register + #define STATUS_IRQA 0x01 // Peripheral IRQA line + #define STATUS_EEPROM_DO 0x40 // Serial EEPROM data bit +#define REG_VERSION 0x01 // PPC version register (read) +#define REG_HWCFG 0x02 // Hardware Config register +#define REG_RAMSIZE 0x03 // Size of RAM Buffer + #define RAMSIZE_128K 0x02 +#define REG_EEPROM 0x06 // EEPROM control register + #define EEPROM_SK 0x01 // eeprom SK bit + #define EEPROM_DI 0x02 // eeprom DI bit + #define EEPROM_CS 0x04 // eeprom CS bit + #define EEPROM_EN 0x08 // eeprom output enable +#define REG_BLKSIZE 0x08 // Block transfer len (24 bit) + +/* flags */ +#define fifo_wait 0x10 + +/* DONT CHANGE THESE LEST YOU BREAK EVERYTHING - BIT FIELD DEPENDENCIES */ +#define PPCMODE_UNI_SW 0 +#define PPCMODE_UNI_FW 1 +#define PPCMODE_BI_SW 2 +#define PPCMODE_BI_FW 3 +#define PPCMODE_EPP_BYTE 4 +#define PPCMODE_EPP_WORD 5 +#define PPCMODE_EPP_DWORD 6 + +int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, + PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; + static void bpck6_send_cmd(struct pi_adapter *pi, u8 cmd) { switch (mode_map[pi->mode]) { diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c index 9a763cbda1305..e72b1842adda2 100644 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ b/drivers/ata/pata_parport/ppc6lnx.c @@ -15,57 +15,3 @@ //*************************************************************************** -// 60772 Commands - -#define ACCESS_REG 0x00 -#define ACCESS_PORT 0x40 - -#define ACCESS_READ 0x00 -#define ACCESS_WRITE 0x20 - -// 60772 Command Prefix - -#define CMD_PREFIX_SET 0xe0 // Special command that modifies the next command's operation -#define CMD_PREFIX_RESET 0xc0 // Resets current cmd modifier reg bits - #define PREFIX_IO16 0x01 // perform 16-bit wide I/O - #define PREFIX_FASTWR 0x04 // enable PPC mode fast-write - #define PREFIX_BLK 0x08 // enable block transfer mode - -// 60772 Registers - -#define REG_STATUS 0x00 // status register - #define STATUS_IRQA 0x01 // Peripheral IRQA line - #define STATUS_EEPROM_DO 0x40 // Serial EEPROM data bit -#define REG_VERSION 0x01 // PPC version register (read) -#define REG_HWCFG 0x02 // Hardware Config register -#define REG_RAMSIZE 0x03 // Size of RAM Buffer - #define RAMSIZE_128K 0x02 -#define REG_EEPROM 0x06 // EEPROM control register - #define EEPROM_SK 0x01 // eeprom SK bit - #define EEPROM_DI 0x02 // eeprom DI bit - #define EEPROM_CS 0x04 // eeprom CS bit - #define EEPROM_EN 0x08 // eeprom output enable -#define REG_BLKSIZE 0x08 // Block transfer len (24 bit) - -//*************************************************************************** - -// ppc_flags - -#define fifo_wait 0x10 - -//*************************************************************************** - -// DONT CHANGE THESE LEST YOU BREAK EVERYTHING - BIT FIELD DEPENDENCIES - -#define PPCMODE_UNI_SW 0 -#define PPCMODE_UNI_FW 1 -#define PPCMODE_BI_SW 2 -#define PPCMODE_BI_FW 3 -#define PPCMODE_EPP_BYTE 4 -#define PPCMODE_EPP_WORD 5 -#define PPCMODE_EPP_DWORD 6 - -//*************************************************************************** - -int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, - PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; From 49745f621a2a850c68d5e6c2967a88d811027a97 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:26 +0100 Subject: [PATCH 54/57] ata: pata_parport-bpck6: delete ppc6lnx.c Remove now empty ppc6lnx.c. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 1 - drivers/ata/pata_parport/ppc6lnx.c | 17 ----------------- 2 files changed, 18 deletions(-) delete mode 100644 drivers/ata/pata_parport/ppc6lnx.c diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 0ed6a97ab04f2..53d0ad1d6e896 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -17,7 +17,6 @@ #include #include #include "pata_parport.h" -#include "ppc6lnx.c" /* 60772 Commands */ #define ACCESS_REG 0x00 diff --git a/drivers/ata/pata_parport/ppc6lnx.c b/drivers/ata/pata_parport/ppc6lnx.c deleted file mode 100644 index e72b1842adda2..0000000000000 --- a/drivers/ata/pata_parport/ppc6lnx.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - ppc6lnx.c (c) 2001 Micro Solutions Inc. - Released under the terms of the GNU General Public license - - ppc6lnx.c is a par of the protocol driver for the Micro Solutions - "BACKPACK" parallel port IDE adapter - (Works on Series 6 drives) - -*/ - -//*************************************************************************** - -// PPC 6 Code in C sanitized for LINUX -// Original x86 ASM by Ron, Converted to C by Clive - -//*************************************************************************** - From 083ad04d317249ed35e54dd805cbc325e3e84424 Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 7 Mar 2023 23:46:27 +0100 Subject: [PATCH 55/57] ata: pata_parport-bpck6: reduce indents in bpck6_open Reverse error handling conditions to reduce code indents in bpck6_open. Signed-off-by: Ondrej Zary Signed-off-by: Damien Le Moal --- drivers/ata/pata_parport/bpck6.c | 48 +++++++++++++++++--------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 53d0ad1d6e896..295dbe5cdaa44 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -318,30 +318,32 @@ static int bpck6_open(struct pi_adapter *pi) j = ((i & 0x08) << 4) | ((i & 0x07) << 3); k = parport_read_status(pi->pardev->port) & 0xB8; - if (j == k) { - parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, 0); - k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; - if (j == k) { - if (i & 4) // EPP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT, 0); - else // PPC/ECP - parport_frob_control(pi->pardev->port, - PARPORT_CONTROL_SELECT, 0); - - pi->private = 0; - - bpck6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); - bpck6_wr_data_byte(pi, RAMSIZE_128K); - - bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); - if ((bpck6_rd_data_byte(pi) & 0x3F) == 0x0C) - pi->private |= fifo_wait; - - return 1; - } - } + if (j != k) + goto fail; + + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_AUTOFD, 0); + k = (parport_read_status(pi->pardev->port) & 0xB8) ^ 0xB8; + if (j != k) + goto fail; + + if (i & 4) // EPP + parport_frob_control(pi->pardev->port, + PARPORT_CONTROL_SELECT | PARPORT_CONTROL_INIT, 0); + else // PPC/ECP + parport_frob_control(pi->pardev->port, PARPORT_CONTROL_SELECT, 0); + + pi->private = 0; + + bpck6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE); + bpck6_wr_data_byte(pi, RAMSIZE_128K); + + bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION); + if ((bpck6_rd_data_byte(pi) & 0x3F) == 0x0C) + pi->private |= fifo_wait; + + return 1; +fail: parport_write_control(pi->pardev->port, pi->saved_r2); parport_write_data(pi->pardev->port, pi->saved_r0); From 919c119415c7b67056449f51374939d49189a326 Mon Sep 17 00:00:00 2001 From: Damien Le Moal Date: Thu, 23 Mar 2023 12:25:51 +0900 Subject: [PATCH 56/57] ata: pata_parport-bpck6: Remove dependency on 64BIT There is no reason to have compilation of the bpck6 protocol module being dependent on 64BIT. Remove this dependency. Signed-off-by: Damien Le Moal Reviewed-by: Ondrej Zary --- drivers/ata/pata_parport/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ata/pata_parport/Kconfig b/drivers/ata/pata_parport/Kconfig index 0893a13e79798..2c953f5d1396f 100644 --- a/drivers/ata/pata_parport/Kconfig +++ b/drivers/ata/pata_parport/Kconfig @@ -25,7 +25,7 @@ config PATA_PARPORT_BPCK config PATA_PARPORT_BPCK6 tristate "MicroSolutions backpack (Series 6) protocol" - depends on (PATA_PARPORT) && !64BIT + depends on PATA_PARPORT help This option enables support for the Micro Solutions BACKPACK parallel port Series 6 IDE protocol. (Most BACKPACK drives made From 140b26035b2d379d94e6e3936ab2e0adf94efe46 Mon Sep 17 00:00:00 2001 From: Damien Le Moal Date: Thu, 23 Mar 2023 12:28:54 +0900 Subject: [PATCH 57/57] ata: pata_parport-bpck6: Declare mode_map as static Compilation C=1 of the bpck6 protocol module generates the following message: drivers/ata/pata_parport/bpck6.c:62:5: warning: symbol 'mode_map' was not declared. Should it be static? Fix this by declaring mode_map as static. Signed-off-by: Damien Le Moal Reviewed-by: Ondrej Zary --- drivers/ata/pata_parport/bpck6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/ata/pata_parport/bpck6.c b/drivers/ata/pata_parport/bpck6.c index 295dbe5cdaa44..76febd07a9bb4 100644 --- a/drivers/ata/pata_parport/bpck6.c +++ b/drivers/ata/pata_parport/bpck6.c @@ -59,8 +59,8 @@ #define PPCMODE_EPP_WORD 5 #define PPCMODE_EPP_DWORD 6 -int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, - PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; +static int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE, + PPCMODE_EPP_WORD, PPCMODE_EPP_DWORD }; static void bpck6_send_cmd(struct pi_adapter *pi, u8 cmd) {