cb710: use SG_MITER_TO_SG/SG_MITER_FROM_SG

the code allready uses flush_kernel_dcache_page(). This patch updates the
driver to the recent sg API changes which require that either SG_MITER_TO_SG
or SG_MITER_FROM_SG is set. SG_MITER_TO_SG calls flush_kernel_dcache_page()
in sg_mitter_stop()

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Acked-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>

authored by Sebastian Andrzej Siewior and committed by Pierre Ossman 4b2a108c da60a91d

+6 -33
-4
drivers/misc/cb710/sgbuf2.c
··· 114 114 if (!left) 115 115 return; 116 116 addr += len; 117 - flush_kernel_dcache_page(miter->page); 118 117 } while (sg_dwiter_next(miter)); 119 118 } 120 119 ··· 141 142 return; 142 143 } else 143 144 sg_dwiter_write_slow(miter, data); 144 - 145 - if (miter->length == miter->consumed) 146 - flush_kernel_dcache_page(miter->page); 147 145 } 148 146 EXPORT_SYMBOL_GPL(cb710_sg_dwiter_write_next_block); 149 147
+3 -3
drivers/mmc/host/cb710-mmc.c
··· 278 278 if (unlikely(data->blksz & 15 && (data->blocks != 1 || data->blksz != 8))) 279 279 return -EINVAL; 280 280 281 - sg_miter_start(&miter, data->sg, data->sg_len, 0); 281 + sg_miter_start(&miter, data->sg, data->sg_len, SG_MITER_TO_SG); 282 282 283 283 cb710_modify_port_8(slot, CB710_MMC_CONFIG2_PORT, 284 284 15, CB710_MMC_C2_READ_PIO_SIZE_MASK); ··· 307 307 goto out; 308 308 } 309 309 out: 310 - cb710_sg_miter_stop_writing(&miter); 310 + sg_miter_stop(&miter); 311 311 return err; 312 312 } 313 313 ··· 322 322 if (unlikely(data->blocks > 1 && data->blksz & 15)) 323 323 return -EINVAL; 324 324 325 - sg_miter_start(&miter, data->sg, data->sg_len, 0); 325 + sg_miter_start(&miter, data->sg, data->sg_len, SG_MITER_FROM_SG); 326 326 327 327 cb710_modify_port_8(slot, CB710_MMC_CONFIG2_PORT, 328 328 0, CB710_MMC_C2_READ_PIO_SIZE_MASK);
+3 -26
include/linux/cb710.h
··· 140 140 #include <linux/highmem.h> 141 141 #include <linux/scatterlist.h> 142 142 143 - /** 144 - * cb710_sg_miter_stop_writing - stop mapping iteration after writing 145 - * @miter: sg mapping iter to be stopped 146 - * 147 - * Description: 148 - * Stops mapping iterator @miter. @miter should have been started 149 - * started using sg_miter_start(). A stopped iteration can be 150 - * resumed by calling sg_miter_next() on it. This is useful when 151 - * resources (kmap) need to be released during iteration. 152 - * 153 - * This is a convenience wrapper that will be optimized out for arches 154 - * that don't need flush_kernel_dcache_page(). 155 - * 156 - * Context: 157 - * IRQ disabled if the SG_MITER_ATOMIC is set. Don't care otherwise. 158 - */ 159 - static inline void cb710_sg_miter_stop_writing(struct sg_mapping_iter *miter) 160 - { 161 - if (miter->page) 162 - flush_kernel_dcache_page(miter->page); 163 - sg_miter_stop(miter); 164 - } 165 - 166 143 /* 167 144 * 32-bit PIO mapping sg iterator 168 145 * ··· 148 171 * without DMA support). 149 172 * 150 173 * Best-case reading (transfer from device): 151 - * sg_miter_start(); 174 + * sg_miter_start(, SG_MITER_TO_SG); 152 175 * cb710_sg_dwiter_write_from_io(); 153 - * cb710_sg_miter_stop_writing(); 176 + * sg_miter_stop(); 154 177 * 155 178 * Best-case writing (transfer to device): 156 - * sg_miter_start(); 179 + * sg_miter_start(, SG_MITER_FROM_SG); 157 180 * cb710_sg_dwiter_read_to_io(); 158 181 * sg_miter_stop(); 159 182 */