* [PATCH 1/2] ide-generic: add some notes to clarify probing PCI devices
@ 2017-02-21 14:22 ` Luiz Carlos Ramos
2017-02-21 16:21 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 2+ messages in thread
From: Luiz Carlos Ramos @ 2017-02-21 14:22 UTC (permalink / raw)
To: linux-ide; +Cc: Bartlomiej Zolnierkiewicz, David Miller, petkovbb
Some inline comments were added in ide-generic, to make clear to
developers the way probe_mask is managed when PCI IDE devices are
present.
A not-so-deep analysis of the code could make it is buggy, as it seems
that if a device is detected, the probing procedure is avoided,
suggesting some kind of reversed logic.
Signed-off-by: Luiz Carlos Ramos <lramos.prof@yahoo.com.br>
---
drivers/ide/ide-generic.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
index 54d7c4685d23aa5e62ce606e7b994a57bb54b08a..ee11edcdba3170c077381d603918498d79ffa3bb 100644
--- a/drivers/ide/ide-generic.c
+++ b/drivers/ide/ide-generic.c
@@ -96,6 +96,33 @@ static int __init ide_generic_init(void)
printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" "
"module parameter for probing all legacy ISA IDE ports\n");
+ /* Here the logic seems reversed, but it's not. *primary would
+ * be 1 if there is a device at 0x1f0 and *secondary would be 1
+ * if a device is detected at 0x170.
+ *
+ * However, the main intention here is to not allow PCI IDE devices
+ * using ide-generic unless the user chooses so, as this driver is
+ * designed to support ISA IDE devices mainly.
+ *
+ * In this case, users are strongly encouraged to use the designated
+ * PCI IDE driver, and not isa-generic.
+ *
+ * Pure ISA IDE devices OTOH will use ide-generic. In this case, *primary
+ * and *secondary will return from ide_generic_check_pci_legacy_iobases()
+ * with zero (because they are not PCI...), and probe_mask will be set
+ * accordingly (to 0x01, 0x02 or 0x03, depending on which io ports are
+ * present).
+ *
+ * Users would even use ide-generic with such PCI IDE devices, choosing a
+ * nonzero value for probe_mask when initializing ide-generic. Using
+ * probe_mask=0x03 is sufficient to make it detect common IDE interfaces
+ * (with primary at 0x1f0 and secondary at 0x170), but in the more
+ * general case, one should set probe_mask to 0x3f to check all possible
+ * io addresses. In this case, it is up to the user the task of checking
+ * for eventual conflicts between ide-generic and any other driver and
+ * manage those conflicts properly.
+ */
+
if (primary == 0)
probe_mask |= 0x1;
--
2.8.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 1/2] ide-generic: add some notes to clarify probing PCI devices
2017-02-21 14:22 ` [PATCH 1/2] ide-generic: add some notes to clarify probing PCI devices Luiz Carlos Ramos
@ 2017-02-21 16:21 ` Bartlomiej Zolnierkiewicz
0 siblings, 0 replies; 2+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2017-02-21 16:21 UTC (permalink / raw)
To: Luiz Carlos Ramos; +Cc: linux-ide, David Miller, petkovbb
Hi,
On Tuesday, February 21, 2017 11:22:37 AM Luiz Carlos Ramos wrote:
> Some inline comments were added in ide-generic, to make clear to
> developers the way probe_mask is managed when PCI IDE devices are
> present.
>
> A not-so-deep analysis of the code could make it is buggy, as it seems
> that if a device is detected, the probing procedure is avoided,
> suggesting some kind of reversed logic.
>
> Signed-off-by: Luiz Carlos Ramos <lramos.prof@yahoo.com.br>
Looks fine overall, some minor nits below.
> ---
> drivers/ide/ide-generic.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
> index 54d7c4685d23aa5e62ce606e7b994a57bb54b08a..ee11edcdba3170c077381d603918498d79ffa3bb 100644
> --- a/drivers/ide/ide-generic.c
> +++ b/drivers/ide/ide-generic.c
> @@ -96,6 +96,33 @@ static int __init ide_generic_init(void)
> printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" "
> "module parameter for probing all legacy ISA IDE ports\n");
>
> + /* Here the logic seems reversed, but it's not. *primary would
> + * be 1 if there is a device at 0x1f0 and *secondary would be 1
> + * if a device is detected at 0x170.
> + *
> + * However, the main intention here is to not allow PCI IDE devices
> + * using ide-generic unless the user chooses so, as this driver is
> + * designed to support ISA IDE devices mainly.
designed to support legacy ISA IDE devices that don't have chipset specific
support.
> + *
> + * In this case, users are strongly encouraged to use the designated
> + * PCI IDE driver, and not isa-generic.
PCI IDE drivers, and not ide-generic.
> + *
> + * Pure ISA IDE devices OTOH will use ide-generic. In this case, *primary
> + * and *secondary will return from ide_generic_check_pci_legacy_iobases()
> + * with zero (because they are not PCI...), and probe_mask will be set
> + * accordingly (to 0x01, 0x02 or 0x03, depending on which io ports are
> + * present).
> + *
> + * Users would even use ide-generic with such PCI IDE devices, choosing a
Users who would like to use ide-generic with PCI IDE devices (which is not
recommended) should choose a
> + * nonzero value for probe_mask when initializing ide-generic. Using
> + * probe_mask=0x03 is sufficient to make it detect common IDE interfaces
> + * (with primary at 0x1f0 and secondary at 0x170), but in the more
> + * general case, one should set probe_mask to 0x3f to check all possible
> + * io addresses. In this case, it is up to the user the task of checking
IO addresses. When using probe_mask it is up to the user to check
> + * for eventual conflicts between ide-generic and any other driver and
> + * manage those conflicts properly.
> + */
> +
> if (primary == 0)
> probe_mask |= 0x1;
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-02-21 16:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CGME20170221142225epcas5p288f7cd6fa53598a370179edc993a9cf9@epcas5p2.samsung.com>
2017-02-21 14:22 ` [PATCH 1/2] ide-generic: add some notes to clarify probing PCI devices Luiz Carlos Ramos
2017-02-21 16:21 ` Bartlomiej Zolnierkiewicz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.