summaryrefslogtreecommitdiff
path: root/include/linux/cdrom.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2021-07-05 16:02:43 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2021-07-31 05:13:09 +0300
commitba51bdafaafc065019c6f6a2cdae006d176cee48 (patch)
treec46134baf01607cb8f6ea34b54428e476475d1dd /include/linux/cdrom.h
parent08dc2f9b53afbbc897bc895aa41906194f5af1cf (diff)
downloadlinux-ba51bdafaafc065019c6f6a2cdae006d176cee48.tar.xz
scsi: sr: cdrom: Move cdrom_read_cdda_bpc() into the sr driver
cdrom_read_cdda_bpc() relies on sending SCSI command to the low level driver using a REQ_OP_SCSI_IN request. This isn't generic block layer functionality, so move the actual low-level code into the sr driver and call it through a new read_cdda_bpc method in the cdrom_device_ops structure. With this the CDROM code does not have to pull in scsi_normalize_sense() and depend on CONFIG_SCSI_COMMON. Link: https://lore.kernel.org/r/20210730072752.GB23847%40lst.de Tested-by: Anders Roxell <anders.roxell@linaro.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/linux/cdrom.h')
-rw-r--r--include/linux/cdrom.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
index f48d0a31deae..c4fef00abdf3 100644
--- a/include/linux/cdrom.h
+++ b/include/linux/cdrom.h
@@ -86,11 +86,13 @@ struct cdrom_device_ops {
/* play stuff */
int (*audio_ioctl) (struct cdrom_device_info *,unsigned int, void *);
-/* driver specifications */
- const int capability; /* capability flags */
/* handle uniform packets for scsi type devices (scsi,atapi) */
int (*generic_packet) (struct cdrom_device_info *,
struct packet_command *);
+ int (*read_cdda_bpc)(struct cdrom_device_info *cdi, void __user *ubuf,
+ u32 lba, u32 nframes, u8 *last_sense);
+/* driver specifications */
+ const int capability; /* capability flags */
};
int cdrom_multisession(struct cdrom_device_info *cdi,