|
@@ -682,6 +682,12 @@ struct Scsi_Host {
|
|
*/
|
|
*/
|
|
void *shost_data;
|
|
void *shost_data;
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Points to the physical bus device we'd use to do DMA
|
|
|
|
+ * Needed just in case we have virtual hosts.
|
|
|
|
+ */
|
|
|
|
+ struct device *dma_dev;
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* We should ensure that this is aligned, both for better performance
|
|
* We should ensure that this is aligned, both for better performance
|
|
* and also because some compilers (m68k) don't automatically force
|
|
* and also because some compilers (m68k) don't automatically force
|
|
@@ -726,7 +732,9 @@ extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *);
|
|
extern void scsi_flush_work(struct Scsi_Host *);
|
|
extern void scsi_flush_work(struct Scsi_Host *);
|
|
|
|
|
|
extern struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *, int);
|
|
extern struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *, int);
|
|
-extern int __must_check scsi_add_host(struct Scsi_Host *, struct device *);
|
|
|
|
|
|
+extern int __must_check scsi_add_host_with_dma(struct Scsi_Host *,
|
|
|
|
+ struct device *,
|
|
|
|
+ struct device *);
|
|
extern void scsi_scan_host(struct Scsi_Host *);
|
|
extern void scsi_scan_host(struct Scsi_Host *);
|
|
extern void scsi_rescan_device(struct device *);
|
|
extern void scsi_rescan_device(struct device *);
|
|
extern void scsi_remove_host(struct Scsi_Host *);
|
|
extern void scsi_remove_host(struct Scsi_Host *);
|
|
@@ -737,6 +745,12 @@ extern const char *scsi_host_state_name(enum scsi_host_state);
|
|
|
|
|
|
extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *);
|
|
extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *);
|
|
|
|
|
|
|
|
+static inline int __must_check scsi_add_host(struct Scsi_Host *host,
|
|
|
|
+ struct device *dev)
|
|
|
|
+{
|
|
|
|
+ return scsi_add_host_with_dma(host, dev, dev);
|
|
|
|
+}
|
|
|
|
+
|
|
static inline struct device *scsi_get_device(struct Scsi_Host *shost)
|
|
static inline struct device *scsi_get_device(struct Scsi_Host *shost)
|
|
{
|
|
{
|
|
return shost->shost_gendev.parent;
|
|
return shost->shost_gendev.parent;
|