mirror of
https://github.com/torvalds/linux.git
synced 2024-10-26 23:12:36 +00:00
staging: fbtft: Fixes some alignment issues - Style
Fixes (most) alignment issues pointed by checkpatch.pl. Signed-off-by: Leonardo Brás <leobras.c@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0b1533c6c6
commit
333c7b9405
|
@ -38,7 +38,7 @@ static int init_display(struct fbtft_par *par)
|
||||||
write_reg(par, 0x0E, 0x2B00);
|
write_reg(par, 0x0E, 0x2B00);
|
||||||
write_reg(par, 0x1E, 0x00B7);
|
write_reg(par, 0x1E, 0x00B7);
|
||||||
write_reg(par, 0x01,
|
write_reg(par, 0x01,
|
||||||
BIT(13) | (par->bgr << 11) | BIT(9) | (HEIGHT - 1));
|
BIT(13) | (par->bgr << 11) | BIT(9) | (HEIGHT - 1));
|
||||||
write_reg(par, 0x02, 0x0600);
|
write_reg(par, 0x02, 0x0600);
|
||||||
write_reg(par, 0x10, 0x0000);
|
write_reg(par, 0x10, 0x0000);
|
||||||
write_reg(par, 0x05, 0x0000);
|
write_reg(par, 0x05, 0x0000);
|
||||||
|
@ -98,8 +98,8 @@ static int set_var(struct fbtft_par *par)
|
||||||
if (par->fbtftops.init_display != init_display) {
|
if (par->fbtftops.init_display != init_display) {
|
||||||
/* don't risk messing up register 11h */
|
/* don't risk messing up register 11h */
|
||||||
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par,
|
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par,
|
||||||
"%s: skipping since custom init_display() is used\n",
|
"%s: skipping since custom init_display() is used\n",
|
||||||
__func__);
|
__func__);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -139,14 +139,22 @@ static int set_gamma(struct fbtft_par *par, u32 *curves)
|
||||||
}
|
}
|
||||||
|
|
||||||
write_reg(par, 0xB8,
|
write_reg(par, 0xB8,
|
||||||
tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5], tmp[6], tmp[7],
|
tmp[0], tmp[1], tmp[2], tmp[3],
|
||||||
tmp[8], tmp[9], tmp[10], tmp[11], tmp[12], tmp[13], tmp[14], tmp[15],
|
tmp[4], tmp[5], tmp[6], tmp[7],
|
||||||
tmp[16], tmp[17], tmp[18], tmp[19], tmp[20], tmp[21], tmp[22], tmp[23],
|
tmp[8], tmp[9], tmp[10], tmp[11],
|
||||||
tmp[24], tmp[25], tmp[26], tmp[27], tmp[28], tmp[29], tmp[30], tmp[31],
|
tmp[12], tmp[13], tmp[14], tmp[15],
|
||||||
tmp[32], tmp[33], tmp[34], tmp[35], tmp[36], tmp[37], tmp[38], tmp[39],
|
tmp[16], tmp[17], tmp[18], tmp[19],
|
||||||
tmp[40], tmp[41], tmp[42], tmp[43], tmp[44], tmp[45], tmp[46], tmp[47],
|
tmp[20], tmp[21], tmp[22], tmp[23],
|
||||||
tmp[48], tmp[49], tmp[50], tmp[51], tmp[52], tmp[53], tmp[54], tmp[55],
|
tmp[24], tmp[25], tmp[26], tmp[27],
|
||||||
tmp[56], tmp[57], tmp[58], tmp[59], tmp[60], tmp[61], tmp[62]);
|
tmp[28], tmp[29], tmp[30], tmp[31],
|
||||||
|
tmp[32], tmp[33], tmp[34], tmp[35],
|
||||||
|
tmp[36], tmp[37], tmp[38], tmp[39],
|
||||||
|
tmp[40], tmp[41], tmp[42], tmp[43],
|
||||||
|
tmp[44], tmp[45], tmp[46], tmp[47],
|
||||||
|
tmp[48], tmp[49], tmp[50], tmp[51],
|
||||||
|
tmp[52], tmp[53], tmp[54], tmp[55],
|
||||||
|
tmp[56], tmp[57], tmp[58], tmp[59],
|
||||||
|
tmp[60], tmp[61], tmp[62]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -185,8 +193,8 @@ static int update_onboard_backlight(struct backlight_device *bd)
|
||||||
bool on;
|
bool on;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
||||||
"%s: power=%d, fb_blank=%d\n",
|
"%s: power=%d, fb_blank=%d\n",
|
||||||
__func__, bd->props.power, bd->props.fb_blank);
|
__func__, bd->props.power, bd->props.fb_blank);
|
||||||
|
|
||||||
on = (bd->props.power == FB_BLANK_UNBLANK) &&
|
on = (bd->props.power == FB_BLANK_UNBLANK) &&
|
||||||
(bd->props.fb_blank == FB_BLANK_UNBLANK);
|
(bd->props.fb_blank == FB_BLANK_UNBLANK);
|
||||||
|
@ -209,7 +217,8 @@ static void register_onboard_backlight(struct fbtft_par *par)
|
||||||
bl_props.power = FB_BLANK_POWERDOWN;
|
bl_props.power = FB_BLANK_POWERDOWN;
|
||||||
|
|
||||||
bd = backlight_device_register(dev_driver_string(par->info->device),
|
bd = backlight_device_register(dev_driver_string(par->info->device),
|
||||||
par->info->device, par, &bl_ops, &bl_props);
|
par->info->device, par, &bl_ops,
|
||||||
|
&bl_props);
|
||||||
if (IS_ERR(bd)) {
|
if (IS_ERR(bd)) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"cannot register backlight device (%ld)\n",
|
"cannot register backlight device (%ld)\n",
|
||||||
|
|
|
@ -145,13 +145,18 @@ static int set_gamma(struct fbtft_par *par, u32 *curves)
|
||||||
|
|
||||||
for (i = 0; i < par->gamma.num_curves; i++)
|
for (i = 0; i < par->gamma.num_curves; i++)
|
||||||
write_reg(par, 0xE0 + i,
|
write_reg(par, 0xE0 + i,
|
||||||
CURVE(i, 0), CURVE(i, 1), CURVE(i, 2), CURVE(i, 3),
|
CURVE(i, 0), CURVE(i, 1),
|
||||||
CURVE(i, 4), CURVE(i, 5), CURVE(i, 6), CURVE(i, 7),
|
CURVE(i, 2), CURVE(i, 3),
|
||||||
CURVE(i, 8), CURVE(i, 9), CURVE(i, 10), CURVE(i, 11),
|
CURVE(i, 4), CURVE(i, 5),
|
||||||
CURVE(i, 12), CURVE(i, 13), CURVE(i, 14), CURVE(i, 15));
|
CURVE(i, 6), CURVE(i, 7),
|
||||||
|
CURVE(i, 8), CURVE(i, 9),
|
||||||
|
CURVE(i, 10), CURVE(i, 11),
|
||||||
|
CURVE(i, 12), CURVE(i, 13),
|
||||||
|
CURVE(i, 14), CURVE(i, 15));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CURVE
|
#undef CURVE
|
||||||
|
|
||||||
static struct fbtft_display display = {
|
static struct fbtft_display display = {
|
||||||
|
|
|
@ -201,13 +201,12 @@ static int set_gamma(struct fbtft_par *par, u32 *curves)
|
||||||
c = i * par->gamma.num_values;
|
c = i * par->gamma.num_values;
|
||||||
for (j = 0; j < par->gamma.num_values; j++)
|
for (j = 0; j < par->gamma.num_values; j++)
|
||||||
curves[c + j] &= gamma_par_mask[j];
|
curves[c + j] &= gamma_par_mask[j];
|
||||||
write_reg(
|
write_reg(par, PVGAMCTRL + i,
|
||||||
par, PVGAMCTRL + i,
|
curves[c + 0], curves[c + 1], curves[c + 2],
|
||||||
curves[c + 0], curves[c + 1], curves[c + 2],
|
curves[c + 3], curves[c + 4], curves[c + 5],
|
||||||
curves[c + 3], curves[c + 4], curves[c + 5],
|
curves[c + 6], curves[c + 7], curves[c + 8],
|
||||||
curves[c + 6], curves[c + 7], curves[c + 8],
|
curves[c + 9], curves[c + 10], curves[c + 11],
|
||||||
curves[c + 9], curves[c + 10], curves[c + 11],
|
curves[c + 12], curves[c + 13]);
|
||||||
curves[c + 12], curves[c + 13]);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,8 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE_REGISTER, par,
|
fbtft_par_dbg_hex(DEBUG_WRITE_REGISTER, par,
|
||||||
par->info->device, u8, par->buf, len, "%s: ", __func__);
|
par->info->device, u8, par->buf,
|
||||||
|
len, "%s: ", __func__);
|
||||||
|
|
||||||
ret = par->fbtftops.write(par, par->buf, len);
|
ret = par->fbtftops.write(par, par->buf, len);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -175,7 +176,7 @@ static int init_display(struct fbtft_par *par)
|
||||||
|
|
||||||
version = firmware_version(par);
|
version = firmware_version(par);
|
||||||
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "Firmware version: %x.%02x\n",
|
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "Firmware version: %x.%02x\n",
|
||||||
version >> 8, version & 0xFF);
|
version >> 8, version & 0xFF);
|
||||||
|
|
||||||
if (mode == 332)
|
if (mode == 332)
|
||||||
par->fbtftops.write_vmem = write_vmem_8bit;
|
par->fbtftops.write_vmem = write_vmem_8bit;
|
||||||
|
@ -226,9 +227,9 @@ static int backlight_chip_update_status(struct backlight_device *bd)
|
||||||
int brightness = bd->props.brightness;
|
int brightness = bd->props.brightness;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
||||||
"%s: brightness=%d, power=%d, fb_blank=%d\n",
|
"%s: brightness=%d, power=%d, fb_blank=%d\n", __func__,
|
||||||
__func__, bd->props.brightness, bd->props.power,
|
bd->props.brightness, bd->props.power,
|
||||||
bd->props.fb_blank);
|
bd->props.fb_blank);
|
||||||
|
|
||||||
if (bd->props.power != FB_BLANK_UNBLANK)
|
if (bd->props.power != FB_BLANK_UNBLANK)
|
||||||
brightness = 0;
|
brightness = 0;
|
||||||
|
@ -256,7 +257,8 @@ static void register_chip_backlight(struct fbtft_par *par)
|
||||||
bl_props.brightness = DEFAULT_BRIGHTNESS;
|
bl_props.brightness = DEFAULT_BRIGHTNESS;
|
||||||
|
|
||||||
bd = backlight_device_register(dev_driver_string(par->info->device),
|
bd = backlight_device_register(dev_driver_string(par->info->device),
|
||||||
par->info->device, par, &bl_ops, &bl_props);
|
par->info->device, par, &bl_ops,
|
||||||
|
&bl_props);
|
||||||
if (IS_ERR(bd)) {
|
if (IS_ERR(bd)) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"cannot register backlight device (%ld)\n",
|
"cannot register backlight device (%ld)\n",
|
||||||
|
|
|
@ -79,7 +79,8 @@ void fbtft_write_reg8_bus9(struct fbtft_par *par, int len, ...)
|
||||||
*(((u8 *)buf) + i) = (u8)va_arg(args, unsigned int);
|
*(((u8 *)buf) + i) = (u8)va_arg(args, unsigned int);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE_REGISTER, par,
|
fbtft_par_dbg_hex(DEBUG_WRITE_REGISTER, par,
|
||||||
par->info->device, u8, buf, len, "%s: ", __func__);
|
par->info->device, u8, buf, len, "%s: ",
|
||||||
|
__func__);
|
||||||
}
|
}
|
||||||
if (len <= 0)
|
if (len <= 0)
|
||||||
return;
|
return;
|
||||||
|
@ -129,7 +130,7 @@ int fbtft_write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
|
||||||
size_t startbyte_size = 0;
|
size_t startbyte_size = 0;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
||||||
__func__, offset, len);
|
__func__, offset, len);
|
||||||
|
|
||||||
remain = len / 2;
|
remain = len / 2;
|
||||||
vmem16 = (u16 *)(par->info->screen_buffer + offset);
|
vmem16 = (u16 *)(par->info->screen_buffer + offset);
|
||||||
|
@ -153,8 +154,8 @@ int fbtft_write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
|
||||||
|
|
||||||
while (remain) {
|
while (remain) {
|
||||||
to_copy = min(tx_array_size, remain);
|
to_copy = min(tx_array_size, remain);
|
||||||
dev_dbg(par->info->device, " to_copy=%zu, remain=%zu\n",
|
dev_dbg(par->info->device, "to_copy=%zu, remain=%zu\n",
|
||||||
to_copy, remain - to_copy);
|
to_copy, remain - to_copy);
|
||||||
|
|
||||||
for (i = 0; i < to_copy; i++)
|
for (i = 0; i < to_copy; i++)
|
||||||
txbuf16[i] = cpu_to_be16(vmem16[i]);
|
txbuf16[i] = cpu_to_be16(vmem16[i]);
|
||||||
|
@ -183,7 +184,7 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
||||||
__func__, offset, len);
|
__func__, offset, len);
|
||||||
|
|
||||||
if (!par->txbuf.buf) {
|
if (!par->txbuf.buf) {
|
||||||
dev_err(par->info->device, "%s: txbuf.buf is NULL\n", __func__);
|
dev_err(par->info->device, "%s: txbuf.buf is NULL\n", __func__);
|
||||||
|
@ -197,8 +198,8 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len)
|
||||||
|
|
||||||
while (remain) {
|
while (remain) {
|
||||||
to_copy = min(tx_array_size, remain);
|
to_copy = min(tx_array_size, remain);
|
||||||
dev_dbg(par->info->device, " to_copy=%zu, remain=%zu\n",
|
dev_dbg(par->info->device, "to_copy=%zu, remain=%zu\n",
|
||||||
to_copy, remain - to_copy);
|
to_copy, remain - to_copy);
|
||||||
|
|
||||||
#ifdef __LITTLE_ENDIAN
|
#ifdef __LITTLE_ENDIAN
|
||||||
for (i = 0; i < to_copy; i += 2) {
|
for (i = 0; i < to_copy; i += 2) {
|
||||||
|
@ -233,7 +234,7 @@ int fbtft_write_vmem16_bus16(struct fbtft_par *par, size_t offset, size_t len)
|
||||||
u16 *vmem16;
|
u16 *vmem16;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n",
|
||||||
__func__, offset, len);
|
__func__, offset, len);
|
||||||
|
|
||||||
vmem16 = (u16 *)(par->info->screen_buffer + offset);
|
vmem16 = (u16 *)(par->info->screen_buffer + offset);
|
||||||
|
|
||||||
|
|
|
@ -137,8 +137,8 @@ static int fbtft_request_gpios(struct fbtft_par *par)
|
||||||
flags = fbtft_request_gpios_match(par, gpio);
|
flags = fbtft_request_gpios_match(par, gpio);
|
||||||
if (flags != FBTFT_GPIO_NO_MATCH) {
|
if (flags != FBTFT_GPIO_NO_MATCH) {
|
||||||
ret = devm_gpio_request_one(par->info->device,
|
ret = devm_gpio_request_one(par->info->device,
|
||||||
gpio->gpio, flags,
|
gpio->gpio, flags,
|
||||||
par->info->device->driver->name);
|
par->info->device->driver->name);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"%s: gpio_request_one('%s'=%d) failed with %d\n",
|
"%s: gpio_request_one('%s'=%d) failed with %d\n",
|
||||||
|
@ -249,8 +249,8 @@ static int fbtft_backlight_update_status(struct backlight_device *bd)
|
||||||
bool polarity = par->polarity;
|
bool polarity = par->polarity;
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
fbtft_par_dbg(DEBUG_BACKLIGHT, par,
|
||||||
"%s: polarity=%d, power=%d, fb_blank=%d\n",
|
"%s: polarity=%d, power=%d, fb_blank=%d\n",
|
||||||
__func__, polarity, bd->props.power, bd->props.fb_blank);
|
__func__, polarity, bd->props.power, bd->props.fb_blank);
|
||||||
|
|
||||||
if ((bd->props.power == FB_BLANK_UNBLANK) &&
|
if ((bd->props.power == FB_BLANK_UNBLANK) &&
|
||||||
(bd->props.fb_blank == FB_BLANK_UNBLANK))
|
(bd->props.fb_blank == FB_BLANK_UNBLANK))
|
||||||
|
@ -372,7 +372,7 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned int start_line,
|
||||||
if (start_line > par->info->var.yres - 1 ||
|
if (start_line > par->info->var.yres - 1 ||
|
||||||
end_line > par->info->var.yres - 1) {
|
end_line > par->info->var.yres - 1) {
|
||||||
dev_warn(par->info->device,
|
dev_warn(par->info->device,
|
||||||
"%s: start_line=%u or end_line=%u is larger than max=%d. Shouldn't happen, will do full display update\n",
|
"%s: start_line=%u or end_line=%u is larger than max=%d. Shouldn't happen, will do full display update\n",
|
||||||
__func__, start_line,
|
__func__, start_line,
|
||||||
end_line, par->info->var.yres - 1);
|
end_line, par->info->var.yres - 1);
|
||||||
start_line = 0;
|
start_line = 0;
|
||||||
|
@ -817,8 +817,8 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
|
||||||
info->pseudo_palette = par->pseudo_palette;
|
info->pseudo_palette = par->pseudo_palette;
|
||||||
|
|
||||||
if (par->gamma.curves && gamma) {
|
if (par->gamma.curves && gamma) {
|
||||||
if (fbtft_gamma_parse_str(par,
|
if (fbtft_gamma_parse_str(par, par->gamma.curves, gamma,
|
||||||
par->gamma.curves, gamma, strlen(gamma)))
|
strlen(gamma)))
|
||||||
goto alloc_fail;
|
goto alloc_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1045,8 +1045,8 @@ static int fbtft_init_display_dt(struct fbtft_par *par)
|
||||||
while (p && !(val & 0xFFFF0000)) {
|
while (p && !(val & 0xFFFF0000)) {
|
||||||
if (i > 63) {
|
if (i > 63) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"%s: Maximum register values exceeded\n",
|
"%s: Maximum register values exceeded\n",
|
||||||
__func__);
|
__func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
buf[i++] = val;
|
buf[i++] = val;
|
||||||
|
@ -1166,8 +1166,8 @@ int fbtft_init_display(struct fbtft_par *par)
|
||||||
while (par->init_sequence[i] >= 0) {
|
while (par->init_sequence[i] >= 0) {
|
||||||
if (j > 63) {
|
if (j > 63) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"%s: Maximum register values exceeded\n",
|
"%s: Maximum register values exceeded\n",
|
||||||
__func__);
|
__func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
buf[j++] = par->init_sequence[i++];
|
buf[j++] = par->init_sequence[i++];
|
||||||
|
@ -1193,7 +1193,8 @@ int fbtft_init_display(struct fbtft_par *par)
|
||||||
case -2:
|
case -2:
|
||||||
i++;
|
i++;
|
||||||
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par,
|
fbtft_par_dbg(DEBUG_INIT_DISPLAY, par,
|
||||||
"init: mdelay(%d)\n", par->init_sequence[i]);
|
"init: mdelay(%d)\n",
|
||||||
|
par->init_sequence[i]);
|
||||||
mdelay(par->init_sequence[i++]);
|
mdelay(par->init_sequence[i++]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1225,8 +1226,8 @@ static int fbtft_verify_gpios(struct fbtft_par *par)
|
||||||
|
|
||||||
fbtft_par_dbg(DEBUG_VERIFY_GPIOS, par, "%s()\n", __func__);
|
fbtft_par_dbg(DEBUG_VERIFY_GPIOS, par, "%s()\n", __func__);
|
||||||
|
|
||||||
if (pdata->display.buswidth != 9 && par->startbyte == 0 &&
|
if (pdata->display.buswidth != 9 && par->startbyte == 0 &&
|
||||||
par->gpio.dc < 0) {
|
par->gpio.dc < 0) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
"Missing info about 'dc' gpio. Aborting.\n");
|
"Missing info about 'dc' gpio. Aborting.\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -1321,7 +1322,8 @@ static struct fbtft_platform_data *fbtft_probe_dt(struct device *dev)
|
||||||
* Return: 0 if successful, negative if error
|
* Return: 0 if successful, negative if error
|
||||||
*/
|
*/
|
||||||
int fbtft_probe_common(struct fbtft_display *display,
|
int fbtft_probe_common(struct fbtft_display *display,
|
||||||
struct spi_device *sdev, struct platform_device *pdev)
|
struct spi_device *sdev,
|
||||||
|
struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct fb_info *info;
|
struct fb_info *info;
|
||||||
|
@ -1393,11 +1395,12 @@ int fbtft_probe_common(struct fbtft_display *display,
|
||||||
par->spi->bits_per_word = 9;
|
par->spi->bits_per_word = 9;
|
||||||
} else {
|
} else {
|
||||||
dev_warn(&par->spi->dev,
|
dev_warn(&par->spi->dev,
|
||||||
"9-bit SPI not available, emulating using 8-bit.\n");
|
"9-bit SPI not available, emulating using 8-bit.\n");
|
||||||
/* allocate buffer with room for dc bits */
|
/* allocate buffer with room for dc bits */
|
||||||
par->extra = devm_kzalloc(par->info->device,
|
par->extra = devm_kzalloc(par->info->device,
|
||||||
par->txbuf.len + (par->txbuf.len / 8) + 8,
|
par->txbuf.len +
|
||||||
GFP_KERNEL);
|
(par->txbuf.len / 8) + 8,
|
||||||
|
GFP_KERNEL);
|
||||||
if (!par->extra) {
|
if (!par->extra) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto out_release;
|
goto out_release;
|
||||||
|
|
|
@ -14,7 +14,7 @@ int fbtft_write_spi(struct fbtft_par *par, void *buf, size_t len)
|
||||||
struct spi_message m;
|
struct spi_message m;
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d): ", __func__, len);
|
"%s(len=%d): ", __func__, len);
|
||||||
|
|
||||||
if (!par->spi) {
|
if (!par->spi) {
|
||||||
dev_err(par->info->device,
|
dev_err(par->info->device,
|
||||||
|
@ -47,7 +47,7 @@ int fbtft_write_spi_emulate_9(struct fbtft_par *par, void *buf, size_t len)
|
||||||
u64 val, dc, tmp;
|
u64 val, dc, tmp;
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d): ", __func__, len);
|
"%s(len=%d): ", __func__, len);
|
||||||
|
|
||||||
if (!par->extra) {
|
if (!par->extra) {
|
||||||
dev_err(par->info->device, "%s: error: par->extra is NULL\n",
|
dev_err(par->info->device, "%s: error: par->extra is NULL\n",
|
||||||
|
@ -109,14 +109,15 @@ int fbtft_read_spi(struct fbtft_par *par, void *buf, size_t len)
|
||||||
txbuf[0] = par->startbyte | 0x3;
|
txbuf[0] = par->startbyte | 0x3;
|
||||||
t.tx_buf = txbuf;
|
t.tx_buf = txbuf;
|
||||||
fbtft_par_dbg_hex(DEBUG_READ, par, par->info->device, u8,
|
fbtft_par_dbg_hex(DEBUG_READ, par, par->info->device, u8,
|
||||||
txbuf, len, "%s(len=%d) txbuf => ", __func__, len);
|
txbuf, len, "%s(len=%d) txbuf => ",
|
||||||
|
__func__, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
spi_message_init(&m);
|
spi_message_init(&m);
|
||||||
spi_message_add_tail(&t, &m);
|
spi_message_add_tail(&t, &m);
|
||||||
ret = spi_sync(par->spi, &m);
|
ret = spi_sync(par->spi, &m);
|
||||||
fbtft_par_dbg_hex(DEBUG_READ, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_READ, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d) buf <= ", __func__, len);
|
"%s(len=%d) buf <= ", __func__, len);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +136,7 @@ int fbtft_write_gpio8_wr(struct fbtft_par *par, void *buf, size_t len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d): ", __func__, len);
|
"%s(len=%d): ", __func__, len);
|
||||||
|
|
||||||
while (len--) {
|
while (len--) {
|
||||||
data = *(u8 *)buf;
|
data = *(u8 *)buf;
|
||||||
|
@ -151,7 +152,7 @@ int fbtft_write_gpio8_wr(struct fbtft_par *par, void *buf, size_t len)
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
if ((data & 1) != (prev_data & 1))
|
if ((data & 1) != (prev_data & 1))
|
||||||
gpio_set_value(par->gpio.db[i],
|
gpio_set_value(par->gpio.db[i],
|
||||||
data & 1);
|
data & 1);
|
||||||
data >>= 1;
|
data >>= 1;
|
||||||
prev_data >>= 1;
|
prev_data >>= 1;
|
||||||
}
|
}
|
||||||
|
@ -185,7 +186,7 @@ int fbtft_write_gpio16_wr(struct fbtft_par *par, void *buf, size_t len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d): ", __func__, len);
|
"%s(len=%d): ", __func__, len);
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
data = *(u16 *)buf;
|
data = *(u16 *)buf;
|
||||||
|
@ -201,7 +202,7 @@ int fbtft_write_gpio16_wr(struct fbtft_par *par, void *buf, size_t len)
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
if ((data & 1) != (prev_data & 1))
|
if ((data & 1) != (prev_data & 1))
|
||||||
gpio_set_value(par->gpio.db[i],
|
gpio_set_value(par->gpio.db[i],
|
||||||
data & 1);
|
data & 1);
|
||||||
data >>= 1;
|
data >>= 1;
|
||||||
prev_data >>= 1;
|
prev_data >>= 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,8 @@ static ssize_t store_gamma_curve(struct device *device,
|
||||||
|
|
||||||
mutex_lock(&par->gamma.lock);
|
mutex_lock(&par->gamma.lock);
|
||||||
memcpy(par->gamma.curves, tmp_curves,
|
memcpy(par->gamma.curves, tmp_curves,
|
||||||
par->gamma.num_curves * par->gamma.num_values * sizeof(tmp_curves[0]));
|
par->gamma.num_curves * par->gamma.num_values *
|
||||||
|
sizeof(tmp_curves[0]));
|
||||||
mutex_unlock(&par->gamma.lock);
|
mutex_unlock(&par->gamma.lock);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
|
|
|
@ -64,16 +64,16 @@ struct fbtft_ops {
|
||||||
void (*write_register)(struct fbtft_par *par, int len, ...);
|
void (*write_register)(struct fbtft_par *par, int len, ...);
|
||||||
|
|
||||||
void (*set_addr_win)(struct fbtft_par *par,
|
void (*set_addr_win)(struct fbtft_par *par,
|
||||||
int xs, int ys, int xe, int ye);
|
int xs, int ys, int xe, int ye);
|
||||||
void (*reset)(struct fbtft_par *par);
|
void (*reset)(struct fbtft_par *par);
|
||||||
void (*mkdirty)(struct fb_info *info, int from, int to);
|
void (*mkdirty)(struct fb_info *info, int from, int to);
|
||||||
void (*update_display)(struct fbtft_par *par,
|
void (*update_display)(struct fbtft_par *par,
|
||||||
unsigned int start_line, unsigned int end_line);
|
unsigned int start_line, unsigned int end_line);
|
||||||
int (*init_display)(struct fbtft_par *par);
|
int (*init_display)(struct fbtft_par *par);
|
||||||
int (*blank)(struct fbtft_par *par, bool on);
|
int (*blank)(struct fbtft_par *par, bool on);
|
||||||
|
|
||||||
unsigned long (*request_gpios_match)(struct fbtft_par *par,
|
unsigned long (*request_gpios_match)(struct fbtft_par *par,
|
||||||
const struct fbtft_gpio *gpio);
|
const struct fbtft_gpio *gpio);
|
||||||
int (*request_gpios)(struct fbtft_par *par);
|
int (*request_gpios)(struct fbtft_par *par);
|
||||||
int (*verify_gpios)(struct fbtft_par *par);
|
int (*verify_gpios)(struct fbtft_par *par);
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,13 @@ static struct platform_device *p_device;
|
||||||
|
|
||||||
static char *name;
|
static char *name;
|
||||||
module_param(name, charp, 0000);
|
module_param(name, charp, 0000);
|
||||||
MODULE_PARM_DESC(name, "Devicename (required). name=list => list all supported devices.");
|
MODULE_PARM_DESC(name,
|
||||||
|
"Devicename (required). name=list => list all supported devices.");
|
||||||
|
|
||||||
static unsigned int rotate;
|
static unsigned int rotate;
|
||||||
module_param(rotate, uint, 0000);
|
module_param(rotate, uint, 0000);
|
||||||
MODULE_PARM_DESC(rotate,
|
MODULE_PARM_DESC(rotate,
|
||||||
"Angle to rotate display counter clockwise: 0, 90, 180, 270");
|
"Angle to rotate display counter clockwise: 0, 90, 180, 270");
|
||||||
|
|
||||||
static unsigned int busnum;
|
static unsigned int busnum;
|
||||||
module_param(busnum, uint, 0000);
|
module_param(busnum, uint, 0000);
|
||||||
|
@ -47,7 +48,7 @@ MODULE_PARM_DESC(mode, "SPI mode (override device default)");
|
||||||
static char *gpios;
|
static char *gpios;
|
||||||
module_param(gpios, charp, 0000);
|
module_param(gpios, charp, 0000);
|
||||||
MODULE_PARM_DESC(gpios,
|
MODULE_PARM_DESC(gpios,
|
||||||
"List of gpios. Comma separated with the form: reset:23,dc:24 (when overriding the default, all gpios must be specified)");
|
"List of gpios. Comma separated with the form: reset:23,dc:24 (when overriding the default, all gpios must be specified)");
|
||||||
|
|
||||||
static unsigned int fps;
|
static unsigned int fps;
|
||||||
module_param(fps, uint, 0000);
|
module_param(fps, uint, 0000);
|
||||||
|
@ -56,7 +57,7 @@ MODULE_PARM_DESC(fps, "Frames per second (override driver default)");
|
||||||
static char *gamma;
|
static char *gamma;
|
||||||
module_param(gamma, charp, 0000);
|
module_param(gamma, charp, 0000);
|
||||||
MODULE_PARM_DESC(gamma,
|
MODULE_PARM_DESC(gamma,
|
||||||
"String representation of Gamma Curve(s). Driver specific.");
|
"String representation of Gamma Curve(s). Driver specific.");
|
||||||
|
|
||||||
static int txbuflen;
|
static int txbuflen;
|
||||||
module_param(txbuflen, int, 0000);
|
module_param(txbuflen, int, 0000);
|
||||||
|
@ -65,7 +66,7 @@ MODULE_PARM_DESC(txbuflen, "txbuflen (override driver default)");
|
||||||
static int bgr = -1;
|
static int bgr = -1;
|
||||||
module_param(bgr, int, 0000);
|
module_param(bgr, int, 0000);
|
||||||
MODULE_PARM_DESC(bgr,
|
MODULE_PARM_DESC(bgr,
|
||||||
"BGR bit (supported by some drivers).");
|
"BGR bit (supported by some drivers).");
|
||||||
|
|
||||||
static unsigned int startbyte;
|
static unsigned int startbyte;
|
||||||
module_param(startbyte, uint, 0000);
|
module_param(startbyte, uint, 0000);
|
||||||
|
@ -95,12 +96,12 @@ MODULE_PARM_DESC(init, "Init sequence, used with the custom argument");
|
||||||
static unsigned long debug;
|
static unsigned long debug;
|
||||||
module_param(debug, ulong, 0000);
|
module_param(debug, ulong, 0000);
|
||||||
MODULE_PARM_DESC(debug,
|
MODULE_PARM_DESC(debug,
|
||||||
"level: 0-7 (the remaining 29 bits is for advanced usage)");
|
"level: 0-7 (the remaining 29 bits is for advanced usage)");
|
||||||
|
|
||||||
static unsigned int verbose = 3;
|
static unsigned int verbose = 3;
|
||||||
module_param(verbose, uint, 0000);
|
module_param(verbose, uint, 0000);
|
||||||
MODULE_PARM_DESC(verbose,
|
MODULE_PARM_DESC(verbose,
|
||||||
"0 silent, >0 show gpios, >1 show devices, >2 show devices before (default=3)");
|
"0 silent, >0 show gpios, >1 show devices, >2 show devices before (default=3)");
|
||||||
|
|
||||||
struct fbtft_device_display {
|
struct fbtft_device_display {
|
||||||
char *name;
|
char *name;
|
||||||
|
@ -112,7 +113,7 @@ static void fbtft_device_pdev_release(struct device *dev);
|
||||||
|
|
||||||
static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len);
|
static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len);
|
||||||
static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
|
static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
|
||||||
int xs, int ys, int xe, int ye);
|
int xs, int ys, int xe, int ye);
|
||||||
|
|
||||||
#define ADAFRUIT18_GAMMA \
|
#define ADAFRUIT18_GAMMA \
|
||||||
"02 1c 07 12 37 32 29 2d 29 25 2B 39 00 01 03 10\n" \
|
"02 1c 07 12 37 32 29 2d 29 25 2B 39 00 01 03 10\n" \
|
||||||
|
@ -1243,7 +1244,7 @@ static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
fbtft_par_dbg_hex(DEBUG_WRITE, par, par->info->device, u8, buf, len,
|
||||||
"%s(len=%d): ", __func__, len);
|
"%s(len=%d): ", __func__, len);
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
data = *(u16 *)buf;
|
data = *(u16 *)buf;
|
||||||
|
@ -1259,7 +1260,7 @@ static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len)
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
if ((data & 1) != (prev_data & 1))
|
if ((data & 1) != (prev_data & 1))
|
||||||
gpio_set_value(par->gpio.db[i],
|
gpio_set_value(par->gpio.db[i],
|
||||||
data & 1);
|
data & 1);
|
||||||
data >>= 1;
|
data >>= 1;
|
||||||
prev_data >>= 1;
|
prev_data >>= 1;
|
||||||
}
|
}
|
||||||
|
@ -1285,7 +1286,7 @@ static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
|
static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
|
||||||
int xs, int ys, int xe, int ye)
|
int xs, int ys, int xe, int ye)
|
||||||
{
|
{
|
||||||
write_reg(par, 0x2A, 0, xs + 2, 0, xe + 2);
|
write_reg(par, 0x2A, 0, xs + 2, 0, xe + 2);
|
||||||
write_reg(par, 0x2B, 0, ys + 1, 0, ye + 1);
|
write_reg(par, 0x2B, 0, ys + 1, 0, ye + 1);
|
||||||
|
@ -1476,7 +1477,7 @@ static int __init fbtft_device_init(void)
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
len = strlcpy(displays[i].spi->modalias, name,
|
len = strlcpy(displays[i].spi->modalias, name,
|
||||||
SPI_NAME_SIZE);
|
SPI_NAME_SIZE);
|
||||||
if (len >= SPI_NAME_SIZE)
|
if (len >= SPI_NAME_SIZE)
|
||||||
pr_warn("modalias (name) truncated to: %s\n",
|
pr_warn("modalias (name) truncated to: %s\n",
|
||||||
displays[i].spi->modalias);
|
displays[i].spi->modalias);
|
||||||
|
|
|
@ -694,7 +694,9 @@ static int flexfb_probe_common(struct spi_device *sdev,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(dev, "argument 'buswidth': %d is not supported with SPI.\n", buswidth);
|
dev_err(dev,
|
||||||
|
"argument 'buswidth': %d is not supported with SPI.\n",
|
||||||
|
buswidth);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user