geo->block_mark_bit_offset);
}
+int bch_save_geometry(struct gpmi_nand_data *this)
+{
+ struct bch_geometry *bch_geo = &this->bch_geometry;
+ struct dentry *dbg_root;
+
+ dbg_root = debugfs_create_dir("gpmi-nand", NULL);
+ if (!dbg_root) {
+ dev_err(this->dev, "failed to create debug directory\n");
+ return -EINVAL;
+ }
+
+ dbg_bch_geo.data = (void *)bch_geo;
+ dbg_bch_geo.size = sizeof(struct bch_geometry);
+ if (!debugfs_create_blob("bch_geometry", S_IRUGO,
+ dbg_root, &dbg_bch_geo)) {
+ dev_err(this->dev, "failed to create debug bch geometry\n");
+ return -EINVAL;
+ }
+ return 0;
+}
+
/* Configures the geometry for BCH. */
int bch_set_geometry(struct gpmi_nand_data *this)
{
unsigned int page_size;
unsigned int gf_len;
int ret;
- struct dentry *dbg_root;
if (common_nfc_set_geometry(this))
return !0;
page_size = bch_geo->page_size;
gf_len = bch_geo->gf_len;
- dbg_root = debugfs_create_dir("gpmi-nand", NULL);
- if (!dbg_root) {
- dev_err(this->dev, "failed to create debug directory\n");
- return -EINVAL;
- }
-
- dbg_bch_geo.data = (void *)bch_geo;
- dbg_bch_geo.size = sizeof(struct bch_geometry);
- if (!debugfs_create_blob("bch_geometry", S_IRUGO,
- dbg_root, &dbg_bch_geo)) {
- dev_err(this->dev, "failed to create debug bch geometry\n");
- return -EINVAL;
- }
-
ret = pm_runtime_get_sync(this->dev);
if (ret < 0) {
dev_err(this->dev, "Failed to enable clock\n");
extern int gpmi_extra_init(struct gpmi_nand_data *);
extern void gpmi_clear_bch(struct gpmi_nand_data *);
extern void gpmi_dump_info(struct gpmi_nand_data *);
+extern int bch_save_geometry(struct gpmi_nand_data *);
extern int bch_set_geometry(struct gpmi_nand_data *);
extern int gpmi_is_ready(struct gpmi_nand_data *, unsigned chip);
extern int gpmi_send_command(struct gpmi_nand_data *);