scsi: ppa: Add a module parameter for the transfer mode
authorAlex Henrie <alexhenrie24@gmail.com>
Mon, 7 Aug 2023 15:52:58 +0000 (09:52 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 21 Aug 2023 20:32:40 +0000 (16:32 -0400)
commit68a4f84a17c1d83daf8c07446ca32f7958f49c04
tree233511448f06c254e1b49a83418ce62e3976b86d
parentb68442ebda9c8aca1e1802c169354c8fb31686f1
scsi: ppa: Add a module parameter for the transfer mode

I have an Iomega Z100P2 zip drive, but it does not work with my StarTech
PEX1P2 AX99100 PCIe parallel port, which evidently does not support 16-bit
or 32-bit EPP. Currently the only way to tell the PPA driver to use 8-bit
EPP is to write 'mode=3' to /proc/scsi/ppa/*, but the driver doesn't
actually distinguish between the three EPP modes and still tries to use
16-bit or 32-bit EPP. And even if writing to that file did make the driver
use 8-bit EPP, it still wouldn't do me any good because by the time that
file exists, the drive has already failed to initialize.

Add a new parameter /sys/module/ppa/mode to set the transfer mode before
initializing the drive. This parameter replaces the use of
CONFIG_SCSI_IZIP_EPP16 in the PPA driver.

At the same time, default to 8-bit EPP. 16-bit and 32-bit EPP are not
necessary for the drive to function, nor are they part of the IEEE 1284
standard, so the driver should not assume that they are available.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Link: https://lore.kernel.org/r/20230807155856.362864-2-alexhenrie24@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/Kconfig
drivers/scsi/ppa.c
drivers/scsi/ppa.h