The "linux,part-probe" dts parsing is a pretty neat generic feature. It has been posted to kernel.org and could easily be reused by all targets. This change moves the patch to the 3.18 and 4.1 generic folders, and makes the feature available to all platforms who may want to use it. Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 46654
		
			
				
	
	
		
			19 lines
		
	
	
		
			699 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			699 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/drivers/mtd/mtdpart.c
 | 
						|
+++ b/drivers/mtd/mtdpart.c
 | 
						|
@@ -335,7 +335,14 @@ static int part_lock(struct mtd_info *mt
 | 
						|
 static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 | 
						|
 {
 | 
						|
 	struct mtd_part *part = PART(mtd);
 | 
						|
-	return part->master->_unlock(part->master, ofs + part->offset, len);
 | 
						|
+
 | 
						|
+	ofs += part->offset;
 | 
						|
+	if (mtd->flags & MTD_ERASE_PARTIAL) {
 | 
						|
+		/* round up len to next erasesize and round down offset to prev block */
 | 
						|
+		len = (mtd_div_by_eb(len, part->master) + 1) * part->master->erasesize;
 | 
						|
+		ofs &= ~(part->master->erasesize - 1);
 | 
						|
+	}
 | 
						|
+	return part->master->_unlock(part->master, ofs, len);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 |