Hi,
while going over the bootargs we pass to iMX6 (inherited from those we
pass to iMX53, in turn inherited from those we pass to Panda, probably
at some point inherited from what we used to pass to Beagle, .....), I
spotted a few boot arguments I didn't know the meaning of - so I grep
-r-ed the codebase to see what they do.
In some cases, it turns out they do nothing at all because there's
nothing at all checking for them in current environments at least on
iMX* ("nocompcache", "fixrtc").
Probably every board maintainer should go over his boot args and
remove the useless ones at some point.
ttyl
bero
Hi added the printk. this is my code
static void ads7846_report_state(struct ads7846 *ts)
{
struct ads7846_packet *packet = ts->packet;
unsigned int Rt;
u16 x, y, z1, z2;
/* added for debug */
printk(KERN_INFO "ads7846_report_state\n");
/*
* ads7846_get_value() does in-place conversion (including byte swap)
* from on-the-wire format as part of debouncing to get stable
* readings.
*/
if (ts->model == 7845) {
x = *(u16 *)packet->tc.x_buf;
y = *(u16 *)packet->tc.y_buf;
z1 = 0;
z2 = 0;
} else {
x = packet->tc.x;
y = packet->tc.y;
z1 = packet->tc.z1;
z2 = packet->tc.z2;
}
/* range filtering */
if (x == MAX_12BIT)
x = 0;
if (ts->model == 7843) {
Rt = ts->pressure_max / 2;
} else if (ts->model == 7845) {
if (get_pendown_state(ts)) {
Rt = ts->pressure_max / 2;
} else {
/* added for debug */
printk(KERN_INFO "cannot get pendown state \n");
Rt = 0;
}
dev_vdbg(&ts->spi->dev, "x/y: %d/%d, PD %d\n", x, y, Rt);
} else if (likely(x && z1)) {
/* compute touch pressure resistance using equation #2 */
/* added for debug */
printk(KERN_INFO "compute touch pressure resistance using equation
#2 \n");
Rt = z2;
Rt -= z1;
Rt *= x;
Rt *= ts->x_plate_ohms;
Rt /= z1;
Rt = (Rt + 2047) >> 12;
} else {
/* added for debug */
printk(KERN_INFO "ts model ? %d \n", ts->model);
Rt = 0;
}
/* added for debug */
printk(KERN_INFO "Rt %d \n", Rt);
/*
* Sample found inconsistent by debouncing or pressure is beyond
* the maximum. Don't report it to user space, repeat at least
* once more the measurement
*/
if (packet->tc.ignore || Rt > ts->pressure_max) {
/* added for debug */
printk(KERN_INFO "Ignored %d pressure %d \n", packet->tc.ignore,
Rt);
dev_vdbg(&ts->spi->dev, "ignored %d pressure %d \n",
packet->tc.ignore, Rt);
return;
}
/*
* Maybe check the pendown state before reporting. This discards
* false readings when the pen is lifted.
*/
if (ts->penirq_recheck_delay_usecs) {
udelay(ts->penirq_recheck_delay_usecs);
if (!get_pendown_state(ts)) {
/* added for debug */
printk(KERN_INFO "cannot get pendown state \n");
Rt = 0;
}
}
/*
* NOTE: We can't rely on the pressure to determine the pen down
* state, even this controller has a pressure sensor. The pressure
* value can fluctuate for quite a while after lifting the pen and
* in some cases may not even settle at the expected value.
*
* The only safe way to check for the pen up condition is in the
* timer by reading the pen signal state (it's a GPIO _and_ IRQ).
*/
if (Rt) {
struct input_dev *input = ts->input;
if (ts->swap_xy)
swap(x, y);
if (!ts->pendown) {
input_report_key(input, BTN_TOUCH, 1);
ts->pendown = true;
dev_vdbg(&ts->spi->dev, "DOWN\n");
}
/* added for debug */
printk(KERN_INFO "input_report_abs x: %d, y: %d \n", x, y);
input_report_abs(input, ABS_X, x);
input_report_abs(input, ABS_Y, y);
input_report_abs(input, ABS_PRESSURE, ts->pressure_max - Rt);
input_sync(input);
dev_vdbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt);
} else {
/* added for debug */
printk(KERN_INFO "not reporting. Rt=%d \n", Rt);
}
}
and the output after touching the screen
<6>[ 59.531036] ads7846_report_state
<6>[ 59.534423] compute touch pressure resistance using equation #2
<6>[ 59.540771] Rt 0
<6>[ 59.542785] not reporting. Rt=0
<6>[ 59.553497] ads7846_report_state
<6>[ 59.556884] compute touch pressure resistance using equation #2
<6>[ 59.563201] Rt 0
<6>[ 59.565216] not reporting. Rt=0
<6>[ 59.577087] ads7846_report_state
<6>[ 59.580474] compute touch pressure resistance using equation #2
<6>[ 59.586791] Rt 0
<6>[ 59.588836] not reporting. Rt=0
<6>[ 59.850494] ads7846_report_state
<6>[ 59.853881] compute touch pressure resistance using equation #2
<6>[ 59.860198] Rt 0
<6>[ 59.862213] not reporting. Rt=0
Thanks
Francesco
2012/2/15 Francesco Sarasini <sarasini(a)gmail.com>
>
> Thank you. My code base is Linaro Android.
> I will add the printk to the code
>
> Francesco
>
>
> 2012/2/15 Bharathi Subramanian <bharathi.list(a)gmail.com>
>
>> On Tue, Feb 14, 2012 at 7:48 PM, Francesco Sarasini <sarasini(a)gmail.com>
>> wrote:
>>
>> >>> Please add printk to show the value of x, y, before and after the
>> >>> OMAP3EVM macro. That will give better idea about the touchevent.
>>
>> >> I'm sorry, where is the OMAP3EVM macro?
>>
>> Oops. I hope, it is in EVM Code. For BB-xM, it might be different.
>>
>> The following set of commands are responsible for sending the
>> co-ordinates to user space. You have to add printk before this and
>> check.
>>
>> input_report_abs(input, ABS_X, x);
>> input_report_abs(input, ABS_Y, y);
>> input_report_abs(input, ABS_PRESSURE, ts->pressure_max - Rt);
>>
>> Can you share info about code base (Rowboat/Linaro) ?
>>
>> Bye :)
>> --
>> Bharathi Subramanian
>>
>
>
Hi,
I just finished a working iMX6 build done completely with gcc 4.7.
All changes needed to make it build are committed, so most boards
should compile with gcc 4.7 now (kernels might have issues, especially
when built with -Werror).
0xbench results show very close to no difference between 4.6 and 4.7 builds.
Binaries tend to be larger with 4.7.
Bugs seem to be largely identical as well, unfortunately 4.7 doesn't
come with a fix for the live wallpaper problem.
So overall, we shouldn't run into too many problems with 4.7 - but we
also shouldn't expect too much from it (yet).
ttyl
bero
Hi all,
I'm trying to mirror the linaro-android repository but I have some
problems about the replicaisland repository.
To mirror, I have init the directory :
repo init -u git://android.git.linaro.org/platform/manifest.git --mirror
And sync :
repo sync -j1
I tried to git clone directly replicaisland :
$ git clone git://android.git.linaro.org/platform/external/replicaisland
Cloning into replicaisland...
fatal: The remote end hung up unexpectedly
Someone can confirm this problem please ?
Thanks,
Alexander had the very good idea to ask the Linux Foundation if they
would set up a hacking room. They set aside Salon 3 for today and
tomorrow. I've brought some (all) of the hardware down if people need
to run stuff or want to collaborate.
--
Zach Pfeffer
Android Platform Team Lead, Linaro Platform Teams
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linarohttp://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
Hi,
I'm seeing this when booting up the iMX6 board with the current build
(strangely enough, the first build didn't do this):
<6>mmc0: new high speed SDHC card at address e624
<6>mmcblk0: mmc0:e624 SD32G 29.7 GiB
<6> mmcblk0: p1 p2 p3 p4 < p5 p6 p7 >
<6>EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
<6>EXT4-fs (mmcblk0p5): recovery complete
<6>EXT4-fs (mmcblk0p5): mounted filesystem with ordered data mode. Opts: (null)
<6>EXT4-fs (mmcblk0p6): recovery complete
<6>EXT4-fs (mmcblk0p6): mounted filesystem with ordered data mode. Opts: (null)
[ Up to here, this is expected and just given as context ]
<4>Disabling lock debugging due to kernel taint
<3>init: service 'console' requires console
<3>init: cannot find '/system/etc/install-recovery.sh', disabling
'flash_recovery'
<3>init: service 'console' requires console
<6>warning: `rild' uses 32-bit capabilities (legacy support in use)
After that, it goes on and boots Android fine, everything works
nicely. But there is no console on the serial port.
Has anyone run into that "init: service 'console' requires console"
thing before?
ttyl
bero