@@ -1967,7 +1967,6 @@ static void atmci_tasklet_func(unsigned long priv)
1967
1967
static void atmci_read_data_pio (struct atmel_mci * host )
1968
1968
{
1969
1969
struct scatterlist * sg = host -> sg ;
1970
- void * buf = sg_virt (sg );
1971
1970
unsigned int offset = host -> pio_offset ;
1972
1971
struct mmc_data * data = host -> data ;
1973
1972
u32 value ;
@@ -1977,7 +1976,7 @@ static void atmci_read_data_pio(struct atmel_mci *host)
1977
1976
do {
1978
1977
value = atmci_readl (host , ATMCI_RDR );
1979
1978
if (likely (offset + 4 <= sg -> length )) {
1980
- put_unaligned ( value , (u32 * )( buf + offset ) );
1979
+ sg_pcopy_to_buffer ( sg , 1 , & value , sizeof (u32 ), offset );
1981
1980
1982
1981
offset += 4 ;
1983
1982
nbytes += 4 ;
@@ -1990,11 +1989,11 @@ static void atmci_read_data_pio(struct atmel_mci *host)
1990
1989
goto done ;
1991
1990
1992
1991
offset = 0 ;
1993
- buf = sg_virt (sg );
1994
1992
}
1995
1993
} else {
1996
1994
unsigned int remaining = sg -> length - offset ;
1997
- memcpy (buf + offset , & value , remaining );
1995
+
1996
+ sg_pcopy_to_buffer (sg , 1 , & value , remaining , offset );
1998
1997
nbytes += remaining ;
1999
1998
2000
1999
flush_dcache_page (sg_page (sg ));
@@ -2004,8 +2003,8 @@ static void atmci_read_data_pio(struct atmel_mci *host)
2004
2003
goto done ;
2005
2004
2006
2005
offset = 4 - remaining ;
2007
- buf = sg_virt ( sg );
2008
- memcpy ( buf , ( u8 * ) & value + remaining , offset );
2006
+ sg_pcopy_to_buffer ( sg , 1 , ( u8 * ) & value + remaining ,
2007
+ offset , 0 );
2009
2008
nbytes += offset ;
2010
2009
}
2011
2010
@@ -2035,7 +2034,6 @@ static void atmci_read_data_pio(struct atmel_mci *host)
2035
2034
static void atmci_write_data_pio (struct atmel_mci * host )
2036
2035
{
2037
2036
struct scatterlist * sg = host -> sg ;
2038
- void * buf = sg_virt (sg );
2039
2037
unsigned int offset = host -> pio_offset ;
2040
2038
struct mmc_data * data = host -> data ;
2041
2039
u32 value ;
@@ -2044,7 +2042,7 @@ static void atmci_write_data_pio(struct atmel_mci *host)
2044
2042
2045
2043
do {
2046
2044
if (likely (offset + 4 <= sg -> length )) {
2047
- value = get_unaligned (( u32 * )( buf + offset ) );
2045
+ sg_pcopy_from_buffer ( sg , 1 , & value , sizeof ( u32 ), offset );
2048
2046
atmci_writel (host , ATMCI_TDR , value );
2049
2047
2050
2048
offset += 4 ;
@@ -2056,13 +2054,12 @@ static void atmci_write_data_pio(struct atmel_mci *host)
2056
2054
goto done ;
2057
2055
2058
2056
offset = 0 ;
2059
- buf = sg_virt (sg );
2060
2057
}
2061
2058
} else {
2062
2059
unsigned int remaining = sg -> length - offset ;
2063
2060
2064
2061
value = 0 ;
2065
- memcpy ( & value , buf + offset , remaining );
2062
+ sg_pcopy_from_buffer ( sg , 1 , & value , remaining , offset );
2066
2063
nbytes += remaining ;
2067
2064
2068
2065
host -> sg = sg = sg_next (sg );
@@ -2073,8 +2070,8 @@ static void atmci_write_data_pio(struct atmel_mci *host)
2073
2070
}
2074
2071
2075
2072
offset = 4 - remaining ;
2076
- buf = sg_virt ( sg );
2077
- memcpy (( u8 * ) & value + remaining , buf , offset );
2073
+ sg_pcopy_from_buffer ( sg , 1 , ( u8 * ) & value + remaining ,
2074
+ offset , 0 );
2078
2075
atmci_writel (host , ATMCI_TDR , value );
2079
2076
nbytes += offset ;
2080
2077
}
0 commit comments