Commit 7cc9aa66 authored by Xiaolei Li's avatar Xiaolei Li Committed by Boris Brezillon
Browse files

mtd: Add sysfs attribute for mtd OOB available size



Expose mtd OOB available size by sysfs file. Then users can get available
OOB size by accessing /sys/class/mtd/mtdX/oobavail.

Signed-off-by: default avatarXiaolei Li <xiaolei.li@mediatek.com>
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
parent c3c9a2c4
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -232,3 +232,11 @@ Description:
		of the parent (another partition or a flash device) in bytes.
		of the parent (another partition or a flash device) in bytes.
		This attribute is absent on flash devices, so it can be used
		This attribute is absent on flash devices, so it can be used
		to distinguish them from partitions.
		to distinguish them from partitions.

What:		/sys/class/mtd/mtdX/oobavail
Date:		April 2018
KernelVersion:	4.16
Contact:	linux-mtd@lists.infradead.org
Description:
		Number of bytes available for a client to place data into
		the out of band area.
+10 −0
Original line number Original line Diff line number Diff line
@@ -210,6 +210,15 @@ static ssize_t mtd_oobsize_show(struct device *dev,
}
}
static DEVICE_ATTR(oobsize, S_IRUGO, mtd_oobsize_show, NULL);
static DEVICE_ATTR(oobsize, S_IRUGO, mtd_oobsize_show, NULL);


static ssize_t mtd_oobavail_show(struct device *dev,
				 struct device_attribute *attr, char *buf)
{
	struct mtd_info *mtd = dev_get_drvdata(dev);

	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->oobavail);
}
static DEVICE_ATTR(oobavail, S_IRUGO, mtd_oobavail_show, NULL);

static ssize_t mtd_numeraseregions_show(struct device *dev,
static ssize_t mtd_numeraseregions_show(struct device *dev,
		struct device_attribute *attr, char *buf)
		struct device_attribute *attr, char *buf)
{
{
@@ -327,6 +336,7 @@ static struct attribute *mtd_attrs[] = {
	&dev_attr_writesize.attr,
	&dev_attr_writesize.attr,
	&dev_attr_subpagesize.attr,
	&dev_attr_subpagesize.attr,
	&dev_attr_oobsize.attr,
	&dev_attr_oobsize.attr,
	&dev_attr_oobavail.attr,
	&dev_attr_numeraseregions.attr,
	&dev_attr_numeraseregions.attr,
	&dev_attr_name.attr,
	&dev_attr_name.attr,
	&dev_attr_ecc_strength.attr,
	&dev_attr_ecc_strength.attr,