Commit 9608142a authored by Heiko Carstens's avatar Heiko Carstens

s390/lcs: use new address translation helpers

Use virt_to_dma32() and friends to properly convert virtual to physical and
physical to virtual addresses so that "make C=1" does not generate any
warnings anymore.
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 525b7d2e
...@@ -218,7 +218,7 @@ lcs_setup_read_ccws(struct lcs_card *card) ...@@ -218,7 +218,7 @@ lcs_setup_read_ccws(struct lcs_card *card)
* we do not need to do set_normalized_cda. * we do not need to do set_normalized_cda.
*/ */
card->read.ccws[cnt].cda = card->read.ccws[cnt].cda =
(__u32)virt_to_phys(card->read.iob[cnt].data); virt_to_dma32(card->read.iob[cnt].data);
((struct lcs_header *) ((struct lcs_header *)
card->read.iob[cnt].data)->offset = LCS_ILLEGAL_OFFSET; card->read.iob[cnt].data)->offset = LCS_ILLEGAL_OFFSET;
card->read.iob[cnt].callback = lcs_get_frames_cb; card->read.iob[cnt].callback = lcs_get_frames_cb;
...@@ -230,8 +230,7 @@ lcs_setup_read_ccws(struct lcs_card *card) ...@@ -230,8 +230,7 @@ lcs_setup_read_ccws(struct lcs_card *card)
card->read.ccws[LCS_NUM_BUFFS - 1].flags |= CCW_FLAG_SUSPEND; card->read.ccws[LCS_NUM_BUFFS - 1].flags |= CCW_FLAG_SUSPEND;
/* Last ccw is a tic (transfer in channel). */ /* Last ccw is a tic (transfer in channel). */
card->read.ccws[LCS_NUM_BUFFS].cmd_code = LCS_CCW_TRANSFER; card->read.ccws[LCS_NUM_BUFFS].cmd_code = LCS_CCW_TRANSFER;
card->read.ccws[LCS_NUM_BUFFS].cda = card->read.ccws[LCS_NUM_BUFFS].cda = virt_to_dma32(card->read.ccws);
(__u32)virt_to_phys(card->read.ccws);
/* Setg initial state of the read channel. */ /* Setg initial state of the read channel. */
card->read.state = LCS_CH_STATE_INIT; card->read.state = LCS_CH_STATE_INIT;
...@@ -273,12 +272,11 @@ lcs_setup_write_ccws(struct lcs_card *card) ...@@ -273,12 +272,11 @@ lcs_setup_write_ccws(struct lcs_card *card)
* we do not need to do set_normalized_cda. * we do not need to do set_normalized_cda.
*/ */
card->write.ccws[cnt].cda = card->write.ccws[cnt].cda =
(__u32)virt_to_phys(card->write.iob[cnt].data); virt_to_dma32(card->write.iob[cnt].data);
} }
/* Last ccw is a tic (transfer in channel). */ /* Last ccw is a tic (transfer in channel). */
card->write.ccws[LCS_NUM_BUFFS].cmd_code = LCS_CCW_TRANSFER; card->write.ccws[LCS_NUM_BUFFS].cmd_code = LCS_CCW_TRANSFER;
card->write.ccws[LCS_NUM_BUFFS].cda = card->write.ccws[LCS_NUM_BUFFS].cda = virt_to_dma32(card->write.ccws);
(__u32)virt_to_phys(card->write.ccws);
/* Set initial state of the write channel. */ /* Set initial state of the write channel. */
card->read.state = LCS_CH_STATE_INIT; card->read.state = LCS_CH_STATE_INIT;
...@@ -1399,7 +1397,7 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1399,7 +1397,7 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
if ((channel->state != LCS_CH_STATE_INIT) && if ((channel->state != LCS_CH_STATE_INIT) &&
(irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) &&
(irb->scsw.cmd.cpa != 0)) { (irb->scsw.cmd.cpa != 0)) {
index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa) index = (struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa)
- channel->ccws; - channel->ccws;
if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) || if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) ||
(irb->scsw.cmd.cstat & SCHN_STAT_PCI)) (irb->scsw.cmd.cstat & SCHN_STAT_PCI))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment